C語言試卷精選_第1頁
C語言試卷精選_第2頁
C語言試卷精選_第3頁
C語言試卷精選_第4頁
C語言試卷精選_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.C語言試卷習題精選(閱讀下列說明和程序,在每小題提供的可選答案中,挑選一個正確答案。)1. 從鍵盤輸入一個實數,若該數小于0,則輸出”1234”,否則輸出”4321”。 程序如下:# include int main() float a; printf(Input a number:); scanf(%f,&a); if ( (1) ) printf(1234n); else printf(4321n); return 0;(1) A、a=0 B、a0 C、a!=0 D、a/10%10=02從鍵盤輸入兩個英文字母,按由小到大的順序輸出這兩個字母。程序如下:# include int main

2、() char a,b,t; printf(Input character:); scanf(%c,%c,&a,&b); if ( (2) ) t=a; a=b; b=t; printf(%c,%c, a,b); return 0;(2) A、ab B、ab C、a!=b D、a=b3從鍵盤輸入若干個數, 計算它們的和,當和大于1000時停止計算。程序如下:# include int main()int k,sum=0; while(sum=1000) scanf(%d,&k); sum= (3) ; printf(%dn,sum); return 0; (3) A、sum+k B、smu=k

3、 C、k=k+sum D、k=sum4. 求 1 + 2/3 + 4/5 + 6/7 + 8/9 + + 96/97 +98/99之和。程序如下:# include int main()float k=1.0, s=1.0; int i=0; do i=i+2;s= s + i/(i+1); while( (4) );printf(%fn,s); return 0; (4) A、i=99 B、i=98 C、i98 D、i=1 5從鍵盤輸入80個整數,求其中的偶數之和。程序如下:# include int main() int i,x; long he=0;for(i=1;i=80;i+) sc

4、anf(%d,&x); if ( (5) ) he=he+x; printf(%ldn,he); return 0; (5)A、x%2!=0 B、x%2=1 C、x%2=0 D、x%2=16. 輸入30個字符串,輸出其中最大的字符串。程序如下:# include # include # define N 30int main() int i; char da80, strN80; for (i=0;iN;i+) (6) ; strcpy(da,str0); for (i=1;i0) (7) ; printf(The largest string is:%sn,da); return 0;(6)

5、 A、gets(stri) B、puts(stri) C、strlen(stri) D、printf(stri)(7) A、strupr(stri,da) B、strcat(stri,da)C、strcmp(da,stri) D、strcpy(da,stri)7. 在main中調用函數aver, 利用aver計算50個實數的平均值,在主函數中輸出這50個實數中大于平均值的實數。程序如下:#include float aver(float s,int n); /*函數聲明*/int main() float score50,aver1; int i; for(i=0; (8) ;i+) scan

