浙江省计算机等级考试二级c理论试题_第1页
浙江省计算机等级考试二级c理论试题_第2页
浙江省计算机等级考试二级c理论试题_第3页
浙江省计算机等级考试二级c理论试题_第4页
浙江省计算机等级考试二级c理论试题_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

2009年春浙江省高等学校计算机等级考试试卷(二级C)说明:⑴考生应将所有试题的答案填写在答卷上。其中试题一到试题六请在答卷上的各小题选项的对应位置上填“ノニ⑵请将你的准考证号的后五位填写在答卷右下角的指定位置内;⑶考试时间为90分钟。试题1(每小题3分,共12分)输入ー个正整数n,计算下列式的前n项之和。运行示例:Entern:2Sum=0.67#include<stdio.H>main(){intdenomiator,flag,i9n;doubleitem,sum;printf(MEntern:n);scanf(M%dH,&n);denomiator=l;⑴;sum=0;for(i=l;(2);i++)⑶ ;sum=sum+item;:denomiator=denomiator+2;printf(MSum=%,2f\nM,sum);A.flag=0B.flag=-l;C.flag=nD.flag=l(2)A.i>=nB.i<nC.i>nD.i<=n(3)A.item=flag/denomiatorB.item=l/denomiatorC.item=flag*1.0/denomiatorD.item=1.0/denomiator(4)A.flag==-lB.flag=0C.flag="flagD.flag=flag试题2(每小题3分,共12分)验证哥德巴赫猜想:任何ー个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5……,18=7+11。将6-20之间的偶数表示成两个素数之和打印时一行打印5组。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回〇〇素数就是只能被1和自身整除的正整数1不是素数,2是素数。运行示例:6=3+38=3+510=3+712=5+714=3+1116=3+1318=5+1320=3+17【程序】#include<stdio.H>#include<math.h>intprime(intm)inti,n;if(m==l)return0;n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0)retum0;main(){intcount,i,number;count=0;for(number=6;number<=20;number=number+2){for(i=3;i<=number/2;i=i+2)if((6) ){printf(M%d=%d+%dnumber,i,number-i);count++;if((7))printf(H\nM):(8)}

}(5)A.}(5)A.;return0;B.return1;elsereturn1;A.prime(i)!=Ollprime(number-i)!=OB.prime(i)!=O&&prime(number-i)!=OC.prime(i)==Ollprime(nuniber-i)==OD.prime(i)==Ollprime(number-i)==OA.count%5==()C.(count+l)%5==0A.count%5==()C.(count+l)%5==0A.break;C.continue;B.count%5!=0D.(count+l)%5!=0B.elsebreak;试题3输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个数。要求定义并调用函数count(s,digit,letter,other)分类统计字符串s中数字字符、英文字符和其它字符的个数,函数形参s是字符指针,形参digit,letter,other的类型是整型指针,函数类型是void.〇运行示例:Entercharaters:f(x,y)=5x+2y-6Digit=3Letter=5Other=6#include<stdio.h>voidcount(char*s,int"digit,int"letter,int"other){ (9)while((10) ){if(*s>='0,&&*s<=,9,)(*digit)++;elseif(*s>=,a,&&*s<=,z,ll*s>=,A,&&*s<=,Z,)(*letter)++;else(*other)++;s++;main(){inti=0,digit,lettenother;charch^>tr[80];printf(MEntercharaters:M);ch=getchar();while((11)){str[i]=ch;i++;ch=getchar();)str[i]='\O';(12) ;printf(HDigit=%dLetter=%dOther=%d\nH,digit,letter,other);)A.intdigit=0,letter=0,other=0;int*digit=0,*letter=0,*other=0;digit=letter=other=0;*digit=*letter=*other=0;(10)A.*s++!=*\0,B.*s++!='\n'C.*s!=,\0,D.*s!='\n'(11)A.ch!=AO*B.ch!ハn'C.ch==*\0'D.ch==*\n'(12)A.count(stn&digit,&letter,&other)count(&sti;&digit,&letter,&other)C.count(*sti;digit,lettei;other)D.count(*sti;*digit,*lettei;*other)试题4#include<stdio.h>main(){intflag=0,i;inta[7]={8,9,7,9,8,9,7);for(i=0;i<7;i++)if(a[i]==7){flagゴ;break;printf「%d\nハ,flag);flag二・1;for(i=6;i>=0;i-)if(a[i]==8){break;flag-i;printf(M%d\nM,nag);flag=O;for(i=0;i<7;i++)if(a[i]==9){printf(n%dH4);)printf(,,\nu);flag=O;for(i=0;i<7;i++)if(a[i]==7)flag=i;printf(H%d\nM^lag);(13)程序运行时,第1行输出(13) 〇A.2C.3B.0;D.6(14)程序运行时,第2行输出ー(14) 。A.4B.-1C.0D.5(15)程序运行时,第3行输出(15) 〇A.246B.4C.135D.6(16)程序运行时,第4行输出ー(16) 。A.246B.2C.135D.6试题5#include<stdio.h>intfl(intn){if(n==l)retum1;elsereturnfl(n-l)+n;)intf2(intn){switch(n){case1:case2:retum1;default:returnf2(n-l)+f2(n-2);voidf3(intn)printf(H%dM,n%10);if(n/10!=0)f3(n/10);voidf4(intn){if(n/10!=0)f4(n/10);printf("%d"m%10);)main()printf(u%d\n'\n(4));printグ%d\n”財(4));f3(123);printf("\iT);f4(123);printf(M\nH);(17)程序运行时,第1行输出(17)TOC\o"1-5"\h\zA. 10 B. 246 D. 1(18)程序运行时,第2行输出(18)A. 1 B. 3C. 2 D. 4(19)程序运行时,第3行输出(19)A. 123 B. 3C. 321 D. 1(20)程序运行时,第4行输出(20)A. 1 B. 123C. 3 D. 321试题6♦♦include<stdio.h>structnuminta;intb;);voidf(structnums[],intn)intindex,j,k;structnumtemp;for(k=0;k<n-l;k++)index=k;for(j=k+l;j<n;j++)if(s[j].b<s[index].b)index=j;temp=s[index];s[index]=s[k];s[k]=temp;ュ。intcount,i,k,m,n,no;structnums[100],*p;scanf("%d%d%d",&n,&m,&k);for(i=0;i<n;i++)s[i].a=i+l;s[i].b=0;P=s;count=no=0;while(no<n)if(p->b==0)count++;if(count==m)no++;p->b=no;count=0;p++;if(p=s+n)P=s;f(s,n);printf("%d:%d\n”,s[k-l].b,s[k-l].a)TOC\o"1-5"\h\z(21)程序运行时,输入543,输出ー(21) .A.3:5 B.2:3C.1:2 D.4:1(22)程序运行时,输入534,输出」 (22) .A.3:5 B.1:2C.4:3 D.4:2(23)程序运行时,输入752,输出」 (23) 0A.1:5 B.6:1C.2:3 D.2:4(24)程序运行时,输入424#,输出ー(24) .A.3:3 B.4:2C.2:4 D.4:1试题フ(28分)(1)定义函数fact(n)计算!!的阶乘:n!=l*2*……*n,函数形参!!的类型是int,函数类型是double。(2)定义函数cal(x,e)计算下列算式的值,直到最后一项的绝对值小于e,函数形参x和e的类型都是double,函数类型是doubleo要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x,n)计算x的n次基。(3)定义函数main(),输入两个浮点数x和e,计算并输出下列算式的值,直到最后ー项的值小于精度e,要求调用函数cal(x,e)计算下列算式的值。XXXS=X+—+—+—2! 3! 4!参考程序:#include<stdio.h>#include<math.h>(l)doublefact(intn){inti;doublet=l;for(i=l;i<=n;i++)t=t*i;returnt;}(2)doublecal(doublex,doublee)doublesum=0;inti=l;while(pow(x,i)/fact(i)>=e)(sum=sum+pow(x,i)/fact(i);i++;)returnsum;)(3)main(){doublex,e,sum;scanf(ハ%If%lfn,&x,&e);sum=cal(x,e);{printf(nsum=%fW'/um);)选着题:Adccbbaadcbaabedabebaded2008年秋浙江省高等学校

