C模拟考试题及参考答案(09级)

上传人:xt****7 文档编号:136510979 上传时间:2022-08-16 格式:DOC 页数:14 大小:68KB
收藏 版权申诉 举报 下载
C模拟考试题及参考答案(09级)_第1页
第1页 / 共14页
C模拟考试题及参考答案(09级)_第2页
第2页 / 共14页
C模拟考试题及参考答案(09级)_第3页
第3页 / 共14页
资源描述:

《C模拟考试题及参考答案(09级)》由会员分享,可在线阅读,更多相关《C模拟考试题及参考答案(09级)(14页珍藏版)》请在装配图网上搜索。

1、C语言程序设计模拟试卷(09级).5.9.11.12.13.15.19.20.22 24 25 26 28 29 30一、单选题(、共30小题,每小题1分,共30分)1、设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是( )。A. a =bB. !(ab)&!c|1)C. a&bD. a|b+c&b-c2、设有语句char a=72;则变量a( )。A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 说明不合法3、有以下程序:void main( ) ; ; ;程序运行后的结果是( ):A编译时有警告错误B编译时有语法错误C编译没有错误,但是运

2、行时出错D程序正常运行,但是无任何输出4、x为int型变量,执行以下语句后,x的值为( )。 x=10; x+=x-=x-x;A10B20C30D405、若有输入语句scanf(%d,%d,%d ,&x,&y,&z) ;,欲使x的值为10,y的值为20,z的值为30,则正确的输入应为( ):A. 10 , 20 ,30回车B. 10 20 30回车C. 10,20,30回车D. 10回车20回车30回车6、以下不正确的if语句是( )。A. if (ab) & (bc) printf(max=%d,a);7、关于if后面一对圆括号中的表达式,叙述正确的是( )。A. 只能用关系表达式B. 只能

3、用逻辑表达式C. 只能用关系表达式或逻辑表达式D. 可以使用任意合法的表达式8、以下运算符中,优先级最高的是( )。A. !B. C. +D. %9、假设有两个字符数组a80,b80,则正确的输出语句是( )。Aputs(a,b);Bprintf(%s %s,a,b);Cputchar(a,b);Dputs(a); puts(b);10、对定义int a2; 的正确描述是( )。A. 定义一维数组a,包含a1和a2两个元素B. 定义一维数组a,包含a0和a1两个元素C. 定义一维数组a,包含a0、a1和a2三个元素D. 定义一维数组a,包含a(0)、a(1)和a(2)三个元素11、在引用数组元

4、素时,其下标表达式的类型必须是( )。A. 字符型B. 整型C. 整型或字符型D. 整型常量12、feof(fp)函数是用来测试fp所指的文件是否结束,如果文件结束,则feof(fp)返回的值是( ):A. 0B. 1C. NULLD. 以上答案都不对13、调用fopen函数打开一个文件失败时,函数返回的值是( ):A. -1B. EOFC. NULLD. 114、在对文件进行操作时,读文件的含义是( ):A. 将内存中的信息存入磁盘B. 将磁盘中的信息输入到内存C. 将CPU中的信息存入磁盘D. 将磁盘中的信息输入到CPU15、在C程序中,不合法的浮点型常量是( ):AB.456C0.820

5、000D100.3e516、C程序中,合法的关键字是( ):A. intB. integerC. IntD. Integer17、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )AP2=k;BP1=P2;Ck=*P1+*P2;Dk=*P1*(*P2);18、以下选项中,对指针变量p不正确的操作是( )。Aint a6,*p; p=&a;Bint a6,*p; p=a;Cint a6; int *p=a=1000;Dint a6; int *p1,*p2=a; *p1=*p2;19、设有如下的程序段:char str=Hello; char *p

6、tr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为( )。A. o B. 0C. 不确定的值D. o的地址 20、While 语句中循环结束的条件是while后面表达式的值是( )。A. 0B. 1C. -1D. 非021、有以下程序段: int t=0; while(t=1) t-; while循环执行的次数是( )。A. 一次也不执行B. 只执行一次C. 无限次D. 执行2次22、执行循环语句for (i=1; i10; i+) a+;后,变量i的值是( )。A. 9B. 10C. 11D. 不确定23、C语言中while和do-while循环的主要区别为( )。A. d

7、o-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句24、以下关于函数调用的描述中错误的是( )。A实参可以是常量、表达式或有确定值的变量B实参和形参共用同一内存单元C实参和形参的类型、个数必须一致D只有发生函数调用时,系统才为形参分别存储空间25、以下正确的描述是( )。A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用均不可以嵌套D函数的定义和函数的调用均可以嵌套26、已经有以下函数定义:

