第8章 函数
1、C语言规定,在一个源程序中,main函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 [C] 教师批改:C
2、凡在函数中未指明存储类别的变量,其隐含的存储类别为 A.auto 型 B.static 型
C.extern 型 D.register 型 [A] 教师批改:A
3、函数调用语句func((exp1,exp2),(exp3,expD,exp5));中,实参的个数为: A.1 B.2 C.D D.5 [B] 教师批改:B 4、以下程序的输出结果是 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf(\} A.0 B.29 C.31 D.无定值 [C] 教师批改:C
5、以下对C语言函数的有关描述中,正确的是 A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数 D.C程序中有调用关系的所有函数必须放在同一个源程序文件中 [A] 教师批改:A
6、以下所列的各函数首部中,正确的是 A.void play(var :Integer,var b:Integer) B.void play(int a,b)
C.void play(int a,int b) D.Sub play(a as integer,b as integer) [C] 教师批改:C
7、以下叙述中不正确的是() A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C中,外部变量的隐含类别是自动存储类别 D.在C中,函数形参可以说明为register变量 [C] 教师批改:C
8、用数组名作为函数调用时的实参,实际上传送给形参的是 A.数组首地址 B.数组的第一个元素值
C.数组中全部元素的值 D.数组元素的个数 [A] 教师批改:A
9、当调用函数时,实参是一个数组名,则向函数传送的是 A.数组的长度 B.数组的首地址
C.数组每一个元素的地址 D.数组每个元素中的值 [B] 教师批改:B
10、函数调用:strcat(strcpy(str1,str2),str3)的功能是 A.将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1之后再将串str1复制到串str3中 [C] 教师批改:C
11、一个C程序的执行是从( )。 A.本程序的main函数开始,到main函数的结束 B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束
C.本程序文件的main开始,到本程序文件的最后一个函数的结束 D.本程序文件的第一个函数开始,到本程序文件的main函数的结束 [A] 教师批改:A
12、一个C语言程序是由( )。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 [B] 教师批改:B
13、以下说法中正确的是 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 [C] 教师批改:C
14、以下叙述不正确的是( )。 A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数 D.在C程序中,注释说明只能位于一条语句的后面
[D] 教师批改:D
15、当调用函数时,实参是一个数组名,则向函数传送的是_____。 A) 数组的长度 B)数组的首地址
C) 数组每一个元素的地址 D)数组每个元素中的值 [B] 教师批改:B 16、请读程序: #include
for(i=0; i<=n; i++) r=r*b[i];
return r; } main()
{ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf(\); }
上面程序的输出结果是_____。 A) 720 B) 120 C) 24 D) 6 [B] 教师批改:B
第9章 预处理命令
1、程序中定义以下宏 #define S(a,b) a*b 若定义 int area; 且令area=S(3+1,3+D),则变量area的值为: A.10 B.12 C.21 D.28 [A] 教师批改:A
2、以下关于宏替换的叙述不正确的是: A.宏替换只是字符替换 B.宏名无类型 C.宏替换不占用运行时间 D.宏替换不占用编译时间 [D] 教师批改:D
3、执行下列语句后,a的值为: int a;
#define M(x,y) (x*y) a=M(1+2,3); A.9 B.7 C.5 D.以上均不是 [B] 教师批改:B
4、下列四组选项中,均不是C语言关键字的选项是( )。 A.define IF type B.getc char printf
C.invlude scanf case D.while go pow [A] 教师批改:A
第10章 指针
1、若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是 A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p[0]+2)) [D] 教师批改:D
2、若有定义:int *p[3];, 则以下叙述中正确的是 A)定义了一个基类型为int的指针变量p,该变量具有三个指针 B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C) 定义了一个名为*p的整型数组,该数组含有三个int类型元素 D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 [B] 教师批改:B 3、有以下程序 main()
{ int a[3][3], *p, i; p=&a [0][0] ;
for ( i=0 ; i<9 ; i++) p[i]=i+1; printf(\); }
程序运行后的输出结果是 A) 3 B) 6 C) 9 D) 2 [B] 教师批改:B 4、若有以下定义和语句:
南昌大学 c答案第8章以后 函数 预处理命令 结构体与共用体 文件



