浙江理工大学09-10c语言期末试卷(含答案).doc_第1页
浙江理工大学09-10c语言期末试卷(含答案).doc_第2页
浙江理工大学09-10c语言期末试卷(含答案).doc_第3页
浙江理工大学09-10c语言期末试卷(含答案).doc_第4页
浙江理工大学09-10c语言期末试卷(含答案).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010年09级C程序设计期末考试卷(A)注意 所有答案写在单张的答题卷上。一、 判断题(本题共10分,每小题1分,用T表示正确,用F表示错误。)(1)C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。(2)C语言中宏定义也是C语句,其末尾要加分号。(3)C源程序经过编译后就生成了可执行文件(以.exe为扩展名)。(4)C语言中的变量在使用前必须先定义,定义时要指定变量名和数据类型。(5)在C语言中,for语句只能用在已知循环次数的情况下。(6)如果定义了int array10,其元素下标分别从1到10。(7)在函数中用关键字static声明的变量是静态局部变量,其生命周期持续到程序结束。(8)在C语言中,函数调用不会改变实参的值。(9)表达式strcmp(“100”, “99”)值是大于零的。(10)Struct是定义结构类型的关键字,struct和它后面的结构名一起组成一个新的数据类型。二、 单选题(本题共20分,每小题2分)(11)以下叙述正确的是_。A构成C程序的基本单位是函数 B 可以在一个函数中定义另一个函数C main函数必须放在其它函数之前 D所有被调用函数必须在调用之前进行定义(12)若定义x和y为double类型,则printf(“%.1f”, (x=1, y=x+3/2)的x结果是_。A 1.0 B 1.5C 2.0D2.5(13)能正确表示逻辑关系:“a10或a0”的C语言表达式是_。A a=10 or a=10 | a=10& a=10 | a=0(14)在以下定义中,错误的是_。A int a=1,2Bchar s=”hello” Cchar s10=“test”Dint n=5, an(15)若有定义char x = abcde; char y = a, b, c, d, e;则 。Ax数组与y数组的长度相同Bx数组长度大于y的长度Cx 数组长度小于y数组长度Dx数组等价于y 数组(16)当调用函数时,实参是一个数组名,则向函数传送的是 。 A 数组的长度 B 数组的首地址C 数组的每一个元素的地址 D 数组每个元素的值(17)以下有关switch语句的正确说法是_。Abreak语句是语句中必须的一部分B 在switch 语句中的每一个case都要用break语句Cbreak语句在switch 语句中不可以使用D在switch 语句中可以根据需要使用或不使用break语句 (18)已知a=3;则a2值是_。A1 B6 C9D2(19)如果k=0,a=1,b=2,c=3; 执行k=ab?b+2: c*2; 后,k的值等于_。A 0 B 2 C4D 6(20)已有定义int i, a10, *p; 则合法的赋值语句是_。A p=3; B p=a5;C p=a+2;Dp=a2+2;三、 程序填空题(本题共30分,每小题2分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个最佳的答案。1【程序说明】输入一个整数n,打印出n层倒金字塔。(下图是n=3时的图案)10第 页(共 7 页)* *【程序代码】#includemain() int n,i ,j; scanf(%d,&n); for(j=n;_(21)_;j-) for(i=0;_(22)_;i+) printf( ); for(i=0;_(23)_;i+) printf(*); _(24)_; 【选项】(21)A jnB j=1D j=n(22)A in-j B ijD i=j(23)A in-jC i2*j-1(24)A return 0B continueC breakD printf(n)2.【程序说明】从键盘上任意输入一个字符串和字符,要求从该字符串中删除所有的该字符。【程序代码】#include _(25)_void main() char s80,c; int i,j; gets(s); c=getchar(); for(i=j=0; _(26)_;i+) if (_(27)_) sj=si; _(28)_; sj = 0; puts(s);【选项】(25)A #include B #include C#define gets(s) D #include gets(s)(26)A i=80 B si !=0C j=80 D sj !=0(27)Asi = = c B si != cC si = = c D si != c(28)A i+ B si +C j+ D sj+3【程序说明】某班学生(不超过50人),每个学生有学号、姓名、平时成绩、期末考试成绩和总评成绩(总评成绩=平时成绩*30%+期末考试成绩*70%),从文件score.dat中读入所有入学生数据(包括学号、姓名、平时成绩和期末考试成绩),计算出每个同学的总评成绩。【程序代码】#include struct student char id10; char name10; int score1;/*平时成绩 */ int score2;/*期未成绩*/ float final;/*总评成绩*/;int main()int i=0,n;FILE *fp; (29)_;fp = (30); while (!feof(fp) fscanf(fp,%s%s%d%d,(31)); i+; n = i;for (i=0; i n; i+)datai.final = _(32)_;return 0; 【选项】(29)A struct student data B student dataC struct student data50 D student data50(30)A fopen(file, r)B fopen(“score.dat”, r) C fopen(file, r) D fopen(score.dat, r)(31)A datai.id,, &(datai.score1), &(datai.score2)B &datai.id, &, &(datai.score1), &(datai.score2)C datai.id,, datai.score1, datai.score2D &(datai.id),&(), datai.score1, datai.score2(32)A &datai.score1 *0.3+&datai.score2*0.7B (datai.score1 *30+datai.score2*70)/100C datai.score1 *0.3+datai.score2*0.7D score1 *0.3+.score2*0.7 4【程序说明】将字符串b复制到字符串a中去。【程序代码】#include void scopy (char *s, char *t)/* t复制到s*/int i=0;while (_(33)_)_(34)_;int main()char a20, b10;scanf(“%s”, b);scopy (_(35)_);puts(a); 【选项】(33)A si !=0B si =(ti !=0)C (si=ti) != 0D si =ti !=0(34)A i+B *t+C *s+D s+, t+(35)A a20, b10B a, bC a, bD &a, &b四、 程序阅读题(本题共20分,每小题5分)阅读下列程序并写出运行结果。1【程序】#include int main() int t=0,s=0, i;for(i=0;i=4;i+) t = i + 10*t;s = s + t; printf(s=%dn, s); 2【程序】#include int main() int a, b, c; scanf(%d%d, &a, &b); c = a%b; while (c!=0)printf(b=%dn, b); a = b; b = c; c = a%b; printf(b=%dn, b); 键盘输入96 36后,请写出程序运行结果。3【程序】# include void swap1(int *x,int *y) int temp; temp=*x; *x=*y; *y=temp;void swap2(int *x, int *y) int *temp; temp=x; x=y; y=temp;void swap3(int x, int y) int temp; temp = x; x=y; y=temp;void main()int a,b,c,temp;a=10;b=15;c=25;if(ab) swap1(&a,&b);printf(a=%2d,b=%2d,c=%2dn,a,b,c);if(ac) swap2(&a,&c);printf(a=%2d,b=%2d,c=%2dn,a,b,c);if(bc) swap1(&b, &c);printf(a=%2d,b=%2d,c=%2dn,a,b,c);if(bc) swap2(&b,&c);printf(a=%2d,b=%2d,c=%2dn,a,b,c);if(bc) swap3(b,c);printf(a=%2d,b=%2d,c=%2dn,a,b,c);4【程序】#includeint x=10;void f1() int x=8; x=+1; printf(f1:%dn,x);void f2() x=x+1; printf(f2:%dn,x);int main() x=2; printf(main:%dn,x); f1(); f2(); int x=5; f1(); f2(); 五、 程序设计题(本题共20分)(1)编写程序,输入一字符串(长度80),统计其中大写字母、小写字母、空格、数字以及其它字符各有多少个,并输出统计结果。(8分) (2) 编写一个程序,随机生成20个1-100间的整数,对其中的偶数按从小到大顺序输出,且每行输出5个数。(12分) 2010年09级C程序设计期末考试A卷参考答案姓名_学号_班级_得分_注意 所有答案写在单张的答题卷上。六、 判断题(正确的答T,错误的答F,本题共10分,每小题1分)题号12345678910答案TFFTFFTTFT七、 单选题(本题共20分,每小题2分)题号11121314151617181920答案ACDDBBDACC八、 程序填空题(本题共30分,每小题2分)题号21222324252627282930答案CACDABBCDB题号3132333435答案ACCAB九、 程序阅读题(本题共20分,每小题5分)程序1程序2s=0s=1s=13s=136s=1370每行1分如果没写”s=”,扣2分,写成10行的扣3分b=36b=24b=12第一行1分,后两行各2分,格式错扣1分。程序3程序4a=15,b=10,c=25a=15,b=10,c=25a=15,b=25,c=10a=15,b=25,c=10a=15,b=25,c=10每行1分,格式错扣1分。main: 2f1: 1f2: 3f1: 1f2: 4每行1分十、 程序设计题(本题共20分)评分标准:include语句:0.5分主函数定义:1分变量定义:0.5分输入语句:1分选择结构:2分循环语句:2分printf语句:1分(1)8分#include int main() char str80; int i,uletters=0, lletters=0,digits=0,sp=0,others=0; gets(str); i = 0; while (stri !=0) if (stri=A & stri=a & stri=0 & stri=9) digits+; else if (stri = ) sp+; else others+; i+; printf(大写字母:%d, 小写字母:%d,数字:%d,空格:%d,其它:%dn, uletters, lletters, digits, sp, others); return 0;(2)12分#include #include #include /* 1分*/int main() int i, j=0, temp, count,index,a20,b20; srand(time(NULL); for (i=0; i 20; i+) ai = rand()%100+1; /* 生成随机数 2分*/ i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论