参考答案历省二级C笔试试题.doc_第1页
参考答案历省二级C笔试试题.doc_第2页
参考答案历省二级C笔试试题.doc_第3页
参考答案历省二级C笔试试题.doc_第4页
参考答案历省二级C笔试试题.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

试题 1一、选择题1、C 2、A 3、B 4、D 5、C 6、B 7、B 8、A 9、C 10、D 11、B 12、C 13、C 14、B 15、C 16、D 17、A 18、C 19、C 20、D 21、D 22、B 23、C 24、B 25、C 26、C 27、D 28、A 29、D 30、B 31、D 32、C 33、C 34、D 35、B 36、A 37、D 38、C 39、C 40、A二、填空题1、 1 2、 F2 3、 string.h 4、 结构型或联合型 5、 int * 6、 13 7、 28 8、 void swap(int *,int *); 9、 &x,&y; 10、 int x*,int *y 三、阅读程序,写出运行结果1 # #2 2 4 6 8 103 1 2 4 3 6 9 4 8 12 16 5 10 15 20 2541,1 1,2 2,1 -3,25. 9四、编程题1.输出100以内所有个位数为6且能被3整除的自然数(36,66,96,) #include main() int i; for(i=1;i=100;i+) if(i%10=6&i%3=0) printf(%5d,i); 2.编写函数,求级数S=1+2+3+4+n,并在主函数中求: y=(1+2+3)+(1+2+3+4)+(1+2+3+4+5)/(1+2+3+4+5+6)+(1+2+3+4+5+6+7) #include float fun(int); main() float y; y=(fun(3)+fun(4)+fun(5)/(fun(6)+fun(7); printf(%fn,y); float fun(int n) int i; float sum=0.0; for(i=1;i=n;i+) sum=sum+i; return sum; 3.根据以下程序框架,补充代码,求方阵两对角线元素之和即其转置矩阵。 (要求:方阵用二维数组a表示,转置矩阵用t表示,s1,s2表示两对角线之和) #include void main(void) int a33=1,3,5,7,9,11,13,15,17; int i,j,s1,s2,a33; s1=s2=0; for(i=0;i3;i+) for(j=0;j3;j+) tji=aij; s1+=aii; s2+=ai2-i; printf(s1=%d,s2=%dn,s1,s2); for(i=0;i3;i+) for(j=0;j3;j+) printf(%5d,tij); printf(n); 试题 2一、选择题1 B 2 A 3 B 4 C 5 B 6 C 7 D 8 B 9 C 10 D11 D 12 C 13 C 14 B 15 C 16 A 17 A 18 A 19 D 20 B21 A 22 C 23 B 24 B 25 B 26 C 27 A 28 D 29 B 30 C31 C 32 A 33 D 34 B 35 B 36 C 37 C 38 D 39 D 40 D二、填空题:1、6000000 2、fabs(x-z)1e-6 3、指向浮点型指针 4、printf(“%.1fn”,(a*10)/10.0)5 80 6、2 7、hello 8、y=1.0 x=0.0 x=x+j 三、阅读程序,写出运行结果1. 8 10 122. a=1,b=33. a0=1 a2=2 a4=2 a6=24. 75. c_proargm四、编程题1.编写程序,输入12个整数。按照从后向前的顺序依次找出并输出其中能被7整除的所有整数以及这些整数的和. #include main() int i,sum=0,a12; for(i=0;i=0;i-) if(ai%7=0) sum+=ai; printf(%d ,ai); printf(nsum=%dn,sum); 2.编写程序,输入一个3*3的矩阵,求两个对角线元素中的一个最大值。 #include main() int a33,imax; int i,j; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); imax=a00; for(i=1;i3;i+) if(imaxaii) imax=aii; if(imaxa02) imax=a02; if(imaxa20) imax=a20; printf(max=%dn,imax); 3.根据以下框架编写程序,用递归函数按下列公式计算并输出。 S(n)=12+22+32+n2 递归计算公式:S(n)=S(n-1)+n*n 递归结束条件:S(1)=1*1=1 #include float s(int) void main(void) int n; scanf(%d,&n); printf(s(%d)=%fn,n,s(n); float s(int n) float w; if(n=1) w=1.0; else w=s(n-1)+n*n; return(w); 试题 3一、选择题1B 2D 3C 4B 5B 6B 7B 8B 9D 10A 11B 12C二、填空题1、177777 2、联合(共用) 3、fopen(“FILE”,”r+”); 4、4 5、8,8,10 6、10 7、返回指向整数的指针函数 8、3 三、阅读程序,写出运行结果1.8 11 8 102.293.1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 14.15,235,245.1323四、阅读下列程序,在_线处填上适当内容,使程序(或函数)完整1. -1 , fabs(t) , 4*pi 2. k*i , i=n , sp(i) 3. chp=str , *chp-32 , chp+ 五、编写程序题1. 输入一个字符串,分别统计英文字母,空格,数字与其他符号的个数。 #include main() int i,letter=0,space=0,number=0,other=0; char ch; printf(input the string:n); while(ch=getchar()!=n) if(ch=a & ch=A & ch=0 & ch=9) number+; else if(ch= ) space+; else other+; printf(letter=%d,number=%d,space=%d,other=%dn,letter,number,space,other); 2. 从键盘输入一个2*3的矩阵,将其转置后形成3*2矩阵输出。 #include main() int i,j,a23,b32; for(i=0;i2;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=0;i3;i+) for(j=0;j2;j+) bij=aji; printf(%4d,bij); printf(n); 3. 编程实现由主函数输入m,n,按下述公式计算Cnm的值。 #include long fac(int n) long f; if(n0) printf(n0,data error); else if (n=0 | n=1) f=1; else f=fac(n-1)*n; return (f); main() int m,n;long cmn; scanf(%d,%d,&m,&n); cmn=fac(m)/(fac(n)*fac(m-n); printf(cmn=%ld,cmn); 试题 4一、选择题1A 2B 3C 4B 5D 6D 7B 8A 9B 10A 11A 12D 13B 14B 15B 16C 17A 18C 19C 20C 21D 22C 23A 24A 25B 26D 27C 28C 29B 30B 31B 32D 33C 34A 35B 36B 37D 38C 39D 40C二、填空题1、double pow(float x,int n); pow(x,y) iaj ai=aimin 三、阅读程序,写出运行结果1.20042. num=311, score=933. 9 7 5 3 14.aXbYcZ5 . 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25四、编程题1.设某班有35人参加C语言考试,统计输出考试成绩不及格的人数及其百分比。#includevoid main()int i,n=0; float stu35; for(i=0;i35;i+) scanf(“%f”,&stui); if(stui60) n+; printf(“n=%d,per=%5.2f%n”,n,1.0*n/35*100);2.根据以下程序框架,编写子函数,实现交换2个整型变量x和y的值。 #include void swap(int *,int *); void main() int x,y; scanf(%d,%d,&x,&y); printf(x=%d,y=%dn,x,y);swap(&x,&y); printf(x=%d,y=%dn,x,y); void swap(int *x,int *y) int z; z=*x;*x=*y;*y=z;3.求方阵两对角线元素之和及其转置矩阵。(要求:方阵用二维数组a表示,转置矩阵用t表示,s1, s2表示两对角线元素之.和)。 #includevoid main() int i,j,a33,t33,s1=0,s2=0; printf(“Enter the elements of array a:”);for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); printf(“Output array a:”); for(i=0;i3;i+) for(j=0;j3;j+) printf(%4d,bij); printf(n); printf(“Input array t:”); for(i=0;i3;i+) for(j=0;j3;j+) tij=aji; printf(%4d,tij); printf(n); /* To compute the sum of diagonal elements*/for(i=0;i3;i+) s1+=aii; printf(s1=%dn,s1);for(i=0;i3;i+) s2+=ai2-i; printf(s2=%dn,s2);试题 5一、选择题1A 2B 3A 4C 5A 6C 7C 8D 9D 10B 11B 12B 13D 14D 15C 16C 17A 18D 19B 20A 21C 22B 23A 24D 25D 26D 27B 28A 29C 30C 31B 32C 33D 34B 35C 36A 37B 38C 39A 40A二、填空题1、a%b r r!=0 2、 s,c si sj=10 3、 0 ai4-i=1 printf(“n”); 三、阅读程序,写出运行结果1.1,4,22. 10 123.good4. 145. LiQing:19wangHua:21ZhaoPing:20四、编程题1. 求出10至100之间能同时被2,3,7整除的数,并输出。 #include void main() int i; for(i=10;i=100;i+) if(i%2=0 & i%3=0 & i%7=0) printf(%4dn,i); 2. 输出Fibonacci数列1,1,2,3,5,8,13前42个数。(Fibonacci数列的规律是:前2个数是1,第三个数开始是前两个数之和) 要求在屏幕上每行输出6个数。 #include void main() int i; long a43; a1=a2=1; for(i=3;i=42;i+) ai=ai-1+ai-2; for(i=1;i=42;i+) printf(t%d,ai); if(i%6=0) printf(n); 3. 编写字符串拷贝函数将指针str2指向的字符串复制到由指针str1所指的字符串中。请在函数中调用字符串拷贝函数并输出str1指向的字符str2串。(不得使用C中的strcpy标准库函数) #include cpystr(char *p1,char *p2) while(*p2+ = *p1+); main() char *pa,*pb,b80; pb=b; printf(enter the string a: ); scanf(%s,pa); cpystr(pa,pb); printf(string b = %sn,pb); 试题 6一、选择题1B 2D 3C 4B 5C 6C 7A 8D 9C 10A 11D 12A 13B 14D 15B二、阅读下列程序,写出运行结果1.aaaa 1234 bbbb 56782.33.544.22 32 425.data=1468三、阅读分析下列程序,在_处填上适当内容,使程序(或函数)完整1. ch!=# , ch-32 ; 2. 1,1 , fn-1+fn-2 ;3. ai , ajq , ai=ap ;4. p1+ , *p2+ +=*p1+ + 。四、编程题1. 求两个整数的最大公约数和最小公倍数。 #include void main() int p,r,temp,n,m; printf(input n and m:); scanf(%d,%d,&n,&m); if(nm) temp=n; n=m; m=temp; p=n*m; r=n%m; while(r!=0) n=m; m=r; r=n%m; printf(gcd=%dn,m); printf(gcm=%dn,p/m);2. 编写一程序,输入如下图形。 * * * * *#includevoid main() int i,j,k; for(i=1;i=5;i+) for(j=1;ji;j+) printf(“ ”); for(k=1;k=5;k+) printf(“*”); printf(“n”); 3. 按下述递归定义编写一个计算幂级数的递归函数。 #include long fun(int x,int n) if(n=0) return 1; else return(x*fun(x,n-1); voind main() int x,n;long s; scanf(%d,%d,&x,&n); s=fun(x,n); printf(s=%ldn,s); 试题 7一、单项选择题1A 2D 3B 4C 5A 6C 7B 8D 9D 10C 11D 12A 13B 14A 15B 16C 17B 18C 19A 20B 21D 22B 23D 24B 25C 26B 27B 28A 29A 30D 31D 32B 33A 34A 35D 36C 37B 38B 39C 40C二、填空题 1. 1 2. 顺序结构 3. switch或多分支开关控制 4. 123456.1234 5. 1 6. 65534 7. 14 8. 204 9. W 10. 二进制文件 三、阅读程序,写出运行结果。1. *1* 22* 333*2. 513. 2,04. computer Level Test5. 16四、编程题1.编程输出100以内所有6的倍数及它们的和。 #include void main() int i,s=0; for(i=1;i=100;i+) if(i%6=0) printf(%3d,i); s+=i; printf(s=%dn,s); 2. 已知字符串char s50=Iamstudent,请编写程序将字符a插入到student之前,结果为Iamastudent。 程序框架如下 #include main() char s50=Iamstudent; int i=0; while(si!=NULL)i+; while(si!=s) si+1=si;i-; si+1=si; si=a; printf(%s,s); 3. 编写程序打印以下图形:(必须使用循环结构,直接输出不给分)。 1 23 456 7890 #include main() int s=1,2,4,7; int i,j; for(i=0;i4;i+) for(j=si;jsi+i+1;j+) printf(%d,j%10); printf(n); 试题 8一、单项选择1.A, 2.B, 3.C, 4.D, 5.A, 6.C, 7.D, 8.A, 9.B, 10.A11.C, 12.D, 13.B, 14.D, 15.C, 16.B, 17.B, 18.B, 19.D, 20.D21.B, 22.A, 23.C, 24.A, 25.A, 26.D, 27.C, 28.C, 29.A, 30.D31.C, 32.D, 33.A, 34.C, 35.A, 36.D, 37.C, 38.C,

温馨提示

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

评论

0/150

提交评论