2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx

上传人:李司机 文档编号:4567260 上传时间:2023-04-28 格式:DOCX 页数:19 大小:21.34KB
返回 下载 相关 举报
2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx_第1页
第1页 / 共19页
2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx_第2页
第2页 / 共19页
2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx_第3页
第3页 / 共19页
2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx_第4页
第4页 / 共19页
2022年西北师范大学公共课《C语言》科目期末试卷A(有答案).docx_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《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: cas

13、e 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可以组成多少个没有重复的3位偶数。请填 空。#includeint main

14、 ()int n=0, i, j, k;for (i=l; i=9: i + + )for (k=0; k=8; )if (k! =i)if ()n + + ;printf (n=%dn, n);return 0:)31、阅读下面程序,完成下列问题中的填空。问题(1)此程序在调用函数f后的 运行结果是 o (2)若将函数f中的for (j=i + L j4; j+ + )改为for (j=0;j3-i; j+ + ),则程序的运行结果是。#includevoid f (int sJ4)inti, j, k;for (i=0; i3; i+ + )for (j=i+l; j4; j+ + )k=

15、sij; sij=sji; sji = k; int main ()int s44, i, j;for(i=0;i4;i+)for(j=0:j4;j+)sj=i-j; f(s);for(i=0;i4;i+)printf(n);for(j=0;j4;j +)printf(%4d,sij);return(O);)32、下面程序的功能是统计年龄在1631岁之间的学生人数。请填空。#include int main ()int a30, n, age, i;for (i=0; i30; i + + ) ai=0;printf (Enter the number of the students (30)

16、 n);scant (%d , &n);printf (Enter the age of each StudentAn);for (i=0; iAFH则下面程序的运行结果是 O#includevoid fun (char*sl, char*s2);int main ()char al80, a280; gets (al);gets (a2);fun (al, a2);puts (al);return (0);)void fun (char*sl, char*s2)intj; char*s=sl;for (; *s2! =0; s2+)for (j=0, sl=s; *sl! =,0,; si+

17、 + )if (*sl! =*s2) sj=*sl; j+ + ; sj = o;)四、编程题34、编写程序实现功能:输入整数a和b,若a2+b2lOO,则输出a2+b2百位以上 数字,否则直接输出a2+b2的和35、已有变量定义和函数调用语句intx=57: isprime (x);函数isprime O用 来判断一个整型数a是否为素数;若是素数,则函数返回L否则返回0。请编写 isprime 函数。int isprime (int a)参考答案一、填空题1、1 0得到一个全1的数2 (0n)得到一个左端几个1,右端全0的数3 (0n)得到一个左端为0,右端几个1的数4 (-0n) (p+1

18、-n)将几个1移到以P为起点的位置5 x ( (0n) (p+1-n)对XuP的指定位数用异或求反2、主函数(或main函数)3、内存中的一个存储单元4、1 10 2 65、26、17、368、A口口口B口口口9、1 t=a 2 c=t10、 z, X, y或z, y, x二、选择题11、D12、A14、D 15、D16、A17、B18、A19、C20、C21、C22、D23、A24、B25、B三、读程序填空26、*3.140000, 3.142*27、a=66, b=E28、 1 m= = ,a, 2 m =,c,【3m= = b,29、1 len=31 2 len=29 3 len=283

19、0、1 k+=2 2 j! =i&j! =k31、1 0 1 2 3-2-10 1-3 -2 -1 02 0 -1 -2 -31 0 -1 -22 10-13 2 1032、1 aage-16 + + ; 2 i=16; i32;33、SDGJ四、编程题34、#include int main ()int a, b, x, y;scanf (%d%d, &a, &.b);x=a*a+b*b;if (x100)y=x100; printf (1,%dn, y) ; else printf (%d, a+b);return 0)35、int isprime (int a)for (i=2; isqrt ( (double) a) ; i+ + )if (a%i=0) return 0;return 1;)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号