1、;. C 语言程序设计期中考试卷一、 选择题1. 下面程序段的运行结果是。for(x=3; x6; x+) printf(x%2)? (“ *%dn”),”x);): (“ #%dA *3B #3C #3D *3#4#4*4*4#5*5*5#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 #&*&B #&C #*&*&
2、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=xB1z=1C1z=0D1z=yA2i/result=1B2i=resultC2i!=resultD2i=
3、result4. 以下正确的描述是。A continue 语句的作用是结束整个循环的执行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 时什么也不输出C printf 函数永远也不执行D最多允许输出100 个非负整数6. 与下面程序段等价
4、的是。for(n=100; n=200; n+) if(n%3=0) continue;printf(“ %4d” ,n);.;.A for(n=100; (n%3) & n=200; n+)printf(“ %4d” ,n);B for(n=100; (n%3) | n=200; n+)printf(“ %4d” ,n);C for(n=100; n=200; n+)if(n%3!=0)printf(“ %4d” ,n);D for(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(“n%d”,a);return 0;A 7B 8C 9D10;.;.二、填空题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(s=%dn
7、,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(“-; *”while(!x=);
8、 =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+;ifprintf(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. 下面程序的运行结果是。#include;.;.int 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 只 , 脚共有 9
10、0 个,下面程序段是计算鸡兔各有多少只, 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。 填空。#include;.;.int 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: printf(
12、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=1;ns) printf
13、(%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);.