02600C语言程序设计

例如:printf( );这时函数调用的方式是()

题目

例如:printf( );这时函数调用的方式是()

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

一个C++程序由函数A( ),B( ),C( )和函数P( )构成,在函数A( )中分别调用了函数B( )和函数C ( ),在函数B( )中调用了函数A( ),且在函数P( )中也调用了函数A( ),则可以说

A.函数B( )中调用的函数A( )是函数A( )的间接递归调用

B.函数A( )被函数B( )调用是直接递归调用

C.函数P( )直接递归调用了函数A( )

D.函数P( )中调用的函数A( )是函数P( )的嵌套


正确答案:A
解析:本题考察递归调用。递归调用分为直接递归和间接递归。A()属于间接递归。

第2题:

函数f和g的定义如下图所示。执行函数f时需要调用函数g(a),若采用值调用方式(call by value)调用g(a),则函数f的返回值为(7);若采用引用(call by reference)方式调用g(a),则函数f的返回值为(8)。

A.6

B.13

C.25

D.28


正确答案:D

第3题:

在printf()函数调用的格式字符串中,若使用格式符为“ %c”,则对应输出的数据类型为( )。


正确答案:char

第4题:

若有定义inta=8,b=5;要实现输出形式为:8*5=40,正确的printf()函数调用语句是()。

A.printf(“a*b=a*b\n”);

B.printf(“a*b=%d\n”,a*B.;

C.printf(“%d*%d=a*b\n”,a,B.;

D.printf(“%d*%d=%d\n”,a,b,a*B.;


正确答案:D

第5题:

请编一个函数fun(oh lr*str),该函数的功能是把字符串中的内容逆置。 例如,字符串中原有的字符串为asdf9,则调用该函数后,串中的内容为9fdsa。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。 试题程序: include<string.h> include<conio.h> include<stdio.h> define N 100 void fun(char * str) { } void main { char a[N]; FILE*out: printf("Enter a string:"); gets(a); printf("The origir al string is:"); puts(a); fun(a): printf("The string after modified:"); puts(a); strcpy(a,"Welcome!"); fun(a); ut=fopen("outfile.dat","w"); fprintf(out,"%s".a); fclose(out); }


正确答案:

char ch;
int i,m,n;
i=0:
m=n=strlen(str)-1; //求字符串str长度
while(i<(n+1)/2) //循环逆置交换
{
ch=str[i];
str[i]=str[m];
str[m]=ch:
i++;
m--;
}
【解析】在fun函数中,首先求行字符串的长度,然后通过循环进行字符交换。要注意的是,如果字符串长度是奇数,则最中间的元素在逆置前后的位置是没有改变的。

第6题:

对下列程序段的描述正确的是()。includeint Fun(int,int)void main(){cout<

对下列程序段的描述正确的是( )。 #include<iostream.h> int Fun(int,int) void main() { cout<<Fun(5,50)<<endl; } int Fun(int x,int y) { return X*X+y*y; }

A.该函数定义正确,但函数调用方式错误

B.该函数调用方式正确,但函数定义错误

C.该函数定义和调用方式都正确

D.该函数定义和调用方式都错误


正确答案:C

第7题:

●函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数t中以传值调用(call by value)方式调用函数f时,输出为(49);在函数t中以引用调用( call by reference)方式调用函数f时,输出为(50)。

(49)

A. 12

B. 16

C. 20

D. 24

(50)

A. 12

B. 16

C. 20

D. 24


正确答案:B,D

第8题:

下列给定程序中,函数fun()的功能是:将字符串p中所有字符复制到字符串b中,要求每复制3个字符之后插入一个空格。例如,在调用fun()函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABC DEF GHI JK。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio. h>

void fun (char *p, char *b)

{ int i, k=0;

while (*p)

/*************found***************/

{ i=l;

/*************found***************/

while (i<3|| *P)

{

b[k]=*p;

k++; p++; i++;

}

if (*p)

/*************found***************/

{ b[k]= ' ';}

}

b[k]= '\0';

}

main ( )

{ char a[80],b[80];

printf ("Enter a string: "); gets (a);

printf ("The original string: ");

puts (a);

fun (a,b);

printf("\nThe string after insert

space: "); puts(b); printf("\n\n ");

}


正确答案:(1)错误:i=1; 正确:i=0; (2)错误:while(i3||*p) 正确:while(i3&&*p) (3)错误:b[k]=''; 正确:b[k++]='';
(1)错误:i=1; 正确:i=0; (2)错误:while(i3||*p) 正确:while(i3&&*p) (3)错误:b[k]=''; 正确:b[k++]=''; 解析:该题考查字符串复制程序的构造方法,题中插入空格字符的定义条件是while(i3||*p),当然要同时满足i3和*p这两个条件后才能执行{b(k++]=’’;}这个语句,该语句的含义是在输出结果中置入空格字符。

第9题:

请补充函数fun(char *s),该函数的功能是把字符串中的内容逆置。

例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为edcba。

注意;部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

$include<string.h>

include<conio.h>

include<stdio.h>

define N 81

void fun(char*s)

{

int i=0,t,n=strlen(s);

for(;【 】;i++)

{

t=*(s+i);

【 】;

【 】;

}

}

main()

{

char a[N];

clrscr();

printf("Enter a string:");

gets(a);

printf("The original string is:");

puts(a);

fun(a);

printf("\n");

printf("The string after modified:");

puts(a);

}


正确答案:in/2或s+is+n-1-i或in-1-I *(s+i)=*(s+n-1-i) *(s+n-1-i)=t
in/2或s+is+n-1-i或in-1-I *(s+i)=*(s+n-1-i) *(s+n-1-i)=t 解析:第一空:将字符串的内容逆置,实际上就是将第一个字符和最后一个字符交换,再将第二个字符与倒数第二个字符交换,依此类推,直到中间的字符为止。所以,长度为n的字符串需要交换的次数为n/2。还可以这样理解,交换时始终保持顺数的字符在倒数的字符前面。第二空:顺数第i个字符为*(s+i),倒数第i个字符为*(s+n-1-i)。第三空:掌握利用第三个变量进行变量交换的方法。本题中,第三个变量为t。

第10题:

关于函数的返回值,正确的是( )。

A.由return语句返回时,只带回一值,其类型在函数定义时确定

B.其类型由调用表达式决定

C.函数可以没有返回值,这时在函数定义中,函数的类型说明就没必要了

D.函数调用就要有返回值,否则调用就没有意义了


正确答案:A
解析:选项B函数返回值类型在函数定义时就确定了;选项C没有返回值用void标示;函数是完成特定功能的程序段,可以没有返回值。