您的当前位置:首页第3章作业答案(第2部分)

第3章作业答案(第2部分)

来源:锐游网
第3章作业

第2部分:C中的运算符与表达式(100分)

本答案只是参考答案,请各组根据实际情况批阅。有些问答题只要关键点能答出就算对。编程题也没有绝对的写法,因各人而异,但变量定义类型、输入格式符、输出格式符等必须准确。 请用红色笔批阅,将总分写在第一页右上角。

批阅组长务必在批完后将全部作业和成绩单电子版给课代表。 1. 写出C中的算术运算符、关系运算符、逻辑运算符(1分) 算术运算符: + — * 、 % ++ --

关系运算符: > >= < <= == != 逻辑运算符: && || !

2. 写出C中3级及以上级别的运算符的类别名称,依照优先级的从高到低排列。(2分)

算数运算(3/4) 位运算(5) 关系运算(6/7) 位运算(8/9/10)逻辑运算(11/12)条件运算(13) 赋值运算(14) 逗号运算(15)

3. 写出C运算符中结合性为“从右至左”的运算符(1分) 二级运算符 条件运算符 赋值运算符

4. 写出C中用于表达式计算的数据类型转换规则(隐式转换规则)(1分) Float 型作为double型运算, char/short 型作为int型运算 其它类型的转换方向为:int -> unsigned -> long -> double 5. 若有 int a=6; unsigned int b=3 ; long c=555;

float x=4.5 ; double y=88.44 ;

char z= ‘B’ ;

写出下面各单项表达式的值/ 表达式的结果数据类型 及表达式中各变量的值(60分) 单项表达式 (1) a+b (2) b+4 (3) a+c (4) a / 4 (5) a / 4.0 (6) y / 4 (7) a%3 (8) x %5 (9) a++ (10) ++a (11) --a (12) a-- (13) ++x (14) --(b+2) (15) z++ (16) a+z (17)a>b (18) x!= 3 (19) a==6 (20) z>=b (21) a && y (22) z || 0 (23) ! z 表达式的值 9 7 561 1 1.5 22.11 0 编译错误 6 7 5 6 5.5 编译错误 66 72 1 1 1 1 1 1 0 表达式值的数据类型 Unsigned int Unsigned int Signed long int int double double int int int int int double int int int int int int int int int 表达式中各变量的值 A b 仍为原值 b 仍为原值 A c仍为原值 A仍为原值 A仍为原值 y仍为原值 A仍为原值 A=7 A=7 A=5 A=5 X=5.5 Z=67或者‘C’ A z 仍为原值 A b仍为原值 X仍为原值 a仍为原值 Z b仍为原值 a y仍为原值 Z仍为原值 Z仍为原值 (24) a=3, b=4+a, c=a+b (25) a+10, b=a+3 (26)sizeof(unsigned int) (27) sizeof(x+a) (28) (int)x (29) a<10? a+10 : a+30 (30) z!=‟\\0‟ ? „1‟ : „0‟ 10 9 2 8 4 16 49 Signed long int Unsigned int int double int int int A=3,b=7,c=10 A=6,b=9 A x值未变 X值未变 A值未变 Z值未变 6. 若使用TC2.0,设有定义

int a=6, b=-1;

unsigned int c=3,d=65535 ; long e= -1;

unsigned long f=65535 ;

