当前位置:首页 > C语言单元习题集
《C语言程序设计》习题集 函数
1. 关于建立函数的目的以下说法正确的是__________。
(A) 提高程序的执行效率 (B) 提高程序的可读性 (C) 减少程序的篇幅 (D) 减少程序文件所占内存 2. 以下说法正确的是__________。
(A) 用户若需调用标准库函数,调用前必须重新定义
(B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数
(D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文 件包括到用户源文件中,系统自动去调用. 3. 以下函数形式正确的是__________。 (A) double fun(int x,int y) { int z=x+y;return z; } (B) fun(int x,y) { int z; return z; } (C) fun(x,y)
{ int x,y; double z; z=x+y; return z; } (D) double fun(int x,int y); { double z; z=x+y;return z; }
4. 关于C语言以下说法正确的是__________。 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元
(C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元
5. 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数__________。 (A) 没有返回值
(B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值
- 25 -
(D) 有返回值,但返回一个不确定的值
《C语言程序设计》习题集
6. 按照C语言的规定以下说法不正确的是__________。 (A) 形参可以是常量、变量或表达式 (B) 实参可以为任意类型
(C) 实参可以是常量、变量或表达式,在传递给形参时,要求实参必须有确定的值 (D) 形参与其对应的实参类型要求可以不一致 7. 以下说法正确的是__________。
(A) 定义函数时,形参的类型说明可以放在函数体内,也可以放在函数体外 (B) return后边的值不能为表达式
(C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准
8. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是__________。
(A) 地址传递 (B) 单向值传递
(C) 由实参传给形参,再由形参传回给实参. (D) 由用户指定传递方式
9. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是_______。
(A) float型 (B) int型
(C) long型 (D) double型
10. C语言规定,函数返回值的类型是由__________。
(A) return语句中的表达式类型所决定 (B) 调用该函数时的主调函数类型所决定 (C) 调用该函数时系统临时决定
(D) 在定义该函数时所指定的函数类型决定
11. 下面函数调用语句含有实参的个数为__________。 func((a,b,c,d),(e,f,g));
(A) 1 (B) 2
(C) 4 (D) 以上都不对
12. 以下描述正确的是__________。
(A) 函数调用可以出现在执行语句或表达式中 (C) 函数调用可以做为一个函数的形参
(B) 函数调用不能做为一个函数的实参 (D) 以上都不正确
13. 在C语言程序中,以下描述正确的是__________。 (A) 函数的定义可以嵌套,但函数的调用不可以嵌套 (B) 函数的定义不可以嵌套,但函数的调用可以嵌套 (C) 函数的定义和函数的调用均不可以嵌套 (D) 函数的定义和函数的调用均可以嵌套
- 26 -
《C语言程序设计》习题集
14. 如果在一个函数的复合语句中定义了一个变量,则该变量_________。 (A) 只在该复合语句中有效,在该复合语句外无效 (B) 在该函数中任何位置都有效 (C) 在本程序的原文件范围内均有效 (D) 此定义方法错误,其变量为非法变量 15. 以下程序的正确运行结果是__________。 #define MAX 10 int a[MAX],i; main( )
{ printf(\\n\ sub2()
{ int a[MAX],i,max; max=5;
for(i=0;i<max;i++) a[i]=i;} sub1()
{ for(i=0;i<MAX;i++) a[i]=i+i; } sub3(int a[]) { int i;
for(i=0;i<MAX;i++) printf(\[i]); printf(\\n\(A) 0 2 4 6 8 10 12 14 16 18 0 1 2 3 4 (B) 0 1 2 3 4
0 2 4 6 8 10 12 14 16 18 (C) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
(D) 0 2 4 6 8 10 12 14 16 18
0 2 4 6 8 10 12 14 16 18
16. 16. 以下程序的输出结果是__________。 main( )
{ int k=4,m=1,p; p=func(k,m);
- 27 -
printf(\ p=func(k,m); printf(\ func(int a,int b) { static int m,k=2; k+=m+1; m=k+a+b; return(m);} (A) 8,17
(B) 8,16
(C) 8,20
《C语言程序设计》习题集
(D) 8,8
17. 以下程序的输出结果是__________。 main() { int i=1, j=3; printf(\ { int i=0; i+=j*2; printf(\ printf(\\n\
(A) 1,6,3,1,3 (B) 1,6,3,2,3 18. 以下程序的输出结果是__________。 main()
{ int a[]={1,2,3,4},i,x=0;
for(i=0; i<4; i++) { sub(a,&x); printf(\ printf(\\n\ sub(int*s, int *y) { static int t=3; *y=s[t]; t--;}
(A) 1234 (B) 4321
(C) 0000 (D) 444412.
(C) 1,6,3,6,3 (D) 1,7,3,2,3
19. 以下程序的输出结果是__________。 void fun(int *s) { static int j=0; do
s[j]+=s[j+1]; while(++j<2);}
- 28 -
共分享92篇相关文档