1、二级C语言112真题无答案二级C语言-112(总分100,考试时间90分钟)一、选择题1. 若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是_。A. sqrt(fabs(pow(n,x)+exp(x)B. sqrt(fabs(pow(n,x)+pow(x,e)C. sqrt(abs(nx+ex)D. sqrt(fabs(pow(x,n)+exp(x)2. 以下叙述中错误的是_。A. 可以给指针变量赋一个整数作为地址值B. 函数可以返回地址值C. 改变函数形参的值,不会改变对应实参的值D. 当在程序的开头包含头文件stdio.h时,可以给指针变量赋N
2、ULL3. 有以下程序: #include stdio.h int a =4; int f(int n) int t = 0; static int a=5; if (n%2) int a=6; t + = a+ +; else int a=7; t + = a+ +; return t + a+ +; main( ) int s=a, i=0; for (; i2;i+ +) s + = f(i); printf(%dn, s) ; 程序运行后的输出结果是_。A. 36 B. 24C. 32 D. 284. 有以下程序: #include stdio.h int f(int n) int t
3、 = 0, a=5; if (n/2) int a=6; t + = a+ +; else int a=7; t + = a+ +; return t + a+ +; main( ) int s=0, i=0; for (; i2;i+ +) s + = f(i); printf( % dn , s) ; 程序运行后的输出结果是_。A. 28 B. 24C. 32 D. 365. 若有以下程序: #include stdio.h int a=2; int f(int m) static int n; n=0; n+ +; a+ +; return n+m+a; main( ) int k; f
4、or (k=0; k4; k+ +) printf(%d,f(k); 则程序的输出结果是_。A. 4,5,6,7, B. 4,7,10,13,C. 4,6,8,10, D. 3,5,7,9,6. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。A. 丙数的形参和实参分别占用不同的存储单元B. 形参只是形式上的存在,不占用具体存储单元C. 同名的实参和形参占同一存储单元D. 函数的实参和其对应的形参共占同一存储单元7. 以下叙述中错误的是_。A. C程序必须由一个或一个以上的函数组成B. 函数调用可以作为一个独立的语句存在C. 若函数有返回值,必须通过return语句返回D
5、. 函数形参的值也可以传回给对应的实参8. 以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。 #include stdio.h void f(int b, int n, int flag) int i,j,t; for (i=0; in-1; i+ +) for (j=i+1; jn; j+ +) if (flag ? bibj : bibj) t=bi; bi=bj; bj=t; main( ) int a10=5,4,3,2,1,6,7,8,9,10,i; f(&a2,5,0); f(a,5,1); for(i=0;i10;i+ +) pr
6、intf(%d,ai); 程序运行后的输出结果是_。A. 1,2,3,4,5,6,7,8,9,10,B. 3,4,5,6,7,2,1,8,9,10,C. 5,4,3,2,1,6,7,8,9,10,D. 10,9,8,7,6,5,4,3,2,1,9. 以下关于return语句的叙述中正确的是_。A. 一个自定义函数中必须有一条return语句B. 一个自定义函数中可以根据不同情况设置多条return语句C. 定义成void类型的函数中可以有带返回值的return语句D. 没有return语句的自定义函数在执行结束时不能返回到调用处10. 已定义以下函数: int fun(int *p) retu
7、rn *p; fun函数返回值是_。A. 一个整数 B. 不确定的值C. 形参p中存放的值 D. 形参p的地址值11. 以下叙述中错误的是_。A. 用户定义的函数中可以没有return语句B. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C. 用户定义的函数中若没有return语句,则应当定义函数为void类型D. 函数的return语句中可以没有表达式12. 若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是_。A. main ( ) . x=fun(2,10); .float fun(int a,int B)
8、.B float fun (int a,intB. t .main( ). x=fun(i,j); .C. float fun(int ,int);main ( ) . x=fun(2,10); .float fun(int a,int ).D. main( ) float fun(int i,int j);. x=fun(i,j); .float fun(int a,int B) .13. 有以下程序: #include stdio.h void fun( int a, int b ) int t; t=a; a=b; b=t; main( ) int c10 = 1,2,3,4,5,6,7
9、,8,9,0, i; for (i=0; i10; i+ =2) fun(ci, ci+1); for (i=0;i10; i+ +) printf(%d, ci); printf( n ); 程序的运行结果是_。A. 1,2,3,4,5,6,7,8,9,0,B. 2,1,4,3,6,5,8,7,0,9,C. 0,9,8,7,6,5,4,3,2,1,D. 0,1,2,3,4,5,6,7,8,9,14. 有以下程序: #include stdio.h double f(double x); main( ) double a=0; int i; for(i=0; i30; i+ =10) a+ =
10、f(double)i); printf(%3.0fn,a); double f(double x) return x*x+1; 程序运行后的输出结果是_。A. 500 B. 401C. 503 D. 140415. 有以下程序: #include stdio.h main( ) int m=1,n=2,*p=&m,*q=&n,*r; r=p; p=q; q=r; printf(%d,%d,%d,%dn,m,n,*p,*q); 程序运行后的输出结果是_。A. 2,1,1,2 B. 1,2,1,2C. 2,1,2,1 D. 1,2,2,116. 有以下程序: #include stdio.h vo
11、id f(int *q) int i=0; for( ;i5;i+ +)(*q)+ +; main( ) int a5=1,2,3,4,5,i; f(a); for(i=0;i5;i+)printf(%d,ai); 程序运行后的输出结果是_。A. 6,2,3,4,5, B. 2,2,3,4,5,C. 1,2,3,4,5, D. 2,3,4,5,6,17. 有以下程序: #include stdio.h void fun(int *a,int *b) int * c; c=a; a=b;b=c; main( ) int x=3,y=5,*p=&x,*q=&y; fun(p,q); printf(
12、%d,%d,*p,*q); fun(&x,&y); printf(%d,%dn,*p,*q); 程序运行后的输出结果是_。A. 3,5,3,5 B. 3,5,5,3C. 5,3,3,5 D. 5,3,5,318. 有以下程序: #include stdio.h void fun(int *a, int n)/* fun函数的功能是将a所指数组元素从大到小排序*/ int t,i,j; for (i=0; in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; main( ) int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c
13、+4,6); for(i=0;i10;i+ +) printf(%d,ci); printf(n); 程序的运行结果是_。A. 1,2,3,4,9,8,7,6,5,0,B. 0,9,8,7,6,5,1,2,3,4,C. 0,9,8,7,6,5,4,3,2,1,D. 1,2,3,4,5,6,7,8,9,0,19. 若有以下程序: #include stdio.h void sp(int *a) int b=2; *a=*a*2; printf(%d,*a); a=&b; *a=*a*2; printf(%d,*a); main( ) int k=3; sp(&k); printf(%dn,k);
14、 则程序的输出结果是_。A. 6,12,12 B. 6,4,3C. 6,4,6 D. 9,4,920. 若有以下程序: #include stdio.h int *f(int *s, int *t) int k; if(*s*t) k=*s; *s=*t; *t=k; return s; main( ) int i=3,j=5, *p=&i, *q=&j, *r; r=f(p,q); printf(%d,%d,%d,%d,%dn,i,j,*p,*q,*r);; 则程序的输出结果是_。A. 5,3,3,5,5 B. 3,5,5,3,5C. 3,5,3,5,5 D. 5,3,5,3,521. 有以
15、下程序: #include stdio.h int funa(int a,intB)return a+b; int funb(int a,intB)return a-b; int sss(int(*t)(),int x,int y)retllrn(*t)(x,y); main( ) int x; x=sss(funa, 9,3); x+=sss(funb,8,3); printf(%dn,x); 程序运行后的输出结果是_。A. 24 B. 23C. 17 D. 2222. 有以下程序: #include stdio.h void fun(int a,int b,int c) a=b; b=c;
16、 c=a; main( ) int a=10, b=20, c=30; fun(a,b,c); printf(%d,%d,%dn,c,b,a); 程序运行后的输出结果是_。A. 10,20,30 B. 30,20,10C. 20,30,10 D. 0,0,023. 若有以下函数首部: int fun(double x10, int *n) 则下面针对此函数的函数声明语句中正确的是_。A. int fun(double, int);B. int fun(double *, int *);C. int fun(double *x, int n);D. int fun(double x, int *
17、n);24. 有以下程序: #include stdio.h int f(int x); main( ) int n=1,m; m=f(f(f(n); printf(%dn,m); int f(int x) return x*2; 程序运行后的输出结果是_。A. 8 B. 2C. 4 D. 125. 有以下程序: #include stdio.h int fun(int x, int y) if(x!=y) return (x+y)/2); else return (x); main( ) int a=4, b=5, c=6; printf(%dn, fun(2*a,fun(b,c); A.
18、6 B. 3C. 8 D. 1226. 有以下程序: #include stdio.h int f(int x,int y) return(y-x)*x); main( ) int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c); printf(%dn,d); 程序运行后的输出结果是_。A. 7 B. 10C. 8 D. 927. 以下叙述中正确的是_。A. 如果函数带有参数,就不能调用自己B. 所有函数均不能接受函数名作为实参传入C. 函数体中的语句不能出现对自己的调用D. 函数名代表该函数的入口地址28. 设有如下函数定义: #include stdio.h int fu
19、n(int k) if(k1) return 0; else if(k= =1) return 1; else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是_。A. 2 B. 3C. 4 D. 529. 有以下程序: #include stdio.h int f(int x) int y; if(x = =0 | x= =1) return(3); y = x*x -f(x-2); return y; main( ) int z; z=f(3); printf(%dn,z); 程序的运行结果是_。A. 0 B. 9C. 6 D. 83
20、0. 有以下程序: #include stdio.h int fun(int n) if(n= =1) return 1; else return(n+fun(n-1); main( ) int x; seanf(%d,&x); x=fun(x); printf(%dn,x); 执行程序时,给变量X输入10,程序的输出结果是_。A. 55 B. 54C. 65 D. 4531. 有以下程序: #nclude stdio.h void f(int b) int i; for(i=2;i6; i+ +) bi* = 2; main( ) int a10=1,2,3,4,5,6,7,8,9,10,i
21、; f(a); for (i=0; i10; i+ +) printf(%d, ai); 程序运行后的输出结果是_。A. 1,2,3,4,5,6,7,8,9,10,B. 1,2,6,8,10,12,7,8,9,10,C. 1,2,3,4,10,12,14,16,9,10,D. 1,2,6,8,10,12,14,16,9,10,32. 有以下程序: #include stdio.h void fun2(char a,charB) pfinff(%c%c,a,b); char a=A, b=B; void fun1() a=C; b=D; main( ) fun1(); printf(%c%c,a
22、,b); fun2(E,F); 程序的运行结果是_。A. A B E F B. C D E FC. A B C D D. C D A B33. 若有以下程序: #include stdio.h char *a=you; char b=Welcome you to China!; main( ) int i,j=0; char *p; for (i=0; bi!=0;i + +) if(*a= =bi) p=a; for(j=i; *p!=0;j+ +) if(*p! =bj) break; P+; if(*p= =0) break; printf(%s, &bi); 则程序的输出结果是_。A.
23、 China! B. to China!C. me you to China! D. you to China!34. 若有以下程序: #include stdio.h char *a=you, b=welcome#you#to#China!; main( ) t int i,j=0; char *p; for (i=0; bi!=0; i+ +) if(sa= =bi) p=&hi; for(j=0; aj!=0;j+ +) if(aj!=*p) break; p+; if (aj= =0) break; printf(%sn,p); 则程序的输出结果是_。A. #to#China! B.
24、#you#to#China!C. me#you#to#China! D. #China!35. 以下叙述中正确的是_。A. 局部变量不能被说明为staticB. 只有全局变量才有自己的作用域,函数中的局部变量没有作用域C. 只有在函数内部定义的变量才是局部变量D. 只要是用户定义的标识符,都有一个有效的作用域36. 在一个C源程序文件中定义的全局变量,其作用域为_。A. 由具体定义位置和extern说明来决定范围 B. 所在程序的全部范围C. 所在函数的全部范围 D. 所在文件的全部范围37. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是_。A. auto和static B. e
25、xtern和registerC. auto和register D. static和register38. 有以下程序: #include stdio.h fun(int x,int y) static int m=0, i=2; i+=m+1; m=i+x+y; return m; main( ) int j=1, m=1, k; k=fun(j,m); printf(%d,k); k=fun(j,m); printf(%dn,k); 执行后的输出结果是_。A. 5,11 B. 5,5C. 11,11 D. 11,539. 有以下程序: #include stdio.h int fun() s
26、tatic int x=1; x*=2; return x; main( ) int i,s=1; for(i=1; i=3; i+ +) s*=fun(); printf(%dn,s); 程序运行后的输出结果是_。A. 10 B. 30C. 0 D. 6440. 有以下程序: #include stdio.h int f(int n); main( ) int a=3, s; s=f(a);s=s+f(a);printf(%dn,s); int f(int n) static int a=1; n + =a+ +; return n; 程序运行后的输出结果是_。A. 9 B. 8C. 7 D. 1041. 有以下程序: #include stdio.h int fun() static int x=1; X+ =1; return x; main( ) int i, s=1; for(i=1;i=5;i+ +) s+ =fun(); printf(%dn,s); 程序运行后的输出结果是_。A. 120 B. 11C. 6 D. 21
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1