首页 2009秋江苏C语言二级考试笔试

2009秋江苏C语言二级考试笔试

举报
开通vip

2009秋江苏C语言二级考试笔试2009秋江苏C语言二级考试笔试 2009秋 第二部分 C语言程序设计 一、 选择题(用答题卡答题,答案依次填在21,30答题号内,共10分) 21. 以下叙述中正确的是 (21) 。 A. C语言系统以函数为单位编译源程序 B. main函数必须放在程序开始 C. 用户定义的函数可以被一个或多个函数调用任意多次 D. 在一个函数体内可以定义另外一个函数 22(以下选项中,不能用作C语言标识符的是 (22) 。 D. _00 A. print B. FOR C. &a 23. 已知int类型数据...

2009秋江苏C语言二级考试笔试
2009秋江苏C语言二级考试笔试 2009秋 第二部分 C语言程序设计 一、 选择题(用答题卡答题,答案依次填在21,30答题号内,共10分) 21. 以下叙述中正确的是 (21) 。 A. C语言系统以函数为单位编译源程序 B. main函数必须放在程序开始 C. 用户定义的函数可以被一个或多个函数调用任意多次 D. 在一个函数体内可以定义另外一个函数 22(以下选项中,不能用作C语言标识符的是 (22) 。 D. _00 A. print B. FOR C. &a 23. 已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是 (23) 。 A. printf("%d",32768); B. printf("%ld",32768); C. printf("%f",32768); D. printf("%c",32768); 24. 已知有声明“int a=3,b=4,c=5; ”,以下表达式中值为0的是 (24) 。 A. a&&b B. a<=b C. a||b&&c D. !(!c||1) 25. 已知有声明“long x,y;”且x中整数的十进制表示有n位数字(4,n,10),若要求去掉整数x十进制 表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,以下表达式中能正确实现这一功 能的是 (25) 。 A. y=x/(10*(n-1)) B. y=x%(10*(n-1)) C. y=x%(long)pow(10,n-1) D. y=x%(10,(n-1)) 26. 已知有声明“int x,y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则 以下程序段中错误的是 (26) 。 A. if(x>=0)y=1;else y=-1; B. y=x>=0?1:-1; C. switch() D. switch(x-abs(x)) { case x>=0: y=1; break; { case 0: y=1; break; default: y=-1; default: y=-1; } } 27(已知有声明“int m[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误的是 (27) 。 A. m[++i] B. m[5] C. m[2*2] D. m[m[4]] 28(已知有声明“char s[80];”,若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语 句中正确的是 (28) 。 A. scanf("%s",s); B. scanf("%s",s[0]); C. s=gets(); D. s=getchar(); 29(若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是 (29) 。 A. 实参和其对应的形参占用同一存储单元 B. 形参不占用存储单元 C. 同名的实参和形参占用同一存储单元 D. 形参和实参占用不同的存储单元 30. 已知有声明“int i,a[10],*p=a;”,现需要将1,10保存到a[0],a[9]中,以下程序段中不能实现这一功 能的是 (30) 。 第4页 C语言 A. for(i=0;i<10;i++)a[i]=i+1; B. for(i=0;i<10;i++)p[i]=i+1; C. i=1;while(p void main() { FILE *fp; int k,n,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w"); fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]); fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]); fclose(fp); fp=fopen("d2.dat","r"); fscanf(fp,"%d%d",&k,&n); printf("%d,%d\n",k,n); } 7. 以下程序运行时输出到屏幕的结果是 (7) 。 #include void main() { int i=1,m=0; switch(i) { case 1: case 2: m++; case 3: m++; } printf("%d",m); } 第5页 C语言 8. 以下程序运行时输出到屏幕的结果中第一行是 (8) ,第二行是 (9) 。 #include void fun(int a[],int b[],int *x) { int i,j=0; for(i=0;a[i];i++) { if(i%2==0)continue ; if(a[i]>10) b[j++]=a[i]; } *x=j; } void main() { int a[10]={3,15,32,23,11,4,5,9},b[10]; int i=0,x=0; fun(a,b,&x) ; for(i=0;i int fun(int *x,int n) { if(n==0) return x[0]; else return x[0]+fun(x+1,n-1); } void main() { int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,2)); } 10(以下程序运行时输出到屏幕的结果是 (11) 。 #include long f(int n) { static long s; if(n==1)return s=2; else return ++s; } void main() { long i,sum=0; for(i=1;i<4;i++) sum+=f(i); printf("%ld",sum); } 第6页 C语言 11(以下程序运行时输出到屏幕的结果中第一行是 (12) ,第二行是 (13) 。 #include #define f(x,y) y=x*x void g(int x,int y) { y=x*x; } void main() { int a=2,b=0,c=2,d=0; f(a,b); g(c,d); printf("%d\n%d",b,d); } (14) ,第三行是 (15) 。 12. 以下程序运行时输出到屏幕的结果中第一行是 #include void main() { int a[3][3]={{3,8,12},{4,7,10},{2,5,11}}, i,j,k,t; for(j=0;j<3;j++) for(k=0;k<2;k++) for(i=0;i<2-k;i++) if(a[i][j]>a[i+1][j]) t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t; for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%3d",a[i][j]); printf("\n"); } } 13(以下程序运行时输出到屏幕的结果是 (16) 。 #include #include void main() { int i=0,n=0;char s[80],*p; strcpy(s,"It is a book."); for(p=s;*p!='\0';p++) if(*p==' ') i=0; else if(i==0) { n++; i=1; } printf("%d\n",n); } 第7页 C语言 14(以下程序运行时输出到屏幕的结果第一行是 (17) ,第二行是 (18) 。 #include typedef struct fact { int m,z; }FACT; FACT fun1(FACT t1,FACT t2) { FACT t3; t3.m=t1.m*t2.m; t3.z=t1.z*t2.m+t2.z*t1.m; return t3; } FACT fun2(FACT t) { int m,n,k; m=t.m; n=t.z; while(k=m%n) { m=n; n=k; } t.m=t.m/n; t.z=t.z/n ; return t; } void main() { FACT s,s1={8,4},s2={6,5} ; s=fun1(s1,s2); printf("%d,%d\n",s.z,s.m); s=fun2(s); printf("%d,%d",s.z,s.m); } , 完善程序 15. 以下程序求方程的一个近似根。root函数采用二分法计算并返回方程f(x)=0在[a,b]内的一个近似根, main函数调用root函数求方程cos(x)=0在[0,3.14]内的一个近似根。试完善程序以达到要求的功能。 #include #include double root(double a,double b,double (*f)(double)) { double x,y; if( (19) ) { printf(" There is no root between %f and %f",a,b); return 0; } 第8页 C语言 do { x= (20) ; y=f(x); if(fabs(y)<1e-6||fabs(b-a)<1e-6)break; if( (21) <0 ) b=x; else a=x; }while(1); return x; } void main() { printf("\n x=%f",root(0,3.14, (22) )); } 16(以下程序在3,50范围内验证:大于等于3的两个相邻素数的平方之间至少有4个素数。例如,3 22和5是相邻素数,3,5之间有素数11、13、17、19、23。试完善程序以达到要求的功能。 #include #include #include int prime(int n) { int i; for(i=2;i<=sqrt(n);i++) if( (23) )return 0; return 1; } void main() { int i,j,k=0,m,n,c,a[30]={0}; for(i=3;i<50;i++) if(prime(i)) (24) ; for(i=0;i=4) printf("\n %d*%d-%d*%d: %d",a[i],a[i],a[i+1],a[i+1],c); else { printf("Error"); exit(0);} } } 第9页 C语言 17. fun函数的功能是删除s指向的链表中满足以下条件的结点:该结点的编号值是奇数且存放的字母 ASCII编码值也为奇数(提示:a的ASCII编码是97);将删除的结点添加到t所指向的链表尾部。 试完善fun函数以达到要求的功能。 例如,若删除前的s链表为: s 1 a 2 b 4 c 0 3 b 则删除后的s链表为: s 2 b 4 c 0 3 b #include struct node { int i; /* 存放结点的编号 */ char c; /* 存放一个字母的ASCII编码 */ struct node *next; }; struct node *t=NULL; struct node *fun(struct node *s) { struct node *p,*q; struct node *r; p=q=s; while(p!=NULL) { if(((p->i)%2)&&((p->c)%2)) { if(s==p) s=q= (27) ; else { (28) ; q=p->next; } if(t==NULL) t=r=p; else { r->next=p; r=r->next; } } p= (29) ; } if(t!=NULL) (30) ; return s; } 第10页 C语言
本文档为【2009秋江苏C语言二级考试笔试】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_083599
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:0
分类:
上传时间:2018-02-16
浏览量:11