浙江省计算机等级考试二级c理论试题.docx
- 文档编号:23215446
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:88
- 大小:62.59KB
浙江省计算机等级考试二级c理论试题.docx
《浙江省计算机等级考试二级c理论试题.docx》由会员分享,可在线阅读,更多相关《浙江省计算机等级考试二级c理论试题.docx(88页珍藏版)》请在冰豆网上搜索。
浙江省计算机等级考试二级c理论试题
2009年春浙江省高等学校
计算机等级考试试卷(二级C)
说明:
考生应将所有试题的答案填写在答卷上。
其中试题一到试题六请在答卷上的各小题选项的对应位置上填“√”。
请将你的准考证号的后五位填写在答卷右下角的指定位置内;
考试时间为90分钟。
试题1(每小题3分,共12分)
输入一个正整数n,计算下列式的前n项之和。
运行示例:
Entern:
2
Sum=0.67
#include
main()
{intdenomiator,flag,i,n;
doubleitem,sum;
printf("Entern:
");
scanf("%d",&n);
denomiator=1;
(1);
sum=0;
for(i=1;
(2);i++)
{
(3);
sum=sum+item;
(4);
denomiator=denomiator+2;
}
printf("Sum=%.2f\n",sum);
}
(1)A.flag=0B.flag=-1;
C.flag=nD.flag=1
(2)A.i>=nB.i C.i>nD.i<=n (3)A.item=flag/denomiatorB.item=1/denomiator C.item=flag*1.0/denomiatorD.item=1.0/denomiator (4)A.flag==-1B.flag=0 C.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,否则返回0。 素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 运行示例: 6=3+38=3+510=3+712=5+714=3+11 16=3+1318=5+1320=3+17 【程序】 #include #include intprime(intm) { inti,n; if(m==1)return0; n=sqrt(m); for(i=2;i<=n;i++) if(m%i==0)return0; (5) } 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("%d=%d+%d",number,i,number-i); count++; if((7))printf("\n"); (8) } } } (5)A.;B.return1; C.return0;D.elsereturn1; (6)A.prime(i)! =0||prime(number-i)! =0 B.prime(i)! =0&&prime(number-i)! =0 C.prime(i)==0||prime(number-i)==0 D.prime(i)==0||prime(number-i)==0 (7)A.count%5==0B.count%5! =0 C.(count+1)%5==0D.(count+1)%5! =0 (8)A.break;B.elsebreak; C.continue;D.; 试题3输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个数。 要求定义并调用函数count(s,digit,letter,other)分类统计字符串s中数字字符、英文字符和其它字符的个数,函数形参s是字符指针,形参digit,letter,other的类型是整型指针,函数类型是void.。 运行示例: Entercharaters: f(x,y)=5x+2y-6 Digit=3Letter=5Other=6 #include voidcount(char*s,int*digit,int*letter,int*other) {(9) while((10)) {if(*s>='0'&&*s<='9') (*digit)++; elseif(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z') (*letter)++; else (*other)++; s++; } } main() {inti=0,digit,letter,other; charch,str[80]; printf("Entercharaters: "); ch=getchar(); while((11)) {str[i]=ch; i++; ch=getchar(); } str[i]='\0'; (12); printf("Digit=%dLetter=%dOther=%d\n",digit,letter,other); } (9)A.intdigit=0,letter=0,other=0; B.int*digit=0,*letter=0,*other=0; C.digit=letter=other=0; D.*digit=*letter=*other=0; (10)A.*s++! ='\0'B.*s++! ='\n' C.*s! ='\0'D.*s! ='\n' (11)A.ch! ='\0'B.ch! ='\n' C.ch=='\0'D.ch=='\n' (12)A.count(str,&digit,&letter,&other) B.count(&str,&digit,&letter,&other) C.count(*str,digit,letter,other) D.count(*str,*digit,*letter,*other) 试题4 #include main() {intflag=0,i; inta[7]={8,9,7,9,8,9,7}; for(i=0;i<7;i++) if(a[i]==7) {flag=i; break; } printf("%d\n",flag); flag=-1; for(i=6;i>=0;i--) if(a[i]==8) {break; flag-i; } printf("%d\n",flag); flag=0; for(i=0;i<7;i++) if(a[i]==9){ printf("%d",i); } printf("\n"); flag=0; for(i=0;i<7;i++) if(a[i]==7)flag=i; printf("%d\n",flag); } (13)程序运行时,第1行输出(13)。 A.2B.0; C.3D.6 (14)程序运行时,第2行输出(14)。 A.4B.-1 C.0D.5 (15)程序运行时,第3行输出(15)。 A.246B.4 C.135D.6 (16)程序运行时,第4行输出(16)。 A.246B.2 C.135D.6 试题5 #include intf1(intn) {if(n==1)return1; elsereturnf1(n-1)+n; } intf2(intn) {switch(n) {case1: case2: return1; default: returnf2(n-1)+f2(n-2); } } voidf3(intn) { printf("%d",n%10); if(n/10! =0)f3(n/10); } voidf4(intn) {if(n/10! =0)f4(n/10); printf("%d",n%10); } main() { printf("%d\n",f1(4)); printf("%d\n",f2(4)); f3(123); printf("\n"); f4(123); printf("\n"); } (17)程序运行时,第1行输出(17)。 A.10B.24 C.6D.1 (18)程序运行时,第2行输出(18)。 A.1B.3 C.2D.4 (19)程序运行时,第3行输出(19)。 A.123B.3 C.321D.1 (20)程序运行时,第4行输出(20)。 A.1B.123 C.3D.321 试题6 #include structnum { inta; intb; }; voidf(structnums[],intn) { intindex,j,k; structnumtemp; for(k=0;k { index=k; for(j=k+1;j if(s[j].b temp=s[index]; s[index]=s[k]; s[k]=temp; } } main() { intcount,i,k,m,n,no; structnums[100],*p; scanf("%d%d%d",&n,&m,&k); for(i=0;i { s[i].a=i+1; s[i].b=0; } p=s; count=no=0; while(no { 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-1].b,s[k-1].a); } (21)程序运行时,输入543,输出(21)。 A.3: 5B.2: 3 C.1: 2D.4: 1 (22)程序运行时,输入534,输出(22)。 A.3: 5B.1: 2 C.4: 3D.4: 2 (23)程序运行时,输入752,输出(23)。 A.1: 5B.6: 1 C.2: 3D.2: 4 (24)程序运行时,输入424#,输出(24)。 A.3: 3B.4: 2 C.2: 4D.4: 1 试题7(28分) (1)定义函数fact(n)计算n的阶乘: n! =1*2*……*n,函数形参n的类型是int,函数类型是double。 (2)定义函数cal(x,e)计算下列算式的值,直到最后一项的绝对值小于e,函数形参x和e的类型都是double,函数类型是double。 要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x,n)计算x的n次幂。 (3)定义函数main(),输入两个浮点数x和e,计算并输出下列算式的值,直到最后一项的值小于精度e,要求调用函数cal(x,e)计算下列算式的值。 参考程序: #include #include (1)doublefact(intn) {inti; doublet=1; for(i=1;i<=n;i++) t=t*i; returnt; } (2)doublecal(doublex,doublee) { doublesum=0; inti=1; while(pow(x,i)/fact(i)>=e) { sum=sum+pow(x,i)/fact(i); i++; } returnsum; } (3)main() {doublex,e,sum; scanf("%lf%lf",&x,&e); sum=cal(x,e); {printf("sum=%f\n",sum); } } 选着题: Adccbbaadcbaabcdabcbadcd 2008年秋浙江省高等学校 计算机等级考试试卷(二级C) 试题1(第小题3分,共12分) 【程序说明】 输入一批学生的成绩,遇到负数表示输入结束,要求统计并各等级成绩的学生个数。 成绩等级分为三级,分别为A(90~100)、P(60~80)和F(0~59)。 运行示例: Enterscores: 887168705981910607783-10 A: 1;P: 8;F: 2; [程序] #include main() {intmark,a,p,f; a=p=f=0; printf("Enterscores: "); 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、mark>0 C、mark<=0D、mark<0答案: A (2)A、elseif(mark>=60)B、if(mark>=60) C、else(mark>=60)D、if(mark<90)答案: A (3)A、else(mark<60)B、else C、elseif(mark>0)D、elseif(mark<=60)答案: B或填elseif(mark>=0) (4)A、scanf("%d",mark);B、scanf("%d",&mark); C、;D、mark=getchar();答案: B 试题2(第小题3分,共12分) 【程序说明】 求1~999之间所有满足各位数字的立方之和等于它本身的数。 例如153的秋位数字的立方和是13+53+33=153 运行示例: 1153370371407 [程序`] #include main() {intdigit,j,sum,x; for(j=1;j<1000;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、;答案: A (6)A、x=1;B、x=j; C、;D、x=sum;答案: B (7)A、digit=x/10;B、digit=x; C、digit=x%10;D、;答案: C (8)A、x==0B、j! 0 C、j==0D、x! =0答案: D 试题3(第小题3分,共12分) 【程序说明】 输入10个整数,将它们从大到小排序后输出。 运行示例: Enter10integers: 1098-9369100-102 Aftersorted: 100981096320-1–9 [程序] #include (9) voidsort((10)) {inti,index,k,t; for(k=0;k index=k; for(i=k+1;i if(a[i]>a[index])index=i; (11) } } voidswap(int*x,int*y) {intt; t=*x;*x=*y;*y=t; } main() {inti,a[10]; printf("Enter10integers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); (12); printf("Aftersorted: "); for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); } 【供选择的答案】 (9)A、voidswap(int*x,int*y)B、; C、voidswap(int*x,int*y);D、voidswap(int*x,*y);答案: C (10)A、int&a,intnB、int*a,int*n C、int*a,inynD、inta,int*n答案: C (11)A、swap(*a[index],*a[k])B、swap(a[index],a[k]) C、swap(index,k)D、swap(&a[index],&a[k])答案: D (12)A、sort(a)B、sort{a[10]} C、sort(a[],10)D、sort(a,10)答案: D 试题4(第小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。 [程序] 程序1 #include main() {intj,k,s1,s2; s1=s2=0; for(j=0;j<=5;j++){ s1++; for(k=1;k<=j;k++) s2++; } printf("%d%d",s1,s2); } 程序2 #include main() {intj,k,s1,s2; s1=0; for(j=1;j<=5;j++){ s1++; for(k=1,s2=0;k<=j;k++) s2++; } printf("%d%d",s1,s2); } 程序3 #include main() {intj,k,s1,s2; s1=0; for(j=1;j<=5;j++){ s1++; for(k=1;k<=j;k++,s2=0) s2++; } printf("%d%d",s1,s2); } 程序4 #include main() {intj,k,s1,s2; s1=s2=0; for(j=1;j<=5;j++,s1=0){ s1++; for(k=1;k<=j;k++) s2++; } printf("%d%d",s1,s2); } (13)程序1运行时。 输出(13)。 答案: D A、015B、50 C、55D、515 (14)程序2运行时。 输出(14)。 答案: C A、015B、50 C、55D、515 (15)程序3运行时。 输出(15)。 答案: B A、015B、50 C、55D、515 (16)程序4运行时。 输出(16)。 答案: A A、015B、50 C、55D、515 试题5(第小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。 【程序】 程序1 #include main() {inti,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i==0)y=0; elsey=1; printf("%d",y); } 程序2 #include main() {inti,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i==0){y=0;break;} printf("%d",y); } 程序3 #include main() {inti,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i==0)break; if(i>m/2)y=1; elsey=0; printf("%d",y); } 程序4 #include main() {inti,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i==0){break;y=0;} printf("%d",y); } (17)程序1运行时。 输出(17)。 答案: A A、1B、0 C、15D、-1 (18)程序1运行时。 输出(18)。 答案: B A、1B、0 C、15D、-1 (19)程序1运行时。 输出(19)。 答案: B A、1B、0 C、15D、-1 (20)程序1运行时。 输出(20)。 答案: D A、1B、0 C、15D、-1 试题6(第小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。 【程序】 #include 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]! ='\0';k++) printf("%s",s['9'-a[k]-1]); } (22)程序运行时,输入5678,输出(22)。 答案: D A、twothreeB、two C、onefourthreeD、fourthreetwoone (23)程序运行时,输入8561#,输出(23)。 答案: C A、twothreeB、two C、onefourthree
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江省 计算机等级考试 二级 理论 试题