m:
x;
则该程序运行后,m的值是()。
A.4B.3C.2D.1
29.下列程序的输出结果是()。
#include
main()
{
inta=0,b=0,c=0;
if(++a>0||++b>0)
++c;
printf(“\na=%d,b=%d,c=%d\n”,a,b,c);
}
A.a=0,b=0,c=0B.a=1,b=1,c=1
C.a=1,b=0,c=1D.a=0,b=1,c=1
30.以下程序的输出结果是()。
#include
main()
{
inta=5,b=4,c=6,d;
printf(“%d\n”,d=a>b?
(a>c?
a:
c):
(b));
}
A.5B.4C.6D.不确定
31.在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5;pad=sum++,pad++,++pad;
A.8B.7C.6D.5
32.以下程序的输出结果是()。
#include
main()
{
inti=010,j=10;
printf(“%d,%d\n”,++i,j--);
}
A.11,10B.9,10C.010,9D.10,9
33.已知inti;floatf;,正确的语句是()。
A.(intf)%i;B.int(f)%i;C.int(f%i);D.(int)f%i;
34.已知intj,i=1;,执行语句j=-i++;后,j的值是()。
A.1B.2C.-1D.-2
35.已知inta=4,b=5;,则招待表达式a=a>b后,变量a的值为()。
A.0B.1C.4D.5
36.在C语言中,下列运算符的操作数必须是int类型的运算符是()。
A.%B./C.--D.++
37.判断char类型数据c1是否为大写字母的最简单且正确的表达式为()。
A.‘A’<=c1<=‘Z’B.(c1>=‘A’)&(c1<=‘Z’)
C.(‘A’<=c1)AND(‘Z’>=c1)D.(c1>=‘A’)&&(c1<=‘Z’)
38.已知各变量的类型说明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
则以下不符合C语言语法的表达式是()。
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=a*(a=3)
二、填空题
1.在C语言中,输入操作是由库函数完成的,输出操作是由库函数完成的。
2.用字符串的形式表示china。
3.字符串“ab\034\\\x79”的长度为。
4.在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为;一个double型数据在内存中所占的字节数为。
5.若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为。
6.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为,b值为,c值为。
7.若有定义:
charc=’\010’;则变量c中包含的字符个数为。
8.C语言中的标识符只能由3种字符组成,它们是、和。
9.若a是int型变量,则执行表达式a=25/3%3后a的值为。
10.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为,n的值为。
11.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为。
12.表达式pow(2.8,sqrt(double(x)))值的数据类型为。
13.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为。
14.若有定义intm=5,y=2;,则执行表达式y+=y-=m*=y后y的值是。
15.已知inty;floatx=-3;,执行语句y=x%2;后,变量y的值为。
16.已知inta=15,b=240;则表达式(a&b)&b||b的结果为。
17.表达式8.0*(1/2)的值为。
3.7同步练习
一、选择题
1.下面程序的输出结果是()。
#include
main()
{
intx=5,y=3;
printf(“%d\n”,y=x/y);
}
A.0B.1C.3D.不确定的值
2.若变量已正确定义,下面程序段的输出结果是()。
x=5.238794;
printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
A.5.239000B.输出格式说明与输出项不匹配,输出无定值
C.5.238000D.5.24
3.下面语句:
printf(“|%8.5f|\n”,3461.45);
的输出结果是()。
A.|61.45000|B.|3461.450|C.|3461.45000|D.|3461.4500|
4.与数学公式
等价的C语言表达式是(),假定其中的x的单位是度数且不考虑
值的精度。
A.sqrt(cos(x))B.sqrt(abs(cos(x*3.14/180)))
C.sqrt(abs(cos(x*
/180)))D.sqrt(fabs(cos(x*3.14/180)))
5.下面的程序()。
#include
main()
{
intx=3,y=0,z=0;
if(x=y+z)printf(“****”);
elseprintf(“####”);
}
A.有语法错误不能通过编译B.输出****
C.可以通过编译,但是不能通过连接,因而不能运行D.输出####
6.执行下面程序中的输出语句后,a的值是()。
#include
main()
{
inta;
printf(“%d\n”,(a=3*5,a*4,a+5));
}
A.65B.20C.15D.10
7.以下程序不用第三个变量,实现将两个数进行对调的操作。
请填空()。
#include
main()
{
inta,b;
scanf(“%d%d”,&a,&b);
printf(“a=%db=%d”,a,b);
a=a+b;b=a-b;a=;
printf(“a=%db=%d\n”,a,b);
}
A.a+bB.a-bC.b*aD.a/b
8.以下程序的输出结果为()。
#include
main()
{
intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(“%f\n”,x);
}
A.27.000000B.27.500000C.28.000000D.28.500000
9.若变量都已正确说明,则以下程序段:
a=2;
b=3;
printf(a>b?
“***a=%d”:
“###b=%d”,a,b);
A.没有正确的输出格式控制B.输出为:
***a=2
C.输出为:
###b=2D.输出为:
***a=2###b=2
10.若已定义inta=256;,执行语句printf(“%x”,a);的结果是()。
A.100B.256C.ffeD.ff
11.执行下列程序时输入1234567,程序的运行结果为()。
#include
main()
{
intx,y;
scanf(“%2d%2ld”,&x,&y);
printf(“%d\n”,x+y);
}
A.17B.46C.15D.9
12.已知chara;intb;floatc;doubled;,则表达式a*b+c-d结果为()型。
A.doubleB.intC.floatD.char
13.已知inta,b;,用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是()。
A.;B.空格C.回车D.【Tab】键
14.语句printf(“%d”,(a=2)&&(b=-2));的输出结果是()。
A.无输出B.结果不确定C.-1D.1
15.下述程序的输出结果是()。
#include
main()
{printf(“%f”,2.5+1*7%2/4);
}
A.2.500000B.2.750000C.3.375000D.3.000000
16.根据定义和数据的输入方式,输入语句的正确形式为()。
已有定义:
floatfl,f2;
数据的输入方式:
4.52
3.5
A.scanf(“%f,%f”,&fl,&f2);B.scanf(“%f%f”,&fl,&f2);
C.scanf(“%3.2f%2.1f”,&fl,&f2);D.scanf(“%3.2f,%2.1f”,&fl,&f2);
二、填空题
1.下面程序的输出是。
#include
main()
{
inti=-200,j=25;
printf(“%d,%d”,i,j);
printf(“i=%d,j=%d\n”,i,j);
printf(“i=%d\nj=%d\n”,i,j);
}
2.使用强制转换方法将正整数转换成字符。
本题程序如下:
#include
main()
{
charc;inti;
printf(“输入一个正整数(小于255):
”);
scanf(“%d”,&i);
c=(char)i;
printf(“%c的ASCII码为%d\n”,c,i);
}
本程序的执行结果为。
3.直接使用printf()的格式符输出八进制数和十六进制数。
本题程序如下:
#include
main()
{
inti;
printf(“输入一个整数:
”);
scanf(“%d”,&i);
printf(“%d(10)<=>%o(8)\n”,i,i);
printf(“%d(10)<=>%x(16)\n”,i,i);
}
输入100的执行结果为和。
4.本题程序如下:
#include
main()
{
inti=560,h,m;
h=i/60;/*计算小时数*/
m=i-60*h;/*计算余下的分钟*/
printf(“%d分钟<=>%d小时%d分钟\n”,i,h,m);
}
本程序的执行结果为。
5.以下程序的输出结果为。
#include
main()
{printf(“*%f,%4.3f*\n”,3.14,3.1415);}
6.已有定义intd=-2;,执行以下语句后的输出结果是。
printf(“*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n”,d,d,d);
printf(“*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n”,d,d,d);
7.在scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是;当输入以下数据时:
10203040<回车>,下面语句的执行结果是。
intal,a2,a3;
scanf(“%d%*d%d%d”,&al,&a2,&a3);
printf(“%d%d%d”,al,a2,a3);
8.执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,el=’A’,c2=’a’,正确的数据输入形式是。
#include
main()
{
inta,b;floatx,y;charcl,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“x=%fy=%f”,&x,&y);
scanf(“el=%cc2=%c”,&cl,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,el=%c,c2=%c”,a,b,x,y,cl,c2);
}
4.6同步练习
一、选择题
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.语句printf(“a\bre\’hi\’y\\\bou\n”);的输出结果是()。
A.a\bre\’hi\’y\\bouB.a\bre\’hi\’y\bou
C.re’hi’youD.abre’hi’y\ou
(说明:
‘\b’是退格符)
3.如下程序的输出结果是()。
#include
main()
{intx=1,a=0,b=0;
switch(x)
{
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
4.如下程序的输出结果是()。
#include
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf(“%f\n”,y);
}
A.0.000000B.0.250000C.0.500000D.1.000000
5.如下程序的输出结果是()。
#include
main()
{
inta=12,b=5,c=-3;
if(a>b)
if(b<0)c=0;
elsec++;
printf(“%d\n”,c);
}
A.0B.1C.-2D.-3
6.阅读以下程序:
#include
main()
{intx;
scanf(“%d”,&x);
if(x--<5)printf(“%d”,x);
elseprintf(“%d”,x++);
}
程序运行后,如果从键盘输入5,则输出结果是()。
A.3B.4C.5D.6
7.以下程序的输出结果是()。
#include
main()
{inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break;
}
}
printf(“%d\n”,m);
}
A.1B.2C.3D.4
8.下面的程序()。
#include
main()
{intx=3,y=0,z=0;
if(x=y+z)printf(“****”);
elseprintf(“####”);
}
A.有语法错误不能通过编译B.输出****
C.可以通过编译,但是不能通过连接,因而不能运行D.输出####
9.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
#include
main()
{intx;
scanf(“%d”,&x);
if(x++>5)printf(“%d”,x);
elseprintf(“%d\n”,x--);
}
A.7和5B.6和3C.7和4D.6和4
10.以下程序的输出结果是()。
#include
main()
{inta=-1,b=4,k;
k=(++a<0)&&!
(b--<=0);
printf(%d%d%d\n”,k,a,b);
}
A.104B.103C.003D.004
11.能正确表示a≥10或a≤0的关系表达式是()。
A.a>=10ora<=0B.a>=10|a<=0
C.a>=l0&&a<=0D.a>=10||a<=0
12.假定所有变量均已正确说明,下列程序段运行后x的值是()。
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A.34B.4