函数调用与宏定义巩固题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;