admin 管理员组文章数量: 1184232
2024年4月21日发(作者:while case循环用法)
C语言程序设计题目及解答-09
一、判断题 (12分)
1. 若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。
2分
2. 由于宏名与宏体之间以空格相隔,因此宏名中不应再有空格。2
分
3. 宏替换就是字符替换,不能进行任何计算。2分
4. 带参的宏替换,在调用时也进行实参与形参的结合,因此它和
函数是一回事
5. 以数组名作函数参数时,实参数组与形参数组都不必定义长度,
因此实参与形参的结合方式是地址结合,与数组长度无关。2分
6. 以数组名作函数参数时,数据传递的方向是“双向的”,因此
我们可以说,在此情况下,函数带回的返回值可能不止一个。2分
二、选择题 (24分)
1.下列宏定义命令中,哪一个格式是正确的() [D] 2分
A. #define pi=3.14159;
B. define pi=3.14159
C. #define pi="3.14159"
D. #define pi (3.14159)
2.宏定义为#define div(x,y) x/y;
若语句printf("div(x,y)=%dn",div(x+3,y-3));作宏替换后为()
[C] 2分
A. printf("x/y=%dn",(x+3)/(y-3));
B. printf("div(x,y)=%dn",x+3/y-3);
C. printf("div(x,y)=%dn",x+3/y-3;);
D. printf("x/y=%dn",x+3/y-3;);
3.程序中调用了库函数exit,必须包含头文件() [B] 2分
A. string.h
B. stdlib.h
C. ctype.h
D. math.h
4.定义带参数的宏计算两个表达式的乘积,下列定义中哪个是正
确的() [C] 2分
A. #define muit(u,v) u*v
B. #define muit(u,v) u*v;
C. #define muit(u,v) (u)*(v)
D. #define muit(u,v)=(u)*(v)
5.下列程序的输出结果是________。 [C] 2分
main()
{char ch[7]={"65ab21"};
int j,s=0;
for(j=0;ch[j]>='0'&&ch[j]<='9';j+=2)
s=10*s+ch[j]-'0';
printf("%dn",s);
}
A. 12ba56
B. 66521
C. 6
D. 62
6.以下程序中的函数reverse的功能是将a所指数组中的内容进行
逆置。
void reverse(int a[],int n)
{int i,t;
for(i=0;i<="" p="">
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
reverse(b,8);
版权声明:本文标题:C语言程序设计题目及解答-09 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713662455a645921.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论