浙江省高等学校二级C语言笔试部分真题Word文档下载推荐.docx
《浙江省高等学校二级C语言笔试部分真题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《浙江省高等学校二级C语言笔试部分真题Word文档下载推荐.docx(49页珍藏版)》请在冰豆网上搜索。
=0
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
输出50到70之间的所有素数。
要求定义和调用函数isprime(m)判断m是否为素数,若m为素数则返回1,否则返回0。
素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
53596167
math.h>
{inti;
intisprime(intm);
for(i=50;
i<
=70;
i++)
if((5)B)
%d"
i);
intisprime(intm)
inti,k;
(6)B
k=(int)sqrt((double)m);
for(i=2;
=k;
if(m%i==0)(7)A;
(8)A;
(5)A、isprime(m)!
=0B、isprime(i)!
C、isprime(m)==0D、isprime(i)==0
(6)A、if(m!
=1)return1;
B、if(m==1)return0;
C、;
D、if(m==1)return1;
(7)A、return0B、return1
C、returni<
=kD、return
(8)A、return1B、return0
C、returnD、returni<
=k
3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
输入6个整数,找出其中最小的数,将它和最后一个数交换,然后输出这6个数。
要求定义和调用函数swap(x,y),该函数交换指针x和y所指向单元的容。
Enter6integers:
61821097
Afterswaped:
69782101
voidswap(int*x,int*y)
{intt;
(9);
{inti,index,a[10];
for(i=0;
6;
a[i]);
(10);
for(i=1;
if(a[index]>
a[i])
(11);
(12);
a[i]);
\n"
(9)A、t=*x,*x=*y,*y=t
B、t=x,x=y,y=t
C、*t=*x,*x=*y,*y=*t
D、&
t=x,x=y,y=&
t
(10)A、index=0B、index=5
C、index=indexD、index=1
(11)A、a[index]=a[i]B、i=index
C、a[i]=a[index]D、index=i
(12)A、swap(a[index],a[5])
B、swap(*a[index],*a[5])
C、swap(a[*index],a[*5])
D、swap(&
a[index],&
a[5])
4.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
#defineT(c)(((c)>
='
0'
)&
&
((c)<
9'
)?
(c)-'
:
-1)
voidf1(charch)
switch(ch){
case'
:
0"
1'
1"
2'
2"
break;
3'
3"
default:
9"
}
doublef2()
return(double)(5/2);
doublef3(intn)
if(n==1)return1.0;
elsereturn1.0+1.0/f3(n-1);
%d%d\n"
T('
7'
),T('
a'
));
f1('
%.1f\n"
f2());
%.3f\n"
f3(4));
【问题】
(13)程序运行时,第1行输出(13)。
A、7-1B、-17C、7aD、-1-1
(14)程序运行时,第2行输出(14)。
A、1239B、12C、1D、9
(15)程序运行时,第3行输出(15)。
A、2.5B、2C、2.0D、3
(16)程序运行时,第4行输出(16)。
A、1.000B、2.000C、1.500D、1.667
5.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
程序1
inti,j,t,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
3;
for(j=0;
j<
=i/2;
j++){
t=a[i][j],a[i][j]=a[i][3-j],a[i][3-j]=t;
%d\n"
a[0][1]);
a[2][2]);
程序2
charstr[10]="
27"
;
inti,number=0;
str[i]!
\0'
if(str[i]>
&
str[i]<
)
number=number*8+str[i]-'
number);
5'
number=number*6+str[i]-'
(17)程序1运行时,第1行输出(17)。
A、3B、4C、1D、2
(18)程序1运行时,第2行输出(18)。
A、12B、11C、10D、9
(19)程序2运行时,第1行输出(19)。
A、2B、27C、23D、16
(20)程序2运行时,第2行输出(20)。
A、19B、140C、147D、2
6阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
inti,j;
charch,*p1,*p2,*s[4]={"
four"
"
hello"
peak"
apple"
};
4;
i++){
p1=p2=s[i];
ch=*(p1+i);
while(*p1!
){
if(*p1!
=ch){
*p2=*p1;
p2++;
p1++;
*p2='
%s\n"
s[i]);
(21)程序运行时,第1行输出(21)。
A、ourB、fourC、furD、fou
(22)程序运行时,第2行输出(22)。
A、elloB、hlloC、heoD、hell
(23)程序运行时,第3行输出(23)。
A、peakB、eakC、pekD、pak
(24)程序运行时,第4行输出(24)。
A、ppleB、appleC、aleD、appe
二、程序编写(每小题14分,共28分)
1.编写程序,输入100个整数,将他们存入数组a,求数组a中所有奇数之和。
2.按下面要求编写程序:
(1)定义函数total(n)计算
,函数返回值类型是int。
(2)定义函数main(),输入正整数n,计算并输出下列算式的值。
要求调用函数total(n)计算
。
计算机等级考试参考答案(二级C)
⑴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.
voidmain()
inta[100],i,s=0;
100;
{
if(a[i]%2==1)
s=s+a[i];
s);
2.
inttotal(intn)
inti,s=0;
=n;
s=s+i;
returns;
inti,n;
floats=0;
n);
s=s+1.0/total(i);
%f\n"
2009年秋省高等学校
计算并输出下式的值,要求精确到最后一项的绝对值小于10-3(保留4位小数)。
sum=0.8361
#include<
{intdenominator=1,flag=1;
doubleitem,sum=0;
___
(1)____
while(____
(2)___){
___(3)____
denominator=denominator+3;
flag=-flag;
}
printf("
sum=___(4)____\n"
sum);
(1)
[A]item=0;
[B]item=0.0001
[C];
[D]item=2
(2)
[A]fabs(item)>
=1E-3[B]fabs(item)<
1E-3
[C]fabs(item)>
=0.0001[D]fabs(item)<
0.001
(3)
[A]sum=sum+item;
item=flag*1.0/denominator;
[B]sum=sum+flag*1.0/denominator;
[C]item=flag*1.0/denominator;
sum=sum+item;
[D]item=item+flag*1.0/denominator;
(4)
[A]%.0f[B]%.4f[C]%f[D]%4.f
【程序说明】输出1到100之间的所有完数。
要求定义和调用函数is(n)判断n是否为完数,若n为完数则返回1,否则返回0。
完数就是因子和与它本身相等的数,1不是完数。
628
#include<
main()
{inti;
intis(intn);
for(i=1;
i<
=100;
i+1)
if(___(5)____)
printf(“%d”,i);
intis(intn)
{inti,sum;
__(6)___
sum=0;
=n/2;
if(___(7)____)
sum=sum+i;
if(__(8)__)return1;
elsereturn0;
(5)
[A]is(i)==0[B]is(i)!
[C]!
is(n)[D]is(n)
(6)
[A]if(n!
=1)return1;
[B]if(n!
=1)return0;
[C]if(n==1)return0;
[D]if(n==1)return1;
(7)
[A]n%i==0[B]n%i!
=0
[C]i%n==0[D]i%n!
=0
(8)
[A]n==0[B]sum!
=n[C]i>
n/2[D]sum==n
【程序说明】计算并输入Fibonacci序列前10项之和。
要求定义和调用函数fun(fib,n),该函数将Fibonacci序列前n项的值存放在一维数组fib中。
Fibonacci序列:
1,1,2,3,5,8,13,21,34,55,……,该序列的第一个数和第二个数都是1,从第三个数开始,每个数是前两个数之和。
sum=143
{inti,sum,a[10];
___(9)____
___(10)____
sum=0;
for(i=0;
10;
sum=sum+____(11)___;
printf(“sum=%d”,sum);
voidfun(intfib[],intn)
fib[0]=fib[1]=1;
for(i=2;
n;
___(12)____
(9)
[A]fun(intfib[],intn);
[B]voidfun(intfib[],intn)
[C];
[D]voidfun(intfib[],intn);
(10)
[A]fun(fib,n);
[B]fun(a[],10);
[C]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.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
#defineS(a,b)(a)>
(b)?
(a):
(b)
intf1(charch)
{intgrade;
switch(ch){
case“A”:
grade=95;
break;
case“B”:
grade=85;
case“C”:
grade=75;
case“D”:
grade=65;
default:
grade=0;
returngrade;
intf2()
{staticintk=1,s;
s=s+k;
k++;
returns;
intf3(intn)
{if(n==1)return2;
elsereturnf3(n-1);
{inti;
printf(“%d\n”,f1(‘C’));
for(i=1;
=3;
f2();
printf(“%d\n”,f2());
printf(“%d\n”,f3(4));
printf(“%d\n”,S(3,2+2));
(13)
程序运行时,第1行输出(13)
[A]65[B]0
[C]75[D]95
(14)
程序运行时,第2行输出(14)
[A]10[B]1
[C]6[D]2
(15)
程序运行时,第3行输出(15)
[A]24[B]2[C]10[D]1
(16)
程序运行时,第4行输出(16)
[A]3[B]4[C]5[D]1
5.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
程序1
{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;
j<
i;
j++)
flag=a[i][j];
printf(“%d\n”,flag);
for(j=2;
j>
0;
j--)
for(i=2;
i>
=j;
i--)
{charstr[10]=”4Ae2E”;
inti;
for(i=0;
=’\0’;
if(str[i]>
=’a’&
str[i]<
=’z’)
putchar(str[i]);
putchar(‘\n’);
putchar(str[i]-‘a’+’A’);
elseif(str[i]>
=’A’&
=’Z’)
putchar(str[i]-‘A’+’a’);
(17)
程序1运行时,第1行输出(17)
[A]0[B]1
[C]8[D]9
(18)
程序1运行时,第2行输出(18)
[A]9[B]7
[C]5[D]1
(19)
程序2运行时,第1行输出(19)
[A]AeE[B]a[C]ae[D]e
(20)
程序2运行时,第2行输出(20)
[A]4Ae2E[B]42[C]AeE[D]aEe
6.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
string.h>
main()
{inti,j;
charstr[10],*s[10]={“SQL”,”hello”,”bear”,”zone”};
gets(str);
4;
i++){
if(strcmp(str,s[i])>
0)continue;
j=3;
.
while(j>
=i){
s[j+1]=s[j];
j--;
}
s[i]=str;
br