1、第二章 表达式一、选择题(把正确选项的字母标号填到表格中)题号1234567891011121314151617181920答案- 4 -1.由一系列操作数和运算符构成并且最终会得到一个值的是 。A)表达式 B)函数 C)公式 D)格式2.下列表达式中,优先级最高的是 。A)赋值表达式 B)三元表达式 C)二元表达式 D)初级表达式3. 下列属于一元表达式的是 。A)i + j B)scanf() C)+a D)c+4.以下选项中是先计算运算符右边操作数的值,然后将值赋给运算符左边的变量的是 。A)后缀表达式 B)赋值表达式 C)初级表达式 D)乘法表达式5.用来确定复杂表达式中不同运算符的运
2、算的优先顺序的是 。A)结合性 B)优先级 C)副作用 D)公式6.下列表达式之中,不属于一元表达式的是 。A)+x B)+5 C)sizeof(x) D)x=47.下列不是正确赋值表达式的是 。A)x = 23 B)4 = x C)x = r = 5 D)y %= 58.若变量已正确定义并赋值,以下符合C语言语法的表达式是 。A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b 9.下列代码段的输出结果是 。int a=1234;float b=123.456;double c=12345.54321;printf(%2d,%2.1f,%2.1f,a,b,c);A
3、)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.510.设变量f是float型,i是double型,则表达式A+ i * f值的数据类型为 。A)intB)floatC)doubleD)不确定11.以下程序的输出结果是 。void main() int a=21,b=11;printf(%dn,-a + b+);A)30B)31C)32D)3312.若有以下定义,则能使值为3的表达式是 。int k=7,x=12;A)x %=(k %= 5)B)x %=(k-k%5)C)x %= k-k%5D)(x %= k)-(k %=
4、 5)13.下面程序的输出结果为 。void main(void) int a,b;b=(a=3*5,a*4,a*5);printf(%d,b);A)60B)75C)65D)无确定值14.C语言中运算对象必须是整型的运算符是 。A)%=B)/C)=D)+15.设有int x=11;则表达式(x+*1/3)的值是 。A)3B)4C)11D)1216.sizeof(float)是 。A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式17.以下选项中,与k=n+完全等价的表达式是 。A)k=n,n=n+1B)n=n+1,k=nC)k=+nD)k+=n+118.下列程序运行
5、的结果是 。void main(void) float x;int i;x = 3.6;i = (int)x;printf(x=%f,i=%d ,x,i);A)x=3.600000,i=3B)x=3.6,i=3C)x=3,i=3D)x=3.600000,i=3.00000019.不能进行+和-运算的对象为 。A)char型变量B)int型变量C)float型变量D)常量20.若有int k=10,m=3,n;则下列语句输出结果是 。printf(%dn,n=(k%m,k/m);A)2B)3C)4D)5二、判断题(错的填,对的填)题号1234567891011121314151617181920
6、答案1.任何表达式都是由运算符和操作数构成的。2.不同类型的混合运算其运算的优先顺序由优先级确定。3.任何表达式最终都产生一个值。4.后置+的优先级比前置+的优先级高。5.逗号运算符的优先级最低。6.%运算符只能用在整数之间。7.参加+、-运算的对象只能有一个,且必须是变量。8.sizeof是C语言中的一个库函数名。9.表达式rand()%100+1可以产生1-100之间的一个随机整数。10.若i是变量,则i+和+i单独使用时的作用是一样的。11.可以通过给表达式加()的方法来改变它的优先级。12.表达式a%b中,若a的值小于b,则表达式的值一定是a。13.使用rand函数时,必须包含头文件s
7、tdlib.h。14.在C语言中,两个整数相除的结果为整数。15.赋值表达式值的类型由最左边变量的类型确定。16.强制类型转换的优先级是14。17.程序设计就是编写程序代码。18.程序和程序设计是一回事。19.程序设计过程与选择使用的具体语言没有关系。20.算法是程序设计的核心。三、应用题1.程序改错题下面给出的程序实现的功能是输入三角形的三条边a、b、c,计算并输出三角形的面积area,【注:,其中】,程序中有多处错误,查找并改正。#include void main(void)int a, b, c;float s, area;printf(Please enter three sides
8、 a,b and c: );scanf(%d%d%d, a, b, c);s = 1 / 2 * (a + b + c);area = sqrt(s * (s-a) * (s-b) * (s-c)printf(Three sides: a=%d,b=%d,c=%dn,a,b,c);printf(Area=.1%fn,area);2. 写出与以下公式相对于的C语句,变量m,v,b,c均为int型。(1)KinEn = (2)res = 3. 填写表格根据已知条件计算各表达式的值,并把结果写在表格中。已知条件表达式表达式的值1 / 3 + 11 % 5x=4x+=x+3x=2x%= 5a=1, b=2+a+b+x=2945x%10x/10%10x/100x/10/10%10四、编程题1.C语言程序设计(第2版)中第80页第10题。