上海市高等学校计算机等级考试试卷二级C语言程序设计_第1页
上海市高等学校计算机等级考试试卷二级C语言程序设计_第2页
上海市高等学校计算机等级考试试卷二级C语言程序设计_第3页
上海市高等学校计算机等级考试试卷二级C语言程序设计_第4页
上海市高等学校计算机等级考试试卷二级C语言程序设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

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

2、39;'D.a='16'3. 设有charch;与语句“ch=getchar();”等价的语句是:答案:DA.printf("%c",ch);B.printf("%c",&ch);c.scanf("%c",ch);D.scanf("%c",&ch);4. inta=2,b=5;则表达式21%9/(float)a+4/b*b的运算结果为()。答案:cA.2B.1c.1.5D.05.能正确表示逻辑关系"a>=10或a<=0"的C语言表达式是()答案

3、:cA. a>=10ora<=0B. a<=0|a>=10c.a<=0|a>=10D.a>=10&&a<=06.设有intn=60;写出下列语句的运行结果switch(n/10)case6:printf("");break;case5:printf("#");default:printf("$");答案:DA. #$B. #$C. $D. 7. 设有inti;以下语句中,循环次数为100次的语句是:答案:DA. for(i=0;i<=100;i+)B. for(i=

4、0;i<99;i+)C. for(i=1;i<99;i+)D. for(i=0;i<100;i+)8. C程序中,用于提前结束本次循环、进行下一次循环的语句是()。答案:BA. breakB. continueC. returnD. exit9. 若有数组定义语句:intt32;则t数组最后一个元素是:答案:DA. t32B. t23C. t2D. t2110. 设有定义inta=1,3,5,7,9,*p=a;while(*p!=3)p+;结果为7的表达式是:答案:AA. *(p+2)B. *(p+3)C. *p+2D. *p+311. chara10;不能将字符串"

5、;abc"存储在数组a中的是()。答案:CA. strcpy(a,"abc");B. a0=0;strcat(a,"abc");C. a="abc"D. inti;for(i=0;i<3;i+)ai=i+97;ai=0;12. 设有下列函数原型和变量定义语句,则合法的函数调用语句是:intfunc(inta,intn);inta10,n,x;答案:BA. func(a,n)=x;B. x=func(a,n);C. x=func(a,n);D. x=func(a10,n);13. 若有以下定义,输出字母M的语句是:str

6、uctpersoncharname9;intage;structpersonst10="john",17,"paul",19,"Mary",18;答案:DA.printf("%c",);B.printf("%c",1);C.printf("%c",1);D.printf("%c",0);14. 需要以写模式打开当前目录下一个名为myfile.txt的文本文件,下列打开文件正确的选项是:答案:B

7、A.fopen("myfile.txt","r");B.fopen("myfile.txt","w");C.fopen("myfile.txt","rb");D.fopen("myfile.txt","wb");15. 假定建立了以下链表结构:structnodecharid;structnode*next;*head,*p;C语百语句是【如下图所示:指针p指向一个新结点,将新结点插入到链表成为头结点的两条答案:DA. head=p-&

8、gt;next;p=head;B. p->data=head;head=p;C. head=p->data;p=head;D. p->next=head;head=p;二、程序填空题(本大题3道小题,每空2.5分,共30分)。1. 程序运行时输出如图所示的数字倒三角形1234567123451231源程序:#include<stdio.h>voidmain()inti,j;1;for(i=1;i<=4;i+)k=1;for(j=1;j<i;j+)putchar('');/*输出空格*/for(j=9-2*i;j>0;j-)prin

9、tf("%d",k);2;putchar(3);1) :【intk】2) :【k+】【k=k+1】3) :【'n'】2.输入一行字符串,分别统计字符串中各元音字母(AEIOU的个数(不分大小写)源程序:#include<stdio.h>voidmain()chara80;intn5=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

10、9;e':n1+;break;case'I':case'i':n2+;break;case'O':case'o':n3+;break;case'U':case'u':n4+;break;for(i=0;i<5;i+)printf("%dn",4);/*输出各元音字母个数*/1) :【inti】2) :【i=0】3) :【ai】4) :【ni】并返回删除的个数;主程3.程序功能:函数f的功能是从字符串中删除所有的数字字符,序调用函数f删除字符串str中的数字字符,并输

11、出删除的字符数。源程序:#include<stdio.h>#include<string.h>intf(chars)inti=0;1;while(si!='0')if(si>='0'&&si<='9')strcpy(s+i,s+i+1);count=count+1;/*count表示删除的数字字符数*/else2;return3;voidmain()charstr80;intm;printf("输入字符串:");gets(str);m=4;printf("删除数字后

12、的字符串:");puts(str);printf("删除的数字字符个数:%d",5);1) :【intcount=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文件)保存到目录中。功能说明:计算半径为1n的圆的面积,仅打印

13、超过50的圆面积。如输入:6则输出:r=4,square=50.265488r=5,square=78.539825r=6,square=113.097351带错误原程序(见C:KSX_2_1.C):#include<stdio.h>main()intr,n;floatarea;scanf("%d",&n);for(r=1,r<=n;r+)area=3.141593*r*r;if(area<50.0)continue;printf("r=%d,square=%dn",r,area);getch();2.程序调试题2( X_

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

15、f(d>=10)stri='0'+d;elsestri='A'+d-10;n/=16;returni;main()inti,k,n;charstr80;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*/字样的注释),使其运行能得到正确的结果。将

