武大C语言习题集

发布时间 : 星期日 文章武大C语言习题集更新完毕开始阅读

12.只有主函数才可以调用其它函数。

15.函数的嵌套调用就是在调用一个函数的过程中,又调用另一个函数。 16.在C语言中,最好使用全局变量。

17.在同一文件中,外部变量与局部变量同名。在局部变量的作用范围内,外部变量的值等于局部变量的值。

18.main函数中定义变量是全局变量。

1错 2错 3对 4对 5错 6错 7错 8对 9空 10空 11错 12错 13空 14空 15对 16错 17错 18错 填空

1.若已定义:int a[10], i; ,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1,请填空。 fun( int a[ ]) { int i;

for(i=1; i<=10; i++) ___________=i;

for(i=0; i<5; i++) ___________=a[i]; } 1 、a[i-1] 2 、a[9-i]

4-3

一、单项选择题

1. 以下程序的功能是计算:s= 1+1/2+1/3+??+1/10 #include void main( )

{ int i; float s; s=1.0; for(i=10;i>1;i--) s=s+1/i; printf(\ }

程序运行后输出结果错误,导致错误结果的程序行是______。 A. s=1.0; B. for(i=10;i>1;i--) C. s=s+1/i; D. printf(\

2. 定义为void类型的函数,其含义是______。 A. 调用函数后,被调用的函数没有返回值。 B. 调用函数后,被调用的函数不返回。

C. 调用函数后,被调用的函数的返回值为任意的类型。 D. 以上三种说法都是错误的。 3. 下列叙述中错误的是______。

A. 对于用户自己定义的函数,在使用前有时可以加以说明。 B. 定义函数时需要确定其参数的类型。

C. 函数可以返回一个值,也可以什么值也不返回。

D. 空函数不完成任何操作,所以在程序设计中没有用处。 7. 在C语言的函数中,______。

A. 必须有形参 B. 形参必须是变量名

C. 可以有也可以没有形参 D. 数组名不能作形参

8. 用数组名作为函数调用时的实参,实际上传递给形参的是______。 A. 数组的首地址 B. 数组的第一个元素的值 C. 每一个数组元素 D. 数组元素的个数

9. C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是______。 A. 地址传递 B. 单向值传递

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

10. 执行下列程序后, 变量 i 的值应为______。 int ma(int x,int y) {return x*y; }

main() { int i; i = 5; i = ma(i,i-1)-7; return;} A. 13 B. 17 C. 19 D. 以上都错

13. 有以下函数定义:void fun(int n, double x) { ?? } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是______。 A. fun(int x,double n); B. m=fun(10,12.5); C. fun(x,n); D. void fun(n,x); 14. 有以下程序 #include void sort(int a[],int n) { int i,j,t;

for(i=0;i

if(a[i]

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(\ printf(\ return; } 其输出结果是______。

A. 1,2,3,4,5,6,7,8,9,10, B. 10,9,8,7,6,5,4,3,2,1, C. 9,2,7,4,5,6,3,8,1,10, D. 1,10,3,8,5,6,7,4,9,2, 15. 以下程序的输出结果是______。 #include int power(int x,int y); main()

{ float a=2.6,b=3.4; int p; p=power((int)a,(int)b);

printf(\ return; } int power(int x,int y) { int i,p=1;

for(i=y;i>0;i--) p=p*x; return p; } A. 8 B. 9 C. 27 D. 81

16. 以下程序的执行结果是______。 #include

char fun(char x , char y) { if(x

{ int a='9',b='8',c='7';

printf(\A. 函数调用出错 B. 8 C. 9 D. 7 17. 执行下列程序后, 变量a的值应为______。 f1(float x) {return x+1.3;}

main() { float a; a=f1(2.4); return;}

A. 3.7 B. 3 C. 4 D. 不确定 18. 若有以下变量说明和函数定义: int a=4,b=6,c,k; char ch='x'; float x,y,z; sub(int x, int y, char ch, float *z) { switch(ch)

{ case '+': *z=x+y;break; case '-': *z=x-y;break; case '*': *z=x*y;break;

case '/': *z=x/y;break; } }

则以下合法的函数调用语句是______。 A. sub(10,20,ch,y); B. sub(1,2+3,'+',&z);

C. sub(sub(1,2,'+',&y), sub(3,4,'+',&x),'-',&y); D. sub(a,b,&x,ch);

19. 以下程序运行后的输出结果是______。 #include int f(int n)

{ if (n==1) return 1;

else return f(n-1)+1; } main()

{ int i,sum=0;

for(i=1;i<3;i++) sum+=f(i); printf(\ return; } A. 4 B. 3 C. 2 D. 1

24. 对下列递归函数: int f(int n) { return (n==0)? 1: f(n-1)+2; } 函数调用f(3)的返回值是______。

A. 5 B. 6 C. 7 D. 以上均不是 25. 题目不存在!

26. 以下叙述中不正确的是______。

A. 在不同的函数中可以使用相同名字的变量。 B. 函数中的形式参数是局部变量。

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

D. 在一个函数内的复合语句中定义的变量在本函数范围内有效。 27. 以下说法中正确的是______。

A. 形参是全局变量,其作用范围仅限于函数内部。

B. 形参是全局变量,其作用范围从定义之处到文件结束。 C. 形参是局部变量,其作用范围仅限于函数内部。

D. 形参是局部变量,其作用范围从定义之处到文件结束。

C A D C A B A C C A D B B B C D C

二、多选

31. 以下程序会发生错误的有______。 BC A.#include

main() {printf(\ B. main() {printf(\ float f1(float x) {return x;}

C. float area(float r) {return pie()*r*r;}

main() {float pie(); printf(\ float pie() {return 3.14159;} D. f(int x) {return x*x;} main() {printf(\

三、判断

1.C语言中,void类型的函数不用在主调函数中声明。 2.在一个函数定义中只能包含一个return语句。 3.形参可以是常量、变量或表达式。

4.数组名作函数参数时,也采用“值传送”方式。 5.return语句后面的值不能为表达式。

6.数组名做函数的参数时,可以只在主调函数中定义数组,被调用函数只需要确定名称就可以了。

7.数组元素做函数的实参,是双向传递,即“地址传递”方式。 8.以数组名作为参数时,数据传送方向是“双向的”,即形参值可以传回给实参。 11.下面的程序有一个整型输出值。

main() {int a ; a=pp(); printf(\

15.C语言不允许在调用一个函数的过程中出现直接或者间接地调用该函数本身。

16.除了利用实际参数和形式参数在各函数之间传递数据外,利用全局变量,也可以在各函数间传递数据。

17.下面程序段可以正确执行。

main() {int m=n; ... } int n; void func() {int s=3; n=s; ... }

18.不同函数中定义的变量,其作用范围都限制在各自的函数内,在内存中占据的存储单元也各不相同。

1错 2错 3错 4错 5错 6错 7错 8对 11错 15错 16对 17错 18对

四、填空题

联系合同范文客服:xxxxx#qq.com(#替换为@)