计算机等级考试试卷(二级C)

试题1(第小题3分,共12分)【程序说明】输入ー批学生的成绩,遇到负数表示输入结束,要求统计并各等级成绩的学生个数。成绩等级分为三级,分别为A(9〇〜10〇)、P(6〇〜80)和F(〇〜59)。运行示例:Enterscores:887168705981910607783-10A:1;P:8;F:2;[程序]#include<stdio.h>main(){intmark,a,p,f;a=p=f=0;printf("Enterscores:");scanf("%d",&mark);while(GJ)if(mark>=90)a++; (2) p++; (3) f++:(4)printf("A:%d;P:%d;F:%d;\n",a,p,O;【供选择的答案】A^mark>=0CA^mark>=0C、mark<=0A^elseif(mark>=60)C、else(mark>=60)A^else(mark<60)C、elseif(mark>0)或填elseif(mark>=0)(4)A、scanf("%d",mark);C、;案:Bmark>0D、mark<0答案:AB、if(mark>=60)D、if(mark<90)答案:AB、elseD、elseif(mark<=60)答案:BB、scanf("%d",&mark);D、mark=getchar();答试题2(第小题3分,共12分)【程序说明】求1〜999之间所有满足各位数字的立方之和等于它本身的数。例如153的秋位数字的立方和是!3+53+3;,=153运行示例:1153370371407[程序、]#include<stdio.h>main(){intdigit,j,sum,x;for(j=l;j<1000;j++){⑸do{⑺sum=sum+digit*digit*digit;x=x/10;}while](8));if(j==sum)printf("%d",sum);【供选择的答案】(5)A^sum=O;B、sum=l;C、sum=j;D、;答案:A(6)A、x=l;B、x=j;c、;D^x=sum;答案:BA^digit=x/10; B、digit=x;C、digit=x%10;D、; 答案:CA、x==0 B、j!0C、j==0 D、x!=0 答案:D试题3(第小题3分,共12分)【程序说明】输入10个整数,将它们从大到小排序后输出运行示例:Enter10integers:1098-9369100-102Aftersorted:100981096320-1-9[程序]#include<stdio.h>voidsort((10)){inti,index,k,t;for(k=0;k<n-l;k++){index=k;for(i=k+l;i<n;i++)if(a[i]>a[index])index=i;voidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;{inti,a[10];printf("Enter10integers:");for(i=0;i<10;i++)scanf("%d",&a[i]);:printf("Aftersorted:");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");【供选择的答案】