16、结果(包括X_2_3.C文件和X_2_3.EXE文件)保存到目录中。功能说明:函数fun分别统计字符串中大写字母和小写字母的个数,main()函数完成字符串的输入和统计数的输出。如输入:AAaaBBb123CCccccd则输出:upper=6,lower=8带错误原程序(见C:KSX_2_3.C):#include<stdio.h>voidfun(char*s,int*a,int*b)while(*s='0')if(*s>='A'&&*s<='Z')(*a)+;if(*s>='a'|*

17、s<='z')(*b)+;s+;main()chars100;intupper=0,lower=0;gets(s);fun(s,&upper,&lower);printf("nupper=%d,lower=%dn",upper,&lower);getch();四、编程题(2小题,共35分)1编程题1(X_4_1.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_1.C文件和X_4_1.EXE文件)保存到目录中。功能说明:编写程序,通过以下步骤验证一个正整数对是否符合特定的编码规则:(1)输入正整数

18、a与b;(2)计算a的所有不同的质因子(包括1)之积,记为s;(3)如果s等于b,则通过验证,输出OK,否则输出Err”。输出格式参见以下示例。运行示例1:输入:58842输出:588:1*2*3*7=42,OK说明:输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为42(对应s),由s等于b(均为42),输出OK运行示例2:输入:1755输出:17:1*17=17,Err(17!=55)说明:质因子为1和17,乘积仍为17,不等于b(55),输出Err,及不通过原因“(17!=55)”。参考答案#include<stdio.h>voidinpu

19、t(int*p,int*q)printf("请输入an");scanf("%d",p);printf("请输入bn");scanf("%d",q);intzs(inta)inti=2,s=1,j=0;printf("1");while(a>=i)if(a%i=0)if(j!=i)printf("*%d",i);s=s*i;a/=i;j=i;else+i;returns;voidoutput(inta,ints)if(a=s)printf(",OKn"

20、);elseprintf(",ERR(%d!=%d)n",s,a);main()inta,b;input(&a,&b);output(b,zs(a);2编程题2(X_4_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_2.C文件和X_4_2.EXE文件)保存到目录中。功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):(1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1wnW50);(2)计算并输出成绩的累加和(记为sumD与平均成绩(记为ave),将nave的成绩归为A档,将vave的成绩归为B当;

21、(3)分别统计A晒档的人数,计算在总人数中的比率;(4)求出A当学生的最低分和B档学生的最高分,它们与平均成绩的差值;(5)将上述结果输出到文本文件X42.TXT”中。运行示例:输入:955.599.550.090.08859.5486078.0输出:Sum=628.5,Ave=69.8A:4,44.4%B:5,55.6%MinA:78.0,+8.2MaxB:60.0,-9.8运行后文件内容:Sum=628.5,Ave=69.8A:4,44.4%B:5,55.6%MinA:78.0,+8.2MaxB:60.0,-9.8说明:输入的第1个数表示学生人数(n=9),接着输入的9个成绩中,累加和为6

22、28.5(所有小数均保留一位小数输出),平均分为69.8分;平均分以上(A档)有4人,占44.4%,平均分以下(的)有5人,占55.6%;A档的最低分为78分,超出平均分8.2分,B档的最高分为60分,距离平均分还有9.8分的差距。参考答案#include"stdio.h"voidinput(floata,intn)inti;for(i=0;i<n;i+)printf("输入第於学生的成绩n",i+1);scanf("%f",&ai);floatsum(floata,intn)floatsum=0;inti;for(i=

23、0;i<n;i+)sum=sum+ai;returnsum;floatave(floats,intn)floatave;returns/n;intcout(floata,intn,floats,floatb,floatc)inti,cout=0,j=0,k=0;for(i=0;i<n;i+)if(ai>=s)bj+=ai;cout+;elseck+=ai;returncout;floatmax(floata,intn)floatmax;inti;max=a0;for(i=1;i<n;i+)if(ai>=max)max=ai;returnmax;floatmin(floata,intn)inti;floatmin;min=a0;for(i=1;i<n;i+)if(ai<=min)min=ai;returnmin;voidoutput(floata,

温馨提示

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

评论

0/150

提交评论