1、C语言期中试题C语言程序设计期中考试卷一、 选择题1. 下面程序段的运行结果是 。for(x=3; x6; x+) printf(x%2)? (“*%d”): (“#%dn”), x); A*3 #4 *5B#3 *4 #5C#3 *4#5D*3#4 *52. 下面程序的运行结果是 。#includeint main()int i; for(i=1; i=5; i+) switch(i%5) case 0: printf(*);break; case 1: printf(#);break; default: printf(n); case 2: printf(&); return 0;A#&*
2、B#& & &*C# & & & *D#& *3. 下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空。#include int main( ) int x,y,z,I,result=532; for(x=1;x10;x+)for(y=1;y10;y+) for( ; z10; z+) i=100*x+10*y+z+100*y+10*z+z; if ( ) printf(“x=%d,y=%d,z=%dn”,x,y,z); return 0;A1z=x B1z=1 C1z=0 D1z=yA2i/result=1 B2i=result
3、 C2i!=result D2i=result4. 以下正确的描述是 。Acontinue语句的作用是结束整个循环的执行B只能在循环体内和switch语句体内使用break语句C在循坏体内使用break语句或continue语句的作用相同D从多层循环嵌套中退出,只能使用goto语句5. 在下面的程序中, 。#includeint main()int t,x; for(t=1;t=100;t+) scanf(%d,&x); if(x0) continue; printf(%3d,t); return 0;A当x=0时什么也不输出Cprintf函数永远也不执行D最多允许输出100个非负整数6. 与
4、下面程序段等价的是 。for(n=100; n=200; n+) if(n%3=0) continue; printf(“%4d”,n);Afor(n=100; (n%3) & n=200; n+) printf(“%4d”,n);Bfor(n=100; (n%3) | n=200; n+) printf(“%4d”,n);Cfor(n=100; n=200; n+) if(n%3!=0) printf(“%4d”,n);Dfor(n=100; n=200; n+) if(n%3) printf(“%4d”,n); else continue; break;7. 下面程序的运行结果是 。#in
5、clude int main( ) int a,b; for( a=1, b=1; a=20) break;if(b%3= =1) b+=3;continue;b - =5; printf(“%dn”,a);return 0;A7 B8 C9 D10二、填空题1. 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。int n=0, c;c=getchar( );while( ) if( ) n+; c=getchar( )2. 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计买完所需的天数,请填空。#include int main(
6、) int day=0, x1=1020, x2; while x2= ;x1=x2;day+; printf(“day=%dn”,day);return 0;3. 当运行以下程序时,从键盘键入right?,则下面程序的运行结果是 。#includeint main()char c; while(c=getchar( )!=?) putchar(+c); putchar(n); return 0;4. 下面程序的运行结果是 。#includeint main()int a=2,s=0,n=1,count=1; while(count=7) n=n*a;s=s+n;+count; printf(
7、s=%dn,s); return 0;5. 当运行以下程序时,从键盘输入“China#”,则下面程序的运行结果是 。#includeint main()int v1=0,v2=0; char ch; while(ch=getchar( )!=#) switch(ch) case a: case h: default: v1+; case o: v2+; printf(%d,%dn,v1,v2); return 0;6. 下面程序段中循环体的执行次数是 。a=10; b=0;do b+=2; a-=2+b;while(a=0);7. 下面程序段的运行结果是 。x=2;do printf(“*”)
8、; x-; while(!x= =0);8. 下面的程序的功能是用do-while语句求11000之间满足“用3除余2,用5除余3,用7除余2”的数,且一行只打印5个数,请填空。#include int main( ) int i=1,j=0; do if printf(“%4d”,i); j+; if printf(“n”); i=i+1; while(i1000);return 0;9. 当运行以下程序时,从键盘输入“1 2 3 4 5 -1”,则下面程序的运行结果是 。#includeint main() int k=0,n; do scanf(%d,&n);k+=n;while(n!=
9、-1); printf(k=%d n=%dn,k,n); return 0;10. 下面程序的运行结果是 。#includeint main()int i=0,x=0,y=0; do +i; if(i%2!=0) x=x+i;i+; y=y+i+; while(i=7); printf(x=%d,y=%dn,x,y); return 0;11. 下面程序段是找出整数的所有因子。请填空。#includeint main()int x,i; scanf(%d,&x); i=1; for( ; ; ) if(x%i=0) printf(%3d,i); i+; return 0;12. 鸡、兔共有30
10、只, 脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空完成程序。for(x=1; x=30; x+) y=30-x; if( ) printf(“%d,%dn”,x,y); 13. 下面程序段的运行结果是 。for(a=1,i=-1; -1=i1; i+) a+; printf(“%2d”,a);printf(“%2d”,i);14. 下面程序的功能是1-3+5-7+-99+101的值。请填空。#includeint main()int i,t,s=0,q=1; for(i=1;i=101;i+=2) t= ; s=s+t; q= ; printf(%
11、dn,s); return 0;15. 以下程序的功能是根据公式e=1+1/1!+1/2!+1/3!+,求e的近似值,精度要求为10-6。请填空。#includeint main()int i; double e,n; ; n=1.0; for(i=1; ;i+) n/=i;e+=n; printf(e=%fn,e); return 0;16. 下面程序的运行结果是 。#includeint main()int i; for(i=1;i=5;i+) switch(i%2) case 0: i+; printf(#);break; case 1: i+=2; printf(*); default
12、: printf(n); return 0;17. 下面程序的功能是统计用数字0-9可以组成多少个没有重复数位的3位偶数。请填空。#includeint main()int n=0,i,j,k; for(i=1;i=9;i+) for(k=0;k=8; ) if(k!=i) for(j=0;j=9;j+) if( ) printf(%dn,i*100+j*10+k); n+; printf(n=%dn,n); return 0;18. 下面程序的功能是输出1-100之间满足每位数的乘积大于每位数的和的数。请填空。#includeint main() int n,k=1,s=0,m; for(n
13、=1;ns) printf(%5d,n); printf(n); return 0;三、 编程题1. 打印出以下图形(10) * * * * * * * * * * s * u * s * * * * * * * * * 2. 有三个数a、b、c,由键盘输入,输出其中第二大的数。(12)3. 编写一个程序,求s=1+(1+2)+(1+2+3)+(1+2+3+n)的值。(15)4. 输入一批非0数,直到输入0时为止,计算其中奇数的平均值和偶数的乘积。(15)5. 有一口深度为h米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬m米,夜里则顺井壁向下滑n米,若青蛙从某个早晨开始向外爬,试编写一个函数:对于任意指定的h,m,n值(均为自然数),计算青蛙多少天能够爬出井口?(15)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1