6、f(“%f”,&scorei);aver1=aver(score,50); /*函數調用*/ for(i=0;i50;i+) if( (9) ) printf(“%f,”,scorei);return 0; float aver(float s,int n) /*函數定義*/ int i; float aver2 ,sum=0; for(i=0;i=50 B、i=50 C、i50 D、iaver1 C、scorei=aver1 D、scoreiaver1(10) A、sum/n B、sum*n C、sum D、cj0/n二 、回答問題(每個問題3分,共30分)(閱讀下列程序并回答問題,在每小題

7、提供的可選答案中,挑選一個正確答案。) 1. 程序如下: # include int main() int x,y;scanf(%d,&x);if (x0) y=x+10; else if (0=x & x20) y=x+20; else y=x+30; printf(%dn,y); return 0;(11) 程序運行時,從鍵盤輸入-23,輸出 (11) 。 A、-23 B、-13 C、-10 D、-20(12) 程序運行時,從鍵盤輸入50,輸出 (12) 。 A、80 B、70 C、60 D、502. 程序如下: # include int main() int zhs, sw; scan

8、f(“%d”, &zhs); sw=zhs/10;switch(sw) case 10:case 9: printf(“an”);break;case 8: printf(“bn”);break; case 7: printf(“cn”);break; case 6: printf(“dn”);break;default: printf(“en”); return 0;(13) 程序運行時,從鍵盤輸入91,輸出 (13) 。 A、a B、b C、c D、d E、e(14) 程序運行時,從鍵盤輸入39,輸出 (14) 。 A、a B、b C、c D、d E、e3. 程序如下: # include

9、 # define M 7int main() int a,j,mark=0;int numM= 49,76,85,79,48,36,93;scanf(“%d”,&a); for (j=0;jM;j+)if (n=numj) printf(“%d n”,j);mark=1; break; if(mark=0)printf(“沒有找到”);(15) 程序運行時,從鍵盤輸入76,輸出 (15) 。 A、7 B、1 C、76 D、沒有找到(16) 程序運行時,從鍵盤輸入13,輸出 (16) 。 A、0 B、2 C、13 D、沒有找到 4. 程序如下:#include void hwap(int *p

10、1,int *p2); /*函數聲明*/ int main() int a ,b , *pa ,*pb ; pa=&a; pb=&b; scanf(“%d, %d”,&a,&b); y=hwap(pa,pb); /*函數調用*/ printf(“%d n”, y); return 0; void hwap(int *p1,int *p2) /*函數定義*/ int temp; if (*p1 *p2) temp=(*p1)-(*p2);else temp=(*p1)+(*p2);return(temp); (17) 程序運行時,從鍵盤輸入9,3,輸出 (17) 。 A、6 B、 9 C、 3

11、D、12(18) 程序運行時,從鍵盤輸入2,6,輸出 (18) 。 A、8 B、 6 C、 2 D、-45. 程序如下:#include struct student int num;char name8;float price;bgs3=123,“l(fā)amp”,50.0,456,“elec”,60.0,789,“tool”,70.0;int main() int i,xh; float aver=0;for(i=0;i3;i+) aver=aver+bgsi.price; aver=aver/3;scanf(“%d”,&xh);for(i=0;i3;i+) if (xh=gbsi.num)pr

12、intf(“%5.1fn”, aver-bgsi.price );return 0;(19) 程序運行時,從鍵盤輸入123,輸出 (19) 。 A、-10.0 B、 10.0 C、0.0 D、50.0(20) 程序運行時,從鍵盤輸入789,輸出 (20) 。 A、10.0 B、 0.0 C、-10.0 D、70.0三、寫出程序的輸出(每題5分,共20分)1. 程序如下:# include int main( ) int i, j; int s32=300,23,80,45,350,27;for (i=0; i3; i+)for (j=0; j2; j+) if (sij=70) printf

13、(%d, sij); return 0;(21) 程序運行結束時,輸出 (21) 。A、23,45,27, B、300,23,80,45,350,27,C、300,80,350, D、300,23,27,2. 程序如下:# define N 6# include int main( ) int i, j, k; char temp; char aN=B,F,A, E,C, D;for (i=0; i=N-2; i+) k=i;for (j=i+1; j=N-1; j+) if (ajak) k=j; temp=ai; ai=ak; ak=temp; for (i=0; i=N-1; i+) p

14、rintf (%c , ai);printf(n); return 0;(22) 程序運行結束時,輸出 (22) 。A、B,F,A,E,C,D, B、D,C,E,A,F,B,C、A,B,C,D,E,F, D、a,b,c,d,e,f,3. 程序如下:#include void add(int a,int n); /*函數聲明*/int main()int x5=10,20,30,40,50; int i,sum; sum=add(x,5); /*函數調用*/ for(i=0;i5;i+) printf(“%4d”, sum-xi); return 0;void add(int a,int n)

