C语言试卷精选_第1页
C语言试卷精选_第2页
C语言试卷精选_第3页
C语言试卷精选_第4页
C语言试卷精选_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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,“lamp”,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使用循环和数组编写:从键盘输入的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分, 若统计个数错误扣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使用循环和数组编写:从键盘输入的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分, 若统计个数错误扣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. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论