admin 管理员组文章数量: 887021
2023年12月16日发(作者:unix系统特点有哪些)
第三章 运算符与表达式练习题
一、单项选择题
1.下列数据中属于“字符串常量”的是( )。
A .”a” B. {ABC} C. ’abc0’ D. ’a’
2.下列数据中属于“字符串常量”的是( )。
A .ABC B. “ABC” C. ’abc’ D. ’a’
3. 在 PC 机中, ’n’在内存占用的字节数是( )。
A. 1 B. 2 C. 3 D. 4
4. 在 PC 机中, ”axff” 在内存占用的字节数是( )。
A. 5 B. 6 C. 3 D. 4
5.字符串””ABCD””在内存占用的字节数是( )。
A. 4 B. 6 C. 7 D. 8
6. 在 C 语言中,合法的长整型常数是( )。
A. 0L B. 49627 C. 0.054838743 D. 2.1869e10
7.在 C 语言中,合法的短整型常数是( )。
A. OL B. 0821 C. 40000 D. 0x2a
8.下列数据中不属于“字符常量”的是( )。
A. ‘a’ B. ‘160’ C. ‘070’ D. 070
9 .char 型常量在内存中存放的是( )。
A. ASCII 代码值 B. BCD 代码值 C. 内码值 D. 十进制代码值
10. int a=4,b=3,c=-2,d=2; 逻辑表达式 a>0&&b&&c<0&&d>0 的值是( )。
A. 1 B. 0 C. -1 D. 出错
11.在以下一组运算符中,优先级最高的运算符是( )。
A. <= B. = C. % D. &&
12.设整型变量 i 的值为3,则计算表达式 i---i 后表达式的值为( )。
A. 0 B. 1 C. 2 D. 表达式出错
13.设整型变量 i,j=3; 则计算表达式 i=j+++j 后 i,j 的值为( )。
A. 4,4 B. 6,6 C. 4,6 D. 6,4
14.设整型变量 a,b,c 均为2,表达式 a+++b++c++的结果是( )。
A. 6 B. 9 C. 8 D. 表达式出错
15.设整型变量 i,j 值均为 3,执行了“j=i++,j++,++i”后, i,j 的值是( )。
A. 3,3 B. 5,4 C. 4,5 D. 6,6
(double)的结果值是( )。
A .8 B. 4 C. 2 D. 出错
17. 表达式“1?(0?3:2):(10?1:0)” 的值是( )。
A. 3 B. 2 C. 1 D. 0
a=0; if(a=1) a+=10; 结果的值是( )。
A. 0 B. 11 C. 10 D. 出错
19.下列表达式中符合C语言语法的赋值表达式是( )。
A. a=7+b+c=a+7 B. a=7+b++=a+7 C. a=(7+b,b++,a+7) D. a=7+b,c=a+7
20.下列表达式中,不正确的表达式是( )。
A. a=1,b=1 B. y=int(x) C. a=b=5 D. i++
1
n; float f=13.8; 执行“n=((int)f)%3”后, n 的值是( )。
A. 1 B. 4 C. 4.333333 D. 4.6
22.用十进制数表示表达式“12|012”的运算结果是( )。
A. 1 B. 0 C. 14 D. 12
23.设有整型变量 a=35,表达式“(x&15)&&(x|15)” 的值是( )。
A. 0 B. 1 C. 15 D. 35
24.设 a,b 和 c 都是 int 型变量,且 a=3,b=4,c=5,则下面的表达式中值为0的是( )。
A. ’a’&&’b’ B. a<=b C. a||b+c&&b-c D. !((a
25.设 a 是 char 型变量,其值字符为’1’,则把其值变成整数 1 的表达式是( )。
A. (int)a B. int(a) C. a=a-48 D. a/(int)a
26.设 a 是 int 型变量,其值为 3,则把其值变成字符 ’3’ 的表达式是( )。
A. (char)a B. a=3 C. a=a-48 D. a=a+48
27.以下选项中,不正确的 C 语言常量是 (TC 中)。
A. 32L B. 510000 C. -1.00 D. 0568
28.以下选项中, 是不正确的 C 语言字符型常量。
A. 'a' B. 'x41' C. '101' D. "a"
29. 字符串的结束标志是 。
A. 0 B. '0' C. '0' D. "0"
30. 逻辑运算符中,运算优先级按从高到低挨次为 。
A. &&,!,|| B. || ,&&,! C. &&,||,! D. !,&&,||
31.表达式!x||a==b 等效于 。
A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b)
32. int b=0,x=1;执行语句 if(x++) b=x+1; 后, x,b 的值挨次为 。
A. 2,3 B. 2,0 C. 3,0 D. 3 ,2
33.设 ch 是 char 型变量,其值为 'A',则下面表达式的值是
ch=(ch>='A'&& ch<='Z')? (ch+32):ch
A. A B. a C. Z D. Z
34.字符串"ABC"在内存占用的字节数是
A. 3 B. 4 C. 6 D. 8
35.要为字符型变量 a 赋初值,下列语句中哪一个是正确的
A. char a=3; B. char a=”3”; C. char a=%; D. char a=*;
36.下列不正确的转义字符是
A. B. ' C. 074 D. 0
37.下面四个选项中均是合法整型常量的选项是( )
A.160 -0xffff 011 B.-0xcdf 01a 0xe
C.-01 986,012 0668 D.-0x48a 2e5 0x
38.下面四个选项中均是不合法整型常量的选项是( )
A.-0f1 -0xffff 0011 B.-0xcdf 017 12,456
C.-018 999 5e2 D.-0x48eg -068 03f
39.下面四个选项中,均是不合法的浮点数的选项是( )
A.160 0.12 e3 B.123 2e4.2 e5
C.-18 123e4 0.0
D.-e3 234 1e3
40.下面四个选项中,均是合法的浮点数的选项是( )
A.+1e+1 5e-9.4 03e2 B.-60. 12e-4 -8e5
2
C.123e 1.2e-4 -8e5 D.-e3 8e-4 5.e-0
41.下面四个选项中,均是合法转义字符的选项是( )
A.'" ‘' ‘n' B.‘' ‘017' ‘"'
C.'018' ‘f' ‘xab' D.'0' ‘101' ‘x1f'
42.下面四个选项中,均是不合法的转义字符的选项是( )
A.'"' ‘' ‘xf' B.'1011' ‘' ‘a'
C.'011' ‘f' ‘}' D.'abc' ‘101' ‘x1f
43.下面正确的字符常量是( )
A.‘c" B.'" C.'w' D."
44.下面四个选项中,均是正确的数值常量或者字符常量的选项的是( )
A.0.0 0f 8.9e ‘&' B."a" 3.9E-2.5 1e1 ‘"'
C.'3' 011 0xFF00 0a D.+001 0xabcd 2e2 50
45.下面不正确的字符串常量是( )
A.'abc' B."12'12" C."0" D." "
46.已知各变量的类型说明如下:int k,a,b; unsigned long w=5; double x=1.42;则以下不符合 C
语言语法的表达式是( )
A.x%(-3) B.w+=-2 C.k=(a=2,b=3,a+b) D.a+=a-=(b=4)*(a=3)
47.已知各变量的类型说明如下:int i=8,k,a,b; unsigned long w=5;double x=1.42,y=5.2;则以下
符合 C 语言合法的表达式是( )
A.a+=a-=(b=4)*(a=3) B.a=a*3=2 C.x%(-3) D.y=float(i)
48.以下不正确的叙述是( )
A.在 C 程序中,逗号运算符的优先级最低
B.在 C 程序中,APH 和aph 是两个不同的变量
C.若 a 和 b 类型相同,在计算了赋值表达式 a=b 后b 中的值将放入 a 中,而 b 中
的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数
值
49.以下正确的叙述是( )
A.在 C 程序中,每行中只能写一条语句
B.若 a 是实型变量,C 程序中允许赋值 a=10,因此实型变量中允许存放整型数
C.在 C 语程序中,无论是整数还是实数,都能被准确无误地表示
D.在 C 程序中,%是只能用于整数运算的运算符
50..以下符合 C 语言语法的赋值表达式是( )
A.d=9+e+f=d+9 B.d=9+e,f=d+9 C.d=9+e,e++,d+9 D.d=9+e++=d+7
51.表达式 18/4*sqrt(4.0)/8 值的数据类型为( )
B char D.不确定
52.若有以下定义,则能使值为 3 的表达式为 3 的表达式是( ) int k=7,x=12;
A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5)
53.设以下变量均为 int 类型,则值不等于 7 的表达式是( )
A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)
54.C 语言并非非常严格的缩放语言,在以下关于 C 语言的不严格的叙述中,错误的说法
是( )。
A)任何不同数据类型都不可以通用
3
B)有些不同类型的变量可以在一个表达式中运算
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
55.在 C 语言中, int、char 和 short 三种类型数据所占的内存( )。
A)均为 2 个字节 B)由用户自己定义
C)由所用机器的字长决定 D)是任意的
56.下列常数中不能作为 C 语言的数据类型是( )。
A)0xa5 B)2.5e-2 C)3e2 D)0582
57.设 int 类型的数据长度为 2 字节,则unsigned int 类型数据的取值范围是( )。
A)0 至 255 B)0 至 65535 C)-256 至 255 D)-32768 至 32767
58.在 C 语言中,数字 029 是一个( )。
A)八进制数 B)十六进制数 C)十进制 D)非法数
59.下列可以正确表示字符型常数的是( )。
A)”a” B)'t’ C)”n” D)297
60.以下错误的转义字符是( )。
A)'’ B)''’ C)'81’ D)'0’
61.C 语言中整数-8 在内存中的存储形式是( )。
A)1111 1111 1111 1000 B)1000 0000 0000 0000
C)0000 0000 0000 1000 D)1111 1111 1111 0111
62.已知 int i; float f; 正确的语句是( )。
A)(int f)%i B)int(f)%i C)int(f%i) D)(int)f%i
63.已知: char a; int b;float c; double d; 执行语句 c=a+b+c+d; 后,变量 c 的数据类型是
( ) 。
A)int B)char C)float D)double
64.已知: int i,a;执行语句“i=(a=2*3,a*5),a+6;后,变量 i 的值是( )。
A)6 B)12 C)30 D)36
65.已知: int i=5;执行语句 i+= ++i;i 的值是( )。
A)10 B)11 C)12 D)A ,B,C 答案都不对
66.字符串” 22a,0n”的长度是( )。
A)8 B)7 C)6 D)5
67.已知: char c='A' ;int i=1,j;执行语句 j=!c&&i++;则 i 和 j 的值是( )。
A)1,1 B)1,0 C)2 ,1 D)2,0
68.已知: int x=1,y=2,z;则执行 z=x>y?++x:++y;则 z 的值为( )。
A)1 B)2 C)3 D)4
69.为了求出 s=10!的值,则变量 s 的类型应当为( ) 。(10!=3628800)
A)int B)unsigned C)long D)以上三种类型均可以
70.已知: int x=1,y;则 y=++x* ++x 的结果为( )。
A)y=9 B)y=6 C)y=1 D)表达式是错误的
71.已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量 a 的值为( )。
A)0 B)1 C)4 D)5
72.选出使变量i 的运行结果为 4 的表达式( )。
A) int i=0,j=0; B) int i=1,j=0;
(i=3,(j++)+i) j=i=((i=3)*2);
C) int i=0,j=1; D) int i=1,j=1;
4
(j==1)?(i=1):(i=3); i+=j+=2;
73.已知: int x;则使用逗号运算的表达式“(x=4*5,x*5),x+25”的结果为( ),变量 x 的值
为()。
(1) A)20 B)100 C)表达式不合法 D)45
(2) A)20 B)100 C)125 D)45
74.执行下面的语句后x 的值为( )。
int a=14,b=15,x;
char c='A';
x=((a&b)&&(c<'a'));
A)TRUE B)FLASE C)0 D)1
75.若定义了int x;则将 x 强制转化为双精度类型应该写成( )。
A)(double)x B)x(double) C)double(x) D)(x)double
76.要判断 char 型变量 m 是否是数字字符,可以使用下列表达式( )A)0<=m&&m<=9 B)'0'<=m&&m<='9'
C)“0”<=m&&m<=“9” D)前 3 个答案都是错误的
77.以下可用作用户标识符的是: ( )
A) 12_a B) signed C) t-o D) _if
78.以下不是关键字的标识符是: ( )
A) continue B) char C) If D) default
79.C 语言提供的合法的关键字是: ( )
A) swicth B) cher C) Case D) void
80. 以下选项中不合法的 int 整型常数是( )
A) 32768 B) -56 C) 03 D) 0xAF
81. 以下不合法的长整型常量是( )
A) 2L B) 49627 C) 34566666 D) 213
82.以下正确的实型常量是( )
A) 1.2E B) .579899 C) 1.2e0.6 D) 8
83.以下选项中合法的实型常数是( )
A) 5E2.0 B) E-3 C) .2E0 D) 1.3E
84.以下合法的八进制数是( )
A) 0135 B) 068 C) 013.54 D) o7
85. 以下合法的十六进制数是( )
A) 0x B) 0x4de C) 0x1h D) ox77
86.以下选项中非法的数值常量是( )
A) 019 B) 0L C) 0xff D) 1e1
87.若变量已正确定义,以下合法的赋值表达式是( )
A) a=1/b=2 B) ++(a+b)
C) a=a/(b=5) D) y=int(a)+b
88.若变量已正确定义,以下非法的表达式是( )
A) a/=b+c B) a%(4.0)
C) a=1/2*(x=y=20,x*3) D) a=b=c
89.设 x 为 int 类型,其值为 11,则表达式( x++*1/3)的值是:
A) 3 B) 4 C) 11 D) 12
90. 设 a,b 均为 double 型,且 a=5.5;b=2.5;则表达式
。
5
(int)a+b/b 的值是( )
A) 6.500000 B) 6 C) 5.500000 D) 6.000000
1
91.若 a,b,c 均被定义成整型并已赋大于 1 的值,能正确表示代数式
a b c
的 C 语言表达式
是( )
A) 1/(float)a*b*c B) 1/(a*b*c) C) 1.0/a/b/c D) 1/a/b/(float)c
x
y z
的 C 语言表 92. 以下变量 x,y,z 均为 double 型且已正确赋值,不能正确表示代数式
达式是( )
A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z
93 . 若题中变量已正确定义并赋值,下面符合 C 语法的表达式是( )
A) a%=7.6 B) a++,a=7+b+c C) int(12.3)%4 D) a=c+d=a+7
94. 若 t 已定义为 double 型,则表达式: t=1,t++,t+5 的值为( )
A) 7 B) 7.0 C) 2.0 D) 1.0
95.下面四个选项中,均是不合法的用户标识符的选项的是:( )
A. A p_o do B. float lao _A C. b-a goto int D._123 temp INT
二、填空题
1.符号常量的定义方法是 。
2、双精度实数的表示范围是___________,其有效位数是________。
3、关系表达式的运算结果是________。
4、逻辑运算符!是________运算符,其结合性是由______。
5、表达式的运算对象可以是常量、变量和________。
6、已知 char c;表达式(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)&&c<=98 的值
为 1,则变量 c 的值是_____________。
7、已知: a=15,b=240;则表达式(a&b)&b||b 的结果为______。
8、负数在计算机中是以______形式表示。
9、在内存中存储“A”要占用 个字节,存储‘A’要占用 个字节。
10、设 a,b,c 为整型数,且 a 的值为 2,b 的值为 3, c 的值为 4,表达式: a*=16+(b++)-(++c)
的值为______。
11、已有定义: int x=0,y=0;,则计算表达式: (x+=2,y=x+3/2,y+5)后,表达式的值是___,变
量 x 的值是___,变量 y 的值是____
12、定义变量的完整语句格式是 。
13、设下列运算符: << 、+、++、&&、<=,其中优先级最高的是 ,优先级最低
的是 。
14、已有定义: int x=110,y=017;,则计算表达式: (x++,++y)后,按十进制表示,变量 x 的
值是_____,变量 y 的值是_____。
15、C 语言中运算结果可以当成逻辑值使用的表达式有: 表达式、 表达式、
表达式、 表达式、 表达式和 表达式。
16、若已有定义语句: int k=3,j=4;,运行表达式(k+=j,j/=4.0,++j,j+2)后,表达式的值是_____,
变量 k 的值是_____,变量 j 的值是_____。
17、若 x 和 y 都是 double 型变量,且 x 的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x))
6
的值为 。
18、若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则计算赋值表达式
k=(e+f)/g+sqrt((double)n)*1.2/g+m 后 k 的值是。
19、表达式 8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为20、表达式 pow(2.8,sqrt(double)(x)))值的数据类型为。
。
21、假设 m 是一个三位数,从左到右用 a、b、c 表示各位的数字,则从左到右各个数字是 bac
的三位数的表达式是 。
22、已有定义: float f=13.8;,则表达式: (int)f%3 的值是______.
23、已有定义: int x=3;, 则表达式: x=x+1.78 的值是______.
24、已有定义: double x=3.5; 则表达式: x=(int)x+1 的值是___.
25、已有定义: int x=10,y=3,z;, 则表达式: z=(x%y,x/y) 的值是_____.
三、操作题
1 .写出以下程序运行的结果:
main()
{ char c1='a',c2='b',c3='c',c4='101',c5='116';
printf("a%c b%ctc%ctabcn",c1,c2,c3);
printf("tb%c %c",c4,c5);
}
2. 分析以下程序能否正常运行。
main()
{ int c1,c2; c1=97; c2=98;
printf("%c %cn",c1,c2);
printf("%d %dn",c1,c2);
}
3. 写出以下四个程序运行的结果:
main()
{
int i=6;
printf("%d,%d,%dn",i,(i++)+(i++)+(i++),i);
}
main()
{
int i=6,j;
j=(i++)+(i++)+(i++);
printf("%d,%dn",i,j);
}
main()
{
int i=6,j;
j=(++i)+(++i)+(++i);
printf("%d,%dn",i,j);
}
7
4. 写出以下程序运行的结果:
(1) main()
{ float f;
int i=4;
f=10/i;
printf("%fn",f);
}
(2) main()
{ float f;
int i=4;
f=10.0/i;
printf("%fn",f);}
5. 分析下面程序执行后的结果 。
main()
{ int a=3,b=7;
printf(“%dn”,a++ + ++b);
printf(“%dn”,b%a);
printf(“%dn”,!a>b);
printf(“%dn”,a+b);
printf(“%dn”,a&&b);
}
四、简答题
(1)用户标识符在命名时,应注意哪几个方面?
(2) C 语言中,怎样区分求负与减法运算?怎样区分取地址运算和按位与运算?
五、求下面算术表达式的值
(1)设 x=2.5, a=7, y=4.7,x+a%3*(int)(x+y)%2/4
设 a=2, b=3, x=3.5, y=2.5, (float)(a+b)/2+(int)x%(int)y
(2)设 int i=1,j=2,k=3;,请写出以下表达式的值及计算后变量 i、j、k 的值。
① ( ++i ) * ( ++j ) * ( ++ k)
③i=i+j,j=j+k,k=k+i
②( i++ ) * ( ++j ) * (k++)
④! ( i = j ) && ( j = k )
六、 编程题:
1. 要将“China”翻译成密码。 密码规律是: 用原来字母的后面第 4 个字母代替原来的字母。
请编写一程序实现。并输出结果。 (Glmre)
2. 设长方形的高为 1.5,宽为 2.3 ,编程求该长方形的周长和面积。
参考答案:
一、选择题
1-5 ABACC 6-10 (AB) DCAA 11-15 CADAB 16-20 ABBCB 21-25 ACBDC
36-40 CADDB 41-45 AACDA 46-50 AAADD
26-30 DDDCD
31-35 DABBA
51-55 CDCAC
76-80BDCDA
56-60 DBDBC
81-85 DBCAB
61-65 ADCCC
86-90 ACBAD
66-70 BBCCA 71-75 AD (DA) DA
91-95 CABBC
8
二、填空题
1 、 #define 标识符 字符串 2、 10-308~10+308
3 、 0 或者 1
4 、 逻辑非、从右向左
5 、 函数 6、 数字字符或者大写字母或者小写字母 a 和 b 7、 1 8、 补码
9 、 2 、1 10、 4、7 、2 11、 unsigned int、double 、char
12、 数据类型 变量名[=表达式 1][,变量名 2[=表达式 2],……];
13、 ++、&& 14、 111 、16 15 、 算术、关系、逻辑、赋值、逗号
16、 4、7 、2 17、 8 .000000 18、 13.700000 19、 int 20、 double
21、 m%10+m/100*10+m%100/10)*100
22、 1 23、 4 24、 4.000000 25、 3 26、 28 27、 2、3
三、操作题
1 、 aa bb cc ab 2 、 a b 3 、 9,21,6 9,18 9,27
A N 97 98 4 、(1)2.000000 (2)2.500000
5 、 11
0
0
12
1
四、 (2)区别是:求负:单目,右结合;减法:双目,左结合;
取地址:单目,右结合;按位与:双目,左结合;
五、 (1) 2.5、 3.5
(2)①24,i=2,j=3,k=4 ②9,i=2,j=3,k=4 ③6,i=3,j=5,k=6④ 0,i=2,j=3,k=3
六、编程题
1 、#include
void main()
{char c1=’c’,c2=’h’,c3=’i’,c4=’n’,c5=’a ’;
c1=c1+4;c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;
printf(“ %c%c%c%c%cn”,c1,c2,c3,c4,c5);
}
2 、#include
void main()
{float x=1.5,y=2.3;
printf(“周长是: %6.2f,面积是: %6.2fn”,2*(x+y),x*y);
}
9
版权声明:本文标题:数据类型、运算符与表达式练习题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702698893h427264.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论