函数调用与宏定义巩固题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数调用、宏定义

一.选择题(每题2分,共60分)

1.有以下函数调用语句: A

fun(rec1,rec2+rec3,(rec4,rec5);

该函数调用语句中,含有的实参个数是。

A)3 B) 4 C)5 D)有语法错

2.有以下程序:D

int fun(int a,int b)

{ return(a+b);}

main()

{int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%d\n”,r);

}

程序运行后的输出结果是。

A) 12 B)13 C) 14 D)15

3.有以下程序:C

int abc(int u,int v)

main()

{int a=24,b=16,c;

c=abc(a,b);

printf(“%d\n”,c);

}

int abc(int u,int v)

{int w;

while(v) {w=u;u=v;v=w;}

return u;

}

程序运行后的输出结果是。

A) 6 B)7 C) 8 D) 9

4.以下程序的输出结果是。D

#difine M(x,y,z) x*y+z

main()

{int a=1,b=2,c=3;

printf(“%d\n”,M(a+b,b+c,c+a));}

A) 19 B) 17 C) 15 D)12

5.有如下程序

#define N 2

#define M N+1

#define NUM 2*M+1

main()

{ int i;

for(i=1;i<=NUM;i++)

printf(“%d\n”,i);}

该循环中的for循环执行的次数是。B

A) 5 B) 6 C) 7 D) 8

6.若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是。D

A) 函数调用可以作为独立的语句存在

B) 函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

7. 有以下程序

int f(int a)

{ return a%2; }

main()

{ int s[8]={1,3,5,2,4,6},i,d=0;

for (i=0;f(s);i++) d+=s;

printf("%d\n",d);

}

程序运行后的输出结果是。A

A)9 B)11 C)19 D)21

8. 以下叙述中正确的是。A

A)局部变量说明为static存储数,其生存期将得到延长

B)全局变量说明为static存储类,其作用域将被扩大

C)任何存储类的变量在未赋初值时,其值都是不确定的

D)形参可以使用的存储类说明符与局部变量完全相同

有以下函数定义:

void fun(int n,double x) {………..}

若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是。C

A) fun(int y,double m) B) k=fun(10,12,5) C) fun(x,n) D)void fun(n,x)

9. 当调用函数时,实参是一个数组名,则向函数传送的是。B

A) 数组的长度B) 数组的首地址

C) 数组每一个元素的地址D) 数组每个元素中的值

10.以下只有在使用时才为该类型变量分配内存的存储类说明是。B

A) auto和static B) auto和register

C) register和static D) extern和register

11. 以下程序的输出结果是。D

int f()

{ static int i=0;

int s=1;

s+=i; i++;

return s;

}

main()

{ int i,a=0;

for(i=0;i<5;i++) a+=f();

printf("%d\n",a);

}

A)20 B) 24 C) 25 D) 15

12. 若有以下程序

#include

void f(int n);

main()

{ void f(int n);

f(5);

}

void f(int n)

{ printf("%d\n",n); }

则以下叙述中不正确的是。C

A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明

D) 函数f无返回值,所以可用void将其类型定义为无值型

13. 在C语言中,形参的缺省存储类是。A

A)auto B) register C) static D) extern

14. 以下程序的输出结果是。A

f(int b[],int m,int n)

{ int i,s=0;

for(i=m;i

return s;

}

main()

{int x,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

printf("%d\n",x);

}

A)10 B) 18 C) 8 D) 15

15.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

void sort(int a[],int n)

{int i,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

}

main()

{int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

sort(&aa[3],5);

for(i=0;i<10;i++) printf("%d,",aa[i]);

printf("\n");

程序运行后的输出结果是______。C

A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,

C) 1,2,3,8,7,6,5,4,9,10, D) 1,2,10,9,8,7,6,5,4,3,

16.有以下程序

int f(int n)

{if (n==1) return 1;

else return f(n-1)+1;

}

main()

{int i,j=0;

for(i=1;i<3;i++) j+=f(i);

printf("%d\n",j);

}

程序运行后的输出结果是______。B

A) 4 B) 3 C) 2 D) 1

17.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是______。B

A)void B) int C) float D) double

18.设有以下宏定义:

#define N 3

#define Y(n) ( (N+1)*n)

则执行语句:z=2 * (N+Y(5+1));后,z的值为。C

A) 出错B) 42 C) 48 D)54

相关文档
最新文档