10.若有:
intx=1;
while(x++<5)
则正常结束循环后x的值为()。
A.1B.4C.6D.5
11.下面程序段的循环次数为________。
intx=2;
while(x=1)
printf(“%d”,x);
printf(“\n”);
A.无限次B.1次C.0次D.2次
12.若有说明语句:
inta[][3]={1,2,3,4,5,6,7,8};,则a数组的行数为()。
A、2 B、3 C、无确定值 D、1
13.以下运算符中优先级最高的运算符是_____。
A.&& B.!
C.!
= D.||
14.以下对一维数组b的正确说明是________。
A.charb(10);B.intk=5,b[k];
C.intb[]={1,2,3,4,5};D.charb[];
15.若有数组定义inta[3][4];指出下面数组元素的正确引用()。
A.a[2][3]B.a[3][0]C.a[0][4]D.a[3][4]
16.若有charx[]="12345";chary[]={'1','2','3','4','5'};则正确的描述是____。
A、x数组与y数组的长度相同C、x数组长度小于y数组长度
B、x数组等价于y数组D、x数组长度大于y数组长度
17.若x和y都是int型变量,x=200,y=100,执行以下程序片段printf(“%d”,(x,y));输出结果是()。
A、200B、100C、100 200D、输出格式符不够,输出不确定值
18.下面程序段的运行结果是()。
charx[5]={'a','b','\0','c','\0'};
printf("%s",x);
A、'a''b' B、ab C、ab└┘c D、c
19.语句while(!
y)中的表达式!
y等价于()
A、y==0B、y!
=1C、y!
=0 D、y==1
20、putchar函数可以向终端输出一个()。
A、float型变量值 C、double型变量值
B、字符串 D、字符或字符型变量值
21、字符型常量在内存中存放的是字符的()
A ASCⅡ代码BBCD代码C 内部码D 十进制码
22、执行scanf函数时,应从键盘上输入()到相对应的变量中。
A常数B变量C常量表达式D含变量的表达式
23、已知intx=1,y;执行语句y=++x>5&&++x<10;后变量x的值是()。
A 1B 2C 3D 4
24、逗号表达式"a=3*5,a*4,a+5"的值是
A 15B 60C20D 不确定
25、在C语言中,if语句后面园括号内的表达式()。
A 只能用逻辑表达式B只能用关系表达式
C只能用逻辑表达式或关系表达式D 可用任意类型表达式
26、能正确表示逻辑关系:
“a>=10或a<=0”的语言表达式是()。
Aa>=10||a<=0Ba>=0&&a<=10
Ca>10||a<=0Da>=10&&a<0
27、若有:
inta=1,b=2,c=3,d=4,m=2,n=2;则执行(m=a>b)&&(n=c>d)后n的值是
A 1B 2C 3D 0
28、下面程序的输出结果是()。
main()
{inti;
for(i=0;i<5;i++)
printf(“%d”,i);
}
A1234B 12345C 01234D 012345
29、以下程序段中的do-while循环()。
m=-1; do{m=m*m;}while(!
m);
A.是死循环 B.执行二次C.执行一次 D.有语法错误
30、下面程序段的执行结果是()。
intx=10;
do
x+=1;
while(x>20);
printf(“x=%d”,x);
A.x=10B.x=11C.x=20D.x=21
31、设inta=3,b=4,c=5;则下面的表达式中值为0的表达式是()。
A‘a’&&’b’Ba<=bCa||b+c&&b-cD!
((a
c||1)
32、对于非负int型数据,不可采用的格式说明是
A%xB%dC%uD%f
33、以下关于break语句的描述中正确的是()。
A、break语句可以结束循环语句的执行
B、break语句只能用于switch语句体中
C、break语句只能用于循环语句中
D、在循环语句中使用break语句或continue语句的作用相同
34、若有定义:
inta[10];则数组a的元素的下标的下限是()。
A0B1C9D10
三、判断题
1、在C程序中所用的变量必须先定义后使用。
2、C语言中“转义字符”是以符号‘\'开头。
3、在C语言中'a'与"a"是等价的。
4、在命名标识符中,大小写字母是不加以区分的。
5、一个if语句中可以嵌套另一个if语句。
6、在for(表达式1;表达式2;表达式3)中,三个表达式不可以同时缺省。
7、对于并列的循环结构中,控制循环执行的变量名字不可以相同。
8、continue语句可以在循环语句中使用也可以在switch语句中使用。
9、在C语言中,数组中的所有元素必须属于同一种数据类型。
10、条件表达式:
a>b?
a:
c>d?
c:
d应理解为a>b?
a:
(c>d?
c:
d)。
11、C语言的标识符必须以字母开头后面跟数字。
12、语句if(a)x=1;与if(a==0)x=1;等价。
13.在switch语句case后面的情况标号只能是常量或常量表达式,不能是变量。
14.对于循环结构中,并列循环的循环变量可以相同。
15、在C语言中,数组定义为inta[10],则数组的下标下限为1,下标的上限为10。
16、while语句while后面的表达式,只能是关系表达式或者是逻辑表达式。
17.在for(表达式1;表达式2;表达式3)中,三个表达式都可以缺省。
18、在C语言中,二维数组元素在内存中是按行优先的顺序存放的。
19、break语句只能在循环语句中使用
20、数组中的所有元素必须属于同一数据类型。
21在C程序中所用的变量必须先定义后使用。
22、C语言中字符常量是用一对单引号把单个字符括起来。
23、C语言程序由函数组成。
24、switch选择结构中必须有default子句。
25、在for(表达式1;表达式2;表达式3)中,表达式2不可以缺省。
26、对于嵌套循环结构中,控制循环执行的变量名字不可以相同。
27、条件语句中的表达式只能是关系表达式或者是逻辑表达式。
28、在定义二维数组时,第一维大小可以省略不定义。
29、break语句不能用于循环语句和switch语句之外的任何其它语句之中。
四、阅读下列各程序,写出其运行结果
1、main()
{charx=97;
while(x<‘d’)
{printf(“%c”,x);
x++;
printf(“\n”);}
}
2、main()
{inta=1,b=1,x=3,y=5;
if(x>0)a=a+1;
if(x>y)b=b+1;
elseif(x==y)b=5;
elseb=2*y;
printf("a=%d,b=%d\n",a,b);
}
3、main()
{intk;
for(k=1;k<7;k++)
{if(k%3!
=0)continue;
printf("%d",k);
}
}
4、main()
{inta[3][4]={3,16,87,65,4,32,11,108,10,25,12,27};
intb[3],i,j,k;
for(i=0;i<=2;i++)
{k=a[i][0];
for(j=1;j<=3;j++)
if(a[i][j]>k)k=a[i][j];
b[i]=k;}
for(i=0;i<=2;i++)
printf(“%d”,b[i]);
}
5、main()
{inta=0,b=0,c;
c=a++&&(b=1);
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
6、main()
{intx=100,a=10,b=20;
intv1=5,v2=0;
if(a
if(b!
=15)
if(!
v1)
x=1;
else
if(v2)x=10;
x=-1;
printf(“%d”,x);
}
7、main()
{
inti;
for(i=1;i<=4;i++)
if(i==3)
continue;
else
printf("%3d",i);
}
8、main()
{inti,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<3;i++)
p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k+=p[i]*2;
printf("%d\n",k);
}
9、main()
{inta=0,b=1,c=0,d=20;
if(a)d=10;
elseif(!
b)
if(!
c)d=15;
elsed=25;
printf(“d=%d\n”,d);
}
10、main()
{inty=18,i=0,j,a[8];
do
{a[i]=y%2;
i++;
y=y/2;
}while(y>=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");}
五、填空将程序完整
1.以下程序是用简单的选择法将10个整数从小到大排序。
#include
main()
{inta[10],i,j,k,x;
printf("Input10numbers:
\n");
for(i=0;i<10;i++)
scanf("%d",①);
printf("\n");
for(i=0;i<②;i++)
{k=i;
for(j=③;j<10;j++)
if(a[j]if(i!
=k)
{x=a[i];④;a[k]=x;}
}
printf("Thesortednumbers:
\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
}
2.从键盘输入一个三位整数,将它们逆序输出。
#include"stdio.h"
main()
{int__①___,a,b,c;
printf("Pleaseinputthenumber:
");
scanf("%d",&num);
a=num/___②____;
b=(num-100*__③___)/10;
c=num-100*a-10*___④___;
a=a+b*10+c*100;
printf("Theresultis%d\n",a);
}
3.求两个正整数m,n的最大公约数。
main()
{intm,n,r;
scanf(“%d%d”,&m,&n);
printf(“m=%d,n=%d\n”,m,n);
if(mr=_____;
while(________)
{m=n;n=______;r=m%n;}
printf(“H.C.F=%d”,n);
}
}
4.找出2000----2050年中所有的闰年,统计闰年个数一并打印出来。
main()
{intsum=____,year;
for(year=2000;year<=2050;______)
if(year%4==0&&year%100!
=0____year%400==0)
{sum++;
printf(“%8d”,year);}
printf(“\nsum=%d”,sum)____
}
六、编程题
1.求:
200―300之间的所有素数。
2.求10个整数中的最大值和最小值。
3.将全班30名同学的C语言成绩输入a数组中
求出全班的最高分、平均分、不及格的人数。
4.通过键盘输入三角形的三边长a、b、c,判断这三条边能否构成三角形,若能构成三角形,求出三角形的面积。