版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、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
2、。(7) 在函数中用关键字 static 声明的变量是静态局部变量,其生命周期持续到程序结束。(8) 在 C 语言中,函数调用不会改变实参的值。(9) 表达式 strcmp( “100”, “99”) 值是大于零的。(10) Struct 是定义结构类型的关键字, struct 和它后面的结构名一起组成一个新的数据类型。二、 单选题(本题共20 分,每小题 2 分)(11)以下叙述正确的是 _。A 构成 C 程序的基本单位是函数B 可以在一个函数中定义另一个函数C main 函数必须放在其它函数之前D 所有被调用函数必须在调用之前进行定义(12)若定义 x 和 y 为 double 类型,则p
3、rintf( “%.1f ”, (x=1, y=x+3/2) 的 x 结果是 _。A 1.0B 1.5C 2.0D2.5(13) 能正确表示逻辑关系: “a 10 或 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 数
4、组长度Dx 数组等价于 y数组第1页(共7页)(16) 当调用函数时,实参是一个数组名,则向函数传送的是。A数组的长度B数组的首地址C数组的每一个元素的地址D数组每个元素的值(17) 以下有关 switch 语句的正确说法是 _。 Abreak 语句是语句中必须的一部分B在 switch 语句中的每一个 case都要用 break 语句Cbreak 语句在 switch 语句中不可以使用D 在 switch 语句中可以根据需要使用或不使用break 语句(18)已知 a=3;则 a2 值是 _。A1B6C9D2(19)如果 k=0,a=1,b=2,c=3;执行 k=ab?b+2: c*2;后,
5、 k 的值等于 _。A 0B 2C4D 6(20)已有定义 int i, a10, *p;则合法的赋值语句是_。Ap=3;B p=a5;C p=a+2;Dp=a2+2;第2页(共7页)三、 程序填空题(本题共30 分,每小题 2 分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个最佳的答案。1【程序说明】输入一个整数n,打印出 n 层倒金字塔。(下图是n=3 时的图案)*【程序代码】#includefor(i=0;_(22)_;i+)main()printf( );for(i=0;_(23)_;i+)int n,i ,j;printf(*);scanf(%d,&n);_(24)
6、_;for(j=n;_(21)_;j-)【选项】(21)A jnB j=1D j=nA in-jB ijD i=jA in-jC i2*j-1(24)A return 0B continueC breakD printf(n)2.【程序说明】从键盘上任意输入一个字符串和字符,要求从该字符串中删除所有的该字符。【程序代码】#include c=getchar();_(25)_for(i=j=0; _(26)_;i+)void main()if (_(27)_) sj=si;_(28)_;char s80,c;sj = 0;int i,j;puts(s);gets(s);【选项】(25)A #in
7、clude B #include C#define gets(s)D #include gets(s)(26)A i=80B si !=0C j=80D sj !=0第3页(共7页)( 27) Asi = = cB si != c(28)C si = = cD si !=cA i+B si +C j+D sj+3【程序说明】某班学生(不超过50 人),每个学生有学号、姓名、平时成绩、期末考试成绩和总评成绩(总评成绩 =平时成绩 *30%+ 期末考试成绩 *70% ),从文件 score.dat 中读入所有入学生数据 (包括学号、 姓名、平时成绩和期末考试成绩) ,计算出每个同学的总评成绩。【程
8、序代码】#include struct studentchar id10;char name10;int score1;/* 平时成绩*/int score2;/* 期未成绩 */float final;/* 总评成绩 */;int main()( 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) _;int i=0,n;return 0;FILE *fp;【选项】(29)A struct student dataB stud
9、ent dataC struct student data50D 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 &(
10、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.74【程序说明】将字符串b 复制到字符串a 中去。【程序代码】第4页(共7页)#include int main()void scopy (char *s, char *t)/* t 复制到 s*/char a20,
11、 b10;int i=0;scanf(“%s”, b);while (_(33)_)scopy (_(35)_);_(34)_;puts(a);【选项】(33)A si != 0B si =(ti != 0)(34)C (si=ti) != 0D si =ti != 0A i+B *t+(35)C *s+D s+, t+A a20, b10B a, bC a, bD &a, &b第5页(共7页)四、 程序阅读题(本题共20 分,每小题 5 分)阅读下列程序并写出运行结果。1【程序】#include int main()int t=0,s=0, i; for(i=0;i=4;i+)t = i +
12、 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;
13、x=y;y=temp;void swap3(int x, int y)int temp;temp = x; x=y; y=temp;voidmain()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
14、=%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();第6页(共7页)五、 程序设计题(本题共20 分)( 1)编写程序,输入一字符串(长度 80 ),统计其中大写字母、小写字母、空格、数字以及其它字符各有
15、多少个,并输出统计结果。 (8 分)( 2)编写一个程序,随机生成 20 个 1-100 间的整数,对其中的偶数按从小到大顺序输出,且每行输出 5 个数。( 12 分)2010 年 09 级 C 程序设计期末考试A 卷参考答案姓名 _学号 _班级 _得分 _ 注意 所有答案写在单张的答题卷上。六、 判断题(正确的答T,错误的答 F,本题共 10 分,每小题 1 分)题号12345678910答案TFFTFFTTFT七、 单选题(本题共20 分,每小题2 分)题号11121314151617181920答案ACDDBBDACC八、 程序填空题(本题共30 分,每小题 2 分)题号21222324
16、252627282930答案CACDABBCDB题号3132333435答案ACCAB第7页(共7页)九、 程序阅读题(本题共20 分,每小题 5 分)程序1程序2s=0b=36s=1b=24s=13b=12s=136s=1370第一行 1 分,后两行各2 分,格式错扣1 分。每行 1分如果没写 ”s=”,扣 2 分,写成 10 行的扣 3 分程序 3程序 4a=15,b=10,c=25main: 2a=15,b=10,c=25f1: 1a=15,b=25,c=10f2: 3a=15,b=25,c=10f1: 1a=15,b=25,c=10f2: 4每行 1 分,格式错扣1 分。每行 1分十、
17、 程序设计题(本题共20 分)( 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)评分标准:include 语句: 0.5 分主函数定义: 1 分变量定义: 0.5 分输入语句: 1 分选择结构: 2 分循环语句: 2 分printf 语句: 1 分第8页(共7页)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;/*生成随机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论