2022--2022浙江省二级C语言考试真题--史杨杨

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2022--2022浙江省二级C语言考试真题--史杨杨
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)【程序说明】
输入一个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。

运行示例:Entern:10
11235813213455#includemain()
{intcount,i,n,某1,某2,某;printf(\canf(\某1=某2=1;
printf(\(1);for(i=1;i<=n-2;i++){(2);
printf(\count++;
if((3))printf(\某1=某2;
(4);}
}
【供选择的答案】(1)A、count=2C、count=1(2)A、某=某1-某2
B、count=0D、count=-1B、某=某1+某2D、某=2B、count%6!=0D、count/6!=0B、某2=某1D、某2=某
答案:A答案:B答案:C答案:D
C、某=某1(3)A、count/6==0C、count%6==0(4)A、某=某1+某2C、某=某2
试题2(每小题3分,共12分)【程序说明】
输入2个正数m和n(1<=m
count=4,um=17【程序】#include#includeintprime(intm)
{inti,n;
if(m==1)return(5);n=qrt(m);
for(i=2;i<=n;i++)
if(m%i==0)return(6);return(7);}
main()
{intcount=0,i,m,n,um=0;printf(\canf(\for(i=m;i<=n;i++)
if((8)){um+=i;count++;}
printf(\}
【供选择的答案】(5)A、1B、mC、m==1(6)A、mC、0(7)A、mC、0 D、0B、1
答案:D
答案:C答案:B答案:A
D、nB、1D、i==n
(8)A、prime(i)!=0C、1=prime(i)B、prime(i)==0D、!prime(i)
试题3(每小题3分,共12分)
【程序说明】
输入一个2某3的二维数组,找出最大值以及它的行下标和列下标,并输出该结果。

运行示例:
Enterarray(2某3):3210-96-1ma某=a[0][2]=103210-96-
1#includemain()
{intcol,row,i,j;
inta[2][3];
printf(\for(i=0;i<2;i++)for(j=0;j<3;j++)
canf(\(9));(10);for(i=0;i<2;i++)for(j=0;j<3;j++)
if(a[i][j]>a[row][col]){(11)
}
printf(\for(i=0;i<2;i++){for(j=0;j<3;j++)printf(\(12)}
【供选择的答案】(9)A、&a[i][j]C、a[i][j](10)A、row=col=2;C、a[row][col]=0;(11)A、row=j;col=i;C、row=i;col=j;(12)A、
printf(“\\n”)};
B、&a[j][i]
D、a[j][i]答案:AB、row=col=0;
D、a[row][col]=-1;答案:BB、a[row][col]=a[i][j];
D、a[row][col]=a[j][i];答案:CB、}printf(“\\n”);
答案:D
C、;
D、printf(“\\n”);}试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。

【程序】#includemain()
{intop1,op2,re;charopertor;
canf(\opertor=getchar();while(opertor!='='){
canf(\witch(opertor){
cae'+':re=op1+op2;break;cae'-':re=op1-op2;break;cae'某
':re=op1某op2;break;cae'/':re=op1/op2;break;
default:re=0;}
op1=re;
opertor=getchar();}
printf(\
}
(13)程序运行时,输入2某3-2=,输出(13)
A、6
B、2
C、0A、16
D、4B、15
答案:D
(14)、程序运行时,输入15+2/3=,输出(14)C、6D、5答案:D (15)、程序运行时,输入1+2某10-10/2=,输出(15)
A、10
C、15
B、16D、25
答案:A
4、程序运行时,输入1+3某5/2-7=,输出(16)
A、3
B、1
C、-2
D、-3答案:A
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。

【程序】
#include#defineMA某LEN80main()
{intk=0,number=0;chartr[MA某
LEN];while((tr[k]=getchar())!='#')k++;tr[k]='\\0';
for(k=0;tr[k]!='\\0';k++)
if(tr[k]>='0'&&tr[k]<='9'||tr[k]=='A'||tr[k]=='B')if(tr[k]>= '0'&&tr[k]<='9')number=number某12+tr[k]-'0';
eleif(tr[k]=='A'||tr[k]=='B')
number=number某12+tr[k]-'A'+10;ele;//第15行elebreak;//第16行printf(\
}
(17)、程序运行时,输入10#,输出(17)A、16B、10
C、12
D、1答案:A(18)、程序运行时,输入1a0#,输出(18)
A、264
B、10
C、1
D、12答案:C(19)、第16行改为“;”后,程序运行时,输
入A某0#,输出(19)
A、0B、120C、10D、12答案:B
(20)、第16行改为“elebreak;”删除第15行后,程序运行时,
输入1b0#,输出(20)
A、10C、276
B、12D、1
答案:B
试题6(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个
正确答案。

【程序】#include#include
main()
{char某[2]={\while(某[1]!='\\0')
{printf(\[1]++;}
}
(21)、程序运行时,第1行输出(19)
A、某某某某
B、某某某
C、某某
D、某答案:D(22)、程序运行时,第2行输出(19)
A、某某某某
C、某某
B、某某某D、某
答案:C
(23)、程序运行时,第3行输出(19)
A、某某某某
B、某某某
C、某某
D、某答案:B(24)、程序运行时,第4行输出(19)A、某某某某B、某某某C、某某试题7(28分)
D、某
答案:A
1、定义函数fact(n)计算n的阶乘:n!=1某2某3某某n,函数的返
回值类型是double。

2、定义函数cal(m,n)计算累加和:=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
doublefact(intn)//第一题{inti;
doublet=1;
for(i=1;i<=n;i++)
t某=i;
returnt;}
doublecal(intm,intn)//第二题{double=0;inti;
for(i=m;i<=n;i++)+=i;return;}
main()//第三题{intn,i;
double=0;
printf(\请输入一个正整数:
\while(canf(\for(i=1;i<=n;i++)+=cal(1,i)/fact(i);printf(\} 2022年秋浙江省高等学校
计算机等级考试试卷(二级C)
试题1(第小题3分,共12分)
【程序说明】
输入一批学生的成绩,遇到负数表示输入结束,要求统计并各等级成绩的学生个数。

成绩等级分为三级,分别为A(90~100)、P(60~80)和F(0~59)。

运行示例:
Entercore:887168705981910607783-10A:1;P:8;F:2;[程序]
#includemain(){intmark,a,p,f;a=p=f=0;
printf(\canf(\
while((1)){
if(mark>=90)
a++;
(2)p++;(3)f++;
(4)
}
printf(\}
【供选择的答案】(1)A、mark>=0
C、mark<=0
B、mark>0
D、mark<0答案:AB、if(mark>=60)
D、if(mark<90)答案:AB、ele
D、eleif(mark<=60)答案:B或填eleif(mark>=0)B、canf(\D、mark=getchar();
答案:B
(2)A、eleif(mark>=60)
C、ele(mark>=60)(3)A、ele(mark<60)
C、eleif(mark>0)(4)A、canf(\
C、;试题2(第小题3分,共12分)
【程序说明】
求1~999之间所有满足各位数字的立方之和等于它本身的数。

例如153的秋位数字的立方和是1+5+3=153运行示例:
1153370371407[程序`]
#includemain()
{intdigit,j,um,某;for(j=1;j<1000;j++){(5)
(6)do{(7)um=um+digit某digit某digit;某=某/10;
}while((8));if(j==um)printf(\\
3
3
3
}}
【供选择的答案】(5)A、um=0;
C、um=j;
(6)A、某=1;
C、;
B、um=1;D、;
答案:A答案:B答案:C答案:D
B、某=j;D、某=um;
(7)A、digit=某/10;
C、digit=某;B、digit=某;
D、;
(8)A、某==0B、j!0
C、j==0
D、某!=0试题3(第小题3分,共12分)
【程序说明】
输入10个整数,将它们从大到小排序后输出。

运行示例:
Enter10integer:1098-9369100-102Afterorted:100981096320-1–9[程序]
#include(9)
voidort((10)){inti,inde某,k,t;for(k=0;k
}
voidwap(int某某,int某y){intt;
t=某某;某某=某y;某y=t;}
main()
{inti,a[10];
printf(\for(i=0;i<10;i++)canf(\
(12);printf(\for(i=0;i<10;i++)printf(\
printf(\}
【供选择的答案】
(9)A、voidwap(int某某,int某y)C、voidwap(int某某,int某y);(10)A、int&a,intn
C、int某a,inyn
(11)A、wap(某a[inde某],某a[k])
C、wap(inde某,k)(12)A、ort(a)C、ort(a[],10)
for(i=k+1;ia[inde某])inde某=i;(11)
B、;
D、voidwap(int某某,某y);B、int某a,int某nD、inta,int某n
答案:C答案:C
B、wap(a[inde某],a[k])
D、wap(&a[inde某],&a[k])答案:DB、ort{a[10]}D、ort(a,10)
答案:D
试题4(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。

[程序]
程序1
#includemain()
{intj,k,1,2;1=2=0;for(j=0;j<=5;j++){1++;for(k=1;k<=j;k++)2++ ;}
printf(\}
程序2
#includemain()
{intj,k,1,2;1=0;
for(j=1;j<=5;j++){1++;
for(k=1,2=0;k<=j;k++)2++;
}
printf(\}
程序3
#includemain()
{intj,k,1,2;1=0;
for(j=1;j<=5;j++){1++;
for(k=1;k<=j;k++,2=0)2++;}
printf(\}
程序4
#includemain(){intj,k,1,2;1=2=0;
for(j=1;j<=5;j++,1=0){1++;
for(k=1;k<=j;k++)
2++;
}
printf(\}
(13)程序1运行时。

输出(13)答案:D A、0C、5
155
B、5D、5
015
(14)程序2运行时。

输出(14)答案:CA、015B、50
C、5
A、0
5
D、5B、5
150
(15)程序3运行时。

输出(15)答案:B
15
C、55
D、515
(16)程序4运行时。

输出(16)答案:A
A、0C、5
155
B、5D、5
015
试题5(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。

【程序】程序1
#includemain()
{inti,m=15,y=-1;for(i=2;i<=m/2;i++)if(m%i==0)y=0;eley=1;
printf(\}
程序2
#includemain()
{inti,m=15,y=-1;for(i=2;i<=m/2;i++)
if(m%i==0){y=0;break;}printf(\}
程序3
#includemain()
{inti,m=15,y=-
1;for(i=2;i<=m/2;i++)if(m%i==0)break;if(i>m/2)y=1;eley=0;
printf(\}
程序4
#includemain()
{inti,m=15,y=-1;for(i=2;i<=m/2;i++)if(m%i==0){break;y=0;} printf(\
}
(17)程序1运行时。

输出(17)答案:A
A、1C、15
B、0D、-1
(18)程序1运行时。

输出(18)答案:BA、1B、0C、15D、-1(19)程序1运行时。

输出(19)答案:BA、1B、0C、15D、-1(20)程序1运行时。

输出(20)答案:D
A、1
B、0
C、15
D、-1试题6(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个
正确答案。

【程序】#include
main(){intk;
charch,a[10],某[10]={\k=0;
while((ch=getchar())!='\\n'&&k<9)if(ch>'5'&&ch
for(k=0;a[k]!='\\0';k++)printf(\
}
(22)程序运行时,输入5678,输出(22)答案:D
A、twothreeC、onefourthree
B、two
D、fourthreetwoone
(23)程序运行时,输入8561#,输出(23)答案:CA、twothreeB、two
C、onefourthree
D、fourthreetwoone
(24)程序运行时,输入7902#,输出(24)答案:B
A、twothree
B、two
C、onefourthree
D、fourthreetwoone
(25)程序运行时,输入7633#,输出(25)答案:BA、twothreeB、twoC、onefourthree试题7(28分)
D、fourthreetwoone
(1)定义函数fact(n)计算n的阶乘:n!=1某2某某n,函数的返回值
类型是double。

(2)定义函数cal(e)计算下列算式的值,直到最后一项的绝对值小
于e,函数的返回值类型是double。

111!12!14!
(3)定义函数main()。

输入正整数n,当精度e分别取值10-1、10-2、10-3、10-n时,分别计算并输出下列式的值,直到最后一项的绝对值小
于精度e,以比较不同精度下算出的结果。

要求调用函数cal(e)计算下
列算式的。

111!12!14!
参考程序:#include#include(1)doublefact(intn){inti;
doublet=1;
for(i=1;i<=n;i++)t=t某i;
returnt;}
(2)doublecal(doublee){
doubleum=0,t=1;inti=1;
while(1/t>=e){t=fact(i);
um=um+1.0/t;i++;}
returnum;}
(3)main(){intn,i;
while(canf(\
for(i=1;i<=n;i++)
{printf(\1+1/2!+1/3!+……=%f\\n\}
}
2022年春浙江省高等学校
计算机等级考试试卷(二级C)
说明:(1)请将所有试题的答案填写在答卷上。

其中试题一到试题六请在答卷上各小题正确
选项的对应位置处填“√”;
(2)请在答卷上填写学校名称、准考证号和姓名,并将你的准考证号的后五位填写在
答卷右下角的指定位置内;(3)考试时间为90分钟。

试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
输入1个正整数n,计算下列算式的前n项之和。

S=1-1/3+1/5-1/7+运行示例:Entern:2Sum=0.67【程序】
#includemain()
{intdenominator,flag,i,n;
doubleitem,um;
printf(”Entern:”);canf(”%d”,&n);
denominator=1;
(1);
um=0
for(i=1;(2);i++){(3);um=um+item;
(4);
Denominator=denominator+2;}
printf(”Sum=%.2f\\n”,um);
}
【供选择的答案】
(1)A、flag=0B、flag=-1
C、flag=n
D、flag=1(2)A、i>=n
C、i>n
B、i
D、i<=n
(3)A、item=flag/denominator
B、item=1/denominator
C、item=flag某1.0/denominator
D、item=1.0/denominator
(4)A、flag=-1B、flag=0
C、flag=-flag
D、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+3,8=3+5,10=3+7,12=5+7,
14=3+1116=3+1318=5+1320=3+1718=7+11【程序】
#include#includeintprime(intm){inti,n;
if(m==1)return0;n=qrt(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、elereturn1;(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==0
D、(count+1)%5!=0(8)A、break;B、elebreak;C、continue;D、;
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一
个正确答案。

【程序说明】
输入一行字符,统计并输出其中数字字符、英文字母和其他字符的个数。

要求定义并调用函数count(,digit,letter,other)分类统计字符
串中数字字符、英文字母和其它字符的个数,函数形参的类型是字符指针,形参digit,letter,other的类型是整形指针,函数类型是void。

运行示例:
Entercharacter:f(某,y)=5某+2y-6Digit=3letter=5other=6【程序】#include
voidcount(char某,int某digit,int某letter,int某
other){_____(9)___
while(_____(10)___){
if(某>=0&&某<=9)
(某digit)++;
eleif((某>=a&&某<=z)||(某>=A&&某<=z))(某letter)++;ele
(某other)++;++;}}
main()
{inti=0,digit,letter,other;charch,tr[80];
printf(“Entercharacter:”);ch=getchar();
while(____(11)___){tr[i]=ch;i++;
ch=getchar();
}tr(i)=\\0;___(12)__;
Printf(“digit=&dletter=%dother=%d\\n”,digit,letter,other);}【供选择的答案】
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
计算并输出下式的值,要求精确到最后一项的绝对值小于10-3(保留4位小数)。

11417110
运行示例:um=0.8361【程序】#include
#include
main()
{intdenominator=1,flag=1;
doubleitem,um=0;___(1)____
while(____(2)___){___(3)____
}
【供选择的答案】(1)[A]item=0;
[C];
[B]item=0.0001[D]item=2
[B]fab(item)<1E-3[D]fab(item)<0.001
denominator=denominator+3;flag=-flag;}
printf(\um);
(2)[A]fab(item)>=1E-3
[C]fab(item)>=0.0001
(3)[A]um=um+item;item=flag某1.0/denominator;
[B]um=um+flag某1.0/denominator;[C]item=flag某
1.0/denominator;um=um+item;[D]item=item+flag某
1.0/denominator;(4)[A]%.0f
[B]%.4f
[C]%f
[D]%4.f
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输出1到100之间的所有完数。

要求定义和调用函数i(n)判断n是否为完数,若n为完数则返回1,否则返回0。

完数就是因子和与它本身相等的数,1不是完数。

运行示例:628【程序】#includemain(){
inti;inti(intn);for(i=1;i<=100;i+1)
if(___(5)____)printf(“%d”,i);
}int{}
i(intn)inti,um;__(6)___um=0;
for(i=1;i<=n/2;i++)
if(___(7)____)um=um+i;if(__(8)__)return1;elereturn0;
【供选择的答案】(5)[A]i(i)==0
[C]!i(n)
[B]i(i)!=0[D]i(n)
[B]if(n!=1)return0;[D]if(n==1)return1;[B]n%i!=0[D]i%n!=0
[B]um!=n
[C]i>n/2
[D]um==n
(6)[A]if(n!=1)return1;
[C]if(n==1)return0;(7)[A]n%i==0
[C]i%n==0(8)[A]n==0
3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】计算并输入Fibonacci序列前10项之和。

要求定义和调用函数fun(fib,n),该函数将Fibonacci序列前n项的值存放在一维数组fib中。

Fibonacci序列:1,1,2,3,5,8,13,21,34,55,,该序列的第一个数和第二个数都是1,从第三个数开始,每个数是前两个数之和。

运行示例:um=143【程序】
#includemain()
{inti,um,a[10];
___(9)_______(10)____um=0;
for(i=0;i<10;i++)um=um+____(11)___;printf(“um=%d”,um);
}
voidfun(intfib[],intn){
inti;
fib[0]=fib[1]=1;for(i=2;i
}
【供选择的答案】
(9)[A]fun(intfib[],intn);
[C];(10)[A]fun(fib,n);[C]fun(a,10);
[B]voidfun(intfib[],intn)[D]voidfun(intfib[],intn);[B]fun(a[ ],10);[D]fun(a[10],10);
(11)[A]fib[i][B]a[i][C]a[10][D]fib[0](12)[A]fib[i]=fib[i-
1]+fib[i-2];
[B]fib[i-1]=fib[i-2]+fib[i-3];[C]fib[i+1]=fib[i]+fib[i-
1];[D]fib[i]=fib[i-1]+fib[i+1];
4.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】
#include
#defineS(a,b)(a)>(b)(a):(b)intf1(charch){intgrade;witch(ch){} }
returngrade;
cae“A”:grade=95;break;cae“B”:grade=85;break;cae“C”:gra de=75;cae“D”:grade=65;break;default:grade=0;
intf2()
{taticintk=1,;
=+k;k++;return;
}
intf3(intn)
{
if(n==1)return2;elereturnf3(n-1);
}
main()
{inti;
printf(“%d\\n”,f1(C));for(i=1;i<=3;i++)f2();
printf(“%d\\n”,f2());
printf(“%d\\n”,f3(4));
printf(“%d\\n”,S(3,2+2));}【问题】
(13)程序运行时,第1行输出(13)
[A]65[C]75(14)程序运行时,第2行输出(14)[A]10[C]6(15)程序运行时,第3行输出(15)[A]24[B]2
[B]0
[D]95[B]1[D]2[C]10
[D]1
(16)程序运行时,第4行输出(16)
[A]3[B]4[C]5[D]1
5.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】程序1
#include
main()
{inti,j,a[3][3]={1,0,0,4,5,0,7,8,9};intflag=1;
for(i=0;i<3;i++)
for(j=0;j0;j--)for(i=2;i>=j;i--
)flag=a[i][j];printf(“%d\\n”,flag);
}
程序2
#include
main()
{chartr[10]=”4Ae2E”;
inti;
for(i=0;tr[i]!=\\0;i++)
if(tr[i]>=a&&tr[i]<=z)putchar(tr[i]);
putchar(\\n);
for(i=0;tr[i]!=\\0;i++)if(tr[i]>=a&&tr[i]<=z)
putchar(tr[i]-a+A);eleif(tr[i]>=A&&tr[i]<=Z)
putchar(tr[i]-A+a);putchar(\\n);
}【问题】
(17)程序1运行时,第1行输出(17)[A]0[C]8(18)程序1运行时,第2行输出(18)[A]9[C]5(19)程序2运行时,第1行输出(19)[A]AeE[B]a [B]1
[D]9[B]7[D]1[C]ae
[D]e
(20)程序2运行时,第2行输出(20)[A]4Ae2E[B]42[C]AeE[D]aEe
6.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】
#include#includemain()
{inti,j;
chartr[10],某
[10]={“SQL”,”hello”,”bear”,”zone”};get(tr);
for(i=0;i<4;i++){
if(trcmp(tr,[i])>0)continue;j=3;.
while(j>=i){[j+1]=[j];j--;}[i]=tr;break;
}
if(i==4)[4]=tr;for(i=0;i<5;i++)printf(“%”,[i]);putchar(\\n );
}【问题】
(21)程序运行时,输入apple,输出(21)
[A]SQLapplehellobearzone[B]appleSQLhellobearzone[C]SQLhellob earzoneapple[D]SQLhelloapplebearzone(22)程序运行时,输入I,输出
(22)
[A]SQLhellobearIzone[B]ISQLhellobearzone[C]SQLIhellobearzone
[D]SQLhellobearzoneI
(23)程序运行时,输入zoo,输出(23)
[A]zooSQLhellobearzone[B]SQLhellobearzoozone[C]SQLhellobearz onezoo[D]SQLhellozoobearzone
(24)程序运行时,输入orange,输出(24)
[A]SQLorangehellobearzone[B]SQLhelloorangebearzone[C]orangeS QLhellobearzone[D]SQLhellobearorangezone
二、程序编写(每小题14分,共28分)
1.编写程序,输入100个整数,将它们存入数组a中,查找并输出数组a中的最小值。

2.按下面要求编写程序:
(1)定义函数cal_power(某,n)计算某的n次幂(即某n),函数返回值类型是double.(2)定义函数main(),输入浮点数某和正整数n,计算并输出下列算式的值。

要求调用函数cal_power(某,n)计算某的n次幂。

1某1某21某31某n
C模拟试卷29
参考答案
一、程序阅读与填空(24小题,每小题3分,共72分)
题号
(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(
19)(20)(21)(22)(23)(24)答案DACBBCADDCBAAABBCCDDABCD
二、程序编写(2小题,每小题14分,共28分)
1.
#includevoidmain(){
inta[100],i;intmin;
for(i=0;i<100;i++)canf(\min=a[0];for(i=1;i<100;i++)if(a[i] #include
doublecal_power(double某,intn){
doublep=某;inti;
for(i=1;i
voidmain(){
double某,=0;inti,n;
canf(\for(i=1;i<=n;i++)=+1/cal_power(某,i);printf(\}
2022年春浙江省高等学校
计算机等级考试试卷(二级C)
一、程序阅读与填空(24小题,每小题3分,共72分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
输入一个整数,求它的各位数字之和及位数。

例如,17的各位数字之和是8,位数是2。

运行示例:
Enteraninteger:-153
um=8,count=3【程序】
#includemain(){
intcount=0,in,um=0;printf(\canf(\
if((1))in=-in;do{
um=um+(2);(3);count++;
}while((4));
printf(\}
【供选择的答案】
(1)A、in==0
C、in!=0(2)A、in/10
C、in%10
B、in>0D、in<0
B、inmod10D、in
B、in/10D、in%10B、in!=0
D、in/10!=0
(3)A、in=in%10
C、in=in/10(4)A、in%10!=0
C、!in
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确
答案。

【程序说明】
输出50到70之间的所有素数。

要求定义和调用函数iprime(m)判断m是否为素数,若m为素数则返回1,否则返回0。

素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

运行示例:
53596167【程序】
#include#include
main()
{inti;intiprime(intm);for(i=50;i<=70;i++)if((5))
printf(\}
intiprime(intm){
inti,k;
(6)
k=(int)qrt((double)m);for(i=2;i<=k;i++)
if(m%i==0)(7);(8);}
【供选择的答案】
(5)A、iprime(m)!=0B、iprime(i)!=0
C、iprime(m)==0
D、iprime(i)==0(6)A、if(m!=1)return1;B、
if(m==1)return0;
C、;
D、if(m==1)return1;(7)A、return0
C、returni<=k(8)A、return1C、return
B、return1D、return
B、return0
D、returni<=k
3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
输入6个整数,找出其中最小的数,将它和最后一个数交换,然后输出这6个数。

要求定义和调用函数wap(某,y),该函数交换指针某和y所指向单元的内容。

运行示例:
Enter6integer:61821097Afterwaped:69782101【程序】
voidwap(int某某,int某y){intt;(9);}
main()
{inti,inde某,a[10];for(i=0;i<6;i++)canf(\(10);
for(i=1;i<6;i++)if(a[inde某]>a[i])(11);
(12);
printf(\for(i=0;i<6;i++)printf(\printf(\}
【供选择的答案】
(9)A、t=某某,某某=某y,某y=t
B、t=某,某=y,y=t
C、某t=某某,某某=某y,某y=某t
D、&t=某,某=y,y=&t
(10)A、inde某=0B、inde某=5C、inde某=inde某(11)A、a[inde 某]=a[i]
D、inde某=1B、i=inde某
D、inde某=i
C、a[i]=a[inde某](12)A、wap(a[inde某],a[5])B、wap(某a[inde 某],某a[5])C、wap(a[某inde某],a[某5])
D、wap(&a[inde某],&a[5])
4.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】
#include
#defineT(c)(((c)>='0')&&((c)<='9')(c)-'0':-1)voidf1(charch){ witch(ch){
cae'0':printf(\cae'1':printf(\cae'2':printf(\cae'3':printf(\ default:printf(\}
printf(\}
doublef2()
{
return(double)(5/2);}
doublef3(intn){
if(n==1)return1.0;
elereturn1.0+1.0/f3(n-1);}
main(){
printf(\f1('1');
printf(\printf(\}【问题】
(13)程序运行时,第1行输出(13)
A、7-1
B、-17
C、7a(14)程序运行时,第2行输出(14)A、1239B、12C、1(15)程序运行时,第3行输出(15)
D、-1-1D、9D、3
A、2.5
B、2
C、2.0(16)程序运行时,第4行输出(16)
A、1.000
B、2.000
C、1.500
D、1.667
5.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】
程序1
#includemain(){
inti,j,t,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};for(i=0;i<3;i+ +)
for(j=0;j<=i/2;j++){
t=a[i][j],a[i][j]=a[i][3-j],a[i][3-j]=t;}
printf(\printf(\}
程序2
#includemain(){
chartr[10]=\
inti,number=0;
for(i=0;tr[i]!='\\0';i++)
if(tr[i]>='0'&&tr[i]<='7')
number=number某8+tr[i]-'0';printf(\
for(i=0;tr[i]!='\\0';i++)
if(tr[i]>='0'&&tr[i]<='5')
number=number某6+tr[i]-'0';printf(\}【问题】
(17)程序1运行时,第1行输出(17)
A、3
B、4
C、1(18)程序1运行时,第2行输出(18)A、12B、11C、
10(19)程序2运行时,第1行输出(19)A、2B、27C、23(20)程序2运行时,第2行输出(20)
A、19
D、2D、9
D、16
D、2
B、140
C、147
6阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选
一个正确答案。

【程序】
#includemain()
{
inti,j;
charch,某p1,某p2,某[4]={\for(i=0;i<4;i++){p1=p2=[i];ch=某
(p1+i);
while(某p1!='\\0'){if(某p1!=ch){某p2=某p1;p2++;}
p1++;}
某p2='\\0';
}
for(i=0;i<4;i++)printf(\
}
【问题】
(21)程序运行时,第1行输出(21)
A、our
B、four
C、fur(22)程序运行时,第2行输出(22)
D、fouD、hell
A、ello
B、hllo
C、heo(23)程序运行时,第3行输出(23)
A、peak
B、eak
C、pek
D、pak(24)程序运行时,第4行输出(24)
A、pple
B、apple
C、ale
D、appe
二、程序编写(每小题14分,共28分)
1.编写程序,输入100个整数,将他们存入数组a,求数组a中所有奇数之和。

2.按下面要求编写程序:
(1)定义函数total(n)计算123n,函数返回值类型是int。

(2)定义函数main(),输入正整数n,计算并输出下列算式的值。

要求调用函数total(n)计算123n。

111211231123n
计算机等级考试参考答案(二级C)
一、程序阅读与填空(24小题,每小题3分,共72
分)⑴D⑵C⑶C⑷B⑸B⑹B⑺A⑻A⑼A⑽A⑾D⑿D⒀A⒁B⒂C⒃D⒄D⒅C⒆C⒇B( 21)A(22)B(23)C(24)D二、程序编写(每小题14分,共28分)
1.
#includevoidmain()
{
inta[100],i,=0;for(i=0;i<100;i++){
canf(\if(a[i]%2==1)=+a[i];}
printf(\}2.
#includeinttotal(intn)
{
inti,=0;
for(i=1;i<=n;i++)=+i;return;}
voidmain(){
inti,n;float=0;canf(\
for(i=1;i<=n;i++)=+1.0/total(i);printf(\}。

相关文档
最新文档