一、选择题。
1)c语言中运算对象必须是整型的运算符是(a)。
a .%b./ c.! d.*
分析总结:“%为取余运算符,要求左右两边的运算对象必须是整形数据。
/”是除运算符,当左右两边的运算对象是整数时,结果也是整数,即产生整除效应。
2)若变量已正确定义并赋值,符合c语言语法的表达式是(b)。
a.a=a+7b.a=7+b+c,a++
c.int(12.3%4d.a=a+7=c+b
分析总结:注意题目中要求找的是表达式,而不是语句。所以a选项是错误的,首先排除。
b选项是逗号表达式。c选项%的左边不是整数,错误。d选项赋值运算符的左边只能是变量不能使常量和表达式,所以也是错误的。
3)以下中叙述中正确的是(a)。
a.a是实型变量,c允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值。
b.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。
c.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
d.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
分析总结:a选项:a是实型变量,c允许进行赋值a=10,因c语言的灵活性,系统会自动的将10转换成10.
0小数形式进行储存。课堂上讲过整型数据和实型数据的储存形态是不同的。b选项:
赋值号左边只能是变量,从运算方向和存储上来理解。c选项:执行表达式a=b后,在内存中a的值已由原值改变为b的值,b的值不变。
d选项:已有a=3,b=5,执行表达式a=b,将变量b的值赋值给a变量,使a中的值为5,b中的值不变仍为5;执行第二个表达式b=a,将a变量的值5传递给b,所以最终结果a、b都为5。
4)若a,b,c,d都是int型变量且初值为0,以下选项中不正确的赋值表达式是(c)。
a.a=b=c=100 b.d++
c.c+b d.d=(c=22)-(b++)
分析总结:注意语句和表达式的区别。赋值运算符的左边只能是变量,不能是常量或者表达式。
5)下列选项中不是c语句的是(c)。
a. b.;
c.a=5,c=10d.
分析总结:注意语句和表达式的区别。
6)合法的c语言赋值语句是(d)。
a.a=b=58 b.k=int(a+b);
c.a=58,b=58 d.- i;
分析总结:强制转换符需加括号,即 (int)(a+b)。而d选项- -i;等价于i=i-1;
7)有以下程序。
#include <>
main()
int x=10,y=3;
printf("%d",y=x/y);
执行后的输出结果是(c)。
a.0 b.1 c.3 d.不确定的值。
分析总结:整除。
8)若变量已正确定义为int型,要给a,b,c输入数据,正确的输入语句是(d)。
a.read(a,b,c
b.scanf(“%d%d%d”,a,b,c);
c.scanf(“%d%d%d”,&a,%b,%c);
d.scanf(“%d%d%d”,&a,&b,&c);
分析总结:&取地址符一定不能忘记!
9)若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句组是(c)
a.a=a+b,b=a-b,a=a-bb.t=a,a=b,b=t;
c.a=t;t=b;b=ad.t=b;b=a;a=t;
10)若有正确定义语句。
double x=5.16894;
语句printf(“%f”,(int)(x*1000+0.5)/(double)1000);的输出结果是(d)。
a.输出格式说明与输出项不匹配,输出无定值。
b.5.170000 c.5.168000 d.5.169000
分析总结:强制转化类型的书写格式为:**换类型)(需转换的表达式或者常量)
11)若有以下程序段:
int c1=1,c2=2,c3;
c3=c1/c2;
printf(“%d”,c3);
执行后的输出结果是(a)。
a.0 b.1/2 c.0.5 d.1
12)若有以下程序段。
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c);
执行后的输出结果是(b)。
a.3,0,-10 b.0,0,5
c.-10,3,-10 d.3,0,3
分析总结:c=(a-=a-5),(a=b,b+3);是两个逗号表达式c=(a-=a-5)和(a=b,b+3)组成一个大的逗号表达式。
二、填空题。
1)若k为int型变量且赋值11。请写出运算k++后表达式的值__11__和变量k的值__12___
分析总结:自增自减运算符的要点是:无论是++i还是i++,变量i的值必然要增加一个。表达式的取值按照从左往右的方向取值。
2)表达式s=10应当读做___将10赋值给变量s
3)把a1,a2定义成双精度实型变量,并赋初值1的定义语句是_ double a1=1,a2=1;_
4)若x为double型变量,请写出运算x=3.2,++x后表达式的值__4.200000___和变量x的值__4.200000___
5)若有以下定义,请写出以下程序段中输出语句执行后的输出结果__见图___
int i=-200,j=2500;
printf("(1)%d,%d",i,j);
printf("(2)i=%d,j=%d",i,j);
printf("(3)i=%dj=%d",i,j);
6)变量i,j,k已定义为int类型并均有初值0,用以下语句进行输入时:
scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);
从键盘输入: 12.3
则变量i,j,k的值分别是__12__,0___0___
分析总结:12.3的整数部分为12赋值给变量i,剩下0.3是小数无法赋值给%d类型的整型变量j,所以j和k变量的值仍然为初值0。
7)复合语句在语法上被认为是__一条语句___空语句的形式是___
8)c语句的最后用__;结束。
三、编程题和改错题。
1)更正后程序为:
#include<>
void main()
double a,b,c,s,v;
printf("input a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
s=a*b;
v=a*b*c;
printf("%f %f %f",a,b,c);
printf("s=%f,v=%f",s,v);
分析总结:scanf和printf中的格式控制串%d,%f,%lf与数据类型int,float,double都需严格的一一对应。
2)参考**:
#include<>
void main()
int a=560;//a为560分钟,要求转化为小时和分钟表示。
printf("%d分钟转换后为%d小时%d分钟",a,a/60,a%60);
3)参考**:
#include<>
void main()
int a,b;
printf("请输入两个整数:如1500,350");
scanf("%d,%d",&a,&b);
printf("%d除以%d的商为%d%d除以%d的余数为%d",a,b,a/b,a,b,a%b);
4)参考**:
#include<>
void main()
int a,b,c,t;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
printf("交换之前a=%d,b=%d,c=%d",a,b,c);
t=a;a=b;
b=c;c=t;
printf("交换之后a=%d,b=%d,c=%d",a,b,c);
第二章练习题
第二章流体流动基本概念。一 选择题及答案。1 欧拉法 描述流体质点的运动。a直接 b间接 c不能 d只在定常时能。答 b 2 非定常流动中,流线与迹线 a一定重合 b一定不重合 c特殊情况不可能重合 d一定正交。答 b 3 一维流动中,截面积大处速度小,截面积小处速度大 成立的必要条件是 a理想流体...
第二章练习题
一 名词解释 填空题。1.需求函数qd p 表示一种商品的 和 之间存在着一一对应关系。2.对于一个家庭或国家来说,富裕程度越高,恩格尔系数越 反之,则越 3.供给函数qs p 表示一种商品的 和 之间存在着一一对应关系。4.需求表或需求曲线表示 和 之间的函数关系。5.在供给不变的情况下,需求增加...
第二章练习题
第二章习题教育与社会的发展。一 基础题填空题。1 决定教育规模与速度的因素是 生产力 2 制约教育目的的因素是 政治经济制度。3 教育对生产力的促进作用表现为 教育再生产劳动力和教育再生产科学知识。4 人力资本的提出者是美国经济学家 舒尔茨 5 教育与文化之间是 相互依存 相互制约 的关系。6 学校...