C语言程序设计第15.16.17章测试答案
第一题、单项选择题(每题1分,5道题共5分) 1、从下列选项中选择不会引起二义性的宏定义是:
A 、#define C(x) x*x
B 、#define C(x) (x)*(x)
C 、#define C(x) (x*x)
不属于c语言字符串常量
D 、#define C(x) ((x)*(x))
2、有定义char p[]="AB\0CD\0E";,能输出字符串”ABCDE ”的语句为:
A 、printf("%s",p);
B 、printf("%s %s %s",&p[0],p+3,p+6);
C 、printf("%s %s %s",&p[0],&p [2],&p[3]);
D 、printf("%s",&p[0]);
3、若有int f(int a,int b);,则说明函数f( )。
A 、是一个内部函数
B 、能被同一源程序其他文件中的函数调用
C 、是一个外部函数
D 、只能在本文件中使用
4、声明一个函数为外部函数,应该在声明函数的函数类型的前面加( )。
A 、auto
B 、static
C 、extern
D 、register
5、以下对C 语言函数的有关描述中,正确的描述是( )。
A 、C 函数既可以嵌套定义又可以递归调用
B 、函数必须有返回值,否则不能使用函数
C 、C 程序中有调用关系的所有函数必须放在同一个源程序文件中
D 、在C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
第二题、多项选择题(每题2分,5道题共10分) 1、以下叙述中,正确的叙述是:
A 、预处理命令须以#开始
B 、在程序中凡以#开始的语句都是预处理命令
C 、预处理行不是c 的可编译语句
D 、C 程序在执行过程中对预处理命令进行处理
2、下列对宏定义的描述中,正确的描述是:
A、宏不存在类型问题,宏名无类型,参数也无类型
B、宏替换不占用运行时间
C、宏替换是先求出实参表达式的值,然后带入形参运算求值
D、宏替换只不过是字符替代而已
3、下列对宏定义的描述中,正确的描述是:
A、宏不存在类型问题,宏名无类型,参数也无类型
B、宏替换不占用运行时间
C、宏替换是先求出实参表达式的值,然后带入形参运算求值
D、宏替换只不过是字符替代而已
4、以下叙述中,正确的叙述是:
A、预处理命令必须在程序编译前进行处理
B、在程序中凡以#开始的语句都是预处理命令
C、C程序在执行过程中对预处理命令进行处理
D、预处理行在编译阶段进行处理
5、函数中的形参若为指针,则调用时对应位置上的实参可以是( )。
A、地址
B、数组名
C、简单变量的地址
D、指针变量
第三题、判断题(每题1分,5道题共5分)
1、设int x=5,*p=&x;则&(*p)与p是同一回事。
正确错误
2、若有int a[10],*p=a;,则p++可以使p指向下一个字节。
正确错误
3、可以利用全局变量从函数中得到多个返回值。
正确错误
、若形参是简单变量形式,则对应的实参不能是数组名。
正确错误
函数可以递归调用。
正确错误
恭喜,交卷操作成功完成!你本次进行的《C语言程序设计》第17章在线测试的得分为20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。
测试结果如下:
1.1 [单选] [对] 从下列选项中选择不会引起二义性的宏定义是:
1.2 [单选] [对] 有定义char p[]="AB\0CD\0E";,能输出字符串”ABCDE”的语句为:
1.3 [单选] [对] 若有int f(int a,int b);,则说明函数f( )。
1.4 [单选] [对] 声明一个函数为外部函数,应该在声明函数的函数类型的前面加( )。
1.5 [单选] [对] 以下对C语言函数的有关描述中,正确的描述是( )。
2.1 [多选] [对] 以下叙述中,正确的叙述是:
2.2 [多选] [对] 下列对宏定义的描述中,正确的描述是:
2.3 [多选] [对] 下列对宏定义的描述中,正确的描述是:
2.4 [多选] [对] 以下叙述中,正确的叙述是:
2.5 [多选] [对] 函数中的形参若为指针,则调用时对应位置上的实参可以是( )。
3.1 [判断] [对] 设int x=5,*p=&x;则&(*p)与p是同一回事。
3.2 [判断] [对] 若有int a[10],*p=a;,则p++可以使p指向下一个字节。
3.3 [判断] [对] 可以利用全局变量从函数中得到多个返回值。
3.4 [判断] [对] 若形参是简单变量形式,则对应的实参不能是数组名。
3.5 [判断] [对] C函数可以递归调用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。