浙江省二级C语言考试真题(2007年-2010年共8份).doc_第1页
浙江省二级C语言考试真题(2007年-2010年共8份).doc_第2页
浙江省二级C语言考试真题(2007年-2010年共8份).doc_第3页
浙江省二级C语言考试真题(2007年-2010年共8份).doc_第4页
浙江省二级C语言考试真题(2007年-2010年共8份).doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

2007年春浙江省高校计算机等级考试试卷(二级C)试题1(每小题3分,共12分)程序说明输入一个正整数,按照从高位到低位输出各位数字。运行示例:Enter an integer:1902the digits are:1 9 02#include void main() int digit,number,power,t; printf(Enter an integer:); scanf(%d,&number); number=number=10B、power=100C、t!=0D、number!=0答案:A(3)A、power=0B、digit!=0C、number!=0D、power=1答案:D(4)A、number/=power;B、number%=10;C、number%=power;D、number/=10;答案:C试题2(第小题3分,共12分)【程序说明】连续输入一批学生的成绩,直到输入成绩的数量超过50或者输入成绩不是有效成绩(有效成绩为0-100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n)在有n个元素的一维数组array中找出并返回最大值。运行示例:enter marks:90 80 77 65 1max=90#include #define MAXNUM 50int getmax( (5) ) int k,max; (6) for(k=1;kn;k+) if(max0) printf(max=%dn,getmax( (8) ); else printf(No marks!n);【供选择的答案】(5)A、int n;int arrayB、voidC、int *arrayD、int array,int n答案:D(6)A、max=0;B、;C、max=array0D、max=arrayn;答案:C(7)A、k=0&x=100B、k=0&xMAXNUM&x=0|xMAXNUM|x=0|x=100答案:B(8)A、mark,kB、markC、markD、mark,n答案:A试题3(第小题3分,共12分)【程序说明】输入一个4行4列的矩阵,计算并输出矩阵除四边以外的所有元素之和sum1,再计算和输出该矩阵主对角线以上(含主结角线)的所有元素之和sum2,主对角线为从矩阵左上角到右下角的连线。运行示例:enter an array:1 2 3 45 6 7 89 10 11 1213 14 15 16 sum1=34sum2=70#include void main()int j,k,sum;int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; printf(enter an array:n); for(j=0;j4;j+) for(k=0;k4;k+) scanf(%d,&ajk); sum=0; for(j=0;j4;j+) for(k=0;k4;k+) if( (9) ) sum+=ajk; printf(sum1=%dn,sum); (10) for(j=0;j4;j+) for( (11) ; (12) ;k+) sum+=ajk; printf(sum2=%dn,sum);【供选择的答案】(9)A、j!=3&k!=3&j!=0&k!=0B、j!=3&k!=3|j!=0&k!=0C、j!=3|k!=3&j!=0|k!=0D、j!=3&k!=3|j!=0&k!=0答案:A(10)A、sum1=0;B、sum=0;C、sum2=0;D、;答案:B(11)A、k=0B、k=jC、k=1D、k=3答案:B(12)A、k0C、kjD、k4答案:D试题4(第小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。程序#include void main()int i,j,k;scanf(%d,&i);j=k=0;if(i/10)0) /第7行j=i; if(i!=0)&(j=0) k=i; else k=-1;/第12行 printf(j=%d,k=%dn,j,k);(13)程序运行时,输入5,输出 (13) 。A、j=0,k=5B、j=5,k=5C、j=0,k=-1D、j=5,k=-1答案:A(14)程序运行时,输入99,输出 (14) 。A、j=99,k=-1B、j=0,k=-1C、j=0,k=99D、j=99,k=99答案:A(15)将第12行改为k=-1;j=i/10;,输入99,输出 (15) 。A、j=99,k=-1B、j=9,k=99C、j=99,k=99D、j=9,k=-1答案:D(16)将第7行改为”if((i/10)0)“第12行改为”k=-1;”输入5,输出 (16) 。A、j=0,k=-1B、j=0,k=0C、j=5,k=5D、j=5,k=-1答案:B试题5(第小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。程序#include int k=1;void fun();void main() int j;for(j=0;j2;j+) fun(); printf(k=%d,k);void fun()int k=1; /第11行 printf(k=%d,k); k+;(17)程序的输出是 (17) 。A、k=1,k=2,k=3B、k=1,k=2,k=1C、k=1,k=1,k=2 D、k=1,k=1,k=1答案:D(18)将第11行改为static int k=1; 程序的输出是 (18) 。A、k=1,k=1,k=1B、k=1,k=1,k=2C、k=1,k=2,k=1 D、k=1,k=2,k=3答案:C(19) 将第11行改为k=1; 程序的输出是 (19) 。A、k=1,k=2,k=1B、k=1,k=1,k=1C、k=1,k=1,k=2 D、k=1,k=2,k=3答案:C(20) 将第11行改为; 程序的输出是 (20) 。A、k=1,k=1,k=2B、k=1,k=2,k=3C、k=1,k=1,k=1 D、k=1,k=2,k=1答案:B试题6(第小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。程序#include struct stchar c;char *s;char *f(struct st t) int k=0;while(t.sk!=0)if(t.sk=t.c)return t.s+k;k+;return t.s;void main()int k; struct st a4=1,123,2,321,3,123,4,321; for(k=0;k4;k+) printf(%sn,f(ak);(21)程序运行时,第1行输出 (21) 。A、321B、21C、123D、12答案:C(22)程序运行时,第1行输出 (22) 。A、21B、12C、3D、1答案:A(23)程序运行时,第1行输出 (23) 。A、3B、123C、1D、321答案:A(24)、程序运行时,第1行输出 (24) 。A、123B、1C、3D、321答案:D试题7(28分)某某客户购房办理商业贷款,选择了按月等额本息还款法,在贷款本金loan和月利率rate一定的情况下,住房贷款的月还款额money取决于还款月数month,计算公式如下:(1)定义函数cal_power(x,n)计算x的n次幂(即xn),函数的返回值是double;(2)定义函数cal_money(loan,rate,month)计算月还款额,函数的返回值是double,要求调用函数cal_power计算x的n次幂;(3)定义函数main(),输入垡贷款本金loan和月利率rate,输出还款年限-月还款客表,还款年限是530,输出时分别精确到年和元。要求调用函数cal_money计算月还款额。程序:#include double cal_power(double x,int n) int i; double power=1; for(i=1;i=n;i+) power*=x; return power;double cal_money (double loan,double rate,int month)double money; money=loan*cal_power(1+rate,month)/(cal_power(1+rate,month)-1); return money;main()double loan,rate,money; int month,i; printf(请输入贷款本金loan和月利率rate:); scanf(%lf,%lf,&loan,&rate); printf(还款年限 月还款额n); for(i=5;i=30;i+) money= cal_money(loan ,rate,i*12); printf(%d %fn,i,money/(i*12); 2007年秋浙江省高校计算机等级考试试卷(二级C)试题1(每小题3分,共12分)程序说明输入2个整数lower和upper,输出一张华氏-摄氏转换表,华氏温度的取值范围lower,upper,每次增加2F,计算公式:c=5*(f-32)/9;式中c表示摄氏,f表示华氏。运行示例:Enter lower:30Enter upper:35fahr celsius30 -1.132 0.034 1.1程序:#include main()int fahr,lower,upper; double celsius; printf(Enter lower:); scanf(%d,&lower); printf(Enter upper:); scanf(%d,&upper); printf(fahr celsiusn); for(fahr=lower; (1) ; (2) ) celsius= (3) ; printf(%d (4) n,fahr,celsius); 【供选择的答案】(1)A、fahr=upperB、fahr=upperD、fahrupper答案: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、%6dB、%6.2fC、%6.1fD、%6.0f答案:C试题2(每小题3分,共12分)程序说明输入2个正数a和n,求a+aa+aaa+a(n个a)这和,要求定义并调用函数fn(a,n),这它的功能是返回aaa(n个a)。例如fn(3,2)的返回是33。运行示例:Enter a:2Enter n:3sum=246#include main()int i,n;long a,sn;long fn(long a,int n);printf(Enter a:);scanf(%ld,&a);printf(Enter n:);scanf(%d,&n); (5) for(i=1;i=n;i+) (6) printf(sum=%ldn,sn);long fn(long a,int n)int i;long tn=0;for(i=1;i=n;i+) tn=tn+a; (7) (8) 【供选择的答案】(5)A、sn=0;B、;C、sn=1;D、sn=a;答案:A(6)A、sn=sn+fn(a,i);B、sn=sn+fn(a,n);C、sn=sn+fn(i,a);D、sn=sn+fn(i,n);答案:A(7)A、tn=tn*10B、a=a*10;C、sn=tn*10;D、sn=sn+a*10答案:B(8)A、return;B、return sn; C、return a;D、return tn; 答案:D试题3(每小题3分,共12分)程序说明 输入一行以回车结束的字符串(少于80个字符),删除其中的英文字母和数字字符以外的其它字符,再判断字符串是否对称(不区分大小写)。运行示例1:Enter a string:Madam Im AdamYes运行示例2:Enter a string:elephantNo程序#include (9) main() int flag,i,k,length; char str80; printf(Enter a string:); gets(str); i=k=0; while(stri) if(isupper(stri)stri=tolower(stri); if(isdigit(stri)|isalpha(stri) ) (10) k+; i+; (11) length=k; flag=1; for(k=0;k=length/2;k+) if(strk!=strlength-k-1) (12) break; if(flag)printf(yesn); else printf(non); 【供选择的答案】(9)A、ctype.h、string.h答案:A、stdio.h、math.h(10)A、i+;、strk=stri;、stri=strk;、;答案:B(11)A、stri=0;、stri-1=0;、strk=0;、;答案:C(12)A、flag=1;、flag=0;、;、continue;答案:B试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。程序#include main()int i,m;scanf(%d,&m); for(i=2;i=m/2;i+) if(m%i=0) printf(%d#,i); break;/第8行 printf(%d,i);(13)、程序运行时,输入5,输出 。A、3B、3#3C、3#4D、3#5 答案:A(14)、程序运行时,输入9,输出 。A、3B、3#3C、3#4D、3#5答案:B(15)、将程序第8行改为“continue;”程序运行时,输入9,输出 。 A、3B、3#3C、3#4D、3#5答案:D(16)、将程序第8行改为“;”程序运行时,输入9,输出 。A、3B、3#3C、3#4D、3#5答案:D试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。程序#include main() int i,j,temp; int a33=1,2,3,4,5,6,7,8,9 ; void f(int *x,int *y); for(i=0;i3;i+) for(j=0;j3;j+) if(ij) f(&aij,&aji);/第8行 for(i=0;i3;i+) for(j=0;j3;j+) printf(%2d,aij);void f(int *x,int *y)int t; t=*x;*x=*y;*y=t; (17)程序的输出是 。A、3 2 1 6 4 9 8 7B、7 8 9 4 5 6 1 2 3C、1 2 3 4 5 6 7 8 9D、1 4 7 2 5 8 3 6 9答案:D(18)、第8行改为“f(&aij,&aji);”后,程序的输出 。A、3 2 1 6 4 9 8 7B、7 8 9 4 5 6 1 2 3C、1 2 3 4 5 6 7 8 9D、1 4 7 2 5 8 3 6 9答案:C(19)、第8行改为“if(i2)f(&aij,&a2-ij);”后,程序的输出 。A、3 2 1 6 4 9 8 7B、7 8 9 4 5 6 1 2 3C、1 2 3 4 5 6 7 8 9D、1 4 7 2 5 8 3 6 9答案:B(20)、第8行改为“if(j2)f(&aij,&ai2-j);”后,程序的输出 。A、3 2 1 6 5 4 9 8 7B、7 8 9 4 5 6 1 2 3C、1 2 3 4 5 6 7 8 9D、1 4 7 2 5 8 3 6 9答案:A试题6(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。程序#include main() int i,x1,x2; int a5=1,2,3,4,5; void f1(int x,int y),f2(int *x,int *y); x1=x2=0; for(i=0;iax1) x1=i; if(aiax2) x2=i; f2(&ax1,&a0); for(i=0;i5;i+) printf(%2d,ai); printf(n); f1(ax2,a1); for(i=0;i5;i+) printf(%2d,ai); printf(n); f2(&ax2,&a4); for(i=0;i5;i+) printf(%2d,ai); printf(n); f1(ax1,a3); for(i=0;i5;i+) printf(%2d,ai); printf(n);void f2(int *x,int *y)int t; t=*x;*x=*y;*y=t; void f1(int x,int y)int t; t=x;x=y;y=t; (21)、程序运行时,第1行输出 。A、1 2 3 4 5B、2 1 3 4 5C、1 2 3 5 4D、5 2 3 4 1答案:D(22)、程序运行时,第2行输出 。A、1 2 3 4 5B、2 1 3 4 5C、1 2 3 5 4D、5 2 3 4 1答案:D(23)、程序运行时,第3行输出 。A、1 2 3 4 5B、2 1 3 4 5C、1 2 3 5 4D、5 2 3 4 1答案:A(24)、程序运行时,第4行输出 。A、1 2 3 4 5B、2 1 3 4 5C、1 2 3 5 4D、5 2 3 4 1答案:A试题7(28分) 从n个不同的元素中,每一次取出k个不同的元素,不管其顺序全并面一组,称为组合。组合种数的计算公式如下:1、定义函数fact(n)计算n的阶乘:n!=1*2*3*n,函数的返回值类型是double。2、定义函数cal(k,n)计算组合种数,函数的返回值类型是double,要求调用fact(n)计算n的阶乘。3、定义函数main(),输入整数n,计算并输出n的所有组合数(1kn), 要求调用函数cal(k,n)计算组合种数。#include double fact(int n) /第一题int i; double t=1; for(i=1;i=n;i+) t*=i; return t;double cal(int k,int n) /第二题double s=0; s=fact( n)/(fact(n-k)*fact(k); return s;main() /第三题int n,i;double s=0; printf(请输入一个正整数:); while(scanf(%d,&n),n=0); for(i=1;i=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。运行示例:Enter n:10 1 1 2 3 5 8 13 21 34 55#include main()int count,i,n,x1,x2,x;printf(Enter n:);scanf(%d,&n);x1=x2=1;printf(%6d%6d,x1,x2); (1) ;for(i=1;i=n-2;i+) (2) ; printf(%6d,x); count+; if( (3) )printf(n); x1=x2; (4) ;【供选择的答案】(1)A、count=2B、count=0C、count=1D、count=-1 答案:A(2) A、x=x1-x2B、x=x1+x2C、x=x1D、x=2答案:B(3) A、count/6=0B、count%6!=0C、count%6=0D、count/6!=0答案:C(4) A、x=x1+x2B、x2=x1C、x=x2D、x2=x答案:D试题2(每小题3分,共12分)【程序说明】输入2个正数m和n(1=mn=500),统计交输出m和n之间素数的个数以及这些素数的和,要求定义和调用函数prime(m)判断m是否为素数,当m为素数返回1,否则返回0。素数就是只能被1和自身整除的正整,1不是素,2是素数。运行示例:Enter m,n:1 10count=4,sum=17【程序】#include #include int prime(int m)int i,n;if(m=1)return (5) ;n=sqrt(m);for(i=2;i=n;i+) if(m%i=0)return (6) ; return (7) ;main()int count=0,i,m,n,sum=0; printf(Enter m,n:); scanf(%d%d,&m,&n); for(i=m;i=n;i+) if( (8) ) sum+=i; count+; printf(count=%d,sum=%dn,count,sum);【供选择的答案】(5)A、1B、mC、m=1D、0 答案:D(6) A、mB、1C、0D、n答案:C(7) A、mB、1C、0D、i=n答案:B(8) A、prime(i)!=0B、prime(i)=0C、1=prime(i)D、!prime(i)答案:A试题3(每小题3分,共12分)【程序说明】 输入一个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该结果。运行示例:Enter array(2*3):3 2 10 -9 6 -1max=a02=10 3 2 10 -9 6 -1#include main()int col,row,i,j; int a23; printf(Enter array(2*3):); for(i=0;i2;i+) for(j=0;j3;j+) scanf(%d, (9) ); (10) ; for(i=0;i2;i+) for(j=0;jarowcol) (11) printf(max=a%d%d=%dn,row,col,arowcol); for(i=0;i2;i+) for(j=0;j3;j+) printf(%4d,aij); (12) 【供选择的答案】(9)A、&aijB、&ajiC、aijD、aji 答案:A(10) A、row=col=2;B、row=col=0;C、arowcol=0;D、arowcol=-1;答案:B(11) A、row=j;col=i;B、arowcol=aij;C、row=i;col=j;D、arowcol=aji;答案:C(12) A、printf(“n”);B、printf(“n”);C、;D、printf(“n”);答案:D试题4(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。【程序】#include main()int op1,op2,res; char opertor; scanf (%d,&op1); opertor=getchar(); while(opertor!=) scanf (%d,&op2); switch(opertor) case +:res=op1+op2;break; case -:res=op1-op2;break; case *:res=op1*op2;break; case /:res=op1/op2;break; default:res=0; op1=res; opertor=getchar(); printf(%dn,res);(13)程序运行时,输入2*3-2=,输出 (13) 。A、6B、2C、0D、4答案:D(14)、程序运行时,输入15+2/3=,输出 (14) 。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、-2D、-3答案:A试题5(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。【程序】#include #define MAXLEN 80main()int k=0,number=0;char strMAXLEN;while(strk=getchar()!=#) k+;strk=0;for(k=0;strk!=0;k+) if(strk=0& strk=0& strk=9) number=number*12+strk-0; else if(strk=A|strk=B) number=number*12+strk-A+10; else ;/第15行 else break; /第16行 printf(%dn,number);(17)、程序运行时,输入10#,输出 (17) 。A、16B、10C、12D、1答案:C(18)、程序运行时,输入1a0#,输出 (18) 。A、264B、10C、1D、12答案:C(19)、第16行改为“;”后,程序运行时,输入A*0#,输出 (19) 。A、0B、120C、10D、12答案:B(20)、第16行改为“else break;”删除第15行后,程序运行时,输入1b0#,输出 (20) 。A、10B、12C、276D、1答案:B试题6(每小题3分,共12分)阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。【程序】#include #include main() char *s2=*,*;while(*s1!=0)printf(%sn,s0+strlen(s1)-1);s1+;(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!=1*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 double fact(int n) /第一题int i; double t=1; for(i=1;i=n;i+) t*=i; return t;double cal(int m,int n) /第二题double s=0; int i; for(i=m;i=n;i+) s+=i; return s;main() /第三题int n,i;double s=0; printf(请输入一个正整数:); while(scanf(%d,&n),n=0); for(i=1;i=n;i+) s+=cal(1,i)/fact(i); printf(%f,s);2008年秋浙江省高等学校计算机等级考试试卷(二级C)试题1(第小题3分,共12分)【程序说明】输入一批学生的成绩,遇到负数表示输入结束,要求统计并各等级成绩的学生个数。成绩等级分为三级,分别为A(90100)、P(6089)和F(059)。运行示例:Enter scores:88 71 68 70 59 81 91 0 60 77 83 -10A:1;P:8;F:2;程序#include main() int mark,a,p,f;a=p=f=0;printf(Enter scores:);scanf(%d,&mark);while( (1) ) if(mark=90) a+; (2) p+; (3) f+; (4) printf(A:%d;P:%d;F:%d;n,a,p,f);【供选择的答案】(1)A、mark=0B、mark0C、mark=0D、mark=60)B、if(mark=60)C、else (mark=60)D、if(mark90)答案:A(3)A、else (mark0)D、else if(mark=60)答案:B(4)A、scanf(%d,mark);B、scanf(%d,&mark);C、;D、mark=getchar();答案:B试题2(第小题3分,共12分)【程序说明】求1999之间所有满足各位数字的立方之和等于它本身的数。例如153的各位数字的立方和是13+53+33=153运行示例:1 153 370 371 407程序#include main() int digit,j,sum,x;for(j=1;j1000;j+) (5) (6) do (7) sum=sum+digit*digit*digit;x=x/10;while( (8) );if(j=sum)printf(%d ,sum);【供选择的答案】(5)A、sum=0;B、sum=1;C、sum=j;D、;答

温馨提示

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

评论

0/150

提交评论