(9)A、voidswap(int*x,int*y)C>voidswap(int*x,int*y);*y);答案:C(10)A、int&a,intnC、int*a,inyn答案:C(11)A^swap(*a[index],*a[k])C、swap(index,k)swap(&a[index],&a[k])答案:(12)A、sort(a)C、sort(a[],10)答案:D试题4(第小题3分,共12分)阅读下列程序并回答问题,答案中挑选一个正确答案。[程序]程序1#include<stdio.h>B、B、;D^voidswap(int*x,B>int*a,int*nD、inta,int*nB、swap(a[index],a[k])D ヽB、sort{a[10]]D、sort(a,10)在每小题提供的若干可选{intj,k,sl,s2;sl=s2=0;for(j=0;j<=5;j++){sl++;for(k=1;k<=j;k++)s2++;printf("%d%d",sl,s2);程序2#include<stdio.h>main(){intj,k,sl,s2;sl=O;fbr(j=l;j<=5;j++){sl++;for(k=l,s2=0;k<=j;k++)s2++;printf("%d%d",sl,s2);程序3#include<stdio.h>main(){intj,k,sl,s2;sl=O;for(j=l;j<=5;j++){si++;for(k=1;k<=j;k++,s2=0)s2++;printf("%d%d",sl,s2);程序4#include<stdio.h>main(){intj,k,sl,s2;sl=s2=0;

