m:
z;
则该程序运行后,m的值是()。
A)4B)3C)2D)1
27.已知inti;floatf;正确的语句是()。
A)(intf)%i;B)int(f)%i;C)int(f%i);D)(int)f%i;
28.已知intj,i=1;,执行语句j=-i++;后,j的值是()。
A)1B)2C)-1D)-2
29.已知inta=4,b=5;,则执行表达式a=a>b后,变量a的值为()。
A)0B)1C)4D)5
30.判断char类型数据c1是否为大写字母的最简单且正确的表达式为()。
A)’A’<=c1<=’Z’B)(c1>=’A’)&(c1<=’Z’)
C)(‘A’<=c1)AND(‘Z’>=c1)D)(c1>=’A’)&&(c1<=’Z’)
二、填空题
1.若a是int型变量,则执行表达式a=25/3%3后a的值是2。
2.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为10,n的值为6。
3.若x和y都是double型变量,且x初值为3.0,y初值为2.0,则表达式pow(y,fabs(x))的值为8.0。
4.表达式pow(2.8,sqrt(double(x))值的数据类型为double。
5.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。
6.若有定义intm=5,y=2;则执行表达式y+=y-=m*=y后y的值为-16。
7.已知inta=15,b=240;则表达式(a&b)&b||b的结果为1。
8.表达式8.0*(1/2)的值为0.0。
9.字符串“ab\034\\\x79”的长度为5。
10.若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为1。
11.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为6,b值为4,c值为2。
12.若有定义:
charc=’\010’;则变量c中包含的字符个数为1。
13.若i为int整形变量且赋值为6,则运算i++后表达式的值为6变量i的值是7。
14.若二进制a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,
则二进制b是11110000。
15.表达式3&4的值为0,表达式3|4的值为7,表达式3&&4的值为1。
三、读程序写结果
1.如下程序的运行结果是(33)。
#include
voidmain()
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);}
2.以下程序的输出结果是(6)。
#include
voidmain()
{inta=5,b=4,c=6,d;
printf(“%d\n”,d=a>b?
(a>c?
a:
c):
(b));}
3.在C语言中,如果下面的变量都是int类型,则输出的结果是(7)。
sum=pad=5;
pad=sum++,pad++,++pad;
printf(“%d\n”,pad);
4.以下程序的输出结果是(9,10)。
#include
voidmain()
{inti=010,j=10;
printf(“%d,%d\n”,++i,j--);}
作业03基本语句
一、选择题
1.若有说明:
doublea;则正确输入语句是()。
A)scanf(“%if”,a)B)scanf(“%lf”,&a)
C)scanf(“%if”,&a)D)scanf(“%lo”,&a)
2.合法的C语言赋值语句是()。
A)a=b=58B)k=int(a+b)C)a=58,b=58D)--i;
3.若变量已确定定义,以下程序段输出结果是()。
x=5.16894;
printf(“%f\n”,(int)(x*1000+0.5)/(float)(1000)”);
A)输出格式说明与输出项不匹配,输出无定值B)5.170000
C)5.168000D)5.169000
4.若有以下程序其输出结果是()。
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
A)3,0,-10B)0,0,5C)-10,3-10D)3,0,3
5.以下程序其输出结果是()。
#include
voidmain()
{inta=2,b=5;
printf(“a=%%d,b=%%d\n”,a,b);}
A)a=%2,d=%5B)a=2,b=5C)a=%%d,b=%%5D)a=%d,b=%d
6.以下程序段输出结果是()。
floata=3.1415;
printf(“|%6.0f|\n”,a,b);
A)|3.1415|B)|3.0|C)|3|D)|3.|
7.以下程序段输出结果是()。
floata=57.666;
printf(“*%010.2f*\n”,a);
A)*0000057.66B)*57.66*C)*00000.57.67*D)*57.57*
8.若变量c定义为float型,当从终端输入283.1900后按回车,能给变量c赋以283.19的输入语句是()。
A)scanf(“%f”,c);B)scanf(“%8.4f”,&c);
C)scanf(“%d”,&c)D)scanf(“%8f”,&c);
9.若有以下定义语句,则输出结果是()。
intu=010,v=0x10,w=10;
printf(“%d,%d,%d\n”,u,v,w);
A)8,16,10B)10,10,10C)8,8,10D)8,10,10
10.下面程序的输出是()。
#include
voidmain()
{intk=11;
printf(“%d,%o,%x\n”,k,k,k);}
A)12,11,11B)11,13,13C)11,013,0xbD)11,13,b
11.下面程序的输出结果是()。
#include
main()
{intx=5,y=3;
printf(“%d\n”,y=x/y);}
A)0B)1C)3D)不确定的值
12.若变量已正确定义,下面程序段的输出结果是()。
//与3类似
x=5.238794;
printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
A)5.239000B)输出格式说明与输出项不匹配,输出无定值
C)5.238000D)5.24
13.下面语句的输出结果是()。
print("|%8.5f|\n",3461.45);
A)|61.45000|B)|3461.450|C)|3461.45000|D)|3461.4500|
14.执行下面程序中的输出语句后,a的值是()。
#include
voidmain()
{inta;
printf("%d\n",(a=3*5,a*4,a+5));}
A)65B)20C)15D)10
15.以下程序不用第三个变量,实现将两个数进行对调的操作,请填空()。
#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
16.以下程序的输出结果是()。
#include
voidmain()
{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
17.若变量都已正确说明,则以下程序段输出结果是()。
a=2;
b=3;
printf(“a>b?
***a=%d;###b=%d”,a,b);?
?
?
?
?
A)没有正确的输出格式控制B)输出为:
****a=2
C)输出为:
###b=2D)输出为:
***a=2###b=2
18.若已定义inta=256;,执行语句printf("%x",a);的结果是()。
A)100B)256C)ffeD)ff
19.执行下列程序时输入1234567,程序的运行结果为()。
#include
voidmain()
{intx,y;
scanf("%2d%2d",&x,&y);
printf("%d\n",x+y);}
A)17B)46C)15D)9
20.已知inta,;intb;floatc;doubled;,则表达式a*b==c-d结果为()型。
?
?
?
?
A)DoubleB)intC)floatD)char
21.已知inta,b;,用语句scanf("%d%d",&a,&b);输入a,b的值时,不能作为输入数据分隔符的是()。
A),B)空格C)回车D)[Tab]键
22.语句printf("%d",(a=2)&&(b=-2));的输出结果是()。
A)无输出B)结果不确定C)-1D)1
23.下述程序的输出结果是()。
#include
voidmain()
{printf("%f",2.5+1*7%2/4);}
A)2.50000B)2.750000C)3.375000D)3.000000
2、填空题
1.变量i、j、k已定义为int类型并有初值0,用以下语句进行输入:
scanf(“%d”,&j);scanf(“%d”,&k);
当执行以上输入语句,从键盘输入(代表回车键):
12.3
则变量i、j、k的值分别是0,12,0。
2.复合语句在语法上被认为是一条语句,空语句的形式是;。
3.C语句句尾用;结束。
4.运行如下程序:
#include
voidmain()
{inta,b,c;
scanf(“%d,%d,%d”,&a,&b,&c);
printf(“%d,%d,%d”,a,b,c);}
运行时,输入3、4、5,输出的值为3,4,5。
5.字符常量使用一对'界定单个字符,而字符串常量使用一对"来界定若干个字符的序列。
6.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为2.5。
7.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
8.表达式5%(-3)的值是2,表达式-5%(-3)的值是-2。
三、读程序写结果
1.下列程序的输出结果是()。
#include
voidmain()
{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
voidmain()
{charc;inti;
printf("输入一个正整数(小于255):
");
scanf("%d",&i);
c=(char)i;
printf("%c的ASCII码为%d\n",c,i);}
3.下列程序的输出结果是(560分钟<=>9小时20分钟)。
#include
voidmain()
{inti=560,h,m;
h=i/60;
m=i-60*h;
printf("%d分钟<=>%d小时%d分钟\n",i,h,m);}
4.下列程序的输出结果是(*3.140000,3.142*)。
#include
voidmain()
{printf("*%f,%4.3f*\n",3.14,3.1415);}
5.已有定义intd=-2;执行以下语句后的输出结果是()。
printf("*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n",d,d,d);*d
(1)=-2*d
(2)=-2*d(3)=-2*
printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);*d(4)=fffffffe*d(5)=fffffffe*d(6)=fffffffe*
6.在scanf()函数调用语言,可以在格式字符和%号之间加上一个星号,他的作用是(跳过对应的输入数据);当输入以下数据时:
10203040〈回车〉(此处代表空格),下面语句的执行结果是(103040)。
inta1,a2,a3;
scanf("%d%*d%d%d",&a1,&a2,&a3);
printf("%d%d%d",a1,a2,a3);
7.执行以下程序时,若从第一列开始输入数据,为使变量
a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',
正确的数据输入形式是()。
#include
voidmain()
{inta,b;floatx,y;charc1,c2;
scanf("a=%db=%d",&a,&b);a=3b=7
scanf("x=%fy=%f",&a,&b);x=8.5y=71.82
scanf("c1=%cc2=%c",&c1,&c2);c1=A,c2=a
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);}
四、程序填空
1、给定程序的功能是:
求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:
圆面积公式为:
2,在程序中定义的变量名要与公式的变量相同)。
例如:
输入圆的半径值:
19.527,输出为:
s=598.949991。
注意:
部分源程序给出如下。
试题程序:
#include
voidmain()
{doublex;
printf("Enterx:
");
scanf("%lf",【1】);&x
printf("s=%lf\n",3.14159*【2】/2.0));}x*x
五、编程题
1.请编写程序其功能是:
将两个两位的正整数a、b合并成一个整数放在c中。
合并方式是:
将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如:
当a=45,b=12,调用该函数后,c=5241。
2.假设m是一个三位数,则输出将m的个位,十位,百位反序而成的三