第4次-单元测试试卷(函数)

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

第四次单元测试试卷

学号: 姓名: 日期: 20XX-XX-XX

一. 单项选择题(共25题,每题2分,共50分)

1.以下正确的说法是($ $)。

A.用户若需调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C.系统根本不允许用户重新定义标准库函数

D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动去调用

2.以下正确的函数形式是($ $)。

A.double fun(int x,int y) B.fun(int x,y)

{ z=x+y;{ int z;

return z;} return z;}

C.fun(x,y) D.double fun(int x,int y)

{ int x,y;double z; {double z;

z=x+y;return z;} z=x+y; return z;}

3.若程序中定义了以下函数:

double myadd(double a,double b)

{ return (a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的声明是($ $)。

A.double myadd(double a,b); B.double myadd(double,double);

C.double myadd(double b,double a); D.double myadd(double x,double y);

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

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

5.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数($ $)。

A.没有返回值B.返回若干个系统默认值

C.能返回一个用户所希望的函数值D.返回一个不确定的值

6.以下不正确的说法是:C语言规定($ $)。

A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式

C.实参可以为任意类型D.形参应与其对应的实参类型一致7.以下正确的说法是($ $)。

A.定义函数时,形参的类型说明可以放在函数体内

B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准

D.如果形参与实参的类型不一致,以实参类型为准

8.C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是($ $)。

A.地址传递B.单向值传递

C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式

9.以下程序有语法性错误,有关错误原因的正确说法是($ $)。

main()

{ int G=5,k;

void prt_char();

k=prt_char(G);

}

A.语句void prt_char();有错,它是函数调用语句,不能用void说明

B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾

D.函数名不能使用下划线

10.C语言规定,函数返回值的类型是由($ $)。

A.return语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定11.下面函数调用语句含有实参的个数为($ $)。

func((expl,exp2),(exp3,exp4,exp5));

A.1 B.2 C.4 D.5

12.以下函数的类型是($ $)。

fff(float x)

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

}

A.与参数x的类型相同B.void类型C.int类型D.无法确定13.在C语言程序中以下正确的描述是($ $)。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

14.若用数组名作为函数调用的实参,则传递给形参的是($ $)。

A.数组的首地址B.数组第一个元素的值

C.数组中全部元素的值D.数组元素的个数

15.有如下程序

int func(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

16.若使用一维数组名作为函数实参,则以下正确的说法是($ $)。

A.必须在主调函数中说明此数组的大小

B.实参数组类型与形参数组类型可以不匹配

C.在被调函数中,形参数组的大小必须要指定

D.实参数组名与形参数组名必须一致

17.如果在一个函数中的复合语句中定义了一个变量,则该变量($ $)。

A.只在该复合语句中有效B.在该函数中有效

C.在本程序范围内均有效D.为非法变量

18.以下不正确的说法是($ $)。

A.在不同函数中可以使用相同名字的变量

B.形式参数是局部变量

C.在函数内定义的变量只在本函数范围内有效

D.在函数内的复合语句中定义的变量在本函数范围内有效

19.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为($ $)。

A.自动(auto) B.静态(static) C.外部(extern) D.寄存器(register) 20.以下关于编译预处理的叙述中错误的是($ $)。

A.预处理命令行必须以#开始

B.一条有效的预处理命令必须单独占据一行

C.预处理命令行只能位于源程序中所有语句之前

D.预处理命令不是C语言本身的组成部分

21.C语言的编绎系统对宏命令的处理是($ $)。

A.在程序运行时进行的

B.在程序连接时进行的

C.和C程序中的其它语句同时进行编绎的

D.在对源程序中其它语句正式编绎之前进行的

22.以下叙述中正确的是($ $)。

A.在程序的一行上可以出现多个有效的预处理命令行

B.使用带参的宏时,参数的类型应与宏定义时的一致

C.宏替换不占用运行时间

D.在以下定义中,C R是称为“宏名”的标识符

#define C R 045

23.阅读程序,说出程序的运行结果($ $)。

#define ADD(x) x+x

main()

{ int m=1,n=2,k=3;

int sum=ADD(m+n)*k;

printf("sum=%d",sum);

}

A.sum=9 B.sum=10 C.sum=12 D.sum=18 24.在宏定义#define PI 3.14159中,宏名PI代替的是一个($ $)。

A.常量B.单精度数C.双精度数D.字符串25.程序中头文件def.h的内容如下:

#define H1 5

#define H2 H1*2

程序如下:

#include

#include "def.h"

相关文档
最新文档