《2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx》由会员分享,可在线阅读,更多相关《2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx(19页珍藏版)》请在第壹文秘上搜索。
1、2022年西北师范大学公共课C语言科目期末试卷A(有答案)一、填空题1、设X为无符号整数。表达式XA ( (-0n) 0);printf (%dn, t);7、执行下面程序段后,k的值是 ok=l; n=263;dok*=n%10: n=10; while (n);8、若有以下定义和语句,为使变量Cl得到字符A,变量c2得到字符B,正 确的输入形式是 Ochar cl, c2;scanf (%4c%4c, &cl, 8&c2);9、假设变量a、b和C均为整型,以下语句借助中间变量t把a、b和C中的值进行交 换,即把b中的值给a,把C中的值给b,把a中的值给c。例如:交换前,a=10 b=20.
2、 c=30;交换后,a=20 b=30 C=IOo 请填空。; a=b; b=c; ;10、设有如下定义:#define SWAP (T, X, Y) T=X; X=Y; Y=T; 以下程序段将通过调用宏实现变量X和y内容的交换,请填空。Double =2.5, y=6.4, z: SWAP ();二、选择题11、下面4个选项中,是不合法的整型常量的选项是()。A.-0flB.-OXcdfC.-018D.-048egOxfff017999-0680Oll12.4565e203f12、已知各变量的类型说明如下:int k, a, b;unsigned long w=5;double x=1.42
3、;则以下不正确的表达式是()。A.x% (-3)B.w+ = -2C.k= (a=2, b=3, a + B. D.a +=a-= (b=4) * (a=3)13、以下针对SCanf函数的叙述中,正确的是()。A.输入项可以为一实型常量,如SCanf (%,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如SCanf(Ha=%d, b=%dn);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,scanf (,%4.2f, &f);D.当输入数据时,必须指明变量的地址,如SCanf (%F, &f);14、若x, y均定义为int型,Z定义为double型,以下不合法的SC
4、anf函数调用语句 是()A.scanf (%d%lx, %le, &x, &y, &z);B.scanf (n%2d*%d%lf, &x, &y, &z);C.scanf (%x%*d%o , &x, &y);D.scanf (%x%0%6.2f, &x, &y, &z); 15、下面是对数组S的初始化,其中错误的语句是()。Axhar s5=abc;B.chars5=,a, ,b, ,c,;Uchars =D.char s5 = abcde;16、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的m
5、ain函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束17、设有以下程序段:int x=0, s=0;while (! x! =0) s+ = + +x;printf (d , s);则()A.运行程序段后输出OB.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次18、若用数组名作为函数调用的实参,则传递给形参的是()A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数19、若有以下说明和语句:char*language=wFORTRANn, BASIC, PASCAL, JAVA, C); char*
6、qj q = language+2;则语句Printf (%onn, *q) ; ( ) 0A.输出的是IangUage2元素的地址B.输出的是字符串PASCALC.输出的是IangUage2元素的值,它是字符串PASCAL的首地址D.格式说明不正确,无法得到确定的输出20、若有以下定义和语句,则对a数组元素的正确引用为()。inta23, (*p) 3;p=a;A. (p+1) 0B.* (* (p+2) +1) C.* (pl + l) D.pl+221、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi (3, ,A1, B , C.;则符合程序段运行结果的选项是()。
7、void move (char getone, char putone)printf C%c%cn, getone, putone);void hanoi (int n, char one, char two, char three)if (n= = l) move (one, three);elsehanoi (n-l, one, three, two);move (one, three);hanoi(n-l,two,one,three);)A)A-CB)A-CC)A-CD)A-CA- BA- BA- BABC-BC-AC-BC-BB-AABA-CA-CC-BB-CB- AABA-CA-CB
8、-CB-CABABA-CA-C22、下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并 到字符串C中。请选择填空。#include#includeint main ()char a = acegikm, b = bdfhjlnpq;charc80, *p;int i=0, j=0, k=0:while (ai! =o&b(j! =,o)if (aibj) ck=ai; i + +)else k+ + ;)ck=o;if (ai = = ,0,) p=b+j;else p=a+i;strcat (c, p);puts (C.;return 0:)A.ck=ai; i+ + ;
9、B.ck=aj; i+ + ; C.ck=ai; j+ + ; D.ck=aj5 j+;23、下面程序的功能是将字符串S中所有的字符C删除。请选择填空()。#includeint main ()char s80;inti,j;gets(s);for(i=j=0;si!= o,J+)f(si! = c);sU = o;puts(s);return O;)A)sj+=siB)s+j=siC)sj=sj+D)sj=si24、执行以下程序段后的输出是()。Int i=-l;if (i=O) printf C, *n)elseprintf (%nn);A.*B.有语法错,不能正确执行C.%C D.%25
10、、下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请 选择填空()。#include int main ()int a, max=0;scanf (1,%dr, , 8A;while () if (maxA.max=a;scanf (%d , &-A.;printf C%d , max);returnO;A.a=OB.a C.! a= = lD.! a三、读程序填空26、以下程序的输出结果为.#include int main ()printf (*%f, %4.3f*n 3.14, 3.1415);returnO;)27、己知字母A的ASeil码值为65。以下程序的输出结果
11、是#includeint main ()char a, b;a=A+,4-,3;b=,A,+,6,-2,;printf (a=%d, b=%cnn, a, b);returnO;)28、以下程序的功能是:输入圆的半径r和运算标志m后,按照运算标志进行表4- 2中指定的计算。请填空。表4-2运算标志与计算运算标志m计算a面积C周长二者均计算b# include# define pi 3.14159int main() char m; float r,c,a;printf(input mark a cor b 8.8.rn);scanf(n%c%fn,&m,&r);if( )a=pi*r*r;pr
12、intf(area is %f,a);if()c=2*pi*r;printf(circle is %f,c);)if()a = pi*r*c=2*pir;printf(area &circle are%f%f,a,c);)return 0;)29、以下程序的功能是:计算某年某月有几天。其中判别闰年的条件是:能被4整 除但不能被100整除的年是闰年,能被400整除的年也是闰年。请填空。#includeint main ()int yy, mm, len;printf (year, month = );scanf (n%d%d, 8yy, &mm) ; switch (mm)case 1: case 3: case 5: case7:case 8: case 10: case 12: ; break;case 4: case 6: case 9: case 11: len=30; break;case 2:if (yy%4=0&yy%100! =0yy%400=0) ;else; break; defaultprintf (input error) ; break;printf (the length of%d%d is%dn, yy, mm, len);return 0;)30、下面程序的功能是统计用数字09可以组成多