15、/*函數定義*/ int i,s=0;for(i=0;in;i+) s=s+ai;return(s);(23) 程序運行結束時,輸出 (23) 。A、50 40 30 20 10 B、10 20 30 40 50C、100 110 120 130 140 D、140 130 120 110 1004. 程序如下:# include int main( ) FILE *fp ; char ch; int k; char string50=“123abcABGH8743MNper”; fp=fopen(“d:chr.txt”, “w+”); for(k=0;stringk!=0;k+) fputc

16、(stringk,fp);rewind(fp);while ( !feof(fp) ) ch=fgetc(fp) ; if (a=ch & ch=z) printf( “%c”,ch); fclose(fp); return 0;(24) 程序運行結束時,輸出 (24) 。A、abcper B、123abcABGH8743MNper C、ABGHMN D、abcABGHMNper四、編寫程序(每題10分,共20分)1使用循環(huán)和數組編寫:從鍵盤輸入的30個實數,存放在數組中,找出這30個實數中最小的數并輸出該數。2使用數組和函數調用知識編寫程序:在main函數中,從鍵盤輸入80個實數存放在數組s

17、tu中;將數組名stu和實數的個數80作為兩個實參,調用函數hsh;函數hsh返回80個實數的平均值,在main函數中輸出小于該平均值的實數個數。函數hsh的作用是計算平均值并返回平均值。標準答案與評分標準(B)一、單項選擇(每項選擇3分,共30分). 每項選擇正確得3分,錯誤不得分.(1)B (2)A (3)A (4)C (5)C (6)A (7)D (8)D (9)B (10)A二 、回答問題(每個問題3分,共30分),每項選擇正確得3分,錯誤不得分.(11)B (12)A (13)A (14)E (15)B (16)D (17)A (18)A (19)B (20)C三、寫出程序的輸出(每

18、題5分,共20分),每項選擇正確得5分,錯誤不得分.(21)A (22)C (23)D (24)A四、編寫程序(每題10分,共20分)1.參考程序如下:# include “stdio.h”main() int k;float min,a30; for(k=0;k30;k+) scanf(“%f”,&ak);min=a0; for(k=0;k10;k+) if(akmin) min=ak;printf(“%f”,min);return 0; 完全正確得10分。若輸入錯誤扣2分,若找最大值錯誤扣4分, 若輸出錯誤扣1分。2. 參考程序如下:# include “stdio.h”float hsh

19、(float b,int n) float s=0.0; int k; for(k=0;kn;k+) s=s+bk; s=s/n; return(s);main() int k, num=0; float aver, a80; for(k=0;k80;k+) scanf(“%f”,&ak);aver=fun(a,80); for(k=0;k80;k+) if(akaver) num+;printf(“%d”,num);return 0;完全正確得10分。若輸入錯誤扣2分,若找函數fun錯誤扣3分, 若統(tǒng)計個數錯誤扣3分,若輸出錯誤扣1分。一、單項選擇(每項選擇3分,共30分)(閱讀下列說明和程

20、序,在每小題提供的可選答案中,挑選一個正確答案。)1. 從鍵盤輸入一個整數,若該數大于5,則輸出”YES”,否則輸出”NO”。程序如下:# include int main() int a; printf(輸入一個整數:); scanf(%d,&a); if ( (1) ) printf(YESn); else printf(NOn); return 0;(1) A、a!=5 B、a5 C、a%10!=5 D、a/10%10=52從鍵盤輸入兩個整數,按由小到大的順序輸出這兩個整數。程序如下:# include int main() int a,b,t; printf(輸入兩個整數:); sca

21、nf(%d,%d,&a,&b); if ( (2) ) t=a; a=b; b=t; printf(%d,%d, a,b); return 0;(2) A、ab B、ab C、a!=b D、a=b3從鍵盤輸入若干個數, 計算它們的和,當和大于500時停止計算。程序如下:# include int main()int x,sum=0; while(sum=500) scanf(%d,&x); sum= (3) ; printf(%dn,sum); return 0; (3) A、sum+x B、smu=x C、x=x+sum D、x=sum4. 求 1 + 1/3 + 1/5 + 1/7 + 1

