《课题-近4年-浙江省高等学校-计算机等级考试试卷(二级C)(共16页).docx》由会员分享,可在线阅读,更多相关《课题-近4年-浙江省高等学校-计算机等级考试试卷(二级C)(共16页).docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上近4年 浙江省高等学校 计算机等级考试试卷(二级C)2011年上半年浙江省高等学校计算机等级考试二级C程序设计试卷说明:本试卷共6页,满分100分;考试时间为90分钟;考生应将所有试题的答案填写在答卷上;程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“”;请将你的准考证号的后五位填写在答卷右下角的指定位置内。一、程序阅读与填空(24小题,每小题3分,共72分)1阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入正整数n,计算并输出1/2+2/3+3/5+5/8+的前n项之和,保留2位小数。(该序列从第2项起,每一
2、项的分母是前一项分子与分母的和,分子是前一项的分母)【程序】#include void main() int i,n; double denominator,numerator,sum,temp; scanf(%d,&n); numerator=1; denominator=2; sum=0; for(i=1; (1) ;i+) sum=sum+ (2) ; temp=denominator; (3) ; (4) ; printf(sum=%.2fn,sum);【供选择的答案】(1)A、i=n B、i=n D、in(2)A、denominator/numerator B、numerator/
3、denominatorC、denominator D、numerator(3)A、numerator= numerator+ denominator B、denominator=numeratorC、denominator= numerator+ denominatorD、denominator=temp(5)A、denominator=temp B、denominator=numeratorC、numerator= denominator D、numerator=temp2阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输出150到200之间有且只有一位数
4、字为9的所有整数。要求定义和调用函数is(n,digit)判断正整数n是否有且只有一位数字为digit,若满足条件则返回1,否则返回0。运行示例:159 169 179 189 190 191 192 193 194 195 196 197 198【程序】#include void main() int i;int is(int n,int digit); for(i=150;i=200;i+) if( (5) ) printf(%d ,i); printf(n);int is(int n,int digit) int count=0; do if( (6) ) count+; n=n/10;
5、 while( (7) ); if( (8) ) return 1; else return 0;【供选择的答案】(5)A、!is(n,digit) B、is(i,9)=0 C、is(n,9)!=0 D、is(i,9)!=0(6)A、n%10=9 B、n=digit C、n%10=digit D、n/10=digit(7)A、n/10!= 0 B、n!=0 C、n%10!=0 D、n=0(8)A、count=1 B、count!=1 C、count!=0 D、count=03阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个以回车结束的字符串(少于10
6、个字符),将其中的数字字符转换为整数输出。要求定义和调用函数atoi(s),该函数将字符串s转换为整数。运行示例:Enter a string:1+2=3The integer:123【程序】#include int atoi(char *s) int i,sum=0; for(i=0; (9) ;i+) if(si=0 & si=9) (10) ; return sum;void main() int i;char s80; printf(Enter a string:); while(si=getchar()!=n) i+; (11) printf(The integer:%dn, (12
7、) );【供选择的答案】(9) A、si!=0 B、si=0 C、in D、sum!=0(10)A、sum=sum*10+(si-0) B、sum=sum+siC、sum=sum*10+si D、sum=sum+si-0(11)A、si!=0; B、si= 0;C、; D、i-;(12)A、sum B、atoi(s)C、atoi(char *s) D、atoi(*s)4阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include #define T(c) (c=c=c)double f1( ) int x; return x=7%4;void f2(int
8、n) for(;n=1;n-) printf(%2d,n%3); printf(n);double f3(int n) if(n=1) return 1.0; else return n+f3(n-1);void main() printf(%d %dn,T(5),T(1); printf(%.1fn,f1(); f2(4); printf(%.1fn,f3(3);【问题】(13)程序运行时,第1行输出 (13) 。A、1 0 B、0 0 C、0 1 D、1 1(14)程序运行时,第2行输出 (14) 。A、1.0 B、1 C、3.0 D、3(15)程序运行时,第3行输出 (15) 。A、0
9、2 1 0 B、1 0 2 1 0 C、1 0 2 D、1 0 2 1(16)程序运行时,第4行输出 (16) 。A、1.0 B、10.0 C、3. 0 D、6.05阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include void main() int i,j,n=5; for(i=2;i=n;i+) for(j=1;j=i;j+) printf(%d ,i); putchar(n); 程序2#include void main() char str80; int i; gets(str); for(i=0;stri!=0;i+) if(stri
10、=A) stri=a+Z-stri; puts(str);【问题】(17)程序1运行时,第1行输出 (17) 。A、1 B、4 4 4 4 C、2 2 D、3 3 3(18)程序1运行时,第2行输出 (18) 。A、1 B、4 4 4 4 C、2 2 D、3 3 3(19)程序2运行时,输入YEAR,输出 (19) 。A、year B、BVZI C、bvzi D、YEAR(20)程序2运行时,输入FLAG,输出 (20) 。A、flag B、UOZT C、FLAG D、uozt6阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include void main
11、() int i,j; char *s4=apple,fruit,berry,orange; for(i=0;i4;i+) for(j=1;j=i;j+) printf(%sn,si+j);【问题】(21)程序运行时,第1行输出 (21) 。A、apple B、ruit C、fruit D、pple(22)程序运行时,第2行输出 (22) 。A、rry B、erry C、ruit D、uit(23)程序运行时,第3行输出 (23) 。A、rry B、ange C、uit D、ple(24)程序运行时,第4行输出 (24) 。A、range B、ge C、ry D、ange二、程序编写(每题14
12、分,共28分)1输入100个整数,将它们存入数组成a中,再输入一个整数x,统计并输出数组a中不小于x的元素个数。2按下面要求编写程序:(1)定义函数f(n)计算n*(n+1)*(2n-1),函数返回值类型是double。(2)定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数f(n)计算n*(n+1)*(2n-1)。2011年下半年浙江省高等学校计算机等级考试二级C程序设计试卷说明:本试卷共6页,满分100分;考试时间为90分钟;考生应将所有试题的答案填写在答卷上;程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“”;请将你的准考证号的后五位填写在答卷右下
13、角的指定位置内。一、程序阅读与填空(24小题,每小题3分,共72分)1阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个批整数(以零或负数为结束标记),求奇数和。运行示例:Enter integers:9 3 6 10 31 -1Sum=43【程序】#include void main() int x,odd; printf(Enter integers:); odd=0; scanf(%d,&x); while( (1) ) if( (2) ) odd=odd+x; (3) ; printf(sum=%dn, (4) );【供选择的答案】(1)A、x
14、0 B、x=0C、x!=0 D、x=0(2)A、x%2!=0 B、x%2=0C、x/2=0 D、x!=2(3)A、scanf(%d,&x) B、scanf(%d,x)C、x!=0 D、x=odd(4)A、sum B、oddC、x D、integer2阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个正整数n,找出其中最小的数字,用该数字组成一个新数,新数的位数与原数相同。Enter integers:2187The new integer:1111【程序】#include int main() int count=0,i,min_dig,n,new1=
15、0; min_dig= (5) ; printf(Enter integers:); scanf(%d,&n); do if(n%10min_dig) min_dig=n%10; (6) ; count+; while(n!=0); for(i=0; (7) ;i+) new1= (8) ; printf(The new integer:%dn,new1);【供选择的答案】(5)A、0 B、1 C、9 D、-1(6)A、n=min_dig B、n=n%10 C、n- D、n=n/10(7)A、i= count B、in C、inew1 D、icount(8)A、new1+min_dig B、n
16、ew1+min_dig*10C、new1*10+min_dig D、min_dig3阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个以回车结束的字符串(少于80个字符),判断该字符串中是否包含“Hello”。要求定义和调用函数in(s,t),该函数判断字符串s是否包含t,若满足条件则返回1,否则返回0。运行示例:Enter a string:Hello world!“HelloWorld!” includes “Hello”【程序】#include int in(char *s,char *t) int i,j,k; for(i=0;si!=0;i+
17、) (9) if(si=tj) for(k=i;tj!=0;k+,j+) if( (10) ) break; if(tj=0) (11) ; return 0;main() char s80; printf(Enter a string:); gets(s); if( (12) ) printf(%s includes Hellon,s); else printf(%s doesnt includes Hellon,s);【供选择的答案】(9) A、j=i; B、j=0; C、i=j; D、;(10)A、sk!=tj B、sk=tjC、si=tk D、si!=tj(11)A、break B、r
18、eturn 1C、continue D、return 0(12)A、in(char *s,char *t) B、in(s,Hello)C、in(*s,*t) D、in(s,t)4阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include #define T(a,b) (a)!=(b)?(a)(b)?1:-1):0int f1() int x=-10; return !x=10=0=1;void f2(int n) int s=0; while(n-) s+=n; printf(%d %dn,n,s);double f3(int n) if(n=1) ret
19、urn 1.0; else return n*f3(n-1);main() printf(%d %d %dn,T(4,5),T(10,10),T(5,4); printf(%dn,f1(); f2(4); printf(%.1fn,f3(5);【问题】(13)程序运行时,第1行输出 (13) 。A、0 1 -1 B、1 -1 0 C、1 0 -1 D、-1 0 1(14)程序运行时,第2行输出 (14) 。A、10 B、-10 C、0 D、1(15)程序运行时,第3行输出 (15) 。A、0 10 B、-1 10 C、-1 6 D、0 6(16)程序运行时,第4行输出 (16) 。A、1.0
20、B、24.0 C、120. 0 D、6.05阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include main() int i,j,n=4; for(i=1;in;i+) for(j=1;j=2*(n-i)-1;j+) putchar(*); putchar(n); 程序2#include main() char str80; int i; gets(str); for(i=0;stri!=0;i+) if(stri=0) stri=z-stri+0; puts(str);【问题】(17)程序1运行时,第1行输出 (17) 。A、* B、* C、*
21、 D、*(18)程序1运行时,第2行输出 (18) 。A、* B、* C、* D、*(19)程序2运行时,输入135,输出 (19) 。A、bdf B、ywu C、864 D、135(20)程序2运行时,输入086,输出 (20) 。A、zrt B、aig C、913 D、0866阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include main() int i,j; char *s4=continue,break,do-while,point; for(i=3;i=0;i-) for(j=3;ji;j-) printf(%sn,si+j);【问题】(2
22、1)程序运行时,第1行输出 (21) 。A、tinue B、ak C、nt D、while(22)程序运行时,第2行输出 (22) 。A、uer B、le C、ak D、nt(23)程序运行时,第3行输出 (23) 。A、ile B、eak C、int D、nue(24)程序运行时,第4行输出 (24) 。A、tinue B、break C、while D、point二、程序编写(每题14分,共28分)1输入100个学生的计算机成绩,统计不及格(小于60分)学生的人数。2按下面要求编写程序:(1)定义函数f(n)计算n+(n+1)+(2n-1),函数返回值类型是double。(2)定义函数ma
23、in(),输入正整数n,计算并输出下列算式的值。要求调用函数f(n)计算n+(n+1)+(2n-1)。2012年上半年浙江省高等学校计算机等级考试二级C程序设计试卷说明:本试卷共6页,满分100分;考试时间为90分钟;考生应将所有试题的答案填写在答卷上;程序阅读与填空全部是选择题,请在答卷上的各小题选项的对应位置上填“”;请将你的准考证号的后五位填写在答卷右下角的指定位置内。一、程序阅读与填空(24小题,每小题3分,共72分)1阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输入一个正整数m,判断它是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,
24、2是素数。运行示例:Enter m:99 is not a prime.Enter m:7979 is a prime.【程序】#include #include void main() int j,k,m; printf(Enter m:); scanf(%d,&m); k=sqrt(m); for(j=2; (1) ;j+) if( (2) ) (3) ; if(jk & (4) ) printf(%d is a prime.n,m); else printf(%d is not a prime.n,m);【供选择的答案】(1)A、jk B、jm D、jn(2)A、m%j=0 B、m%j=
25、0C、m%j!=1 D、m%j=1(3)A、return B、break;C、go D、continue(5)A、m=1 B、m!=2C、m!=1 D、m=22阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】输一个正整数n1,再输入第一组n1个数,这些数已按从小到大的顺序排列,然后输入一正整数n2,随即输入第二组n2个数,它们也按从小到大的顺序排列,要求将这两组数合并,合并后的数应按从小到大的顺序排列。要求定义和调用函数merge(list1,n1,list2,n2,list,n),其功能是将数组list1的前n1个数和数组list2的前n2个数共n个数合并
26、存入数组list,其中list1的前n1个数和list2的前n2个数分别按从小到大的顺序排列,合并后的数组list的前n个数也按从小到大的顺序排列。运行示例:Enter n1:6Ente 6 integers:2 6 12 39 50 99Enter n1:5Ente 5 integers:1 3 6 10 35Merged:1 2 3 6 6 10 12 35 39 50 99【程序】#include void merge(int list1,int n1,int list2,int n2,int list, (5) ) int i,j,k; (6) while(in1&jn2) if( (
27、7) ) listk=list1i+; else listk=list2j+; k+; while(in1) listk+=list1i+; while(in2) listk+=list1j+; (8) ;void main() int i,n1,n2,n,list1100,list2100,list100; printf(Enter n1:); scanf(%d,&n1); printf(“Ente %d integers:”,n1); for(i=0;in1;i+) scanf(%d,&list1i); printf(Enter n2:); scanf(%d,&n2);printf(“En
28、te %d integers:”,n2); for(i=0;in2;i+) scanf(%d,&list2i); merge(list1,n1,list2,n2,list,&n); printf(Merged:); for(i=0;in;i+) printf(%d ,listi); printf(n);【供选择的答案】(5)A、int &n B、int n C、n D、int *n(6)A、i=j=0; B、i=j=k=1; C、i=j=k=0; D、k=0;(7)A、list1klist2j B、list1ilist2jC、list1ilist2j(8)A、*n=k B、return n1+
29、n2 C、n=k D、return k3阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成密文。变换规则如下:小写字母z变换成为a,其他字符变换成为该字符ASCII码顺序后1位的字符,比如o变换成p。输入一个字符串(少于80个字符),输出相应的密文。要求定义和调用函数encrypt(s),该函数将字符串s变换为密文。运行示例:Input the string:hello hangzhouAfter being encrypted:ifmmp!ibohaipv【程序】#include #include
30、void encrypt(char *);void main() char line80; printf(Input the string:); gets(line); (9) ; printf(After being encrypted:%sn,line);void encrypt(char s) int i; for(i=0; (10) ;i+) if(si=z) (11) else (12) 【供选择的答案】(9) A、encrypt(line) B、encrypt(line)C、encrypt(&line) D、encrypt(*line)(10)A、si=0 B、i80C、si!=0
31、 D、i=80(11)A、si=A; B、si=b;C、si=si+1; D、si=a;(12)A、si=si-1; B、si=p;C、si=si+1; D、si=a;4阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】#include void main() int a=5,i=0; char s10=abcd; printf(%d %dn,1a3,!a); printf(%d %dn,a2,a & 1); while(si+!=0) putchar(si); printf(n%dn,i);【问题】(13)程序运行时,第1行输出 (13) 。A、1 1 B、0
32、0 C、0 1 D、1 0(14)程序运行时,第2行输出 (14) 。A、20 1 B、20 5 C、10 1 D、10 5(15)程序运行时,第3行输出 (15) 。A、abcd B、abc C、Abcd0 D、bcd(16)程序运行时,第4行输出 (16) 。A、4 B、6 C、0 D、55阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】程序1#include void main() int n,s=1; scanf(%d,&n); while(n!=0) s*=n%10; n/=10; printf(%dn,s);程序2#include void main() char c; while(c=getchar()!=0) switch(c) case 1: case 9:continue; case A:putchar(a); continue; default:putc