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