C语言程序设计第15.16.17章测试答案 下载本文

内容发布更新时间 : 2024/7/1 3:49:11星期一 下面是文章的全部内容请认真阅读。

第一题、单项选择题(每题1分,5道题共5分) 1、从下列选项中选择不会引起二义性的宏定义是:

A、#define C(x) x*x C、#define C(x) (x*x)

B、#define C(x) (x)*(x) D、#define C(x) ((x)*(x))

2、有定义char p[]=\,能输出字符串”ABCDE”的语句为:

B、printf(\%s%s%s\p+6);

C、printf(\%s%s%s\[2],&p[3]);

A、printf(\%s\

D、printf(\%s\

3、若有int f(int a,int b);,则说明函数f( )。

B、能被同一源程序其他文件中的函数调用

C、是一个外部函数

A、是一个内部函数

D、只能在本文件中使用

4、声明一个函数为外部函数,应该在声明函数的函数类型的前面加( )。

A、auto C、extern

B、static D、register

5、以下对C语言函数的有关描述中,正确的描述是( )。

A、C函数既可以嵌套定义又可以递归调用

B、函数必须有返回值,否则不能使用函数

D、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

C、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、可以利用全局变量从函数中得到多个返回值。

正确 错误 4、若形参是简单变量形式,则对应的实参不能是数组名。 正确 错误 5、C函数可以递归调用。 正确 错误 恭喜,交卷操作成功完成!你本次进行的《C语言程序设计》第17章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。

测试结果如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1.1 [单选] [对] 从下列选项中选择不会引起二义性的宏定义是:

1.2 [单选] [对] 有定义char p[]=\,能输出字符串”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函数可以递归调用。