第3章作业答案(第2部分)
- 格式:doc
- 大小:105.50 KB
- 文档页数:4
第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 9 Unsigned int A b 仍为原值
(2) b+4 7 Unsigned int b 仍为原值
(3) a+c 561 Signed long int A c仍为原值
(4) a / 4 1 int A仍为原值
(5) a / 4.0 1.5 double A仍为原值
(6) y / 4 22.11 double y仍为原值
(7) a%3 0 int A仍为原值
(8) x %5 编译错误
(9) a++ 6 int A=7
(10) ++a 7 int A=7
(11) --a 5 int A=5
(12) a-- 6 int A=5
(13) ++x 5.5 double X=5.5
(14) --(b+2) 编译错误
(15) z++ 66 int Z=67或者‘C’
(16) a+z 72 int A z 仍为原值
(17)a>b 1 int A b仍为原值
(18) x!= 3 1 int X仍为原值
(19) a==6 1 int a仍为原值
(20) z>=b 1 int Z b仍为原值
(21) a && y 1 int a y仍为原值
(22) z || 0 1 int Z仍为原值
(23) ! z 0 int Z仍为原值 (24) a=3, b=4+a, c=a+b 10 Signed long int A=3,b=7,c=10
(25) a+10, b=a+3 9 Unsigned int A=6,b=9
(26)sizeof(unsigned int) 2 int
(27) sizeof(x+a) 8 double A x值未变
(28) (int)x 4 int X值未变
(29) a<10? a+10 : a+30 16 int A值未变
(30) z!=‟\0‟ ? „1‟ : „0‟ 49 int 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分)
程序段 赋值前表达式中各变量在内存中的二进制形式 赋值后表达式中各变量在内存中的二进制形式 Printf
输出结果
(1)
a=b;
printf(“%d ,%u”, a,a); a:00000000 00000110
b:11111111 11111111 a:11111111 11111111
b:11111111 11111111 -1, 65535
(2)
c=b;
printf(“%u %d”,c,c); b:11111111 11111111
c:00000000 00000011 b:11111111 11111111
c: 11111111
11111111 65535, -1
(3)
a=d;
printf(“%d,%u”,a,a); a: 00000000 00000110
d: 11111111 11111111 a: 11111111
11111111
d:11111111 11111111 -1,65535
(4)
e=b;
printf(“%ld\t%lu\t%xH”,e,e,e); b:11111111 11111111
e:11111111 11111111
11111111 11111111 b:11111111 11111111
e:11111111 11111111
11111111 11111111 -1,4294967295,
FFFFFFFFH
(5)
e=a;
printf(“%ld\t%lu\t%xH”,e,e,e); a: 00000000 00000110
e: 11111111 11111111
11111111 11111111 a:00000000 00000110
e:00000000 00000000
00000000 00000110 6,6,6H
(6)
f=b;
printf(“%ld\t%lu\t%xH”,f,f,f); b: 11111111 11111111
f: 00000000 00000000
11111111 11111111 b:11111111 11111111
f:11111111 11111111
11111111 11111111 -1,
4294967295,
FFFFFFFFH
(7)
f=a;
printf(“%ld\t%lu\t%xH”,f,f,f); a: 00000000 00000110
f: 00000000 00000000
11111111 11111111 a:00000000 00000110
f:00000000 00000000
00000000 00000110 6,6,6H
(8)
e=c;
printf(“%ld\t%lu\t%xH”,e,e,e); c: 00000000 00000011
e: 11111111 11111111
11111111 11111111 c:00000000 00000011
e: 00000000 00000000
00000000 0000011 3,3,3H
(9)
f=c;
printf(“%ld\t%lu\t%xH”,f,f,f); c: 00000000 00000011
f: 00000000 00000000
11111111 11111111 c:00000000 00000011
f: 00000000 00000000
00000000 00000011 3,3,3H
(10)
e=32768;
a=e;
printf(“%d”,a); a: 00000000 00000110
e:00000000 00000000
10000000 00000000 a:10000000 00000000
e: 00000000 00000000
10000000 00000000 -32768 (11)
f=65536;
c=f;
printf(“%u”,c); f: 00000000 00000001
00000000 00000000
c: 00000000 00000011 f: 00000000 00000001
00000000 00000000
c: 00000000 00000000 0
7.读程序段,按要求填写表格内容(6分)
程序段 显示结果
(1)
float x=4.5; double y;
y=x;
printf(“%lf”,y); 4.500000
(2)
float x; double y=34678.245;
x=y;
printf(“%f”,x); 34678.246094 (第8位以后是近似)
(3) int x; float y=39.7;
x=y;
printf(“%d”,x); 39
(4) int x=34; float y;
y=x;
printf(“%f”, y); 34.000000
(5) int x; char b=‟A‟;
x=b;
printf(“%d”,x); 65
(6) int x=68; char b;
b=x;
printf(“%c”,b); 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是大写或者小写字母”应如何书写