上海市高等学校计算机等级考试试卷二级C语言程序设计.doc

上传人:wuy****n92 文档编号:53880800 上传时间:2022-10-27 格式:DOC 页数:12 大小:49.51KB
返回 下载 相关 举报
上海市高等学校计算机等级考试试卷二级C语言程序设计.doc_第1页
第1页 / 共12页
上海市高等学校计算机等级考试试卷二级C语言程序设计.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《上海市高等学校计算机等级考试试卷二级C语言程序设计.doc》由会员分享,可在线阅读,更多相关《上海市高等学校计算机等级考试试卷二级C语言程序设计.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2010年上海市高等学校计算机等级考试试卷二级 C语言程序设计 (本试卷考试时间 120 分钟) 一、单选题 ( 本大题 15 道小题 ,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。1. 以下C程序中预处理命令写法正确的是: 答案: DA. #include (stdio.h)B. #include stdio.hC. #include stdio.hD. #include 2. 设有变量定义语句char a; 则下面的赋值语句中 ( ) 是正确的。 答案: AA. a=&;B. a=&;C. a= ;D. a=16 ;3. 设有char

2、 ch; 与语句“ch=getchar();”等价的语句是: 答案: DA. printf(%c,ch);B. printf(%c,&ch);C. scanf(%c,ch);D. scanf(%c,&ch);4. int a=2, b=5;则表达式21%9/(float)a+4/b*b的运算结果为( )。 答案: CA. 2B. 1C. 1.5D. 05. 能正确表示逻辑关系a=10 或 a=10 or a=0B. a=10C. a=10D. a=10 & a=06. 设有int n=60;写出下列语句的运行结果 switch (n/10) case 6: printf();break; ca

3、se 5: printf(#); default: printf($); 答案: DA. #$B. #$C. $D. 7. 设有int i; 以下语句中,循环次数为100次的语句是: 答案: DA. for ( i=0; i=100; i+ )B. for ( i=0; i99; i+ )C. for ( i=1; i99; i+ )D. for ( i=0; i100; i+ )8. C程序中,用于提前结束本次循环、进行下一次循环的语句是( )。 答案: BA. breakB. continueC. returnD. exit9. 若有数组定义语句:int t32;则 t数组最后一个元素是:

4、 答案: DA. t32B. t23C. t2D. t2110. 设有定义int a=1,3,5,7,9,*p=a; while(*p!=3) p+; 结果为7的表达式是: 答案: AA. *(p+2)B. *(p+3)C. *p+2D. *p+311. char a10;不能将字符串abc存储在数组a中的是( )。 答案: CA. strcpy(a,abc);B. a0=0;strcat(a,abc);C. a=abc;D. int i; for(i=0;inext; p=head;B. p-data=head; head=p;C. head=p-data; p=head;D. p-next

5、=head; head=p;二、程序填空题 ( 本大题 3 道小题 ,每空 2.5 分,共 30 分)。1. 程序运行时输出如图所示的数字倒三角形 1234567 12345 123 1源程序:#include void main()int i,j; _1_; for(i=1;i=4;i+) k=1; for(j=1;j0;j-) printf(%d, k ); _2_; putchar(_3_); 1): 【int k】2): 【k+】【k=k+1】3): 【n】2. 输入一行字符串,分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。源程序:#include void main(

6、) char a80; int n5=0,0,0,0,0;/* 数组n存放各元音字母个数 */_1_; gets(a); for(_2_; ai!=0; i+) switch(_3_) case A: case a: n0+; break; case E: case e: n1+; break; case I: case i: n2+; break; case O: case o: n3+; break; case U: case u: n4+; break; for(i=0;i5;i+) printf(%dn,_4_); /* 输出各元音字母个数 */ 1): 【int i】2): 【i=0

7、】3): 【ai】4): 【ni】3. 程序功能:函数f的功能是从字符串中删除所有的数字字符,并返回删除的个数;主程序调用函数f删除字符串str中的数字字符,并输出删除的字符数。源程序:#include #include int f(char s) int i=0; _1_; while(si!=0) if(si=0&si=9) strcpy(s+i,s+i+1); count=count+1; /* count表示删除的数字字符数 */ else _2_; return _3_;void main() char str80; int m; printf(输入字符串:); gets(str);

8、 m=_4_; printf(删除数字后的字符串:); puts(str); printf(删除的数字字符个数:%d,_5_);1): 【int count=0】2): 【i+】【i=i+1】3): 【count】4): 【f(str)】5): 【m】三、操作题二、程序调试题(3小题,共20分)1. 程序调试题1(X_2_1.C)调试要求:下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_1.C文件和X_2_1.EXE文件)保存到目录C:KS中。功能说明:计算半径

9、为1n的圆的面积,仅打印超过 50 的圆面积。如输入:6则输出:r=4,square=50.265488r=5,square=78.539825r=6,square=113.097351带错误原程序(见C:KSX_2_1.C):#include main() int r,n; float area; scanf(%d,&n); for (r=1,r=n;r+) area=3.141593*r*r; if (area50.0) continue; printf(r=%d,square=%dn,r,area); getch();2. 程序调试题2(X_2_2.C)调试要求:下列程序不能得到正确的结

10、果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_2.C文件和X_2_2.EXE文件)保存到目录C:KS中。功能说明:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。如输入:79则输出:4F又输入:1234则输出:4D2带错误原程序(见C:KSX_2_2.C):#include int DtoH(int n,char *str) int i,d; for (i=0;n!=0,i+) d=n%16; if (d=10) stri=0+d; else st