22、/9 + + 1/97 +1/99之和。程序如下:# include int main()float s=0; int i=1; do s=s+1.0/i; i=i+2; while( (4) );printf(%fn,s); return 0; (4) A、i=99 B、i=99 C、i=99 D、i99 5從鍵盤輸入50個整數,求其中的奇數之積。程序如下:# include int main() int i,x; long ji=1;for(i=1;i=50;i+) scanf(%d,&x); if ( (5) ) ji=ji*x; printf(ji=%ldn,ji); return 0

23、; (5)A、x%2=0 B、x%2=0 C、x%2=1 D、x%2=16. 輸入10個字符串,輸出其中最大的字符串。程序如下:# include # include # define N 10int main() int i; char big20, strN20; for (i=0;iN;i+) (6) ; strcpy(big,str0); for (i=1;i0) (7) ; printf(The largest string is:%sn,big); return 0;(6) A、puts(stri) B、gets(stri) C、scanf(stri) D、printf(stri)

24、(7) A、strcmp(stri,big) B、strcpy(stri,big)C、strcpy(big,stri) D、strcmp(big,stri)7. 在main中調用函數average, 利用average計算10個實數的平均值,在主函數中輸出這10個實數中小于平均值的實數。程序如下:#include float average(float s,int n); /*函數聲明*/int main() float score10,aver1; int i; for(i=0; (8) ;i+) scanf(“%f”,&scorei);aver1=average(score,10); /*

25、函數調用*/ for(i=0;i10;i+) if( (9) ) printf(“%f,”,scorei);return 0; float average(float s,int n) /*函數定義*/ int i; float aver2 ,sum=0; for(i=0;i=10 B、i=10 C、i10 D、i10(9) A、scorei=aver1 B、scoreiaver1 C、scoreiaver1(10) A、sum/n B、sum*n C、sum D、s0二 、回答問題(每個問題3分,共30分)(閱讀下列程序并回答問題,在每小題提供的可選答案中,挑選一個正確答案。) 1. 程序如

26、下: # include int main() float x,y;scanf(%f,&x);if (x0) y=x+1; else if (0=x & x15) y=x+2; else y=x+3; printf(%fn,y); return 0;(11) 程序運行時,從鍵盤輸入-23,輸出 (11) 。 A、-23 B、-22 C、-21 D、-20(12) 程序運行時,從鍵盤輸入20,輸出 (12) 。 A、23 B、22 C、21 D、202. 程序如下: # include int main() int cj, de; scanf(“%d”, &cj); de=cj/10;switc

27、h(de) case 10:case 9: printf(“An”);break;case 8: printf(“Bn”);break; case 7: printf(“Cn”);break; case 6: printf(“Dn”);break;default: printf(“E n”); return 0;(13) 程序運行時,從鍵盤輸入83,輸出 (13) 。 A、A B、B C、C D、D E、E(14) 程序運行時,從鍵盤輸入45,輸出 (14) 。 A、A B、B C、C D、D E、E3. 程序如下: # include # define N 8int main() int n

28、,j,mark=0;int numN= 36,49,16,79,85,48, 93,61;scanf(“%d”,&n); for (j=0;jN;j+)if (n=numj) printf(“%d n”,j);mark=1; break; if(mark=0)printf(“沒有找到”);(15) 程序運行時,從鍵盤輸入48,輸出 (15) 。 A、1 B、 3 C、 5 D、沒有找到(16) 程序運行時,從鍵盤輸入100,輸出 (16) 。 A、0 B、2 C、4 D、沒有找到 4. 程序如下:#include void swap(int *p1,int *p2); /*函數聲明*/ int

29、 main() int a ,b ,max, *pa ,*pb ; pa=&a; pb=&b; scanf(“%d, %d”,&a,&b); max=swap(pa,pb); /*函數調用*/ printf(“%d n”, max); return 0; void swap(int *p1,int *p2) /*函數定義*/ int temp; if (*p1 *p2) temp=*p1; else temp=*p2; return(temp);(17) 程序運行時,從鍵盤輸入9,5,輸出 (17) 。 A、9 B、 5,9 C、 5 D、9,5(18) 程序運行時,從鍵盤輸入3,8,輸出 (

30、18) 。 A、8 B、 3,8 C、 3 D、8,35. 程序如下:#include struct student int num;char name8;float score;stu3=601,“abc”,90.0,602,“efg”,80.0,603,“hij”,70.0;int main() int i,xh; float aver=0;for(i=0;i3;i+) aver=aver+stui.score; aver=aver/3;scanf(“%d”,&xh);for(i=0;i3;i+) if (xh=stui.num)printf(“%5.1fn”, aver-stui.sco

31、re );return 0;(19) 程序運行時,從鍵盤輸入601,輸出 (19) 。 A、10.0 B、 10.0 C、0.0 D、90.0(20) 程序運行時,從鍵盤輸入603,輸出 (20) 。 A、-10.0 B、 0.0 C、10.0 D、70.0三、寫出程序的輸出(每題5分,共20分)1. 程序如下:# include int main( ) int i, j; int a23=100,23,20,45,50,27;for (i=0; i2; i+)for (j=0; j30) printf (%d , aij); return 0;(21) 程序運行結束時,輸出 (21) 。A、

