《大学二年级C语言程序设计:C语言试题(3).docx》由会员分享,可在线阅读,更多相关《大学二年级C语言程序设计:C语言试题(3).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中国地质大学(武汉)考试出题专用纸教务处制试卷类别使用班级全校统考使用学期2007下学期任课教师全校统考教研室主任审核签字B)数组元素引用语法错D)数组元素引用下标超界错B)比较两个字符串的大小D)将字符串X连接到字符串Y后面考试课程名称:C程序设计 学时: 60考试方式:闭卷,笔试注:1.答案写在答题纸上2.卷面分数为80分,平时成绩20分。3.考试时间:120分钟考试内容:一、单项选择题(每题1分,共12分)1.若有定义:int a=10; float x=2. 8, y=8. 6;则表达式:x+a%3*(int) (y-x)%2/4 的值是_。A) 2. 500000 B) 2. 800
2、000 C) 3. 050000 D) 0. 0000002 .设 int x=8, y, z;执行 y=z=x+; x=y=z 后,变量 x的值是(2)。A) 0B) 1C) 8D) 93 .表达式!(x0&y0)等价于 (3)。A) !(x0)|!(y0)B) !x0|!y00 !x0&!y0D) !(x0)&!(y0)4 .设有程序段t=0: while(printf( w*w )t+; if (t3) break;下面描述正确的是。A)其中循环控制表达式与。等价 B)其中循环控制表达式与0等价0其中循环控制表达式是不合法的D)以上说法都不对5 .上机运行以下程序会出现一个错误,这个错误
3、的性质是(5), main()intiJ,a=3,2,1,b=6,4,2,0;float s=0;for(i=0;i3;i+) j=bail; s+=1.0/j; printf(un %P,s);A)数组说明语法错C)分母为0运算错6、下列函数的功能是int fun 1 (chat* x) char*y=x;while(*y+);return(v-x-l);)A)求字符串的长度C)将字符串X复制到字符串Y7 .以下各循环语句中,不是无限循环的是 (7).A) for(k=-l; -10k0; k+);8 .以下各程序段中,不能正确输入10个数到数组a中的是 (8)oA) int i,a10;
4、for(i=0;i10;i+) scanf(u%d,a(ij);B) int i,a10;for(i=0;i10;i+) scanf(u%d,a+i);C) int a(10,*p;fbr(p=a;pa+10;p+) scanf(*%d*,p);D) int i,a10,*p=a;for(i=0;i10;i+) scanf(u%dp+);9 .以下程序的功能是(9)。main() int a10=3,5,2,94,8.0,2,4,6,i,p=0,q=0:for(i=();ip) p=a|i; if(aisex);D) scanf(,p-age);中国地质大学(武汉)考试出题专用纸教务处制试卷类
5、别B使用班级全校统考void f(char *s)mainO char *p=s; char *a=*abCD12*:for (; *s; s+)f(a);if (*s=, A* & *sak) k=j;j=aO; a0=ak; ak=j;print- “s”, a);A) ZbcXYa789 B) cbaXYZ789 C) 7bcXYZa89 D) 9bcXYZ78a16 .以下程序的运行结果是一 (16)。main() int i, a=2;for(i=0;i3;i+) printf ( a%4dn ,f(a);)f (int a) int b=0; static int c=3; b+;
6、 c+; return(a+b+c);)A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 917 .以下程序的运行结果是(17)。main() int i,b,k=O;for (i=l;i=0) k+;printf (u%d,%d,k,b);A) 3, - 1B) 8, - 1C) 3,0D) 8,-218 .以下程序的运行结果是11。#dcfine F x+ymain() int x=4, y=5, z;if(x+y) z=2*F; else z=F/2;printf(叭n %dz);).4)5B)7C) 15D)2019.以下程序的运行结果是#include mai
7、n() static char a= Language ,b= programe” ;char *pl, *p2;int k;pl=a; p2=b;for(k=0; k=7;k+)if(*(pl+k)= =*(p2+k) printf ( “猊”,*(pl+k);)A) gae B) ga C) Language D)有语法错20、以下程序的运行结果是一main() int j,k,sl=(M2=0,a33= 1,20,4,5,6,7,8,9;for(j=0;j3;j+)for(k=j+l;k3;k+)sl+=ajjkj;s2+=ak皿;printf(*ln%d,%dM,sl,s2);A) 2
8、6,34B) 34,26 C) 19,11D) 11,19中国地质大学(武汉)考试出题专用纸教务处制试卷类别B使用班级全校统考使用学期2007下学期任课教师教研室主任审核签字下面程序的功能是在字符串str中找出最大的字符并放在第一个位置上,并将该字 符前的原字符往后顺序移动,如chyab变成ychab。main() char str 80, *p, max, *q;q=p=str; gets (p); max=*p+;while(*p) if(max*p) max=*p;(28); P+;)while (29) *q=*(q-l):(30);q=max ;puts(str);)C) q- D)
9、 p-四、程序设计题(2。分)已知文本文件fl.txt中存放了某公司30个员工,500条销售数据(包括员工号,员工姓名、产品名称, 销售数量和销售单价),每个员工可能有多条销售数据.存放格式是每行存放一个销售数据,每个数据 之间用空格隔开;假定公司按销售额进行提成,销售额大于10000提成10%,销售额大于5000,提成8%, 销售额大于3000,提成5%,销售额大于1000,提成2%,销售额小于1000,提成1 %.请编写程序计算出每 个员工的总提成,并按提成额从高到低的顺序存放到文本文件f2.txt中。21、以下程序的运行结果是main() int a10=8,6,4,0Al,23,73)
10、,t,*k=a,*p,*q;for(p=a;pa+10;p+)if (*p=a&qa+10:p-,q+) t=*p:*p=*q;*q=t; for(p=a;pa+10;p+)printf(u%d,*p);A) 3752190468 B) 7521904683 C) 2190468573 D) 864091257322、以下程序的运行结果是main() int al 10= 3,2,5,4,6,7,9,12,8,10 ,i,p=0,q=0;for(i=0;ip) p=ai; if (aiq) q=ai; printf(un %d,%d”,p,q);A) 0,0B) 12,0C) 12,2D) 2
11、,12三、程序填充题(每空3分,共24分)选择适当的内容填在以下各程序的下划线处,以使程序完整。判断一个数是否为水仙花数的函数,是水仙花数时返回L否则返回0。所谓水仙花数,它是一个三位数,该数正好等于其各位数字的立方和。int flower(int m) int i,s=m,k=m;if(m999) return 0;while (k)(23); s-=i*ii; k/=10; return (24);(23)A)i=k/100 B) i=k/10%10 C) i=k/10 D) i=k%10 (24)A)s=m?l:0B)s!=0C) !s D) s找出矩阵中的所有鞍点(位置所谓鞍点,即该点
12、的数在行上最小,列上最大。 main() int ij,k,p.m=4.n=545;for(i=0:im;i+)tor(j=0;jn;j+)scanlC,%d,&aiJU);for(i=0: im; i+) P=ai0;for(j=0; jn; j+) if( (25) p=aij;for(j=0; jn; j+) if(a|i|UI=P) for(k=0; kpB) aiJLjPD) aUip(26)A) aiHjpC)akJ|jlp(27)A) prinlf ( ”n%3d,%3d”,kj )B) printf( n%3d,%3dij )C) printf(n%3daiJLj)D) pri
13、ntf( n%3d,.afkHj)(28)A) p+B) p=qC) q=pD) q+(29)A) qstrB) qpC) *qstr0D) *q*p(30)A) q+B) str-中国地质大学(武汉)考试答题专用纸课程:C语言程序设计(B卷)班学号 学号 姓名二00七年下C程序设计参考答案(B卷)选择题标准答案:(01)B(02)B(03)A(04)B(05)C(06)A(07)A(08)A(09)I)(10)B(11)C(12)D(13)D(14)B(15)B(16)D(17)D(18)C(19)A(20)D(21)C(22)B(23)D(24)C(25)B(26)D(27)B(28)C(
14、29)A(30)C程序设计题参考答案:typedef struct int no:char name20; float score; EMP: void mainO int i, j, num=0; EMP t, a30; FILE *fp;int no,n; float price, score;char name20, cname20;fp=fopen (f 1. txt, r); if (!fp) exit(0);for (i=0:i30;i+) ai. no=-l;ai. score=0;)for(i=0;i500;i+) fscanf ( fp,&no, name, cname, f
15、eprice);score=n*price;for ( j=0; jnum; j+ ) if (aj. no=no) break;if (j=num ) aj. no=no; strcpy (anum+. name, cname) : aj. score+=score;)fclose(fp);for(i=0;inum-l;i+)for(j=i+l;jak. score)k=j;t=ak ;ak=ai ;ai=t;fp=fopen(*f2. txt, w); if (!fp) exit(0):for(j=0;j10000) aj. score*=10. /100;else if(aj. score5000) aj. score*=8. /100;else if(aj. score3000) aj. score*=5. /100:else if(aj. score1000) aj. score*=2. /100;else aj. score*=l. /100:fprintf (fp, *n%5d %12s %5d* a j. no, aj. name, aj. score);fclose ( fp );
限制150内