case 3 : x*=2;y*=2;break; default: x+ +;y+ +; }
(A)x=6,y=6 (B)x=2,y=1 (C)x=2,y=2 (D)x=7,y=7 7.下面说法中正确的是( )。
(A)编写C程序时,应该控制嵌套循环的重数. (B)编写C程序时,变量名越短越好.
(C)编写C程序时,应多用goto语句,以增加效率.
(D)编写C程序时,要尽可能的简洁而新颖,可理解性是第二位的.
8.若m>n且a>b,则y=2x,若m< =n则y=0,下面描述中正确的程序段是( ) (A)if (m>n) (B)if (m>n) (C)if (a>b) (D)if (a>b)
{if(a>b) y=2*x; if(m>n) {if (m>n) y=2*x;}
y=2*x; } if(a>b) ; y=2*x; else
else else else if(m< =n)
y=0; y=0; if(m (A) 3 (B) 2 (C) 1 (D) 0 main() {int i,j ; for ( i=0 ,j=1; i<=j+i; i+=2,j--) printf(“%d \\n”, i ) ; } 10.下列程序的输出结果是 (A)4 (B)2 (C)1 (D)0 main( ) {int i , j , m = 0 , n = 0 ; for ( i = 0 ; i < 2 ; i ++ ) for ( j = 0 ; j < 2 ; j ++ ) if ( j > = i ) m = 1 ; n ++ ; printf ( “ % d \\n ”, n ) ; } 11. 以下程序段的执行结果是( )。 (A) a= 12 y = 12 (B) a = 12 y = 12 a = 14 y = 16 a = 16 y = 28 a = 16 y = 20 a = 18 y = 24 (C) a = 12 y = 12 (D) a = 12 y = 12 a = 14 y = 26 a = 14 y = 44 int a , y ; a = 10 ; y = 0 ; do{a + = 2 ; y + = a ; printf (“a=%d y=%d\\n”, a ,y ) ; if ( y > 20 ) break ; } while ( a = 14 ) ; 12.以下程序的运行结果是( )。 (A) 2 0 (B)3 1 (C) 3 2 1 (D) 2 1 0 main() {int n = 4 ; while ( n--) printf(“%d ”, -- n ) ; } 13.运行以下程序后, 如果从键盘上输入china# <回车>,则输出结果为( )。 (A)2,0 (B)5,0 (C) 5,5 (D) 2,5 #include < stdio.h> main() { int v1 =0 , v2 = 0; char ch; while ( ch =getchar ( ) ! =‘#‘ ) switch ( ch ) { case ‘ a ‘ : case ‘ h ‘ : default : v1++ ; case ‘ o ‘ : v2++ ; } printf (“%d , %d \\n “ , v1, v2 ) ; } 二、填空 1. 下面程序运行后,输出结果为____________. # include for(x=30,y=0;x>=10,y<20;x- - ,y++) x/=2,y+=2; printf(“x=%d, y=%d\\n” , x, y); } 2. 下面程序段运行输出结果为_______________. for (int i=0;i<8;i+ +) printf(“%d,”,+ +i); printf(“%d,” , i+ +); 3. 运行如下程序段,输出结果为______________. int n=0; for( ; n+4; n+ +) { if (n>5&&n%3= =1) { printf(“%d\\n”, n); break; } priintf(“%d,”, n++); } 4. 如下程序执行的输出结果为________________. # include case 1: printf(“%d,” , n); case 2: printf(“%d,” , n+ +);break; default:printf(“* *”);n+ + ; } } 5. 下面程序段输出结果为______________. int a,b,c; a=0,b=0,c=0; if (+ +a || b+ + && c+ +) printf(“%d,%d,%d”,a, b, c); else printf(“OK”); 6. 下面程序段,若输入整数12345,则输出为____________. int x,y; scanf(“%d”,&x); do { y=x; printf(‘%d”,y); x/=10; }while(x); 7. 执行下段程序,则输出结果为_______。while循环的循环体共执行了________次。 int n=0; int sum=0; while (n+ +,n<50) { if (n= =(n/2)*2) continue; sum+ =n; } printf(“%d\\n”,sum); 8.下面程序段中,循环的循环体的执行次数为_______次. int i=20; do{ switch( i %4) {case 0: i=i – 7; break; case 1 : i=i +1;break; case 2: i=i+1; break; case 3: i=i+1; } } while (i>=0); 9. 有如下程序: # include { int x; scanf(“%d”,&x); while (x>=10&&x<=30) { if ( ! (x%3)) { printf(“M”); scanf(‘%d”,&x); } else if (x%3= =1) { printf(“N”); scanf(“%d”,&x); continue; } else { printf(“Q”); scanf(“%d”,&x); } printf(“* * *”); } } 若输入为:11,12,28,22,24,25,31,则输出为_________________. 10. 运行如下程序段,输出结果为__________________. int m=0,n=14; for (; m<2;m+ +) { for (; n>=0; n- - ,n- -) if((m+n)%3) { - - n; printf(“&%d”, m+n); } else {n- =2; printf(“*%d”, m – n); } printf(“% %”); } 11. 有如下程序段; int x,y; scanf(“%d%d”, &x,&y); do{ x*=1.8; y/=3; } while (y–x>=10); 将上述do- while 结构的程序段改写成为: (1) while 结构______________. (2) for 结构________________. 12. 若有 int x =0 , i = 3; do { i- - ; printf (“*“); } while ( i= =x ) ; 则连续打印出的*的个数有 个。 13. 下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。 # include { int a, b, c , i; a = c = 0 ; for(i=0;i<=10;i+=2) { a+=i; ; c+=b; } printf ( “ 偶数之和= %d \\n “, a ) ; printf ( “ 奇数之和= %d \\n “, c–11 ); } 14. 下面程序的功能是:输出100 以内能被3整除且个位数为6的所有整数,请填空: main() { int i , j ; for ( i = 0 ; ; i + + ) { j = i * 10 + 6 ; if ( ) continue ; printf ( “ %d” , j ) ; } } 三、阅读程序,写出运行结果 1.# include “stdio.h” main() {int s=0,k; for (k=7;k>=0;k--) {switch(k) {case 1: case 4: case 7:s++;break; case 2: case 3: case 6: break; case 0: case 5:s+=2; break; } } printf(“s=%d\\n”,s); } 2.#include “stdio.h” main() {int i,j; for(i=4;i>=1;i--) {printf(“*”); for(j=1;j<=4-I;j++) printf(“*”); printf(“\\n”); } } 3.# include “stdio.h” main() {int i,j,sum,m,n=4; sum=0; for(i=1; i<=n; i++) {m=1; for(j=1;j<=i;j++) m=m*j; sum=sum+m; } printf(“sum=%d\\n”,sum); } 4.# include “stdio.h”