2012秋C语言笔试卷_第1页
2012秋C语言笔试卷_第2页
2012秋C语言笔试卷_第3页
2012秋C语言笔试卷_第4页
2012秋C语言笔试卷_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、第二部分 C语言程序设计一、 选择题(用答题卡答题,答案依次填在2130答题号内,共10分)21. 以下声明中有语法错误的是 21 。A. char *x=thank;B. char x; C. char *x(void);D. char (*x)2;22. 假定a为一个一维字符数组名,则引用数组元素ak的正确形式为 22 。A. a+kB. &a+k C. *(a+k)D. *a+k23. 已有声明“int x;”,实现“若x的值是奇数,则输出x”这一功能的语句是 23 。A. if(x/2) printf(%d,x);B. if(x%2) printf(%d,x); C. if(x/2=1

2、) printf(%d,x); D. if(x%2=0) printf(%d,x);24. 假定一个函数的头部为“char *func(int n)”,则该函数返回值的类型是 24 。A. intB. int * C. char D. char *25. 已知fun函数的头部为“void fun(int x,int n)”,main函数中有声明“int a10=1,b=10;”,欲在main函数中调用fun函数,则以下调用语句中正确的是 25 。A. fun(a,fun(a,b); B. fun(a10,b); C. fun(a,a0); D. fun(b,a);26. 已有声明“int a3

3、4=3,4,2,8,6;”,则数组元素a10的值为 26 。A. 2 B. 4 C. 6 D. 827. 已有声明“int x=0, *p;”,则以下赋值表达式中正确的是 27 。A. p=x B. *p=*x C. &p=&x D. p=&x28. 已有声明“char c=72;”,则变量c包含 28 个字符。A. 1 B. 2 C. 3 D. 429. 已有声明“int *p; ”,若用语句“p=(int *)malloc(20*sizeof(int);”动态申请一个int型数组存储区,则p所指向的数组中可存储 29 个int型数据。A. 10 B. 20 C. 40 D. 8030. 判

4、断char型变量c1的值是否为小写字母的正确表达式为 30 。A. a=c1=a&c1=c1|z=a&c1=0?a:-a”的值是 (1) 。 2. &、+、= 是C语言中的三个运算符,其中优先级最高的是 (2) 。3. 假定指针变量p指向对象的值为16,p+1指向对象的值为35,则*p+的值为 (3) 。4. 在系统头文件中定义的符号常量NULL代表的数值(整数)是 (4) 。5. 若需要打开一个已存在的非空文件F.txt并修改其中的部分数据,则打开文件F.txt的语句应是“fp=fopen(F.txt, (5) );”。 l 阅读程序(13分)6. 以下程序运行时,输出到屏幕的结果是 (6)

5、 。#include int main( ) int b33=0,1,2,0,1,2,0,1,2,i,j,t=0; for(i=0;i=i;j-) t+=bij; printf(%dn,t); return 0;7. 以下程序运行时,输出到屏幕的结果是 (7) 。#includeint main( ) char *str=one,two,three,four; puts(str3+1); return 0;8. 以下程序运行时,输出到屏幕的结果是 (8) 。 #include int fun(int x,int y,int z) return x*y*z; int main( ) printf

6、(%d,fun(1.5,2.5,3.5); return 0;9. 以下程序运行时,输出到屏幕的结果是 (9) 。#includeint fun(char *s) if(*s=0) return 0; else return 1+fun(s+1);int main( ) char str=China; printf(%dn,fun(str); return 0;10. 以下程序运行时,输出到屏幕的结果中第一行是 (10) ,第二行是 (11) 。 #include int main( ) int x; char a; a=x=266; printf(%d n %d ,x,a); return

7、0;11. 以下程序运行时,输出到屏幕的结果中第一行是 (12) ,第二行是 (13) 。#include int f(int n) int s=1; return s*=n;int g(int n) static int s=1; return s*=n;int main( ) int a=0,b=0,i; for(i=1;i4;i+) a=a+f(i); b=b+g(i); printf(%dn%d,a,b); return 0;12. 以下程序运行时,输出到屏幕的结果中第一行是 (14) ,第二行是 (15) 。#includevoid fun(int a,int b,int n) in

8、t k,i,j; for(i=0;in;i+) k=n; for(j=0;jn;j+) if(ai=aj) k-; bk=ai; int main( ) int i,b6,a6=1,3,4,2,5,0; fun(a,b,6); for(i=0;i6;i+) printf(i+1)%3=0?%4dn:%4d,bi); return 0; 13. 以下程序运行时,若输入1到变量k1、输入85到变量k2,则输出到屏幕的结果中第一行是 (16) ,第二行是 (17) ,最后一行是 (18) 。#include int sieve(int x4,int n,int y4,int key1,int key

9、2,int *p1,int *p2) int i=0,k,m=0; while(i=key2 & xi3=key2) for(k=0;k4;k+) ymk=xik; m+; i+; *p1=*p2=0; for(i=0;im;i+) *p1+=yi2; *p2+=yi3; *p1/=m;*p2/=m; return m;int main( ) int a64=101,1,97,90,102,0,92,89,103,0,88,78,104,1,90,90, 105,1,60,70,106,1,93,87,b64=0; int count=6,k1,k2,av1,av2,i,j; printf(k

10、ey1=); scanf(%d,&k1); printf(key2=); scanf(%d,&k2); count=sieve(a,count,b,k1,k2,&av1,&av2); for(i=0;icount; i+) for(j=0;j4;j+) printf(%4d,bij); printf(n); printf(ave1=%d,ave2=%dn,av1,av2); return 0;l 完善程序(12分)14. 以下程序在2000021000范围内验证数学命题:如果一个整数的奇数位上各位数字之和与该整数的偶数位上各位数字之和的差是11的倍数(若奇数位的各位数字之和小于或等于偶数位的各

11、位数字之和,则对奇数位各位数字之和不断加11,直到其值大于偶数位各位数字之和为止),则这个数能被11整除。#includeint fun(long m) int odd,even; odd=even= (19) ; while(m0) odd=odd+m%10; even=even+ (20) ; m= m/100; while( (21) ) odd=odd+11; if(odd-even)%11=0) return 1; else return 0;int main( ) long k,n=20000,m=21000,j=0; for(k=n;k=m;k+) if( (22) ) if(k

12、%11=0) if(j+%10=0)putchar(n); printf(%ld ,k); else printf(error); return 0;15. 以下程序的功能是反转一个字符串中单词的顺序。例如,将字符串“there is no try”中单词顺序反转后变为“try no is there ”。假定以空格作为单词分隔符。 #include #include #include void reverseWords(char str1,char str2)int tokenPos,wReadPos,wEnd,writePos;writePos=0; /* tokenPos记录向前扫描(从

13、串尾到串首扫描)str1字符串时当前被判断字符的下标 */ tokenPos= (23) ; while(tokenPos=0)if(str1tokenPos= ) str2writePos+=str1tokenPos-; /* 复制单词之间的空格 * / elsewEnd=tokenPos; /* wEnd记录str1字符串中被处理单词的尾字符下标 */while(tokenPos=0 & str1tokenPos!= ) /* 向前扫描到空格为止 */tokenPos-;wReadPos= (24) ; /*wReadPos记录str1字符串中被处理单词的首字符下标 */ while(wRe

温馨提示

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

评论

0/150

提交评论