void main()
{int x=1,y=0,a=0,b=0; switch(x)
{case 1:switch(y)
{case 0:a++;break; case 1:b++;break; }
case 2:a++;b++;break; }
printf(\ %d\\n\ }
23.有以下程序 void main( )
{ int i=1,j=1,k=2;
if((j++||k++)&&i++) printf( \执行后输出结果是_____。
A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 224.以下程序执行后输出结果是_____。 void main( )
{ int a=3,b=4,c=5,d=2; if(a>b) if(b>c)
printf(\); else
printf(\); printf(\}
A) 2 B) 3 C) 43 D) 44 25.以下程序执行后输的结果是____-4____ 。 main( )
{ int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3;
printf(\}
,2,3 第三部分:循环控制
1.对下面程序段描述正确的是__________。
int k=10;
while(k=0) k=k-1;
A) while循环执行10次 B) 循环是无限循环
C) 循环体语句一次也不执行 D) 循环体语句执行一次 2.语句while(!E);中的表达式!E等价于________.
A) E==0 B) E!=1 C) E!=0 D) E==1 3.下面程序段的运行结果是__________.
int n=0;
while(n++<=2); printf(\
A) 2 B) 3 C) 4 D) 有语法错 4.下面程序的运行结果是___________. #include
{int num=0; while(num<=2) {num++;
printf(\\\n\ } }
A)1 B)1 C) 1 D) 1 2 2 2 3 3 4 5.以下程序段________.
x=-1;
do{ x=x*x; }while(!x);
A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误 6.如下程序段 _________.
int x=3;
do{printf(\\\n\
}while(!(--x));
A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环 7.下面程序的运行结果是______.
#include
{int y=10;
do{y--;}while(--y); printf(\\\n\ }
A) -1 B) 1 C) 8 D) 0
8.若i为整型变量,则以下循环执行次数是_____.
for(i=2;i==0;)printf(\--); A) 无限次 B) 0次 C) 1次 D) 2次
9.执行语句for(i=1;i++<4; ); 后变量i的值是______. A) 3 B) 4 C) 5 D) 不定 10.以下正确的描述是_______.
A) continue语句的作用是结束整个循环的执行
B) 只能在循环体内和switch语句体内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句
11. 运行下面程序时,从键盘输入20357
#include
while((c=getchar())!='\\n') switch(c-'2')
{case 0:
case 1: putchar(c+4);
case 2: putchar(c+4); break; case 3: putchar(c+3);
default: putchar(c+2); break;
}
putchar('\\n'); }
12.下面程序段是从键盘输入的字符串中统计数字字符的个数,用换行符结束循环。请填空。
int n=0,c; c=getchar();
while(__c!='\\n'_____)
{if(__c>='0'&&c<='9'______)n++; c=getchar(); }
13.下面程序的功能是用\辗转相除法\求两个正整数的最大公约数。请填空。
#include
{int r,m,n;
scanf(\
if(m {m=n;n=r;r=__ m%n____; } printf(\\\n\ } 14.下面程序的运行结果是___s=254______. #include {int a,s,n,count; a=2;s=0;n=1;count=1; while(count<=7){n=n*a;s=s+n;++count;} printf(\ } 15.下面程序段的运行结果是__a=-5_______. i=1;a=0;s=1; do{a=a+s*i;s=-s;i++; }while(i<=10); printf(\ 16.下面程序段的运行结果是___8____. i=1;s=3; do{s+=i++; if(s%7==0)continue; else ++i; }while(s<15); printf(\ 17.下面程序用于打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。完成程序。 main( ) {int i,a,b,c; for(i=100;i<1000;i++ ) {a = i/100; b =_i/10__________; c = i; if(__i==a*a*a+b*b*b+c*c*c_________) printf( \ \ } } 第4章 构造数据类型 第一部分 数组习题 1. 定义如下变量和数组 : int k ; int a[3][3]={ 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; 则下面语句的输出结果是( ) for(k=0;k<3;k++) printf("%d",a[k][2-k]); A、357 B、369 C、 159 D、 147 2. 执行下面的程序段后,变量k中的值为( ) int k=3,s[2]; s[0]=k;k=s[1]*10; A、不定值 B、33 C、30 D、10 3. 设有数组定义:char array [ ]=\; 则数组 array所占的空间为( A、4个字节 B、5个字节 C、6个字节 D、7个字节4. 如下程序的输出结果是( ) void main( ) { int n[5]={0,0,0},i,k=2; for(i=0;i A、不确定的值 B、2 C、1 D、0 5. 有如下程序 void main( ) { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf(\} 该程序的输出结果是( ) A、18 B、19 C、20 D、21 6. 以下程序的输出结果是( ) void main( ) { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(\,\ )