8、fun (char a) printf(“a=%cn”, a); 该函数的返回值类型是( )。AvoidBcharCintD不确定27、以下叙述中正确的是( )。A在C语言中静态变量在未赋值时,其值为0B在C语言中任何变量在未赋值时,其值为0C外部变量在程序的任何函数中均有效D函数中任何一个局部变量均无法保留上一次调用时的运行结果28、在VC+6.0中,若有以下说明:struct st int x;float y;则:sizeof(struct st) 的值为( ):A. 6B. 8C. 10D. 1229、在下列结构变量st的定义中,不正确的是( )。A. struct student in

9、t num; float score; st; B. struct student int num; float score; ; student st; C. struct int num; float score; st; D. struct student int num; float score; ; struct student st; 30、在VC 6.0中,若有以下共用体说明:union uu float x;double y;char z; luck;luck所占存储单元字节数为( ):A. 8B. 4C. 13D. 1二、填空题(共5小题,每小题3分,共15分)1、下面程序是

10、实现1+1/2+1/4+1/6+1/50的值,请填空: main() int i=2;float sum=1; while (i=50) sum=sum+1/(float)i; i+;_;printf(“sum=%fn”,sum) 答案:i+i=i+1+ii+=1i+;i=i+1;+i;i+=1;2、下面的程序可以实现从10个数中找出最大值和最小值功能,请填空。 #include int max,min; find(int *p, int n) int *q; max=min=*p; for(q=p;q*q) min=*q; main ( ) int I,num10; printf(Input

11、 10 numbers:n); for(i=0;i10;i+) scanf(%d,&numi);find(num, 10);printf(max=%d,min=%dn,max,min); 答案:max*qmaxmax*q=max3、下面的程序将浮点数写到文件test中,然后读出并显示。 #include main()FILE *fp;float f=12.34;if(_(“test”,“wb”)=NULL) printf(Cannotopen file. );exit(l);fwrite(&f,sizeof(float),1,fp);rewind(fp) ;fread(&f,sizeof(fl

12、oat),1,fp);printf(“%fn”,f); fclose(fp); 答案:fp=fopen4、统计学生成绩中不及格的学生名单。 #includestruct student long num; char name20;float score;stu6=9910110,”wangling”,85,9910111,”liming”,90.5,9910112,”fengyong”,90.5,9910113,”fangjun”,56,9910114,”sunping”,77.5,9910115,”kongxiao”,50.5;main() struct student *p; int co

13、unt=0; printf(“不及格名单:n”); for(p=stu; _;p+) if(p-scorenum, p-name, p-score); printf(“不及格人数:%dn”,count);答案:pstu+6p=stu+55、下面程序输入一个字符串,输出其中所出现过的大写英文字母如输入字符串 “UKSDYckjsjsjJSJJD”;应输出“UKSDYJ”。按程序功能填空。 #include main() char a80, b26; int i,j,k=0; gets(a);for(i=0;ai!=0;i+)if(ai=A&ai=Z) for(j=0;jk;j+) if (bj=

14、ai) break; if(j= =k) bk=ai; k+; bk = 0; for(i=0; _;i+) printf(%c ,bi); printf(n); 答案:istrlen(b)ikij+1bi!=0bi!=0三、程序改错题(共5小题,每小题3分,共15分)1、打开C:CAADATA36中源程序文件pg4102.cpp,该程序是从键盘上输入一批学生的成绩,计算其中及格的有多少人(以负数作为数据输入结束的标识)?请修改,使程序能正确运行。该源程序内容如下:#includevoid main(void)int count,grades;printf(“请输入分数:n”); scanf(

15、%d,&grades);while(grades=0) if(grades=60) count+; printf(共有%d个学生成绩合格!n,count);2、打开C:CAADATA37中源程序文件pg3104.cpp,该程序是判断一个输入的字符是哪种类型的字符,修改程序,使之能正确运行。该源程序内容如下:#includevoid main()char ch;printf(“please input a character!”); ch=getchar(); if ch=a&ch=A&ch=0&ch=9printf(this is a numbern); elseprintf(this is

16、a other charactern);3、打开C:CAADATA41中源程序文件pg6101.cpp,该程序有小问题,程序结果不正确。请修改,使程序能正确运行。该源程序内容如下:#includevoid main(void)int a5;printf(请输入5个整数:);for(i=1; i=5; i+)scanf(%d,&ai);printf(这5个数为:);for(i=1; i=5; i+)printf(%4d,ai);printf(“n”);4、打开C:CAADATA42中源程序文件pg5101.cpp,该程序是求两个数的和,有一个小问题,请修改,使程序能正确运行。该源程序内容如下:#

