浙江省計算機(jī)等級考試二級c理論試題_第1頁
浙江省計算機(jī)等級考試二級c理論試題_第2頁
浙江省計算機(jī)等級考試二級c理論試題_第3頁
浙江省計算機(jī)等級考試二級c理論試題_第4頁
浙江省計算機(jī)等級考試二級c理論試題_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2009年春浙江省高等學(xué)校

計算機(jī)等級考試試卷(二級C)

說明:⑴考生應(yīng)將所有試題的答案填寫在答卷上。其中試題一到試題六

請在答卷上的各小題選項(xiàng)的對應(yīng)位置上填“,二

⑵請將你的準(zhǔn)考證號的后五位填寫在答卷右下角的指定位置內(nèi);

⑶考試時間為90分鐘。

試題1(每小題3分,共12分)

輸入一個正整數(shù)n,計算下列式的前n項(xiàng)之和。

運(yùn)行示例:

Entern:2

Sum=0.67

#include<stdio.H>

main()

{intdenomiator,flag9i9n;

doubleitem,sum;

printf(HEntern:n);

scanf(H%d,\&n);

denomiator=l;

(1);

sum=0;

for(i=l;(2);i++)

(

⑶;

sum=sum+item;

(4);

denomiator=denomiator+2;

)

printf(nSuiTi=%.2f\nn,sum);

)

(1)A.flag=OB.flag=-l;

C.flag=nD.flag=l

(2)A.i>=nB.i<n

C.i>nD.i<=n

(3)A.item=flag/denomiatorB.item=l/denomiator

C.item=flag*l?0/denomiatorD.item=1.0/denomiator

(4)A.flag==-lB.flag=0

C.flag二-flagD.flag二flag

試題2(每小題3分,共12分)

驗(yàn)證哥德巴赫猜想:任何一個大于6的偶數(shù)均可表示為兩個素數(shù)之和。

例如6=3+3,8=3+5……,18=7+11。將6-20之間的偶數(shù)表示成兩個素數(shù)之和,

打印時一行打印5組。要求定義和調(diào)用函數(shù)prime(m)判斷m是否為素數(shù),

當(dāng)m為素數(shù)時返回1,否則返回0。素數(shù)就是只能被1和自身整除的正整數(shù),

1不是素數(shù),2是素數(shù)。

運(yùn)行示例:

6=3+38=3+510=3+712=5+714=3+11

16=3+1318=5+1320=3+17

【程序】

#include<stdio.H>

#include<math.h>

intprime(intm)

|

inti,n;

if(m==l)return0;

n=sqrt(m);

for(i=2;i<=n;i++)

if(m%i==0)retum0;

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(H%d=%d+%dnumber,i,number-i);

count++;

if((7))printf(u\nn):

(8)

)

}

(5)A.;B.return1;

C.return0;D.elsereturn1;

(6)A.prime(i)!=Ollprime(number-i)!=O

B,prime(i)!=O&&prime(number-i)!=O

C?prime(i)==Ollprime(number-i)==O

D?prime(i)==Ollprinie(nuinber-i)==O

(7)A.count%5==0B.count%5!=0

C.(count+l)%5==0D.(count+l)%5!=0

(8)A.break;B.elsebreak;

C.continue;D.;

試題3輸入一行字符,統(tǒng)計并輸出其中數(shù)字字符、英文字符和其它字符的

個數(shù)。要求定義并調(diào)用函數(shù)counts,digitjetter,other)分類統(tǒng)計字符串s中數(shù)

字字符、英文字符和其它字符的個數(shù),函數(shù)形參s是字符指針,形參

digit,letter,other的類型是整型指針,函數(shù)類型是void.。

運(yùn)行示例:

Entercharaters:f(x,y)=5x+2y-6

Digit=3Letter=5Other=6

#include<stdio.h>