32、100,45,50, B、100,23,20,45,50,27,C、23,20,27, D、100,20,50,2. 程序如下:# define N 6# include int main( ) int i, j, k, temp; int aN=4,1,6,2,3,5;for (i=0; i=N-2; i+) k=i;for (j=i+1; jak) k=j; temp=ai; ai=ak; ak=temp; for (i=0; i=N-1; i+) printf (%d , ai);printf(n); return 0;(22) 程序運行結束時,輸出 (22) 。A、4,1,6,2,3,

33、5, B、5,3,2,6,1,4,C、6,5,4,3,2,1, D、1,2,3,4,5,6,3. 程序如下:#include void add(int a,int n); /*函數聲明*/int main()int a5=0,1,3,5,7 ; int i,sum; sum=add(a,5); /*函數調用*/ for(i=0;i5;i+) printf(“%3d”, sum-ai); return 0;void add(int a,int n) /*函數定義*/ int i,s=0;for(i=0;in;i+) s=s+ai;return(s);(23) 程序運行結束時,輸出 (23) 。A

34、、0 1 3 5 7 B、7 5 3 1 0C、9 11 13 15 16 D、16 15 13 11 94. 程序如下:# include int main( ) FILE *fp ; char ch; int k; char str30=“XYZabc8765efgEFG”; fp=fopen(“c:wen.txt”, “w+”); for(k=0;strk!=0;k+) if (a=strk & strk=z|A=strk & strk=Z) fputc(strk,fp);rewind(fp);while ( !feof(fp) ) ch=fgetc(fp) ; if (A=ch & c

35、h=Z) printf( “%c”,ch); fclose(fp); return 0;(24) 程序運行結束時,輸出 (24) 。A、XYZEFG B、XYZabc8765efgEFG C、8765efg D、XYZabcefgEFG四、編寫程序(每題10分,共20分)1使用循環(huán)和數組編寫:從鍵盤輸入的10個整數, 存放在數組中,找出這10個整數中最大的數并輸出該數。2使用數組和函數調用知識編寫程序:在main函數中,從鍵盤輸入100個學生的某一門課的成績, 存放在數組a中;將數組名a和學生個數100作為兩個實參,調用函數fun;函數fun返回所有成績的平均值,在main函數中輸出大于該平均