17、include void main()float a,b,c;printf(请输入两个数,中间用逗号隔开:);scanf(%f,%f,&a,&b);c=add(a,b);printf(两个数之和为:%fn,c);float add(float x,float y)float z;z=x+y;return z;5、打开C:CAADATA43中源程序文件pg8107.cpp,该程序将字符串a的值复制给字符串b。请改正其中的错误。该源程序内容如下:#include #include int main(void)char *a=You are a great boy; char *b=;printf(

18、复制前,字符串a: %s,字符串b: %sn,a,b);strcpy(b,a); printf(复制后,字符串a: %s,字符串b: %sn,a,b);return 0;四、编程题1、打开C:CAADATA38中的源程序文件pg106.cpp,补充程序使得程序运行时完成以下功能:从键盘输入3个数,并按由大到小的顺序输出。并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。(10分)2、打开C:CAADATA39中的源程序文件pg207.cpp,补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),使得程序运行时完成以下功能:编写程序找出33矩阵中的最大元素及其行列

19、位置并输出。(12分)3、打开C:CAADATA40中的源程序文件pg307.cpp,按要求补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),要求为:编写判断一个年份是否为闰年的函数leapyear(),并在主函数调用该函数输出19002100年之间的所有闰年。闰年的条件是:能被4整除但不能被100整除,或者能被400整除。(18分)C语言程序设计模拟题参考答案(09级)一、单选题:题号12345678910答案BADBCDDBDB题号11121314151617181920答案BBCBAAACBA题号21222324252627282930答案CBABBCABBA二、填

20、空题:1、答案:i+或: i=i+1或: +i或: i+=1或: i+;或: i=i+1;或: +i;或: i+=1;2、答案:max*q或:maxmax或:*q=max3、答案:fp=fopen4、答案:pstu+6或:p=stu+55、答案:istrlen(b)或:ik或:ij+1或:bi!=0或:bi!=0注意:以上答案只需填一个,多填会被自动评卷系统扣分三、程序改错题:1、参考答案:#includevoid main(void)int count,grades;printf(请输入分数:n); scanf(%d,&grades);count=0; /添加本句while(grades=0

21、)if(grades=60) count+;scanf(%d,&grades); /添加本句 printf(共有%d个学生成绩合格!n,count);2、参考答案:#includevoid main()char ch;printf(please input a character!); ch=getchar(); if(ch=a&ch=A&ch=0&ch=9) /加上括号printf(this is a numbern); elseprintf(this is a other charactern);3、参考答案:#includevoid main(void)int a6,i; /增加变量i定

22、义,修改数组长度为6printf(请输入5个整数:);for(i=1; i=5; i+)scanf(%d,&ai);printf(这5个数为:);for(i=1; i=5; i+)printf(%4d,ai);printf(n);4、参考答案:#include float add(float x,float y) / 将add函数定义提前到调用add之前float z;z=x+y;return z;void main()float a,b,c;printf(请输入两个数,中间用逗号隔开:);scanf(%f,%f,&a,&b);c=add(a,b);printf(两个数之和为:%fn,c);5

23、、参考答案:#include #include int main(void)char *a=You are a great boy; char b20=; / 定义数组bprintf(复制前,字符串a: %s,字符串b: %sn,a,b);strcpy(b,a); /参数b必须是数组 printf(复制后,字符串a: %s,字符串b: %sn,a,b);return 0;四、编程题:1、pg106.cpp参考程序:#includevoid main() int a,b,c,temp; scanf(“%d,%d,%d”,&a,&b,&c); if(ab) temp=a;a=b;b=temp; i

24、f(ac) temp=a;a=c;c=temp; if(bc) temp=b;b=c;c=temp; printf(“%d,%d,%dn”,a,b,c);2、pg307.cpp可在主函数中将二维数组的9个元素初始化为以下值: 8 6 4 2 1 9 7 5 3参考程序:#include void main() int a33=8,6,4,2,1,9,7,5,3; int i,j,row,colum,max; max=a00;row=colum=0;for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%

25、d,colum=%dn,max,row,colum);3、pg307.cpp参考程序:#include main() int leapyear (int year); int year; printf(“19002100年之间的所有闰年是:n”);for(year=1900;year2100;year+)if(leapyear(year)=1) printf(“%8d”,year); int leapyear (int year) int leap;if (year%4=0) if (year%100=0) if (year%400=0) leap=1; else leap=0; else leap=1;else leap=0;return(leap);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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