for(j=l;j<=5;j++,sl=0){sl++;for(k=l;k<5j;k++)s2++;)printf("%d%d",sl,s2);)(13)程序1运行时。输出(13) 。答案:DA、015 B、50C、55 D、515(14)程序2运行时。输出 (14) 。答案:CTOC\o"1-5"\h\zA、0 15 B、 5 0C、5 5 D、 5 15(15)程序3运行时。输出 (15) 。答案:BA、0 15 B、 5 0C、5 5 D、 5 15(16)程序4运行时。输出 (16) .答案:AA、015 50C、C、55D、515试题5(第小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。【程序】程序1#include<stdio.h>main(){inti,m=15,y=-l;for(i=2;i<=m/2;i++)if(m%i==O)y=O;elsey=l;printf("%d",y);程序2#include<stdio.h>main(){inti,m=15,y=-l;for(i=2;i<=m/2;i++)if(m%i=O){y=O;break;}printf("%d",y);程序3#include<stdio.h>main(){inti,m=15,y=-l;for(i=2;i<=m/2;i++)if(m%i==O)break;if(i>m/2)y=l;elsey=0;printf("%d",y);程序4#include<stdio.h>main(){inti,m=15,y=-l;for(i=2;i<=m/2;i++)if(m%i==O){break;y=0;}

printf("%d",y);}(17)程序1运行时。输出(⑺ .答案:AA、1B、0C、15D、-1(18)程序I运行时。输出(18) 。答案:BA、1B、0C、15D、-1(19)程序I运行时。输出(19) 。答案:BA、1B、0C、15D、1(20)程序1运行时。输岀(20) 。答案:DA、1B、0C、15D、-1试题6(第小题3分洪12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。【程序】#include<stdio.h>main(){intk;charch,a[10],*s[10]={"one","two","three","four"};k=0;while((ch=getchar())!='\n'&&k<9)if(ch>'5'&&ch<'8')a[k++]=ch;a[k]=\0';for(k=0;a[k]!=ヘ〇';k++),““一(22)程序运行时,输入5678,输出(22)答案:DA、twothree B、twoCヽonefourthreeDヽfourthreetwoone(23)程序运行时,输入8561#,输出(23)答案:CA^twothree B、twoCヽonefourthreeDヽfourthreetwoone

(24)程序运行时,输入7902#,输出(24)答案:BtwoAヽtwothreetwoCヽCヽonefourthreeDヽfourthreetwoone(25)程序运行时,输入フ633#,输出(25)答案:BA>twothreeBA>twothreeB、twoCヽonefourthreeDヽfourthreetwoone试题7(28分)(1)定义函数fact(n)计算n的阶乘:n!=l*2* *n,函数的返回值类型是double〇(2)定义函数cal(e)计算下列算式的值,直到最后ー项的绝对值小于e,函数的返回值类型是doubleo(3)定义函数main。。输入正整数n,当精度e分别取值10-1、10-2、10-3……、10-n时,分别计算并输出下列式的值,直到最后ー项的绝对值小于精度e,以比较不同精度下算出的结果。要求调用函数cal(e)计算下列算式的。参考程序:#include<stdio.h>#include<math.h>(1)doublefact(intn){inti;doublet=l;for(i=l;i<=n;i++)t=t*i;doublesum=0,t=l;inti=l;while(l/t>=e){t=fact(i);sum=sum+1.0/t;i++;returnsum;}(3)main(){intn,i;while(scanf("%d",&n),n<=O);fbr(i=l;i<=n;i++){printf("i=%dl+l/2!+l/3!+ =%f\n",i,cal(pow(l0,-i)));2008年春浙江省高校计算机等级考试试卷(二级C)试题1(每小题3分,共12分)【程序说明】输入ー个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,……,数列的前两个数都是!,从第三项开始,每个数是前两个数之和。运行示例:Entern:101 1 2 3 5 813 21 34 55#include<stdio.h>main(){intcount,i,n,xl,x2,x;printf("Entern:");scanf("%d",&n);x1=x2=1;printf("%6d%6d",xl,x2);;for(i=l;i<=n-2;i++)I(2) ;printf("%6d",x);count++;if((3))printf("\n");count=0Dcount=0D、count=-1 答案:AB、x=x1+x2D、x=2 答案:BB^count%6!=0D、count/6!=0答案:CB、x2=xlD、x2=x答案:D,共12分)(4)【供选择的答案】⑴A、count=2C^count=lA、x=x1-x2C、x=x1A、count/6==0C^count%6==0A、x=x1+x2C、x=x2试题2(每小题3分【程序说明】输入2个正数m和n(l<=m<n<=500),统计交输出m和n之间素数的个数以及这些素数的和,要求定义和调用函数prime(m)判断m是否为素数,当m为素数返回1,否则返回0。素数就是只能被1和自身整除的正整,1不是素,2是素数。运行示例:Enterm,n:l10count=4,sum=17【程序】#include<stdio.h>#include<math.h>intprime(intm){inti,n;if(m—1)returnC5);n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0)retum(6jreturnC7);}main(){intcount=0,i,m,n,sum=0;printf("Enterm,n:");scanf("%d%d",&m,&n);for(i=m;i<=n;i++)

if((8)){sum+=i;count++;printf("count=%d,sum=%d\n",count,sum);)【供选择的答案】(5)A、1B、mCヽm==1D、0 答案:D⑹A、mB、1C、0D、n 答案:C⑺A、mB、1C、0D、i==n 答案:B⑻A、prime(i)!=0prime(i)==0C、!=prime(i)D、!prime(i)答案:A试题3(每小题3分,共12分)【程序说明】输入ー个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该结果。运行示例:Enterarray(2*3):3210-96-1max=a[0][2]=103 210-9 6-1#include<stdio.h>main(){intcol,row,i,j;inta[2][3];printf("Enterarray(2*3):");for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",(9));(10) ;for(i=0;i<2;i++)for(j=0;j<3;j++)if(a[i][j]>a[row][col])printf("max=a[%d][%d]=%d\n",row,col,a[row][col]);for(i=0;i<2;i++){for0=0;j<3;j++)printf("%4d",a[i][j]);(12)【供选择的答案】(9)A、&a[i]|j]B、&aQ][i]C、a[i][j]D、a[j][i]答案:A(10)A>row=col=2;B、row=col=0;C>a[row][col]=0;D、a[row][col]=-l;答案:B(11)A^row=j;col=i;B、a[row][col]=a[i][j];C、row=i;col=j;D、a[row][col]=a[j][i];答案:c(12)A、printf("\n”)};B、}printf("\n”);c、;D、printf("\n");}答案:D试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。【程序】#include<stdio.h>main(){intopl,op2,res;charopertor;scanf("%d",&opl);opertor=getchar();scanf("%d",&op2);case'+':res=op1+op2;break;case'-':res=opl-op2;break;case'*':res=opl*op2;break;case7':res=opl/op2;break;default:res=O;opl=res;opertor=getchar();)printf("%d\n",res);)(13)程序运行时,输入2*3-2=,输岀(13)A、6C、0(14)、(14)B、2D、4答案:D15+2/3=,输出程序运行时□,输入A、16B、15C、6D、5答案:D(15)>程序运行时,输入1+2*10-10/2=,输出(15)〇A、10B、16C、15D、25答案:A4、程序运行时,输入1+3*5/2-7=,黜_(16) .A、3B、1C、-2 D、-3 答案:A试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。【程序】#include<stdio.h>#defineMAXLEN80main(){intk=0,number=0;charstr[MAXLEN];while((str[k]=getchar())!='#')k++;str[k]=A0';for(k=0;str[k]!=、0';k++)if(str[k]>='0'&&str[k]<='9'llstr[k]=='A'llstr[k]=='B')if(str[k]>='0'&&str[k]<='9')number=number*12+str[k]-'O';elseif(str[k]=='A,llstr[k]=='B')number=number*12+str[k]-'A'+l0;elseル第15行elsebreak;〃第16行printf("%d\n",number);(17)、程序运行时,输入10#,输出(17)TOC\o"1-5"\h\zA、!6 B、10C、!2 D、1 答案:A(18)、程序运行时,输入laO#,超(⑻A、264 B、10C、I D、12 答案:C(19)、第16行改为“イ后,程序运行时,输入A・〇#,输出(19) .A、0 B、120C、!0 D、12 答案:B(20)、第!6行改为“elsebreak;"删除第!5行后,程序运行时,输入IbO#,输出(20) A、!0 B、12C、276 D、1 答案:B试题6(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。【程序】#include<stdio.h>#include<string.h>main(){char*s[2]={"****","****"};while(*s[l]!='\O'){printf("%s\n",s[O]+strlen(s[l])-l);s[l]++;(21)、程序运行时,第1行输出(19)A、****B、***C、**D、・ 答案:D(22)、程序运行时,第2行输出 (19)A、****Bヽ***C、**D、・ 答案:C(23)、程序运行时,第3行输出 (19)A、****B***c**D、・ 答案:B(24)、程序运行时,第4行输出 (19) .A、****B、***c**D、・ 答案:A试题7(28分)1、定义函数fact(n)计算n的阶乘:n!=l*2*3* *n,函数的返回值类型是double〇2、定义函数cal(m,n)计算累加和:s=m+(m+1)+(m+2) +n,函数的返回值类型是double〇3、定义函数main。,输入整数n,计算并输出下列算式的值。该算式中,每ー项的分子是累加和,要求调用函数cal(m,n)计算累加和;每一项的分母是阶乘,要求调用函数fact(n)计算n!〇y=1+(1+2)/2!+(1+2+3)/3!+ +(1+2+3+ n)/n!#include<stdio.h>doublefact(intn)〃第一题{inti;doublet=1;for(i=l;i<=n;i++)t*=i;3doublecal(intm,intn)〃第二题{doubles=0;inti;for(i=m;i<=n;i++)s+=i;3main。//第三题{intn,i;doubles=0;printf("请输入一个正整数:");while(scanf("%d",&n),n<=0);for(i=l;i<=n;i++)s+=cal(l,i)/fact(i);printf("%f",s);2007年秋浙江省高校

计算机等级考试试卷(二级C)试题1(每小题3分,共12分)程序说明输入2个整数lower和upper,输出一张华氏ー摄氏转换表,华氏温度的取值范围[lower,upper],每次增加2F,计算公式:c=5*(f-32)/9;式中c表示摄氏,f表示华氏。运行示例:Enterlower:30Enterupper:35fahrCelsius30-1.1320.0341.1程序:#include<stdio.h>

main(){intfahr,lower,upper;doubleCelsius;printf("Enterlower:");scanf("%d",&lower);printf("Enterupper:");scanf("%d",&upper);printf("fahrcelsius\n");for(fahr=lower;Q);(2) )(celsius=(3);printf("%d(4) \n",fahr,celsius);【供选择的答案】(1(1)A、fahr<=upperBヽfahr<upperC、C、fahr>=upperD、fahr>upper案:A(2)A、(2)A、fahr++B、fahr=fahr-2C、fahr+2D、fahr=fahr+2 答案:D(3)A、5*(fahr-32)/9B、(5.0/9.0)*(fahr-32)C、5/9*(fahr-32)D、5*fahr-32/9 答案:B(4)A、%6d B、%6.2fC、%6.1f D、%6.0f 答案:C试题2(每小题3分,共12分)程序说明输入2个正数a和n,求a+aa+aaa+ +a(n个a)这和,要求定义并调用函数fn(a,n),这它的功能是返回aa…a(n个a)。例如fn(3,2)的返回是33。运行示例:Entera:2Entern:3sum=246#include<stdio.h>main(){inti,n;longa,sn;longfn(longa,intn);printf("Entera:");scanf("%ld",&a);printf("Entern:");scanf("%d",&n);⑸for(i=l;i<=n;i++)printf("sum=%ld\n",sn);longfn(longa,intn){inti;longtn=0;:一tn=tn+a;

(8)【供选择的答案】A^sn=O;C、sn=l;A、sn=sn+fn(a,i);C、sn=sn+fn(i,a);案:AA、tn=tn*10C、sn=tn*10;(8)A、return;C、returna;案:D,共12分)试题3,共12分)程序说明B、;D^sn=a; 答案:AB、sn=sn+fn(a,n);DB、;D^sn=a; 答案:AB、sn=sn+fn(a,n);D、sn=sn+fn(i,n);答B、a=a*10;D^sn=sn+a*10 答案:BB、returnsn;D、returntn; 答运行示例1:Enterastring:MadamI'mAdamYes运行示例2:Enterastring:elephantNo程序#include<stdio.h>(9)main(){intflag,i,k,length;charstr[8O];printf("Enterastring:");gets(str);i=k=0;if(isupper(str[i]))str[i]=tolower(str[i]);if(isdigit(str[i])llisalpha(str[i])){£LQ) k++;二length=k;flag=l;for(k=0;k<=length/2;k++)if(str[k]!=str[length-k-l])(12)break;if(flag)printf("yes\n");elseprintf("no\n");【供选择的答案】A、ctype.h B、string.h答案:ACヽstdio.hA、i++;Cヽstr[i]=str[k];答案:BA、str[i]=,\0,;C、str[k]=,\0,;答案:CA、flag=l;C、;答案:B试题4(每小题3分,共12阅读下列程序并回答问题,案中挑选ー个正确答案。[程序]#include<stdio.h>main(){inti,m;scanf("%d",&m);Dヽmath.hBヽstr[k]=str[i];D、;B、str[i-l]=,\0,;D、;Bヽflag=0;Dヽcontinue;分)在每小题提供的若干可选答for(i=2;i<=m/2;i++)if(m%i==O)(printf("%d#",i);break;〃第8行)printf("%d",i);}(13)、程序运行时,输入5,输出。TOC\o"1-5"\h\zA、3 B、3#3C、3#4 D、3#5 答案:A(14)、程序运行时,输入9,输出。A、3 B、3#3C、3#4 D、3#5 答案:B(15)、将程序第8行改为“continue;”程序运行时,输入9,输出〇A、3 B、3#3C、3#4 D、3#5 答案:D(16)、将程序第8行改为程序运行时,输入9,输出 A、3 B、3#3C、3#4 D、3#5 答案:D试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。[程序]#include<stdio.h>inti,j,temp;inta[3][3]={1,2,34,5,6,7,8,9);voidf(int*x,int*y);for(i=0;i<3;i++)for(j=0;j<3;j++)if(i<j)f(&a国[j],&a皿i]);〃第8行for(i=0;i<3;i++)

for(j=0;j<3;j++)printf("%2d",a[i|Lj]);)voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}(17)程序的输出是〇A、32164987 B、789456123C、!23456789 D、I47258369答案:D(18)、第8行改为皿,&a|j]国);"后,程序的输出。A、32164987 B、789456123C、!23456789 D、147258369答案:C(19)、第8行改为“if(iv2)f(&a[i][j],&a[2-i巾]);"后,程序的输出0A、A、32164987B、789456123C、123456789 D、147258369答案:B(20)、第8行改为“if(j<2)f(&a[i皿,&a[i][2-j]);"后,程序的输出〇A、32164987 B、789456123C、123456789 D、147258369答案:A试题6(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。[程序]#include<stdio.h>inti,xl,x2;inta[5]={l,2,3,4,5);voidfl(intx,inty),f2(int*x,int*y);xl=x2=0;for(i=0;i<5;i++)if(a[i]>a[xl])xl=i;if(a[i]<a[x2])x2=i;f2(&a[xl],&a[0]);for(i=0;i<5;i++)printf("%2d",a[i]);printf("\n");fl(a[x2],a[l]);for(i=0;i<5;i++)printf("%2d",a[i]);printf("\n");f2(&a[x2],&a[4]);for(i=0;i<5;i++)printf("%2d",a[i]);printf("\n");fl(a[xl],a[3]);for(i=0;i<5;i++)printf("%2d",a[i]);printf("\n");voidf2(int*x,int*y){intt;

t=*x;*x=*y;*y=t;voidfl(intx,inty){intt;t=x;x=y;y=t;(2D、程序运行时,第1行输出 0A、12345B、21345C、12354D、52341答案:D(22)、程序运行时,第2行输出 0A、12345B、21345C、12354D、52341答案:D(23)、程序运行时,第3行输出 0A、12345B、21345C、12354D、52341答案:A(24)、程序运行时,第4行输出 0A、12345B、21345C、12354D、52341答案:A试题7(28分)从n个不同的元素中,每一次取出k个不同的元素,不管其顺序全并面一组,称为组合。组合种数的计算公式如下:ゼ=加"(n-ky.kl1、定义函数fact(n)计算n的阶乘:n!=l*2*3* *n,函数的返回值类型是double。2、定义函数cal(k,n)计算组合种数c/,函数的返回值类型是double»要求调用fact(n)计算n的阶乘。3、定义函数main。,输入整数n,计算并输出n的所有组合数d(l<kWn),要求调用函数cal(k,n)计算组合种数c:。#include<stdio.h>doublefact(intn)〃第一题{inti;doublet=1;for(i=l;i<=n;i++)t*=i;returnt;doublecal(intk,intn)//第二题{doubles=0;s=fact(n)/(fact(n-k)*fact(k));3main。//第三题{intn,i;doubles=0;printf("请输入一个正整数:");while(scanf("%d",&n),n<=0);,…s=cal(i,n);;printf("%f\n",s);2007年春浙江省高校输入ー个正整数,按照从高位到低位输出各位数字。运行示例:Enteraninteger:1902thedigitsare:l902#include<stdio.h>voidniain(){intdigit,number,power,t;printf("Enteraninteger:H);scanf(M%dM,&number);number=number<O?"number:number;power=l;(1)while((2) ){power*=10;t/=10;printfC'thedigitsare:");while((3)){digit=number/power;printf(M%dn,digit);(4)power/=10;【供选择的答案】(1)A、t=l;B、t=number;C>;D、number=l;(2)A>t>=10B、power>=100C>t!=0D、number!=0(3)A、power==0B、digit!=OC、number!=0D、power>=l(4)A、number/=power;B、number%=10;Cnnumber%=power;D、number/=10;BAD(C)C试题2(第小题3分,共12分)【程序说明】连续输入ー批学生的成绩,直到输入成绩的数量超过50或者输入成绩

不是有效成绩(有效成绩为〇・100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n)在有n个元素的一维数组array中找出并返回最大值。运行示例:entermarks:90807765-1max=90#include<stdio.h>#deHneMAXNUM50intgetmax((5) );intk,max;max=arrav[0](6)for(k=l;k<n;k++)if(max<array[k])max=array[k];returnmax;voidmain(){intk,x;intmark[MAXNUM];printf(Hentermarks:**);k=0;scanf(**%d**,&x);while((7));{mark[k++]=x;scanf(**%d**,&x);if(k>0)printf(**max=%d\n**,getmax((8))):elseprintf(**Nomarks!\n**);【供选择的答案】⑸A、C、(6)A⑸A、C、(6)A、C、⑺A、intn;intarrayf]int*arraymax=0;max=array[0]B、voidD、intarray[],intnB、;D、max=array[n];k<MAXNUMIIx>=0&&x<=100答案:D答案:CB、k<MAXNUM&&x>=0&&x<=100C>k>MAXNUM&&x>=0llx<=100答案:BD、答案:B(8)A、mark,k B、markC、mark)] D、mark,n 答案:A试题3(第小题3分,共12分)【程序说明】输入ー个4行4列的矩阵,计算并输出矩阵除四边以外的所有元素之和sumL再计算和输岀该矩阵主对角线以上(含主结角线)的所有元素之和sum2,主对角线为从矩阵左上角到右下角的连线。运行示例:enteranarray:123456 78910111213141516sum1=34sum2=70#include<stdio.h>voidmain(){intj,k,sum;inta[4][4]={U,3,4,5,6,7,8,9,10,ll,12,13,14,15,16);printf(uenteranarray:\nM);for(j=0;j<4;j++)for(k=0;k<4;k++)//scanf(H%dM,&a[j][k]);sum=0;for(j=0;j<4;j++)for(k=0;k<4;k++)if((9) )sum+=a[j][k];printf(Hsuml=%d\nn,sum);(10)for(j=0;j<4y++)for(Qlj; (12) ;k++)sum+=a[j][k];printf(Hsum2=%d\nn,sum);【供选择的答案】

(9)A、j!=3&&k!=3&&j!=0&&k!=0B、j!=3&&k!=3llj!=0&&k!=0C、j!=3llk!=3&&j!=0llk!=0D、j!=3&&k!=3llj!=0&&k!=0 答案:A(10)A>suml=0;C>sum2=0;(ll)A^k=0C、k=l(12)A、k<=jc、k>jB>sum=0;D,; 答案:BB、k=jD、k=3 答案:BB、k>0D、k<4 答案:D试题4(第小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。[程序]#include<stdio.h>voidmain(){intij,k;scanf(M%dM,&i);j=k=O;if((i/10)>0)〃第7行j=i;if((i!=0)&&0==0))k=i;elsek=-l;〃第12行printf("j=%d,k=%d\n"j,k);(13)程序运行时,输入5,输出(13) 。A、j—09k—5C、j=0,k=-l(14)程序运行时,输入99,A、j=99,k=-lC、j=0,k=99B、j=5,k=5D、j=5,k=-l 答案:A输出 (14) :B、j=0,k=-lD、j=99,k=99 答案:A(15)将第12行改为k=-l;j=i/10:,输入99,输出(15)A、j=99,k=-lC>j=99,k=99B、j=9,k=99D、j=9,k=-I 答案:D(16)将第7行改为“if((i/10)>0){“第12行改为“k=-7}“输入5,输出(16)〇A、j=0,k=-l B、j=0,k=0C、j=5,k=5 D、j=5,k=-l 答案:B试题5(第小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。[程序]#include<stdio.h>intk=l;voidfun();voidmain(){intj;for(j=0;.j<2;j++)fun();printf(,rk=%d,\k);)voidfun(){intk=l;//第!1行printf(Hk=%d,M,k);k++;)TOC\o"1-5"\h\z(17)程序的输出是 (17) 0A、k=Lk=2,k=3 B、k=l,k=2,k=lC、k=l,k=l,k=2 D>k=l>k=l,k=l答案:D(18)将第11行改为staticintk=l5程序的输出是(18) 。A、k=l,k=l,k=l B、k=l,k=l,k=2C>k=l>k=2,k=l D、k=l>k=2,k=3答案:c(19)将第11行改为k=l:程序的输出是 (19) 。A、k=l,k=2,k=l B、k=l,k=l,k=lC>k=l,k=l,k=2 D、k=l,k=2,k=3答案:C(20)将第11行改为;程序的输出是(20) 0A、k=l,k=l9k=2 B、k=l,k=2,k=3C>k=l,k=l»k=l D、k=l,k=2,k=l答案:B试题6(第小题3分洪12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选ー个正确答案。[程序]#include<stdio.h>structst{charc;char*s;};char*f(structstt){intk=0;while(t.s[k]!=,\O,){if(t,s[k]==t.c)returnt.s+k;k++;)returnt.s;)voidmain(){intk;structsta[4]={{TJ123"},{'2'J321''},{'3'J123"},{'4'J321”}};for(k=0;k<4;k++)printf(,,%s\nn,f(a[k]));}TOC\o"1-5"\h\z(21)程序运行时,第1行输出 (21) -A, 321 B, 21C、123 D, 12 答案:C¢22)程序运行时,第1行输出 (22) 。A、 21 B、 12C、3 D、1 答案:A¢23)程序运行时,第1行输出 (23) -A, 3 B、 123C、1 D, 32I 答案:A(24)、程序运行时,第1行输出(24) 。A、 123 B、 1C、3 D、321 答案:D试题7(28分)某某客户购房办理商业贷款,选择了按月等额本息还款法,在贷款本金loan和月利率rate一定的情况下,住房贷款的月还款额money取决于还款月数month,计算公式如下:money=loanxrate(\+rateymoney=loanx(1)定义函数cal_power(x,n)计算x的n次零(即xn),函数的返回值是double;(2)定义函数caLmoney(loan,rate,month)计算月还款额,函数的返回值是double,要求调用函数cal_power计算x的n次幕;(3)定义函数main。,输入量贷款本金loan和月利率rate,输出还款年限.月还款客表,还款年限是5~30,输出时分别精确到年和元。要求调用函数cal_money计算月还款额。程序:#include<stdio.h>doublecal_power(floatxjntn)inti;floatpower=l;for(i=l;l<=n;i++)power*=x;returnpower;doublecal_money(doubleloan,doublerate,intmonth){doublemoney;money=loan*cal_power(l+rate,month)/(cal_power(l+rate,month)-l);returnmoney;main。{floatloan,rate,money;intmonth,i;printf(”请输入贷款本金loan和月利率rate:M);scanf("%f,%f",&loan,&rate);printf("还款年限 月还款额\n”);for(i=5;i<=10;i++){money=cal_money(loan,rate,i*12);printf(M%d %AnH,i,money/(i*12));2006年秋浙江省高等学校

计算机等级考试试卷(二级C)说明:⑴考生应将所有试题的答案填写在答卷上。其中试题ー到试题六请在答卷上的各小题选项的对应位置上填“ノ⑵请将你的准考证号的后五位填写在答卷右下角的指定位置内;⑶考试时间为90分钟。试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选ー个正确答案。【程序说明】输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。运行示例:Entercharacters:f(x,y)=3x+5y-10letter=5,digit=4,other=6【程序】♦include<stdio.h>voidmain(){intdigit,i,letter,other;(1)ch;digit=letter=other=0;printf("Entercharacters:n);while( (2) !=1\n1)if((3) )letter++;(ch>=’〇'&&ch<='9')digit++;elseother++;printf("letter=%d,digit=%d,other=%d\n",letter,digit,other);【供选择的答案】A、・ B、floatC、double D、charA、(ch=getchar())B、ch=getchar()C、getchar(ch) D、putchar(ch)A、(ch>=1a,&&ch<=*z1)&&(ch>=1A,&&ch<=Z)B、(ch>=*a1&&ch<=1z1)||(ch>=*A1&&ch<=Z)C>ch>=1a1&&ch<=*Z*D、ch>='A'&&ch<=1z1A、if B、elseC、elseif D、ifelse试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选ー个正确答案。【程序说明】输入ー个整数,将它逆序输出。要求定义并调用函数reverse(longnumber),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。运行示例:Enteraninteger:-123Afterreversed:-321【程序】♦include<stdio.h>voidmain(){longin;longreverse(longnumber);printf(nEnteraninteger:M);scanf("吿Id”,&in);printf(nAfterreversed:%ld\nMz(5) );longreverse(longnumber){intflag;(6) ;flag=number<0?-1:1;if((7))number=-number;while(number!=0){res=(8);

number/=number/=10;)returnflag*res;}【供选择的答案】A、reverse()C、reverse(in)A、res=0C、longres=0A、number>0C、number!=0A、number%10number/10试题3(每小题3分,共12分)B、inreverseB>longresD、resB、number<0D、number==0Bnres*10+number%10D、res*10+number/10阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选ー个正确答案。【程序说明】输入ー个3行2列的矩阵,分别输出各行元素之和.运行示例:Enteranarray:63-8312sumofrow0is9sumofrow1is-7sumofrow2is15【程序】♦include<stdio.h>voidmain(){intj,k,sum=0;inta[3][2];printf("Enteranarray:\nn);for(j=0;j<3;j++)for(k=0;k<2;k++)scanfじ%d”, (9) );for(j=0;j<3;j++){(10)for(k=0;k<2;k++)sum=(11);printf(nsumofrow%dis%d\n*'z(12)sum);})【供选择的答案】(9)A、a[j][k]B、a[k][j]C、&a[j][k]D>&a[k][j](10)A、;B、sum=-1;C、sum=1;D、sum=0;(11)A、sum+a[j][k]B、sum+a[;C、sum+a[k][k]D、0(12)A、kB、jC、0D、1试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选・个正确答案。【程序】♦include<stdio.h>voidmain(){intk;for(k=5;k>0;k—){if(k==3)continue;/*第6行・/printf(“吿d”,k);TOC\o"1-5"\h\z(13)程序的输出是 (13) A>54321 B、5421 C、54 D>3(14)将第6行中的continue改为break后,程序的输出是(14)〇A、54321B>5421 C、54 D、3(15)将第6行中的continue删除(保留分号)后,程序的输出是

TOC\o"1-5"\h\z.A、54321 B、5421 C、54 D、3(16)将第6行全部删除后,程序的输出是 (16) 。A、54321 B、5421 C、54 D、3试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选ー个正确答案。【程序】#include<stdio.h>voidmain(){charc,s[80]="HappyNewYear**;inti;voidf(char*s,charc);c=getchar();f(s,c);puts(s);}voidf(char*s,charc)intk=0,j=0;while(s[k]!='、0'){if(s[k]!=c){s[j]=s[k];j++;}k++;}s[j]='\0';HappyNewYearCHappyNewYearC、HayNewYearHppyNewYerD、HappyNwYar(17)程序运行时,输入字母a,输出(17) 〇A、HappyNewYearC、HayNewYearB、HppyNewD、HappyNw(18)程序运行时,输入字母e,输岀(18) 〇A、HappyNewYearB、HppyNewC、HayNewYearD、HappyNw(19)程序运行时,输入字母p,输出(19)YerYarYerYar

(20)程序运行时,输入字母b,输出(20) .A、HappyNewYear B、HppyNewYerC、HayNewYear D、HappyNwYar试题6(每小题3分,共12分)♦include<stdio.h>structst{intx,y,z;};voidf(structst*t,intn);voidmain(){intk,n;structsttime;scanf(n%d%d%d%dn,&time.x,&time.y,&time・z,&n);f(&time,n);printf(M%d:%d:%d\nHztime.x,time.y,time.z);}voidf(structst*t,intn)t->z=t->z+n;if(t->z>=60){t->y=t->y+t->z/60;t->z=tー>z吿60;if(t->y>=60){t->x=t->x+t->y/60;t->y=t->y%60;if(t->x>=24)t->x=t->x%24;(21)程序运行时,输入12125010,if(t->x>=24)t->x=t->x%24;(21)程序运行时,输入12125010,输出(21)A、12:12:0B、12:12:50C、12:12:6012:13:0(22)程序运行时,输入12123010,输出(22)A、12:12:0A、12:12:0B、12:12:10C、12:12:3012:12:40(23)程序运行时,输入22593030,输出(23)12:12:40(23)程序运行时,输入22593030,输出(23)A、23:0:0B、22:59:60C、22:59:30D、22:0:0(24)程序运行时,输入23590300,输出(24)〇A、0:4:0B、23:59:300C、23:59:00Dヽ23:0:0试题7(14分)编写程序,输入100个学生的英语成绩,统计并输出该门课程的平均分以及不及格学生的人数。试题8(14分)编写程序,输入ー个正整数n,计算并输出下列算式的值。耍求定义和调用函数total(n)计算1+1/2+1/3+……+l/n,函数返回值的类型是double〇<-1.111S=)——=1H 1 F...4——台k23n2006年秋浙江省高等学校计算机等级考试答案(二级C)试题1-6123456789101112DABCCCBBCDAB131415161718192021222324BCADBDCADDAA试题7(14分)编写程序,输入100个学生的英语成绩,统计并输出该门课程的平均分以及不及格学生的人数。♦include<stdio.h>voidmain()(intcount,k,a[100];doubleaver;for(k=0;k<100;k++)scanf(M%dM,&a[k]);aver=0;for(k=0;k<100;k++)aver+=a[k];count=0;for(k=0;k<100;k++)if(a[k]<60)count++;printf(naver=%f\nMzaver);printf(nfail%d\n",count);试题8(14分)编写程序,输入ー个正整数n,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3++l/n,函数返回值的类型是double。s=ミ丄=1+丄+丄+…+丄气k23n♦include<stdio.h>voidmain(){intn;doubletoat1(intn);scanf("吿d”,&n);printf(nsum=%f\nMztotal(n));)doubletotal(intn){intk;doublesum;sum=0;for(k=1;k<=n;k++)sum=sum+1.0/k;returnsum;2006年春浙江省高等学校计算机等级考试试卷(二级C)说明:⑴考生应将所有试题的答案填写在答卷上。其中试题1〜试题6,请在答卷上各小题正确选项的对应位置处填“イ”;⑵请将你的准考证号的后五位填写在答卷右下角的指定位置内;⑶考试时间为

温馨提示

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

评论

0/150

提交评论