C语言练习题1及参考答案.doc_第1页
C语言练习题1及参考答案.doc_第2页
C语言练习题1及参考答案.doc_第3页
C语言练习题1及参考答案.doc_第4页
C语言练习题1及参考答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C语言考试系统练习题1一、判断题1.变量根据其作用域的范围可以分为局部变量和全局变量。(Y / N)YES2.C语言的switch语句中case后只能为常量或常量表达式。(Y / N)NO(字符等都可以)3.两个字符串中的字符个数不相同时也可进行字符串大小的比较。(Y / N)YES4. 循环结构中的continue语句是使整个循环终止执行。(Y / N)NO(继续进行)5. char *p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。NO(字符串)二、单选1.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( D)。A.float B.int C.char D.double2.C语言规定,在一个源程序中,main函数的位置(C )。A.必须在最开始 B.必须在系统调用的库函数的后面C.可以任意 D.必须在后面3. C语言的if语句嵌套时,if与else的配对关系是(A )。A. 每个else总是与它上面的最近的if配对B.每个else总是与最外层的if配对C.每个else与if的配对是任意的D.每个else总是与它上面的if配对4. 下列字符序号中,不可用作C语言标识符的是(B )。A. b70 B.#ab C.symbol D.a_15. 整形变量x=1,y=3,经过下列计算后,x的值不等于6的是 (B)A. x=(x=1+2,x*2) B.x=y2?6:5 C.x=9-(-y)-(y-) D.x=y*4/26. 若有下列定义,则对a数组元素地址的正确引用是(CD )。A. *(p+5) B.*p+2 C.*(a+2) D.*&a57. 在C语言中,能代表逻辑值“真”的是 (D)。A. True B.大于0的数 C.非0整数 D.非0的数8.任何一个C语言的可执行程序都是从_B_开始的。A.程序中的第一个函数 B.main( )函数的入口C.程序中的第一条语句 D.编译预处理语句9. 下列语句中不正确的是(C )。A. char a2=1,2; B.int a2=1,2;C.char a2=1,2,3; D.char a2=1;10. C语言不可嵌套的是(B )。A. 函数调用 B.函数定义 C.循环语句 D.选择语句三、程序填空答题说明在“*SPACE*”语句的下一行完成程序填空,首先将填空标志【?】删除,然后填入正确的答案,答题结束后,必须在程序环境中做好保存。1./*-功能:从键盘上输入一个正整数,判断其是否是回文数。说明:所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。 将整数的各位依次存入数组a中,然后再进行判断-*/#include int main() int num,a10,r; int i=0,j,flag=1; /*flag作为是否为回文的标志*/ scanf(%d,&num); if (num=j;i-,j+) if (aj=ai) /*SPACE*/ 【continue】; else flag=0; break; /*SPACE*/ if (【flag = 1】) printf(是回文n); else printf(不是回文n); return 0; 2./*-功能:已知一个数列,它的头两项分别是0和1,从第三项开始以 后的每项都是其前两项之和。编程打印此数,直到某项的 值超过200为止。-*/#include int main() int i,f1=0,f2=1; /*SPACE*/ for(【i = 0】;i+) printf(5%d,f1 ); /*SPACE*/ if(f1【200】) break; printf(5%d,f2); if(f2200) break; if(i%2=0) printf(n); f1+=f2; /*SPACE*/ f2+=【f1】; printf(n); return 0;四、程序设计答题说明考生必须在“*Program*” “*End*”范围内编写程序,答题结束后,必须在程序环境中做好保存,必须正确执行一次当前试题。/*-功能:编写函数fun求一个字符串(长度不超过80)的长度,在main函数中输入字符串,并输出其长度。-*/#include void wwjt(); int fun(char *p1) /*Program*/ int len(0);for (; p1 != 0; +p1, +len); return len; /* End */int main() char *p,a80; int len; p=a; printf(please input a string:n); gets(p); len=fun(p); printf(The strings length is:%dn,len); wwjt(); return 0;void wwjt() FILE *IN,*OUT; char *pIN,sin80; int iOUT,i; pIN=sin; IN=fopen(3.IN,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(3.out,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(i=0;i10;i+) fscanf(IN,%s,pIN); iOUT=fun(pIN); fprintf(OUT,%dn,iOUT); fclose(IN); fclose(OUT);五、程序纠错在“*FOUND*”语句的下一行修改程序,答题结束后,必须在程序环境中做好保存。注意:不可以增加或删除程序行,也不可以更改程序的结构。1./*- 功能:编写函数fun求1000以内(正整数,不包括1000)所有8的倍数之和。-*/#include #define N 1000int fun(int m) /*FOUND*/ int s=0,i; /原来的是int s=0,i; /*FOUND*/ for(i=1;iN;i+) /没错 /*FOUND*/ if(i%m=0) /原来的是 if(i/m=0) s=s+i; return s; int main() int sum; sum=fun(8); printf(%d以内所有%d的倍数之和为:%dn,N,8,sum); return 0;2./*- 功能:求出数组中最大数和次最大数,并把最大数和a0中的数 对调、次最大数和a1中的数对调。-*/#include #define N 20void fun ( int a, int n ) int i, m, t, k ; for(i=0;i2;i+)/*两次循环,分别找最大数和次大数*/ /*FOUND*/ m=i; /原来的是m=0; for(k=i;kam) / 原来的是if(akam) k=m; t=ai;ai=am;am=t; / t=ak;ak=am;ak=t; int main( ) int bN=11,5,12,0,3,6,9,7,10,8, n=10,

温馨提示

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

评论

0/150

提交评论