您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 2010年上海市高等学校计算机等级考试试卷二级_C语言程序设计_(_E_卷)
第1页共11页2010年上海市高等学校计算机等级考试试卷二级C语言程序设计(E卷)(本试卷考试时间120分钟)一、单选题(本大题15道小题,每小题1分,共15分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。1.以下C程序中预处理命令写法正确的是:答案:DA.#include(stdio.h)B.#include[stdio.h]C.#include{stdio.h}D.#includestdio.h2.设有变量定义语句chara;则下面的赋值语句中()是正确的。答案:AA.a='&';B.a=&;C.a=''';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语言表达式是()。答案: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.#$第2页共11页C.$D.@7.设有inti;以下语句中,循环次数为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.若有数组定义语句:intt[3][2];则t数组最后一个元素是:答案:DA.t[3][2]B.t[2][3]C.t[2]D.t[2][1]10.设有定义inta[]={1,3,5,7,9},*p=a;while(*p!=3)p++;结果为7的表达式是:答案:AA.*(p+2)B.*(p+3)C.*p+2D.*p+311.chara[10];不能将字符串abc存储在数组a中的是()。答案:CA.strcpy(a,abc);B.a[0]=0;strcat(a,abc);C.a=abc;D.inti;for(i=0;i3;i++)a[i]=i+97;a[i]=0;12.设有下列函数原型和变量定义语句,则合法的函数调用语句是:intfunc(inta[],intn);inta[10],n,x;答案:BA.func(a,n)=x;B.x=func(a,n);C.x=func(a[],n);D.x=func(a[10],n);13.若有以下定义,输出字母M的语句是:structperson{charname[9];第3页共11页intage;};structpersonst[10]={{john,17},{paul,19},{Mary,18}};答案:DA.printf(%c,st[2].name);B.printf(%c,st[3].name[1]);C.printf(%c,st[2].name[1]);D.printf(%c,st[2].name[0]);14.需要以写模式打开当前目录下一个名为myfile.txt的文本文件,下列打开文件正确的选项是:答案:BA.fopen(myfile.txt,r);B.fopen(myfile.txt,w);C.fopen(myfile.txt,rb);D.fopen(myfile.txt,wb);15.假定建立了以下链表结构:structnode{charid;structnode*next;}*head,*p;如下图所示:指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是【】答案:DA.head=p-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源程序:#includestdio.hvoidmain(){inti,j;____1____;for(i=1;i=4;i++)第4页共11页{k=1;for(j=1;ji;j++)putchar('');/*输出空格*/for(j=9-2*i;j0;j--){printf(%d,k);____2____;}putchar(____3____);}}1):【intk】2):【k++】【k=k+1】3):【'\n'】2.输入一行字符串,分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。源程序:#includestdio.hvoidmain(){chara[80];intn[5]={0,0,0,0,0};/*数组n存放各元音字母个数*/____1____;gets(a);for(____2____;a[i]!='\0';i++)switch(____3____){case'A':case'a':n[0]++;break;case'E':case'e':n[1]++;break;case'I':case'i':n[2]++;break;case'O':case'o':n[3]++;break;case'U':case'u':n[4]++;break;}for(i=0;i5;i++)printf(%d\n,____4____);/*输出各元音字母个数*/}1):【inti】2):【i=0】3):【a[i]】4):【n[i]】第5页共11页3.程序功能:函数f的功能是从字符串中删除所有的数字字符,并返回删除的个数;主程序调用函数f删除字符串str中的数字字符,并输出删除的字符数。源程序:#includestdio.h#includestring.hintf(chars[]){inti=0;____1____;while(s[i]!='\0')if(s[i]='0'&&s[i]='9'){strcpy(s+i,s+i+1);count=count+1;/*count表示删除的数字字符数*/}else____2____;return____3____;}voidmain(){charstr[80];intm;printf(输入字符串:);gets(str);m=____4____;printf(删除数字后的字符串:);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文件)保存到目录C:\KS\中。功能说明:计算半径为1~n的圆的面积,仅打印超过50的圆面积。如输入:6则输出:r=4,square=50.265488r=5,square=78.539825第6页共11页r=6,square=113.097351带错误原程序(见C:\KS\X_2_1.C):#includestdio.hmain(){intr,n;floatarea;scanf(%d,&n);for(r=1,r=n;r++){area=3.141593*r*r;if(area50.0)continue;printf(r=%d,square=%d\n,r,area);}getch();}2.程序调试题2(X_2_2.C)调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_2.C文件和X_2_2.EXE文件)保存到目录C:\KS\中。功能说明:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。如输入:79则输出:4F又输入:1234则输出:4D2带错误原程序(见C:\KS\X_2_2.C):#includestdio.hintDtoH(intn,char*str){inti,d;for(i=0;n!=0,i++){d=n%16;if(d=10)str[i]='0'+d;elsestr[i]='A'+d-10;n/=16;}returni;}main(){inti,k,n;charstr[80];第7页共11页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分别统计字符串中大写字母和小写字母的个数,main()函数完成字符串的输入和统计数的输出。如输入:AAaaBBb123CCccccd则输出:upper=6,lower=8带错误原程序(见C:\KS\X_2_3.C):#includestdio.hvoidfun(char*s,int*a,int*b){while(*s=='\0'){if(*s='A'&&*s='Z')(*a)++;if(*s='a'||*s='z')(*b)++;s++;}}main(){chars[100];intupper=0,lower=0;gets(s);fun(s,&upper,&lower);printf(\nupper=%d,lower=%d\n,upper,&lower);getch();}四、编程题(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;第8页共11页(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)”。参考答案#includestdio.hvoidinput(int*p,int*q){printf(请输入a\n);scanf(%d,p);printf(请输入b\n);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;}
本文标题:2010年上海市高等学校计算机等级考试试卷二级_C语言程序设计_(_E_卷)
链接地址:https://www.777doc.com/doc-3067945 .html