4.C语言提供的三种逻辑运算符是()、()、()。
5.C语言基本数据类型包括()、()、()、()。
6.设a=3,b=4,c=5,经过赋值语句a=b,b=c,c=a后,a,b,c的值分别为()。
7.C语言构造数据类型包括()、()、()等。
8.与表达式!
(a>10||a<0)等价的逻辑表达式是()。
9.标识符是以()、()开头,是()、()、()的序列。
10.假设inti=10,j;j=i++后,i=(),j=()。
第三章顺序结构
一、选择题
1.下列程序的运行结果是()
#include
main()
{inta=2,c=5;
printf("a=%d,b=%d\n",a,c);}
A)a=%2,b=%5B)a=2,b=5
C)a=d,b=dD)a=%d,b=%d
2.以下程序的输出结果是()
main()
{
intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99
C)910D)109
3.printf(“%3d,%-3d\n”,4,5);的输出为()
A.□□4,5□□ B.4□□,□□5 C.4□□□□,5 D.4,□□□□5
4.根据定义和数据的输入方式,输入语句的正确形式为()
已有定义:
floatf1,f2;
数据的输入方式:
4.52
3.5
A.scanf(“%f,%f”,&f1,&f2);B.scanf(“%f%f”,&f1,&f2);
C.scanf(“%3.2f%3.1f”,&f1,&f2);D.scanf(“%3.2f,%3.1f”,&f1,&f2);
5.参照下面的程序代码,程序中输入语句正确的是()
#inlcude
main()
{inta;
floatx;
printf(“inputa,x:
”);
输入语句
输出语句
}
输入形式inputa,x:
32.1
输出形式a+x=5.10
A)scanf(“%d%f”,&a,&x);printf(“\na+x=%6.2f”,a+x);
B)scanf(“%d%f”,&a,&x);printf(“\na+x=%4.2f”,a+x);
C)scanf(“%d,%f”,&a,&x);printf(“\na+x=%6.2f”,a+x);
D)scanf(“%d%3.1f”,&a,&x);printf(“\na+x=%6.2f”,a+x);
6.正确的是()
A)输入项可以为一个实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%,b=%d”);
C)当输入一个实型数据时,格式控制部分应规定小数点后位数,如scanf(“%4.2f”,&f);
D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);
二、填空题
1.结构化程序设计中的三种基本结构是()、()、()。
2.已有inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf("%d,%d,%d",&i,&j,&x)调用语句的数据输入形式是()
三、写出程序的运行结果
1.main()
{intx=10;floatpi=3.1416;
printf(“
(1)%d\n”,x);
printf(“
(2)%6d\n”,x);
printf(“(3)%-6d\n”,x);
printf(“(4)%.2f\n”,pi);
printf(“(5)%6.3f\n”,pi);
printf(“(6)%8f\n”,pi);
}
2.main()
{intx=1,y=2;
printf(“x=%dy=%d*sum*=%d\n”,x,y,x*y);
printf(“10Squaredis:
%d\n”,10*10);
}
3.main()
{floata=365.7189;
intb=12,c;
c=(int)a+b;
printf(“c=%d\n”,c);
}
三、编程题
1.求圆的周长和面积。
2.已知三角形的三边长,求三角形的面积和周长。
3.输入任意三个整数,求它们的平均值。
第四章选择结构
一、选择题
1.以下程序输出结果是
main()
{
intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A)7B)6C)5D)4
2.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()
main()
{
intx;
scanf("%d",&x");
if(x++>5)printf("%d",x)
elseprintf("%d\n",x--);
}
A)7和5B)6和3
C)7和4D)6和4
3.若执行下面的程序从键盘输入3和4,则输出是()
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A)14B)16
C)18D)20
4.下面的程序是()
main()
{intx=3,y=0,z=0;
if(x=y+z)printf("****");
elseprintf("####");
}
A)有语法错误不能过通过编译
B)输出****
C)可能通过编译,但是不能通过连接,因而不能运行
D)输出####
5.假定所有变量均已正确说明,下列程序段运行的值是()
a=b=c=0;x=35
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A)34B)4
C)35D)3
6.下面程序的输出是()
main()
{intx=100,a=10,b=20,OK1=5,OK2=0;
if(a
if(b!
15)
if(!
OK1)x=1;
elseif(OK2)x=10;
x=-1;
printf("%d\n",x);
}
A)-1B)0
C)1D)不确定的值
7.若k是int型变量,且有下面的程序片段:
k=-3
if(k<=0)printf("####")
elseprintf("&&&&");
上面程序片段的输出结果是()
A)####B)&&&&C)####&&&&D)有语法错误,无输出结果
8..若有说明intx,y,下面程序()不能实现以下函数关系
-1(x<0)
y=0(x=0)
1(x>0)
Aif(x<0)y=-1;elseif(x==0)y=0;elsey=1;
By=-1;if(x!
=0)if(x>0)y=1;elsey=0;
Cy=0;if(x>=0){if(x>0)y=1;}elsey=-1;
Dif(x>=0)if(x>0)y=1;elsey=0;elsey=-1;
9.以下程序的输出结果是()
main()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf(“%d\n”,z);
}
A.3B.2C.1D0
10.当a=1,b=3,c=5,d=4时,执行完下面一段程序后,x的值是()
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A.2B.3C.6D.7
11.以下不正确的是()
A.if(x>y);B.if(x=y)&&(x!
=0)x+=y;
C.if(x!
=y)scanf(“%d”,&x);elsescanf(“%d”,&y);
D.if(x12.以下if语句语法正确的是()
Aif(x>0)Bif(x>0)
printf(“%f”,x){x=x+y;printf(“%f”,x);}
elseprintf(“%f”,-x);elseprintf(“%f”,-x);
Cif(x>0)Dif(x>0)
{x=x+y;printf(“%f”,x);};{x=x+y;printf(“%f”,x)}
elseprintf(“%f”,-x);elseprintf(“%f”,-x);
13.如果变量grade的值为1,则运行下列程序段后输出结果为()
switch(grade)
{case1:
printf(“a\n”);
case2:
printf(“b\n”);
case3:
printf(“c\n”);
}
AaBaCabcDab
b
c
14.执行以下语句:
x=1;y=1;
if(x++=1)y=3;
elseif(y=3)x=2;
后,x和y的值分别为()。
A.1和1B.1和3C.2和3D.2和1
15.以下几个语句执行后i,j,k的值分别为()
inti,j,k;
i=j=0;
k=1;
if(i>j?
(j--):
(i--))k++;
A)1,9,1B)1,0,2
C)-1,0,1D)0,0,2
二、写出程序的运行结果
1.intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf(“**1**\n”);break;
case1:
printf(“**2**\n”);break;
}
case2:
printf(“**3**\n”);
}
2.设有程序段:
switch(grade)
{case‘A’:
printf(“85-100\n”);
case‘B’:
printf(“70-84\n”);
case‘C’:
printf(“60-69\n”);
case‘D’:
printf(“<60\n”);
default:
printf(“error!
\n”);
}
若grade的值为‘C’,则输出结果是()。
3.main()
{intm=5;
if(m++>5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
}
4.main()
{intx=2,y=-1,z=2;
if(x>y)
if(y<0)z=0;
elsez+=1;
printf(“%d\n”,z);
}
5.
x=3.5;
switch((int)x)
{case1:
y=x-1;
case2:
y=x;
case3:
y=x+1;
case4:
y=x+2;
default:
}
printf(“y=%f”,y);
6.
sum=0;
for(I=4;I<=7;I++)
switch(I)
{case1:
case4:
case7:
sum++;break;
case2:
case3:
case6:
break;
case0:
case5:
sum+=2;
}
printf(“%d”,sum);
三、程序填空
1.以下程序根据输入的三角形的三边判断是否能构成三角形,若可以则输出它的面积和三角形的类型。
#include"math.h"
main()
{floata,b,c;
floats,area;
scanf("%f%f%f",&a,&b,&c);
if()
{s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f”,area);
if()
printf("等边三角形");
elseif()
printf("等腰三角形");
elseif((a*a+b*b==c*c)||(a*a+c*c=b*b)||(b*b+c*c==a*a))
printf("直角三角形");
elseprintf("一般三角形");
}
elseprintf("不能组成三角形");
}
2.以下程序对输入的两个整数,按从大到小顺序输出。
main()
{intx,y,z;
scanf(“%d,%d”,&x,&y);
if(){z=x;;;}
printf(“%d,%d”,x,y);
}
3.输入一个字符,如果他是一个大写字母,则把他变成小写字母,如果他是一个小写字母,则把他变成大写字母,其他字符不变。
main()
{charch;
scanf(“%c”,&ch);
if()ch=ch+32;
elseif(ch>=’a’&&ch<=’z’)
printf(“%c”,ch);
}
四、编程题
1.编程,求三个整数的最大值和最小值。
2.有一函数y=
写一程序,输入x,求y。
3.编程实现:
输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
第五章循环结构
1.在下列选项中,没有构成死循环的程序段是()
A)inti=100
while
(1)
{
i=i%100+1;
if(i>100)
break;
}
B)for(;;);
C)intk=1000;
do{++k}while(k>=1000)
D)ints=36;
While(s);--s;
2.若i,j已经定义为int类型,则以下程序段中内循环总的执行次数是()
for(i=5;i>0;i--)
for(j=0;j<4;j++){...}
A)20B)24
C)25D)30
3.下面程序的输出是()
main()
{intx=3,y=6,a=0;
while(x++!
=(y-=1))
{
a+=1;
if(y}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A)x=4,y=4,a=1B)x=5,y=5,a=1
C)x=5,y=4,a=3D)x=5,y=4,a=1
4.定义如下变量:
intn=10
则下列循环的输出结果是()
while(n>7)
{
n--;
printf("%d\n",n);
}
A)10B)9
98
87
C)10D)9
98
87
76
5.执行下面的程序后,a的值为()
main()
{inta,b;
for(a=1,b=1;a<100;a++)
{
if(b>=20)break;
if(b%3==1)
{b+=3;continue;}
b-=5;
}
}
A)7B)8
C)9D)10
6.读程序:
main()
{intnum=0;
while(num<=2)
{num++;printf("%d\n",num);}
}
上面程序的输出结果是()
A)1B)1C)1D)1
222
33
4
7.执行语句:
for(i=1;i++<4;)后;变量i的值是()
A)3