11、ri=A+d-10; n/=16; return i;main() int i,k,n; char str80; scanf(%d,&n); k=DtoH(n,str); for (i=k-1;i=0;i-) printf(%c,str(i); getch();3. 程序调试题3(X_2_3.C)调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_3.C文件和X_2_3.EXE文件)保存到目录C:KS中。功能说明:函数fun分别统计字符串中大写字母和小写字

12、母的个数,main()函数完成字符串的输入和统计数的输出。如输入:AAaaBBb123CCccccd则输出:upper=6,lower=8带错误原程序(见C:KSX_2_3.C):#include void fun(char *s, int *a, int *b) while (*s=0) if(*s=A & *s=a | *s=z) (*b)+; s+; main() char s100; int upper=0, lower=0; gets(s); fun(s,&upper,&lower); printf(nupper=%d,lower=%dn,upper,&lower); getch()

13、;四、编程题(2小题,共35分)1编程题1(X_4_1.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_1.C文件和X_4_1.EXE文件)保存到目录C:KS中。功能说明:编写程序,通过以下步骤验证一个正整数对是否符合特定的编码规则:(1)输入正整数a与b;(2)计算a的所有不同的质因子(包括1)之积,记为s;(3)如果s等于b,则通过验证,输出“OK”,否则输出“Err”。输出格式参见以下示例。运行示例1:输入:588 42输出:588: 1*2*3*7=42, OK说明:输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为

14、42(对应s),由s等于b(均为42),输出OK。运行示例2:输入:17 55输出:17: 1*17=17, Err(17!=55)说明:质因子为1和17,乘积仍为17,不等于b(55),输出Err,及不通过原因“(17!=55)”。参考答案#include void input(int *p,int *q)printf(请输入an);scanf(%d,p); printf(请输入bn);scanf(%d,q);int zs(int a)int i=2,s=1,j=0;printf(1);while(a=i) if(a%i=0) if(j!=i)printf(*%d,i);s=s*i; a/=

15、i;j=i; else +i; return s;void output(int a,int s)if(a=s)printf(, OKn);else printf(, ERR(%d!=%d)n,s,a);main() int a,b; input(&a,&b); output(b,zs(a);2编程题2(X_4_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_2.C文件和X_4_2.EXE文件)保存到目录C:KS中。功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):(1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1n50);(2)计

16、算并输出成绩的累加和(记为sum)与平均成绩(记为ave),将ave的成绩归为A档,将ave的成绩归为B档;(3)分别统计A、B两档的人数,计算在总人数中的比率;(4)求出A档学生的最低分和B档学生的最高分,它们与平均成绩的差值;(5)将上述结果输出到文本文件“X42.TXT”中。运行示例:输入:9 55.5 99.5 50.0 90.0 88 59.5 48 60 78.0输出:Sum=628.5, Ave=69.8A: 4,44.4% B: 5,55.6%MinA: 78.0,+8.2 MaxB: 60.0,-9.8运行后文件内容:Sum=628.5, Ave=69.8A: 4,44.4%

17、 B: 5,55.6%MinA: 78.0,+8.2 MaxB: 60.0,-9.8说明:输入的第1个数表示学生人数(n=9),接着输入的9个成绩中,累加和为628.5(所有小数均保留一位小数输出),平均分为69.8分;平均分以上(A档)有4人,占44.4%,平均分以下(B档)有5人,占55.6%;A档的最低分为78分,超出平均分8.2分,B档的最高分为60分,距离平均分还有9.8分的差距。参考答案#include stdio.hvoid input(float a,int n) int i; for(i=0;in;i+) printf(输入第%d个学生的成绩n,i+1); scanf(%f,

18、&ai); float sum(float a,int n)float sum=0;int i; for(i=0;in;i+) sum=sum+ai; return sum;float ave(float s,int n)float ave;return s/n;int cout(float a,int n,float s,float b,float c)int i,cout=0,j=0,k=0; for(i=0;i=s) bj+=ai; cout+; else ck+=ai; return cout;float max(float a,int n)float max;int i;max=a0

19、; for(i=1;i=max) max=ai; return max;float min(float a,int n) int i;float min;min=a0; for(i=1;in;i+) if(ai=min) min=ai; return min;void output(float a,float b,float c,int n)char ch1=%;int c0,c1; float s,ave1,cb,cb1;FILE *fp;fp=fopen(c:KSx42.txt,w);s=sum(a,n);ave1=ave(s,n);c0=cout(a,n,ave1,b,c);c1=n-c

20、0; cb=(float)c0/n)*100;cb1=(float)c1/n)*100;printf(Sum=%.1f, Ave=%.1fn,s,ave1); printf(A: %d,%.2f %c B: %d,%.2f%cn,c0,cb,ch1,c1,cb1,ch1); printf(MinA: %.2f,%+.1f MaxB: %.2f,%.1fn,max(b,c0),max(b,c0)-ave1,min(c,c1),min(c,c1)-ave1); fprintf(fp,Sum=%.1f, Ave=%.1fn,s,ave1); fprintf(fp,A: %d,%.2f %c B: %d,%.2f%cn,c0,cb,ch1,c1,cb1,ch1); fprintf(fp,MinA: %.2f,%+.1f MaxB: %.2f,%.1fn,max(b,c0),max(b,c0)-ave1,min(c,c1),min(c,c1)-ave1); fclose(fp);main()float a50,b50,c50;int n;printf(输入学生人数n);scanf(%d,&n); input(a,n); output(a,b,c,n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 习题库

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