main()
{ int x=-10,y= 1,z=1; if(x A. 0 B. 1 C. 2 D. 3 19. 以下程序段的输出结果是( B ) int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf(\; A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 四、循环结构 *1.在C语言中,下列说法中正确的是( D )。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) do-while语句构成的循环在while后的表达式非零时结束循 环。 D) do-while 语句构成的循环,在while后的表达式为零时结束循 环。 2. break语句不能出现在( D )语句中 11 A. switch B.for C. while D. if…else *3.对于break语句和continue语句的说法错误的是( B ) A) break语句不能用于循环语句和switch语句之外的任何其他语句中。 B) break和continue也可以用于if语句中 C) continue语句只结束本次循环,而不是终止整个循环的执行。 D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。 4.语句while(!y);中的表达式!y等价于 A A)y==0 B)y!=1 C)y=!0 D) y==1 5.若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行(A ) A.无限次 B.不确定次 C.10次 D.9次 6. 有以下程序段 int k=0 while(k)k++; 则while循环体执行的次数是 C A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 7. 下列循环语句中有语法错误的是( D ) A while(x=y) 5; B while(0) ; C do 2;while(x= =b); D do x++ while(x= =10); *8.当运行时输入:abcd$abcde?, 下面程序的运行结果是 B #include 12 { while(putchar(getchar())!='$'); printf(\} A) abcd$abcde B)abcd$end C)abcdend D) abcd$abcdeend 9. 以下程序段 ( A ) x=-1; do { x=x*x; } while(x>0); A. 是死循环 B. 循环执行一次 C. 循环执行二次 D. 有语法错误 10. 下面程序段执行后的结果为: ( B ) int sum=0, n=10; do { sum=sum+n; n++; } while(n<10) printf(“%d,%d”,sum,n) A. 0, 10 B. 10, 11 C. 0, 11 D. 以上结果都不对 11.对以下程序段的叙述正确的是___A____. int x=1; do { x= -1*x; } while(!x) A) 是死循环 B) 循环执行一次 C)循环执行二次 D)有语法错误 12.循环“for(i=0,x=1;i=10&&x>0;i++);”的循环执行( A )。 A.无限次 B.不确定次 C.10次 D.9 13 次 13.执行语句{for(j=0;j<=3;j++) a=1;}后变量j的值是 C . A)0 B) 3 C)4 D) 1 14. 有如下程序 main() { int i,sum=2; for(i=1;i<=3;i+=2) sum+=i; printf(“%d\\n”,sum); } 该程序的执行结果是 A D) 4 *15、执行语句”for ( i=0; i++<3 ; ) ;”后,变量i的值为( C )。 A、2 B、3 C、4 D、5 16.设x和y均为int型变量,则执行以下的循环后,y的值为( D )。 for(y=1,x=1;y<=50;y++) { if(x>=0) break; if(x%2==1) {x+=5;continue;} x-=3; } A.2 B.4 C.6 D.1 五 数组 1. 以下对一维数组a的正确说明是: D A) char a(10); B) int a[]; 14 A) 6 B) 3 C) 死循环 C)int k=5,a[k]; D)char a[3]={‘a’,’b’,’c’}; 2.以下能对一维数组a进行初始化的语句是: ( C ) A. int a[5]=(0,1,2,3,4,) B. int a(5)={} C. int a[3]={0,1,2} D. int a{5}={10*1} 3.在C语言中对一维整型数组的正确定义为 D 。 A)int a(10); B)int n=10,a[n]; C)int n;a[n]; D)#define N 10 int a[N]; 4、已知:int a[10]; 则对a数组元素的正确引用是( D )。 A、a[10] B、a[3.5] C、a(5) D、a[0] 5. 执行下面的程序段后,变量k中的值为 C A) 不定值 B) 33 C) 30 D) 10 int k=3, s[2]; s[0]=k; k=s[0]*10; *6. 下列说法中错误的是 C A 构成数组的所有元素的数据类型必须是相同的 B 用指针法引用数组元素允许数组元素的下标越界 C 一维数组元素的下标依次是1、2、3…… D 定义数组时的长度可以是整型常量表达式 7. 若有以下数组说明,则数值最大的和最小的元素下标分别是( B )。 int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; A.1,12 B.0,11 C.1,11 D.0,12 8.若有以下数组说明,则i=10;a[a[i]]元素数值是( B )。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; A.10 B.9 C.6 D.5 9. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};, 15