36、值的學生個數。函數fun的作用是計算平均值并返回平均值。標準答案與評分標準(A)(二本)一、單項選擇(每項選擇3分,共30分). 每項選擇正確得3分,錯誤不得分.(1)B (2)A (3)A (4)C (5)C (6)B (7)C (8)D (9)B (10)A二 、回答問題(每個問題3分,共30分),每項選擇正確得3分,錯誤不得分.(11)B (12)A (13)B (14)E (15)C (16)D (17)A (18)A (19)B (20)C三、寫出程序的輸出(每題5分,共20分),每項選擇正確得5分,錯誤不得分.(21)A (22)C (23)D (24)A四、編寫程序(每題10分,

37、共20分)1.參考程序如下:# include “stdio.h”main() int k,max,a10; for(k=0;k10;k+) scanf(“%d”,&ak);max=a0; for(k=0;kmax) max=ak;printf(“%d”,max);return 0; 完全正確得10分。若輸入錯誤扣2分,若找最大值錯誤扣4分, 若輸出錯誤扣1分。2. 參考程序如下:# include “stdio.h”float fun(int b,int n) float s=0.0; int k; for(k=0;kn;k+) s=s+bk; s=s/n; return(s);main()

38、 int k, num=0, a100; float aver; for(k=0;k100;k+) scanf(“%d”,&ak);aver=fun(a,100); for(k=0;kaver) num+;printf(“%d”,num);return 0; 完全正確得10分。若輸入錯誤扣2分,若找函數fun錯誤扣3分, 若統(tǒng)計個數錯誤扣3分,若輸出錯誤扣1分。一、單項選擇(每項選擇3分,共30分)(閱讀下列說明和程序,在每小題提供的可選答案中,挑選一個正確答案。)1. 從鍵盤輸入一個實數,若該數小于3,則輸出”ABCD”,否則輸出”abcd”。 程序如下:# include int main

39、() float a; printf(Input a number:); scanf(%f,&a); if ( (1) ) printf(ABCDn); else printf(abcdn); return 0;(1) A、a=3 B、a3 C、a!=3 D、a/10=32從鍵盤輸入兩個英文字母,按由小到大的順序輸出這兩個字母。程序如下:# include int main() char a,b,t; printf(Input character:); scanf(%c,%c,&a,&b); if ( (2) ) t=a; a=b; b=t; printf(%c,%c, a,b); retur

40、n 0;(2) A、ab B、ab C、a!=b D、a=b3從鍵盤輸入若干個數, 計算它們的和,當和大于1000時停止計算。程序如下:# include int main()int k,sum=0; while(sum=1000) scanf(%d,&k); sum= (3) ; printf(%dn,sum); return 0; (3) A、sum+k B、smu=k C、k=k+sum D、k=sum4. 求 1 + 2/3 + 4/5 + 6/7 + 8/9 + + 96/97 +98/99之和。程序如下:# include int main()float k=1.0, s=1.0;

41、 int i=0; do i=i+2;s= s + i/(i+1); while( (4) );printf(%fn,s); return 0; (4) A、i=99 B、i=98 C、i98 D、i=99 5從鍵盤輸入100個整數,求其中的偶數之和。程序如下:# include int main() int i,x; long he=0;for(i=1;i=100;i+) scanf(%d,&x); if ( (5) ) he=he+x; printf(%ldn,he); return 0; (5)A、x%2=0 B、x%2=1 C、x%2=0 D、x%2=16. 輸入30個字符串,輸出其中最大的字符串。程序如下:# include # include # define N 30int main() int i; char da80, strN80; for (i=0;iN;i+) (6) ; strcpy(da,str0); for (i=1;i0) (7) ; printf(The largest string is:%sn,da); return 0;(6) A、gets(stri) B、puts(stri) C、scanf(stri) D、printf(stri)(7) A、strcmp(stri,da) B、strcpy(stri,

溫馨提示

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

最新文檔

評論

0/150

提交評論