二级C语言程序设计 复习及答案.doc_第1页
二级C语言程序设计 复习及答案.doc_第2页
二级C语言程序设计 复习及答案.doc_第3页
二级C语言程序设计 复习及答案.doc_第4页
二级C语言程序设计 复习及答案.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

二级 C语言程序设计 模拟练习(本试卷考试时间 120 分钟) 一、单选题 ( 本大题 15 道小题 ,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。1. 以下C程序中预处理命令写法正确的是:A. #include (stdio.h)B. #include stdio.hC. #include stdio.hD. #include 2. 设有变量定义语句char a; 则下面的赋值语句中 ( ) 是正确的。A. a=&;B. a=&;C. a= ;a=D. a=16 ;3. 设有char ch; 与语句“ch=getchar();”等价的语句是: A. 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的运算结果为( )。A. 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; case 5: printf(#); default: printf($); A. #$B. #$C. $D. 7. 设有int i; 以下语句中,循环次数为100次的语句是:A. 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程序中,用于提前结束本次循环、进行下一次循环的语句是( )。A. break(结束全部循环)B. continueC. returnD. exit9. 若有数组定义语句:int t32;则 t数组最后一个元素是:A. t32B. t23C. t2D. t2110. 设有定义int a=1,3,5,7,9,*p=a; while(*p!=3) p+; 结果为7的表达式是:A. *(p+2)B. *(p+3)C. *p+2D. *p+311. char a10;不能将字符串abc存储在数组a中的是( )。A. strcpy(a,abc); strcpy复制B. a0=0;strcat(a,abc); strcat连接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=head; head=p;二、程序填空题 ( 本大题 3 道小题 ,每空 2.5 分,共 30 分)。1. 程序运行时输出如图所示的数字倒三角形 1234567 12345 123 1源程序:#include void main()int i,j; _int k_; for(i=1;i=4;i+) k=1; for(j=1;j0;j-) printf(%d, k ); _k+_; putchar(_n_); 2. 输入一行字符串,分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。源程序:#include void main() char a80; int n5=0,0,0,0,0;/* 数组n存放各元音字母个数 */int i; gets(a); for(i=0; ai!=0; i+) switch(ai) 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,ni); /* 输出各元音字母个数 */ 3. 程序功能:函数f的功能是从字符串中删除所有的数字字符,并返回删除的个数;主程序调用函数f删除字符串str中的数字字符,并输出删除的字符数。源程序:#include #include int f(char s) int i=0; _int count=0_; while(si!=0) if(si=0&si=9) strcpy(s+i,s+i+1); count=count+1; /* count表示删除的数字字符数 */ else i+; return _count_;void main() char str80; int m; printf(输入字符串:); gets(str); m=_f(str)_; printf(删除数字后的字符串:); puts(str); printf(删除的数字字符个数:%d,_m_);三、操作题二、程序调试题(3小题,共20分)1. 程序调试题1(X_2_1.C)调试要求:下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_1.C文件和X_2_1.EXE文件)保存到目录C:KS中。功能说明:计算半径为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();#include main() int r,n; float area; scanf(%d,&n); for (r=1;r=n;r+)/*modified*/ area=3.141593*r*r; if (area50.0) continue; printf(r=%d,square=%fn,r,area);/*modified*/ 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:KSX_2_2.C):/*modified*/#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 stri=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();#include int DtoH(int n,char *str) int i,d; for (i=0;n!=0;i+)/*modified*/ d=n%16; if (d=0;i-)printf(%c,stri);/*modified*/ 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: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();#include void fun(char *s, int *a, int *b) while (*s!=0)/*modified*/ if(*s=A & *s=a & *s=z)/*modified*/ (*b)+; s+; main() char s100; int upper=0, lower=0; gets(s); fun(s,&upper,&lower); printf(nupper=%d,lower=%dn,upper,lower);/*modified*/ 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;(3)如果s等于b,则通过验证,输出“OK”,否则输出“Err”。输出格式参见以下示例。运行示例1:输入:588 42输出:588: 1*2*3*7=42, OK说明:输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为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 int prime(int n);int main(void) int a,b,s=1,k20,i,j=0; for(i=0;i20;i+)ki=0; printf(Enter a=); scanf(%d,&a); printf(Enter b=); scanf(%d,&b); for(i=2;i=a;i+) if(a%i=0&prime(i)kj=i;s=s*kj;j+; printf(%d:1,a); for(i=0;ij;i+) printf(*%d,ki); printf(=%d, ,s); if(s=b) printf(OK); else printf(Err(%d!=%d),s,b); int prime(int n) int i; for(i=2;i=n) return 1; 2编程题2(X_4_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_2.C文件和X_4_2.EXE文件)保存到目录C:KS中。功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):(1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1n50);(2)计算并输出成绩的累加和(记为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:

温馨提示

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

评论

0/150

提交评论