voidcount(char*s,int*digit,int"letter,int*other)

{(9)

while((10))

{if(*s>=,0,&&*s<=,9,)

(*digit)++;

elseif(*s>=,a,&&*s<=,z'll*s>=,A,&&*s<=,Zr)

(*letter)++;

else

(*other)++;

s++;

)

)

main()

{inti=0,digit,lettei;other;

charch,str[80];

printf(uEntercharaters:'*);

ch=getchar();

vvhile((U))

{str[i]=ch;

i++;

ch=getchar();

)

str[i]=,\O,;

(⑵;

printf(MDigit=%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(&sti;&digit9&letter9&other)

C?count(*sti;digit,letter,other)

D.count(*sti;*digit,*lettei;*other)

試題4

#include<stdio.h>

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(H%d\nH,flag);

flag=?l;

for(i=6;i>=0;i-)

if(a[i]==8)

{break;

flag-i;

)

printf(H%d\n*\flag);

flag=O;

for(i=0;i<7;i++)

if(a[i]==9){

printf(H%d,\i);

)

printf(H\nn);

flag=O;

for(i=0;i<7;i++)

if(a[i]==7)flag=i;

printf(H%d\nn,nag);

(13)程序運(yùn)行時,第1行輸出_(13)O

A.2B.0;

C.3D.6

(14)程序運(yùn)行時,第2行輸出_(14)O

A.4B.-1

C.0D.5

(15)程序運(yùn)行時,第3行輸出_(15)O

A.246B.4

C.135D.6

(16)程序運(yùn)行時,第4行輸出_(16)0

A.246B.2

C.135D.6

試題5

#include<stdio.h>

intfl(intn)

{if(n==l)retum1;

elsereturnfl(n-l)+n;

)

intf2(intn)

{switch(n)

{case1:

case2:retum1;

default:returnf2(n-l)+f2(n-2);

)

)

voidf3(intn)

printf(H%dH,n%10);

if(n/10!=0)f3(n/10);

)

voidf4(intn)

{if(n/10!=0)f4(n/10);

printf(H%dn,n%10);

)

main()

{

printf(M%d\n'\fl(4));

printf(n%d\nn,f2(4));

f3(123);

printf(H\nH);

f4(123);

printf(n\nH);

(17)程序運(yùn)行時,第1行輸出(17)O

A.10B.24

C.6D.1

(18)程序運(yùn)行時,第2行輸出_(18)0

A.1B.3

C.2D.4

(19)程序運(yùn)行時,第3行輸出(19)O

A.123B.3

C.321D.1

(20)程序運(yùn)行時,第4行輸出_(20)0

A.1B.123

C.3D.321

試題6

ttinclude<stdio.h>

structnum

(

inta;

intb;

);

voidf(structnums[],intn)

intindex,j,k;

structnumtemp;

for(k=0;k<n-l;k++)

(

index=k;

for(j=k+l;j<n;j++)

if(s[j].b<s[index].b)index=j;

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<n;i++)

(

s[i].a=i+l;

s[i].b=0;

)

P=s;

count=no=0;

while(no<n)

(

if(p->b==O)count++;

if(count==m)

(

no++;

p->b=no;

count=0;

)

P++;

if(p=s+n)

P=s;

)

f(s,n);

printfC%d:%d\n*,s[k-l].b,s[k-l].a);

)

(21)程序運(yùn)行時,輸入543,輸出(21)

A.3:5B.2:3

C.1:2D.4:1

(22)程序運(yùn)行時,輸入534,輸出(22)

A.3:5B,1:2

C.4:3D.4:2

(23)程序運(yùn)行時,輸入752,輸出(23)

A.1:5B.6:1

C.2:3D.2:4

(24)程序運(yùn)行時,輸入424#,輸出-(24)

A.3:3B.4:2

C.2:4D.4:1

試題7(28分)

(1)定義函數(shù)fact(n)計算n的階乘:n!=l*2*.......*n,函數(shù)形參n的類型是

int,函數(shù)類型是doubleo

⑵定義函數(shù)cal(x,e)計算下列算式的值,直到最后一項(xiàng)的絕對值小于e,

函數(shù)形參x和e的類型都是double,函數(shù)類型是doubleo要求調(diào)用自定義

函數(shù)fact(n)計算n的階乘,調(diào)用庫函數(shù)pow(x,n)計算x的n次塞。

X2X3X4

S=X+——+——+——

2!3!4!

⑶定義函數(shù)main(),輸入兩個浮點(diǎn)數(shù)x和e,計算并輸出下列算式的值,

直到最后一項(xiàng)的值小于精度e,要求調(diào)用函數(shù)cal(x,e)計算下列算式的值。

234

XXX

s=x+---------1--------+——

2!3!4!

參考程序:

#include<stdio.h>

#include<math.h>

(l)doublefact(intn)

{inti;

doublet=l;

for(i=l;i<=n;i++)

t=t*i;

returnt;

(2)doublecal(doublex,doublee)

doublesum=0;

inti=l;

while(pow(x,i)/fact(i)>=e)

sum=sum+pow(x,i)/fact(i);

i++;

)

returnsum;

)

(3)main()

{doublex9e,sum;

scanf(M%lf%lfn,&x,&e);

sum=cal(x,e);

{printf(Msum=%f\nK,sum);

)

)

選著題:Adccbbaadcbaabedabebaded

2008年秋浙江省高等學(xué)校

計算機(jī)等級考試試卷(二級C)

試題1(第小題3分,共12分)

【程序說明】

輸入一批學(xué)生的成績,遇到負(fù)數(shù)表示輸入結(jié)束,要

求統(tǒng)計并各等級成績的學(xué)生個數(shù)。成績等級分為三級,

分別為A(90?100)、P(60?80)和F(0?59)。

運(yùn)行示例:

Enterscores:887168705981910607783-10

A:1;P:8;F:2;

[程序]

#include<stdio.h>

main()

{intmark,a,p,f;

a=p=f=0;

printf("Enterscores:");

scanf("%d",&mark);

while(G))

(

if(mark>=90)

a++;

______(2)______p++;

(3)f++:

)

printf("A:%d;P:%d;F:%d;\n",a,p,f);

【供選擇的答案】

(1)A、mark>=0mark>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之間所有滿足各位數(shù)字的立方之和等于它

本身的數(shù)。例如153的秋位數(shù)字的立方和是13+53+33=153

運(yùn)行示例:

1153370371407

[程序、]

#include<stdio.h>

main()

{intdigit,j,sum,x;

for(j=l;j<1000;j++){

(5)

(6)

do{

sum=sum+digit*digit*digit;

x=x/10;

}while((8));

if(j==sum)printf("%d",sum);

)

【供選擇的答案】

(5)A、sum=O;B、sum=l;

C、sum=j;D、;答案:A

(6)A、x=l;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個整數(shù),將它們從大到小排序后輸出。

運(yùn)行示例:

Enter10integers:1098-9369100-102

Aftersorted:100981096320-1-9

[程序]

#include<stdio.h>

(9)

voidsort((10))

{inti,index,k,t;

for(k=0;k<n-l;k++){

index=k;

for(i=k+l;i<n;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]);

(⑵:

printf("Aftersorted:");

for(i=0;i<10;i++)

printf("%d",a[ij);

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<stdio.h>

main()

{intj,k,sl,s2;

sl=s2=0;

for(j=0;j<=5;j++){

sl++;

for(k=1;k<=j;k++)

s2++;

)

printf("%d%d",sl,s2);

)

程序2

#include<stdio.h>

main()

{intj,k,sl,s2;

sl=O;

for(j=l;j<=5;j++){

sl++;

for(k=l,s2=0;k<=j;k++)

s2++;

printf("%d%d",sl,s2);

)

程序3

#include<stdio.h>

main()

{intj,k,sl,s2;

sl=O;

for(j=l;j<=5;j++){

sl++;

for(k=1;k<=j;k++,s2=0)

s2++;

)

printf("%d%d",sl,s2);

)

程序4

#include<stdio.h>

main()

{intj,k,sl,s2;

sl=s2=0;

for(j=l;j<=5;j++,sl=0){

sl++;

for(k=1;k<=j;k++)

s2++;

)

printf("%d%d",sl,s2);

)

(13)程序1運(yùn)行時。輸出.(13)。答案:D

A、015B、50

C、55D>515

(14)程序2運(yùn)行時。輸出(14)。答案:C

A、015B、50

C、55D>515

(15)程序3運(yùn)行時。輸出.(15)。答案:B

A>015B、50

C、55D>515

(16)程序4運(yùn)行時。輸出(16)。答案:A

A、015B、50

C、55D、515

試題5(第小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

【程序】

程序1

#include<stdio.h>

main()

{inti,m=15,y=-l;

for(i=2;i<=m/2;i++)

if(m%i==O)y=O;

elsey=l;

printf("%d",y);

)

程序2

#include<stdio.h>

main()

{inti,m=15,y=-l;

for(i=2;i<=m/2;i++)

if(m%i==O){y=O;break;}

printf("%d",y);

)

程序3

#include<stdio.h>

main()

{inti,m=15,y=-l;

for(i=2;i<=m/2;i++)

if(m%i==O)break;

if(i>rr)/2)y=1;

elsey=0;

printf("%d",y);

)

程序4

#include<stdio.h>

main()

{inti,m=15,y=-l;

for(i=2;i<=m/2;i++)

if(m%i==O){break;y=0;}

printf("%d",y);

(17)程序1運(yùn)行時。輸出.(17)。答案:A

A、1B、0

C、15D、-1

(18)程序1運(yùn)行時。輸出.(18)。答案:B

A、1B、0

C、15D、-1

(19)程序1運(yùn)行時。輸出,(19)。答案:B

A、1B、0

C、15D、-1

(20)程序1運(yùn)行時。輸出.(20)。答案:D

A、1B、0

C、15D、-1

試題6(第小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

【程序】

#include<stdio.h>

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]=W;

for(k=0;a[kj!='0';k++)

printf("%s",s['9--a[k]-l]);

)

(22)程序運(yùn)行時,輸入5678,輸出(22)

答案:D

A、twothreeB、two

C、onefourthreeD、fourthreetwoone

(23)程序運(yùn)行時,輸入8561#,輸出(23)

答案:C

A、twothreeB、two

C、onefourthreeD、fourthreetwoone

(24)程序運(yùn)行時,輸入7902#,輸出(24)°

答案:B

A、twothreeB、two

C、onefourthreeD、fourthreetwoone

(25)程序運(yùn)行時,輸入7633#,輸出(25)。

答案:B

A、twothreeB、two

C、onefourthreeD、fourthreetwoone

試題7(28分)

(1)定義函數(shù)fact(n)計算n的階乘:n!=l*2*.......*n,函數(shù)的

返回值類型是doubleo

(2)定義函數(shù)cal(e)計算下列算式的值,直到最后一項(xiàng)

的絕對值小于e,函數(shù)的返回值類型是doubleo

(3)定義函數(shù)main。。輸入正整數(shù)n,當(dāng)精度e分別取值

10-1、10-2、10-3……、10-n時,分別計算并輸出下列式

的值,直到最后一項(xiàng)的絕對值小于精度e,以比較不同精

度下算出的結(jié)果。要求調(diào)用函數(shù)cal(e)計算下列算式的。

參考程序:

#include<stdio.h>

#include<math.h>

(1)doublefact(intn)

{inti;

doublet=l;

for(i=l;i<=n;i++)

t=t*i;

returnt;

)

(2)doublecal(doublee)

(

doublesum=0,t=l;

inti=l;

while(l/t>=e)

{t=fact(i);

sum=sum+1.0/t;

i++;

returnsum;

(3)main()

{intn,i;

while(scanf("%d",&n),n<=0);

for(i=l;i<=n;i++)

{printf("i=%d

l+l/2!+l/3!+.......=%f\n",i,cal(pow(10,-i)));

)

2008年春浙江省高校

計算機(jī)等級考試試卷(二級C)

試題1(每小題3分,共12分)

【程序說明】輸入一個整數(shù)n(n>=2),輸入菲波那契序

列的前n項(xiàng),每行輸出6個數(shù),菲波那序列:1,1,2,

3,5,8,13,……,數(shù)列的前兩個數(shù)都是1,從第三項(xiàng)

開始,每個數(shù)是前兩個數(shù)之和。

運(yùn)行示例:

Entern:10

112358

13213455

#include<stdio.h>

main()

{intcount,i,n,xl,x2,x;

printf("Entern:");

scanf("%d",&n);

x1=x2=1;

printf("%6d%6d",xl,x2);

⑴;

for(i=l;i<=n-2;i++)

((2);

printf("%6d",x);

count++;

if((3))printf("\n");

xl=x2;

(4)

)

)

【供選擇的答案】

(1)A、count=2B、count=0

C>count=1D、count=-l答案:A

⑵A、x=xl-x2B、x=xl+x2

C、x=xlD、x=2答案:B

⑶A、count/6==0B、count%6!=0

C、count%6==0D、count/6!=0答案:C

(4)A、x=xl+x2B、x2=xl

C、x=x2D、x2=x答案:D

試題2(每小題3分,共12分)

【程序說明】

輸入2個正數(shù)m和n(l<=m<n<=500),統(tǒng)計交輸出

m和n之間素數(shù)的個數(shù)以及這些素數(shù)的和,要求定義和

調(diào)用函數(shù)prime(m)判斷m是否為素數(shù),當(dāng)m為素數(shù)返回

1,否則返回0。素數(shù)就是只能被1和自身整除的正整,1

不是素,2是素數(shù)。

運(yùn)行示例:

Enterm,n:110

count=4,sum=17

【程序】

#include<stdio.h>

#include<math.h>

intprime(intm)

{inti,n;

if(m==l)returnC5);

n=sqrt(m);

for(i=2;i<=n;i++)

if(m%i==0)retum(6J

returnC7);

)

main()

{intcount=0,i,m,n,sum=0;

printf("Enterm,n:");

scanf("%d%d",&m,&n);

for(i=m;i<=n;i++)

if((8)){

sum+=i;

count++;

)

printf("count=%d,sum=%d\n",count,sum);

【供選擇的答案】

(5)A、1B、m

C、m==1D、0答案:D

(6)A>mB、1

C、0D、n答案:C

⑺A、mB、1

C、0D、i==n答案:B

⑻A、prime(i)!=0B、prime⑴==0

C、1=prime(i)D、!prime(i)答案:A

試題3(每小題3分,共12分)

【程序說明】

輸入一個2*3的二維數(shù)組,找出最大值以及它的行下

標(biāo)和列下標(biāo),并輸出該結(jié)果。

運(yùn)行示例:

Enterarray(2*3):3210-96-1

max=a[0J[2]=10

3210

-96-1

#include<stdio.h>

main()

{intcol,row,i,j;

inta[2][3];

printf("Enterarray(2*3):");

for(i=0;i<2;i++)

for(j=0;j<3;j++)

scanf("%d".(9)

(10)_______;

for(i=0;i<2;i++)

for(j=0;j<3;j++)

if(a[i][j]>a[row][col])

{(11)

)

printf("max=a[%d][%d]=%d\n",row,col,a[row][col]);

for(i=0;i<2;i++)

{for(j=0;j<3;j++)

printf("%4d",a[i][j]);

(12)

【供選擇的答案】

(9)A、&a[i]U]B、&a[j][i]

C、a[i][j]D、a[j][i]答案:A

(10)A>row=col=2;B、row=col=0;

C、a[row][col]=0;D、a[row][col]=-l;答

案:B

(11)A、row=j;col=i;B、a[row][col]=a[i][j];

C、row=i;col=j;D、a[row][col]=a[j][i];答

案:C

(12)A、printf("\n”)};B、}printf("\n”);

C、;D、printf("\n");}答案:D

試題4(每小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

【程序】

#include<stdio.h>

main()

{intopl,op2,res;

charopertor;

scanf("%d",&opl);

opertor=getchar();

while(opertor!='=')

(

scanf("%d",&op2);

switch(opertor)

(

case'+':res=op1+op2;break;

case'-':res=opl-op2;break;

case'*':res=opl*op2;break;

case'/':res=op1/op2;break;

default:res=O;

)

opl=res;

opertor=getchar();

)

printf("%d\n",res);

)

(13)程序運(yùn)行時,輸入2*3-2=,輸出(13)。

A、6B、2

C、0D、4答案:D

(14)、程序運(yùn)行時,輸入15+2/3=,輸出

(14)________________o

A、16B、15

C、6D、5答案:D

(15)、程序運(yùn)行時,輸入1+2*10-10/2=,輸出

(15)________________o

A、10B、16

C、15D、25答案:A

4、程序運(yùn)行時,輸入1+3*527=,鼬(16)

A、3B、1

C、-2D、-3答案:A

試題5(每小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

【程序】

#include<stdio.h>

#defineMAXLEN80

main()

{intk=0,number=0;

charstrLMAXLENJ;

while((str[k]=getchar())!='#')

k++;

strlk]=\0';

for(k=0;strlk]!='\0';k++)

if(str[k]>='0'&&str[k]<='9'llstr[k]=='A,llstr[k]=='B')

if(str[k]>='0'&&str[k]<='9')

number=number*12+str[k]-'O';

elseif(str[k]=='A,llstr[k]=='B')

number=number*12+str[k]-'A'+10;

else;〃第15行

elsebreak;〃第16行

printf("%d\n",number);

(17)、程序運(yùn)行時,輸入10#,輸出(17)

A、16B、10

C、12D、1答案:A

(18)、程序運(yùn)行時,輸入laO#,輸出(序)

A、264B、10

C、1D、12答案:C

(19)、第16行改為后,程序運(yùn)行時,輸入A*0#,

輸出(19)。

A、0B、120

C、10D、12答案:B

(20)、第16行改為“elsebreak;”刪除第15行后,程序

運(yùn)行時,輸入IbO#,輸出(20)。

A、10B、12

C、276D、1答案:B

試題6(每小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

【程序】

#include<stdio.h>

#include<string.h>

main()

{char*S[2]={"****","****"};

while(*s[l]!='O)

{printf("%s\n",s[O]+strlen(s[l])-l);

s[l]++;

)

)

(21)、程序運(yùn)行時,第]行輸出(19)。

A、****B、***

C、**D、*答案:D

(22)、程序運(yùn)行時,第2行輸出(19)。

A、****B、***

C、**D、*答案:C

(23)、程序運(yùn)行時,第3行輸出(19)。

A、****B、***

C、**D、*答案:B

(24)、程序運(yùn)行時,第4行輸出(19)。

A、****B***

C、**D、*答案:A

試題7(28分)

1、定義函數(shù)fact(n)計算n的階乘:n!=l*2*3*.......*n,函

數(shù)的返回值類型是double。

2、定義函數(shù)cal(m,n)計算累加和:s=m+(m+l)+(m+2).......

+n,函數(shù)的返回值類型是doubleo

3、定義函數(shù)main。,輸入整數(shù)n,計算并輸出下列算式的

值。該算式中,每一項(xiàng)的分子是累加和,要求調(diào)用函數(shù)

cal(m,n)計算累加和;每一項(xiàng)的分母是階乘,要求調(diào)用函

數(shù)fact(n)計算n!。y=1+(1+2)/2!+(1+2+3)/3!+……+

(1+2+3+.....n)/n!

#include<stdio.h>

doublefact(intn)〃第一題

{inti;

doublet=l;

for(i=l;i<=n;i++)

t*=i;

returnt;

)

doublecal(intm,intn)//第二題

{doubles=0;

inti;

for(i=m;i<=n;i++)

s+=i;

returns;

)

main()〃第三題

{intn,i;

doubles=0;

printf("請輸入一個正整數(shù):");

while(scanf("%d",&n),n<=0);

for(i=l;i<=n;i++)

s+=cal(l,i)/fact(i);

printf("%f",s);

2007年秋浙江省高校

計算機(jī)等級考試試卷(二級C)

試題1(每小題3分,共12分)

程序說明輸入2個整數(shù)lower和upper,輸出一張華氏-

攝氏轉(zhuǎn)換表,華氏溫度的取值范圍[lower,upper],每次增

加2F,計算公式:c=5*(f-32)/9;式中c表示攝氏,f表示

華氏。

運(yùn)行示例:

Enterlower:30

Enterupper:35

fahrCelsius

30-1.1

320.0

341.1

程序:

#include<stdio.h>

main()

{intfahr,lower,upper;

doubleCelsius;

printf("Enterlower:");

scanf("%d",&lower);

printf("Enterupper:");

scanf("%d",&upper);

printf("fahrcelsius\n");

for(fahr=lower;QJ;(2))

(

celsius=(3);

printf("%d(4)\n”,fahr,celsius):

)

)

【供選擇的答案】

(1)A、fahr<=upperB、fahr<upper

C、fahr>=upperD、fahr>upper答

案:A

(2)A、fahr++B、fahr=fahr-2

C、fahr+2D、fahr=fahr+2答案:D

⑶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.2f

C、%6.1fD、%6.0f答案:C

試題2(每小題3分,共12分)

程序說明

輸入2個正數(shù)a和n,求a+aa+aaa+.......+a(n個

a)這和,要求定義并調(diào)用函數(shù)fn(a,n),這它的功能是

返回aa…a(n個a)。例如fn(3,2)的返回是33。

運(yùn)行示例:

Entera:2

Entern:3

sum=246

#include<stdio.h>

main()

{inti,n;

longa,sn;

longfn(longa,intn);

printf("Entera:");

scanf("%ld",&a);

printf("Entern:");

scanf("%d",&n);

(5)

for(i=l;i<=n;i++)

(6)

printf("sum=%ld\n",sn);

)

longfn(longa,intn)

{inti;

longtn=0;

for(i=l;i<=n;i++)

(

tn=tn+a;

(8)

)

【供選擇的答案】

(5)A、sn=0;B、;

C、sn=l;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、returnsn;

C、returna;D、returntn;答

條:D

試題3(每小題3分,共12分)

程序說明

輸入一行以回車結(jié)束的字符串(少于80個字符),刪

除其中的英文字母和數(shù)字字符以外的其它字符,再判斷

字符串是否對稱(不區(qū)分大小寫)。

運(yùn)行示例1:

Enterastring:MadamI'mAdam

Yes

運(yùn)行示例2:

Enterastringrelephant

No

程序

#include<stdio.h>

(9)

main()

{intflag,i,k,length;

charstr[8O];

printf("Enterastring:");

gets(str);

i=k=0;

while(str[i])

(

if(isupper(str[i]))str[ij=tolower(str[i]);

if(isdigit(str[i])llisalpha(str[i]))

1(10)

k++;

i++;

)

(11)

length=k;

flag=l;

for(k=0;k<=length/2;k++)

if(str[k]!=str[length-k-l])

(

(12)

break;

)

if(flag)printf("yes\n");

elseprintf("no\n");

)

【供選擇的答案】

(9)A、ctype.hB、string.h

答案:A

C、stdio.hD、math.h

(10)A、i++;B、str[kj=str[i];

C、str[i]=str[k];D、;

答案:B

(11)A、str[i]=,\0,;B、str[i-l]=,\0,;

C、str[kJ=,\0,;D、;

答案:C

(12)A、flag=l;B、flag=0;

C、;D、continue;

答案:B

試題4(每小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

[程序]

#include<stdio.h>

main()

{inti,m;

scanf("%d",&m);

for(i=2;i<=m/2;i++)

if(m%i==O)

(

printf("%d#",i);

break;〃第8行

)

printf("%d",i);

)

(13)、程序運(yùn)行時,輸入5,輸出

A、3B、3#3

C、3#4D、3#5答案:A

(14)、程序運(yùn)行時,輸入9,輸出

A、3B、3#3

C、3#4D、3#5答案:B

(15)、將程序第8行改為“continue;”程序運(yùn)行時,輸

入9,輸出。

A、3B、3#3

C、3#4D、3#5答

條:D

(16)、將程序第8行改為程序運(yùn)行時,輸入9,輸

出O

A、3B、3#3

C、3#4D、3#5答案:D

試題5(每小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

[程序]

#include<stdio.h>

main()

(

inti,j,temp;

inta[3][3]={1,23,4,5,6,7,8,9);

voidf(int*x,int*y);

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(i<j)

f(&a[i][j],&a|j][i]);//M8行

for(i=0;i<3;i++)

for(j=0;j<3y++)

printf("%2d",a[i][j]);

)

voidf(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

)

(17)程序的輸出是。

A、32164987B、789456123

C、123456789D、147258369

答案:D

(18)、第8行改為后,程序的輸

出O

A、32164987B、789456123

C、123456789D、147258369

答案:C

(19)、第8行改為“if(i<2)f(&a[皿,后,程

序的輸出。

A、32164987B、789456123

C、123456789D、147258369

答案:B

(20)、第8行改為皿2-j]);"后,程

序的輸出。

A、32164987B、789456123

C、123456789D、147258369

答案:A

試題6(每小題3分,共12分)

閱讀下列程序并回答問題,在每小題提供的若干可選答

案中挑選一個正確答案。

[程序]

#include<stdio.h>

main()

(

inti,xl,x2;

inta[5]={l,2,3,4,5};

voidfl(intx,inty),f2(int*x,int*y);

xl=x2=0;

for(i=0;i<5;i++)

if(a[i]>a[xlj)xl=i;

if(a[i]<a[x2])x2=i;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論