《最新C(Ⅱ)期末试卷(含答案).doc》由会员分享,可在线阅读,更多相关《最新C(Ⅱ)期末试卷(含答案).doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC()期末试卷(含答案)江 苏 大 学 试 卷 共 页共 9页第 1 页江 苏 大 学 试 题 课程名称 计算机基础及C语言() 开课学院 计算机学院 使用班级 考试日期 . 注意事项: 1. 闭卷考试。考试时间为120分钟。2答案均请用铅笔涂在答题卡上。将答题卡上的试卷类型涂A(补考则涂B)。3请将答题卡、试卷都写上班级、学号、姓名、任课教师。考试结束分别交予监考老
2、师。一、 选择题(30分,每小题1分,请涂写在答题卡上)1 以下常量中正确的是 D 。Aabc B. x123 C.3.145E-1.2 D. a 2 以下选项中,不能用作变量名的是 D 。 A. _1234_ B._1_2 C.int_2_ D.2_int_3 设有“int a;”,以下不能正确表达10a15的表达式是 A 。A. 10a10&a15 D.!(a=15) 4 已知数据类型定义和变量声明如下:struct sk int a; float b;data2, * p;若有p=data,则以下对data0中成员a的引用中错误的是 A 。A. data0-a B. data-aC. p
3、-aD. (* p).a5 下列程序的程序输出结果为 A 。#define X(a) a*amain() printf(“%dn”,X(4+5);A.29 B.18 C.20 D.256 若有定义“enum seqmouse, cat, dog, rabbit=0, sheep, cow=6, tiger;” 则执行语句“printf(“%d”,cat+sheep+cow);”后输出的结果是_C_。A. 6 B.7 C.8 D. 97 以下能将字符串“good!”正确地存放在字符数组s中,或使指针s能指向这个字符串的是_D_。A. char s4=g, o, o, d, !; B. char
4、s5;s=“good!”; C. int s5= “good!”; D. char *s;s=“good!”; 江 苏 大 学 试 题 第2页8 设有说明: union data int i ;float f; struct int x;char y;s; double d; a;则变量a在内存中所占字节数为_ A _ 。A.8 B.17 C.9 D.159 设已有非空文本数据文件filel.dat,要求能读出文件中原有的全部数据,并在文件原有数据之后添加新数据,则用FILE *fp=fopen(file1.dat, D )打开该文件。 A. w B. w+ C. r+ D. a+10 以下关
5、于if语句的错误描述是 B 。 A.条件表达式可以是任意表达式B. 条件表达式只能是关系表达式或逻辑表达式C. 条件表达式的括号不可以省略D. 与else配对的if语句是其之前最近的未配对的if语句11 在以下不致造成死循环的语句是: A 。A.for(y=0,x=1; x+y; x=i +) i =x;B.for(; ;x+=i );C.while(x=8) x-;D.for(i =10,sum=0; sum=i ;) sum= -i ;12 设有定义:“float y=3.45678;int x;”,则以下表达式中能实现将y中数值保留小数点后2 位,第3位四舍五入的表达式是: B 。A.
6、y=(y*100+0.5)/100.0 B. x=y*100+0.5,y=x/100.0C. y=y*100+0.5/100.0 D.y=(y/100+0.5)*100.013 以下程序段输出结果是: C 。 int a=10,b=11,c=12,s; s=a+=10&b-=2&c+;printf(“%d,%d,%d,%d”,s,a,b,c);A. 0,11,10,13 B. 1,11,10,13 C. 0,11,10,12 D.1,11,10,1214 设有“char s =“Program”,*p=s;”,则以下叙述中正确的是: C 。A.数组s的内容与指针变量p中内容相同B. 数组s的长
7、度与strlen(p)的值相等C. p5的值等于s5的值D.sizeof(s)等于sizeof(*p) 15 下列程序段执行后变量j的值是: B 。int j; char *s=x045; for(j=0;*s+;j+); 江 苏 大 学 试 题 第3页A. 7 B. 3 C. 4 D. 5 16 若有定义语句“static char str420= thank, you,very,much! ;”则str数组中存储0 的数组元素有: D 个。A. 0 B. 17 C. 21 D. 63 17 下列正确的声明说明语句是 D 。A.float m=15,n=4,q=m%n;B.int n=10,
8、 yn;C.char p2 = DOS,WINDOWS;D.char *p = DOS,WINDOWS,UNIX;18 设有函数f的定义如下: void f(int x, int *y) *y=x*x*x; main( ) int j,c4=1,2,3,4,s4=0; for(j=0;j=1) w=y;else if(x+&z1) w=z;A. 0,1 B. 1,1 C. 2,1 D.3,2 20 已知有声明语句“int a5=1,2,3,4,5,*p,i;”,以下语句中不能正确输出a数组全部元素值的是_C_。A for(p=a,i=0;i5;i+) printf(%d,*(p+i);B fo
9、r(p=a;pa+5;p+) printf(%d,*p);C for(p=a,i=0;pa+5;p+,i+) printf(%d,pi);D for(p=a;p=k B. -k+ C. k%int(f) D. k=f=m30 以下程序运行后的输出结果是:_B_ A. 2 2 B. 7 2 C. 7 5 D. 6 2 main() char a7= a00a00; int i, j; i=sizeof(a); j=strlen(a); printf(%d %d,i,j);- 江 苏 大 学 试 题 第5页二、 填空题(40分)(每空2分,请涂写在答题卡上)1 设有说明“int j=5,m=2,k
10、=7,n;”,则执行语句“n+=m*=n=j*k;”后,n和m的值分别为_B_ 和_C_。31. A. 75 B. 105 C. 120 D. 13032. A. 30 B. 50 C. 70 D. 902 以下程序运行时输出结果是_A_。#include main( ) char a = 256; int d = a; printf(%d,d+1);33. A. 1 B. 257 C. 0 D. -13 下列程序的程序输出的第一行是_A ,第二行_B ,第三行_B 。#includemain() int a=1,b=2,x1,x2,x3;x1=add(a,b);x2=add(add(a,b)
11、,b);x3=add(a,b);printf(“%dn%dn%dn”,x1,x2,x3);int add(int x,int y) static int z=1;z=x+y+z;return(z);34. A.4 B.5 C.6 D.735. A.14 B.16 C.18 D.2036. A.17 B.19 C.21 D.234 以下程序运行时输出结果的第一行是 C ,第二行是 D ,第三行是 C 。int c=0;void fl (int x, int *sum) int y=0; x+; y+; c=c+y; *sum=(x+y)/c;main( ) int a,b= 100; for(a
12、=0;a3;a+ ) fl(a,&b); printf(%d %d %d n,a,b,c);37. A.0 1 2 B.0 2 3 C.0 2 1 D.1 2 138. A.0 1 2 B.0 2 3 C.2 2 4 D.1 1 239. A. 1 2 3 B.2 4 3 C. 2 1 3 D.1 4 3 江 苏 大 学 试 题 第6页5 以下程序运行时输出的两个数分别是 B 和 C 。main() int x=1,y,k; for(k=0;k5;k+) int x=1; x+; if(k=4) y=x; printf(%d,%d,x,y);40. A. 0 B. 1 C. 2 D. 341.
13、 A. 0 B. 1 C. 2 D. 36 以下程序运行时输出第一个数是 B ,第二个数是 _C_ ,第三个数是 _D_ 。#include main() static int a33=0,i,j; for(i=0;i3;i+) for(j=0;jb)t=a;a=b;b=t;main() int x=15,y=12,z=20;if(xy)swap(x,y);if(xz)swap(x,z);if(yz)swap(y,z);printf(“%dt%dt%dn”,x,y,z); 47. A. 0 B. 12 C. 15 D. 2048. A. 0 B. 12 C. 15 D. 2049. A. 0
14、B. 12 C. 15 D. 209 若有函数定义:int f( ) int x =4, y=3, z=2; return x, y, z;则调用函数f后的返回值是 D 。50. A. 4,3,2 B. 4 C. 3 D. 2三、 完善程序题(30分,每空2分,请涂写在答题卡上)1、 用递推法计算某一级数的近似值,直到n取一值使得:| x(2n+1)/n! |1e-6为止。级数如下:x-x3/(3*1!)+x5/(5*2!)-x7/(7*3!)+.+x(2n+1)/(2n+1)*n!)+.#include#includefloat g(float x) float t=x,sum=t,s=1;
15、int n=0;while( A 1e-6) n+;s=-s;t=t* C ;sum=sum+s*t/ B ;return sum;main( ) float x;scanf(“%f”,&x);printf(“s=%f”,g(x);51. A. fabs(t) B. fabs(n) C. sum D. n 江 苏 大 学 试 题 第8页52. A. x*x B. x*x/(n+1) C. x*x/n D. x*x/(2*n+1)53. A. n*(2*n+1) B. (2*n+1) C. n*(2*n-1) D. n*2*(n+1)2、输入一个不包含空格的字符串,判断输入的字符串是否为回文,是
16、回文则输出“Right!”,不是则输出“Wrong!”。回文是相对于中心左右对称的字符串。如:字符串“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。#includeint f(char *p) char *p1,*p2; p1=p2=p; while(*p2+); B ; while( C ) if( B ) return 0; p1+; p2-; return 1;main() char s200; printf(“please input the string”);scanf(“%s”,s); if( _ D_ ) printf(“Right!”); else pr
17、intf(“Wrong!”);54. A. p2=p2-2 B. p2=p2-1 C. p2=p2+1 D. p2=p2+255. A. p1=p2 B. p1p2 C. p1=p2 D. p1p2 D. p1p257. A. si!=0 B. si=0 C. f(s)=0 D. f(s)3. 以下程序实现将a数组中后8个元素用递归的方法进行从大到小排序的功能。void sort(int *x,int n);main() int a12=5,3,7,4,2,9,8,32,54,21,6,43,k; sort( _C_ ,8); for(k=0;k12;k+)printf(%d,ak);void
18、 sort(int *x,int n) int j,t; if(n=1)return; for(j= _A_ ;jxj B. x0xn D. x0x=value) flag=1;if(p1=h) h= A ; free(p1);else p2-next= A ; free(p1); else p2=p1;p1= A ;if(flag=0) p1=(struct node *)malloc(sizeof(struct node);p1-x=value;p1-next=0;if(h= =0)h=p1;else B ;return h;62. A. p1-next B. p2-next C. p1 D. p263. A. p1-next B. p2-next C. h D. p264. A. p1-next B. p2-next C. p2 D. NULL65. A. p1-next=p1 B. p2-next=p1 C. p1-next= NULL D. p2-next= NULL