请按要求填写下面表格内容(注:%x 以十六进制形式显示 , %xH 显示的十六进制后面带一个H(进制符号)):(11分) 程序段 赋值前表达式中各变量在内存中的二进制形式 a:00000000 00000110 b:11111111 11111111 b:11111111 11111111 c:00000000 00000011 a: 00000000 00000110 d: 11111111 11111111 赋值后表达式中各变量在内存中的二进制形式 Printf 输出结果 (1) a=b; printf(“%d ,%u”, a,a); (2) c=b; printf(“%u %d”,c,c); (3) a=d; printf(“%d,%u”,a,a); a:11111111 11111111 -1, 65535 b:11111111 11111111 b:11111111 11111111 65535, -1 c: 11111111 11111111 a: 11111111 -1,65535 11111111 d:11111111 11111111 b:11111111 11111111 e:11111111 11111111 11111111 11111111 a:00000000 00000110 e:00000000 00000000 00000000 00000110 -1,4294967295, FFFFFFFFH 6,6,6H (4) b:11111111 11111111 e=b; e:11111111 11111111 printf(“%ld\%lu\%xH”,e,e,e); 11111111 11111111 (5) a: 00000000 00000110 e=a; e: 11111111 11111111 printf(“%ld\%lu\%xH”,e,e,e); 11111111 11111111 (6) f=b; printf(“%ld\%lu\%xH”,f,f,f); (7) f=a; printf(“%ld\%lu\%xH”,f,f,f); b: 11111111 11111111 f: 00000000 00000000 11111111 11111111 a: 00000000 00000110 f: 00000000 00000000 11111111 11111111 b:11111111 11111111 -1, f:11111111 11111111 4294967295, 11111111 11111111 FFFFFFFFH a:00000000 00000110 f:00000000 00000000 00000000 00000110 6,6,6H (8) c: 00000000 00000011 e=c; e: 11111111 11111111 printf(“%ld\%lu\%xH”,e,e,e); 11111111 11111111 (9) f=c; printf(“%ld\%lu\%xH”,f,f,f); (10) e=32768; a=e; printf(“%d”,a); c: 00000000 00000011 f: 00000000 00000000 11111111 11111111 a: 00000000 00000110 e:00000000 00000000 10000000 00000000 c:00000000 00000011 3,3,3H e: 00000000 00000000 00000000 0000011 c:00000000 00000011 f: 00000000 00000000 00000000 00000011 3,3,3H a:10000000 00000000 -32768 e: 00000000 00000000 10000000 00000000 (11) f=65536; c=f; printf(“%u”,c); f: 00000000 00000001 00000000 00000000 c: 00000000 00000011 f: 00000000 00000001 0 00000000 00000000 c: 00000000 00000000

7.读程序段,按要求填写表格内容(6分) 程序段 (1) float x=4.5; double y; y=x; printf(“%lf”,y); (2) float x; double y=34678.245; x=y; printf(“%f”,x); (3) int x; float y=39.7; x=y; printf(“%d”,x); (4) int x=34; float y; y=x; printf(“%f”, y); (5) int x; char b=‟A‟; x=b; printf(“%d”,x); (6) int x=68; char b; b=x; printf(“%c”,b); 4.500000 显示结果 34678.246094 (第8位以后是近似) 39 34.000000 65 D 8. 计算下列混合表达式的值,写出结果值及其数据类型:(7分)

(1)3.5 (2)0 (3) 0 (4) 1 (5) 6 (6)26 (7)10

9.用C语言的关系或者逻辑运算符和其他运算符书写下列条件(11分)

(1)若有变量a、b、c,则要表示条件“a b c三个变量互不相等”该如何写? a!=b && b!=c && c!=a

(2)若有整型变量x,要表示“x值在10~20之间(包括端点值)”如何书写? x>=10 && x<=20

(3)若有字符变量c,若要表示“c是大写字母”应如何书写 c>=’A’ && c<=’Z’

(4)若有字符变量c,若要表示“c是数字类的字符”应如何书写 c>=’0’ && c<=’9’

(5)若有字符变量c,若要表示“c是大写或者小写字母”应如何书写

c>=’A’ && c<=’Z’ || c>=’a’ && c<=’z’

(6)若有整型变量a b,若要表示”a+b的和是偶数”应如何书写 (a+b)%2==0

(7)若有整型变量d,若要表示“d能被3整除”应如何书写 d%3==0

(8)若有字符变量c,若要表示“c不是字符‟#‟”应如何书写 c!=’#’

(9)若有整型变量x,n,若要表示“x小于等于n”如何书写? x<=n

(10)若有整型变量x,若要表示“x不等于0”如何书写? x!=0

(11)预将变量a b c做为三角形的三个边,则应满足两边之和大于第三边,如何书写该条件 a+b>c && b+c>a && a+c>b

因篇幅问题不能全部显示,请点此查看更多更全内容

Top