第二章练习题

发布 2022-07-14 23:19:28 阅读 2583

一、选择题。

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 学校...