您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 参考答案-历年省二级C笔试试题02
1试题1一、选择题1、C2、A3、B4、D5、C6、B7、B8、A9、C10、D11、B12、C13、C14、B15、C16、D17、A18、C19、C20、D21、D22、B23、C24、B25、C26、C27、D28、A29、D30、B31、D32、C33、C34、D35、B36、A37、D38、C39、C40、A二、填空题1、12、F23、string.h4、结构型或联合型5、int*6、137、288、voidswap(int*,int*);9、&x,&y;10、intx*,int*y三、阅读程序,写出运行结果1.################2.2468103.1243694812165101520254.1,11,22,1-3,25.9四、编程题1.输出100以内所有个位数为6且能被3整除的自然数(36,66,96,……)#includestdio.hmain(){inti;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)]#includestdio.hfloatfun(int);main(){floaty;y=(fun(3)+fun(4)+fun(5))/(fun(6)+fun(7));printf(%f\n,y);}floatfun(intn){inti;floatsum=0.0;2for(i=1;i=n;i++)sum=sum+i;returnsum;}3.根据以下程序框架,补充代码,求方阵两对角线元素之和即其转置矩阵。(要求:方阵用二维数组a表示,转置矩阵用t表示,s1,s2表示两对角线之和)#includestdio.hvoidmain(void){inta[3][3]={1,3,5,7,9,11,13,15,17};inti,j,s1,s2,a[3][3];s1=s2=0;for(i=0;i3;i++){for(j=0;j3;j++)t[j][i]=a[i][j];s1+=a[i][i];s2+=a[i][2-i];}printf(s1=%d,s2=%d\n,s1,s2);for(i=0;i3;i++){for(j=0;j3;j++)printf(%5d,t[i][j]);printf(\n);}}试题2一、选择题1B2A3B4C5B6C7D8B9C10D11D12C13C14B15C16A17A18A19D20B21A22C23B24B25B26C27A28D29B30C31C32A33D34B35B36C37C38D39D40D二、填空题:1、6.0000002、fabs(x-z)1e-63、指向浮点型指针4、printf(“%.1f\n”,(a*10)/10.0)5806、27、hello8、y=1.0x=0.0x=x+j三、阅读程序,写出运行结果1.810122.a=1,b=33.a[0]=1a[2]=2a[4]=2a[6]=24.75.c_proargm四、编程题1.编写程序,输入12个整数。按照从后向前的顺序依次找出并输出其中能被7整除的所有整数以及这些整数的和.#includestdio.hmain()3{inti,sum=0,a[12];for(i=0;i12;i++)scanf(%d,&a[i]);for(i=11;i=0;i--)if(a[i]%7==0){sum+=a[i];printf(%d,a[i]);}printf(\nsum=%d\n,sum);}2.编写程序,输入一个3*3的矩阵,求两个对角线元素中的一个最大值。#includestdio.hmain(){inta[3][3],imax;inti,j;for(i=0;i3;i++)for(j=0;j3;j++)scanf(%d,&a[i][j]);imax=a[0][0];for(i=1;i3;i++)if(imaxa[i][i])imax=a[i][i];if(imaxa[0][2])imax=a[0][2];if(imaxa[2][0])imax=a[2][0];printf(max=%d\n,imax);}3.根据以下框架编写程序,用递归函数按下列公式计算并输出。S(n)=12+22+32+……n2递归计算公式:S(n)=S(n-1)+n*n递归结束条件:S(1)=1*1=1#includestdio.hfloats(int)voidmain(void){intn;scanf(%d,&n);printf(s(%d)=%f\n,n,s(n));}floats(intn){floatw;if(n==1)w=1.0;elsew=s(n-1)+n*n;return(w);}试题3一、选择题1B2D3C4B5B6B7B8B9D10A11B12C4二、填空题1、1777772、联合(共用)3、fopen(“FILE”,”r+”);4、45、8,8,106、107、返回指向整数的指针函数8、3三、阅读程序,写出运行结果1.8118102.293.111121133114641151010514.15,235,245.1323四、阅读下列程序,在_________线处填上适当内容,使程序(或函数)完整1.-1,fabs(t),4*pi2.k*i,i=n,sp(i)3.chp=str,*chp-32,chp++五、编写程序题1.输入一个字符串,分别统计英文字母,空格,数字与其他符号的个数。#includestdio.hmain(){inti,letter=0,space=0,number=0,other=0;charch;printf(inputthestring:\n);while((ch=getchar())!='\n'){if((ch='a'&&ch='z')||(ch='A'&&ch='Z'))letter++;elseif(ch='0'&&ch='9')number++;elseif(ch=='')space++;elseother++;}printf(letter=%d,number=%d,space=%d,other=%d\n,letter,number,space,other);}2.从键盘输入一个2*3的矩阵,将其转置后形成3*2矩阵输出。#includestdio.hmain(){inti,j,a[2][3],b[3][2];for(i=0;i2;i++)for(j=0;j3;j++)scanf(%d,&a[i][j]);for(i=0;i3;i++){for(j=0;j2;j++){b[i][j]=a[j][i];printf(%4d,b[i][j]);5}printf(\n);}}3.编程实现由主函数输入m,n,按下述公式计算Cnm的值。#includestdio.hlongfac(intn){longf;if(n0)printf(n0,dataerror);elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intm,n;longcmn;scanf(%d,%d,&m,&n);cmn=fac(m)/(fac(n)*fac(m-n));printf(cmn=%ld,cmn);}试题4一、选择题1A2B3C4B5D6D7B8A9B10A11A12D13B14B15B16C17A18C19C20C21D22C23A24A25B26D27C28C29B30B31B32D33C34A35B36B37D38C39D40C二、填空题1、doublepow(floatx,intn);pow(x,y)i=n2、t=1.0breakelset=t*x/i3、ia[imin]a[j]a[i]=a[imin]三、阅读程序,写出运行结果1.20042.num=311,score=933.975314.aXbYcZ5.124369481216510152025四、编程题1.设某班有35人参加C语言考试,统计输出考试成绩不及格的人数及其百分比。#includestdio.hvoidmain(){inti,n=0;floatstu[35];for(i=0;i35;i++){scanf(“%f”,&stu[i]);if(stu[i]60)n++;6}printf(“n=%d,per=%5.2f\%\n”,n,1.0*n/35*100);}2.根据以下程序框架,编写子函数,实现交换2个整型变量x和y的值。#includestdio.hvoidswap(int*,int*);voidmain(){intx,y;scanf(%d,%d,&x,&y);printf(x=%d,y=%d\n,x,y);swap(&x,&y);printf(x=%d,y=%d\n,x,y);}voidswap(int*x,int*y){intz;z=*x;*x=*y;*y=z;}3.求3×3方阵两对角线元素之和及其转置矩阵。(要求:方阵用二维数组a表示,转置矩阵用t表示,s1,s2表示两对角线元素之.和)。#includestdio.hvoidmain(){inti,j,a[3][3],t[3][3],s1=0,s2=0;printf(“Entertheelementsofarraya:”);for(i=0;i3;i++)for(j=0;j3;j++)scanf(%d,&a[i][j]);printf(“Outputarraya:”);for(i=0;i3;i++){for(j=0;j3;j++)printf(%4d,b[i][j]);printf(\n);}printf(“Inputarrayt:”);for(i=0;i3;i++){for(j=0;j3;j++){t[i][j]=a[j][i];printf(%4d,t[i][j]);}printf(\n);}/*Tocomputethesumofdiagonalelements*/for(i=0;i3;i++)s1+=a[i][i];7printf(s1=%d\n,s1);for(i=0;i3;i++)s2+=a[i][2-i];printf(s2=%d\n,s2);}试题5一、选择题1A2B3A4C5A6C7C8D9D10B11B12B13D14D15C16C17A18D19B20A21C22B23A24D25D26D27B28A29C30C31B32C33D34B35C36A37B38C39A40A二、填空题1、a%brr!=02、s,cs[i]s[j]=’10’3、0a[i][4-i]=1printf(“\n”);三、阅读程序,写出运行结果1.1,4,22.10123.good4.145.LiQing:19wangHua:21ZhaoPing:20四、编程题1.求出10至100之间能同时被2,3,7整除的数,并输出。#includestdio.hvoidmain(){inti;for(i=10;i=100;i++)if(i%2==0&&i%3==0&&i%7==0)printf(%4d\n,i);}2.输出Fibonacci数列1,1,2,3,5,8,13……前42个数。(Fibonacci数列的规律是:前2个数是1,第三个数开始是前两个数之和)要求在屏幕上每行输出6个数。#includestdio.hvoidmain(){inti;longa[43];a[1]=a[2]=1;for(i=3;i=42;i++)a[i]=a[i-1]+a[i-2];for(i=1;i=42;i++){printf(\t%d,a[i]);if(i%6==0)print
本文标题:参考答案-历年省二级C笔试试题02
链接地址:https://www.777doc.com/doc-2614207 .html