《C语言程序设计》第2章数据类型与运算练习题及解答Word下载.docx
- 文档编号:18656712
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:32
- 大小:35.85KB
《C语言程序设计》第2章数据类型与运算练习题及解答Word下载.docx
《《C语言程序设计》第2章数据类型与运算练习题及解答Word下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》第2章数据类型与运算练习题及解答Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
y-zD)!
(x<
y&
!
z||1)
该题考查逻辑与“&
”和逻辑或“||”以及逻辑非“!
”符号的用法。
选项A)即3&
4为真,选项B)即3<
=4为真,选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为x的值为真,此时选项C)变为1&
-1为真。
选项D)不用计算,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。
main()
{inti=1,j=1,k=2;
if((j++||k++)&
i++)
printf("
%d,%d,%d\n"
i,j,k);
}
执行后输出结果是
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
C
该题目的关键是要搞清楚“&
”和“||”两个逻辑运算符的运算功能。
运算符“&
”和“||”是双目运算符,要求有两个运算量。
且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面的值。
只要前面为假,就不必判别后面的值。
而逻辑或则为只要前为真,就不必判别后面的值;
只有前为假,才判别后。
本题中j++值为真,不进行k++的运算,所以k的值保持不变。
intx=1,y=1;
表达式(!
x||y--)的值是
A)0B)1C)2D)-1
C语言规定的运算优先级由高到低分别是逻辑非、算术运算、逻辑或。
所以先计算!
x,值是0,然后再计算y--,由于是后缀运算符,所以y在本次运算中的值仍然是1,最后计算0||1,值为1。
12.若有说明语句:
charc='
\72'
;
则变量c
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法,c的值不确定
C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“\”开头的字符。
其中“\ddd”表示用ASCII码(八进制数)表示一个字符,本题中的charc=′\72′即表示占一个字符的变量c的ASCII码值。
C语言中,退格符是
A)\n
B)\t
C)\f
D)\b
C语言的转义字符见下表所示。
转义字符
转义字符的意义
\n
回车换行
\t
横向跳到下一制表位置
\v
竖向跳格
\b
退格
\r
回车
\f
换页
\\
反斜线符“\”
\’
单引号符
C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。
在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。
A)10B)01C)非0非0D)11
在C程序中,判断逻辑值时,用非0表示真,用0表示假。
逻辑表达式计算时,逻辑表达式值为真是用1表示的,若逻辑表达式的值为假,则用0表示。
ASCII码表示的,字符“5”和“7”在机器中表示为
A)10100011和01110111B)01000101和01100011
C)00110101和00110111D)01100101和01100111
为便于表示各种数据类型,机器中采用了BCD码(表示十进制数)、ASCII码(字符型)、汉字机内码等等各种码。
数据采用了补码、原码和反码为表示形式。
实型数据表示方法有浮点法和定点法等,考生需熟练掌握各种码的含义,并用之来计算、比较。
需要提出的是,在机器内部,所有码都是由二进制编码而成的,它都是以二进制存储在机器之中的。
字符“5”和“7”的ASCII的值分别为53和55,其二进制形式分别为00110101和00110111。
16.若已定义:
inta=25,b=14,c=19;
以下三目运算符(?
:
)所构成语句的执行后
a<
=25&
b--<
=2&
c?
***a=%d,b=%d,c=%d\n"
a,b,c):
###a=%d,b=%d,c=%d\n"
,a,b,c);
程序输出的结果是
A)***a=25,b=13,c=19B)***a=26,b=14,c=19
C)###a=25,b=13,c=19D)###a=26,b=14,c=19
此题综合考查多种运算符的使用;
首先计算表达式a<
=25&
=2&
c的值,很容易看出b--<
=2的值为假,因此表达式为假;
根据三目运算的特点,由于前面的表达式为假,应执行printf(“###a=%d,b=%d,c=%d\n”,a,b,c),应注意a的值依然为25,b的值经过b--运算后改变为13,而c的值仍为19。
17.若有定义:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是
A)B)C)D)
x+y的值为实型,经强制类型转化成整型7。
a%3的值为1,1*7的值为7,7%2值为1。
1/4的值为0,而非,因而为两个整数相除的结果为整数,舍去小数部分。
与实型x相加,最终得结果为。
inta=14,b=15,x;
charc=′A′;
x=(a&
b)&
(c<
′B′);
执行该程序段后,x的值为
A)tureB)falseC)0D)1
在C语言中,逻辑运算符有4个,它们分别是:
(逻辑非)、||(逻辑或)、&
(逻辑与)、^(异或)。
在位运算里面还有&(位与)、|(位或)的运算。
本题考查逻辑与运算符的用法,在表达式x=(a&
中,先判断a&
b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c<
′B′是成立的,显然,该表达式的值为1。
19.在以下一组运算符中,优先级最高的运算符是
A)<
=B)=C)%D)&
关系运算符、逻辑与和算术运算符总算术运算符的优先级最高,故选C)。
20.以下选项中,与k=n++完全等价的表达式是
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
k=n++的意思是先将n的值赋给k,然后n的值再加1,选项A)符合题意;
选项C)是先使n的值加1,然后再赋值给k;
选项D)等价于k=k+(n+1)。
A)main()B)main()
{intx,y,z;
{intx,y,z;
x=0;
y=x-1;
x=0,y=x+1;
z=x+y;
}z=x+y;
C)main()D)main()
{intx;
{intx,y,z;
inty;
x=0;
y=x+1;
x=0,y=x+1;
z=x+y,}
在选项A)中的语句没有一条是错误的。
选项B)和C)中有一个逗号表达式,选项B)中是x=0,y=x+1;
在选项C)中是y=x+1,z=x+y;
所以B)和C)中也没有错误。
选项D)中的最后一条语句是以逗号结束的,而C语言中不能用逗号作为一个语句的结束标志,每一条语句最后应该是分号,所以D)选项中的程序是错误的。
22.以下4个选项中,不能看做一条语句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a<
5);
D)if(b!
=5)x=2;
y=6;
选项D)为两条语句。
23.下列运算符中优先级最高的是________。
A)<
B)+C)&
D)!
=
24.判断char型变量ch是否为大写字母的正确表达式是________。
A)'
A'
<
=CH<
='
Z'
B)(CH>
)&
(CH<
)
C)(CH>
)D)('
=ch)AND('
>
=ch)
25.设inta=12,则执行完语句a+=a-=a*a后,a的值是________。
A)552B)264C)144D)-264
26.设a=5,b=6,c=7,d=8,m=2,n=2,执行
(m=a>
(n=c>
b)后n的值为________。
A)1B)2C)3D)4
27.逻辑运算符两侧运算对象的数据类型________。
A)只能是0或1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据
28.正确表示"
当x的取值在[1,10]和[200,210]范围内为真,否则为假"
的表达式是________。
A)(X>
=1)&
(X<
=10)&
(X>
=200)&
=210)
B)(X>
=1)||(X<
=10)||(X>
=200)||(X<
C)(X>
=10)||(X>
D)(X>
=1)||(X<
(X>
29.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是________。
x'
&
'
y'
B)x<
=yC)x||y+z&
((x<
y)&
z||1)
30.已知x=43,ch='
y=0;
则表达式x=y&
ch<
B'
y的值是________。
A)0B)语法错C)1 D)"
假"
31.若希望当A的值为奇数时,表达式的值为"
真"
A的值为偶数时,表达式的值为"
则以下能满足要求的表达式是________。
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
32.不合法的常量是________。
A)'
\2'
B)'
"
(外面是单引号)C)"
"
D)"
\483"
33.若有以下定义
chars='
\092'
;
则该语句________。
A)使s的值包含一个字符B)定义不合法,s的值不确定
C)使s的值包含4个字符D)使s的值包含3个字符
34.下列正确的字符常量是________。
A、"
C"
B、'
\\'
C、'
W'
D'
下列不正确的字符串常量是________。
ABC'
B)"
C)"
SDF/3"
D)"
35.若定义inta=7;
floatx=2.5;
y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是________。
A)2.500000B)2.750000C
36.设有说明:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y值的数据类型是________。
A)intB)floatC)doubleD)char
37.执行下列语句inta=3,b;
b=-(--a);
后a,b的值分别是________。
A)2和-2B)2和-3C)3和-2D)3和-3
38.执行下列语句floatf=3.9;
inta=4;
f=(int)f+a;
后f的值是________。
A)7.9B)7.000000C)7.0D)出错
39.执行下列语句intf=3,g,h;
g=++f;
g=f++;
h=++g;
后f和h的值是________。
A)5和5B)6和5C)5和6D)4和5
40.下列C语句格式错的是________。
A)inta=10;
B)inta,b,z;
C)a=2:
b=3;
D)z=a+b;
41.下列变量定义中合法的是________。
A)int_a=1-.e-1;
B)doubleb=1+5e2.5;
C)longx=12.5;
D)float2_and=1-e-3;
42.以下______符合C语言语法的实型常量。
A)1.3E0.5B).7E-2C)3.14159ED)E5
43.以下______符合C语言语法的赋值表达式。
A)d=8+e+f=d+aB)8+e=f=dC)d=f=8+e++D)d=8+e++=d+7
44.设有以下变量定义,并已赋确定的值
charw;
intx;
floaty;
doublez;
则表达式:
w+x+z/y值的数据类型为________。
A)charB)intC)floatD)double
45.若x为int类型,则下面与逻辑表达式!
x等价的C语言关系表达式是________。
A)x==1B)x!
=1C)x==0D)x!
=0
46.设inta=3;
下列表达式值等于0的是______。
A)a&
(a>
0)B)!
a||aC)a%=aD)a>
=a
47.假定有以下变量定义:
intk=7,x=12;
则能使值为3的表达式是________。
A)x%=(k%=5)B)x%=(k-4%5)C)x%=k-k%5D)(x%=k)-(k%=5)
48.设x和y均为int型变量,则语句:
x+=y;
y=x-y;
x-=y;
的功能是________。
A)把x和y按从大到小排列B)把x和y按从小到大排列
C)无确定结果D)交换x和y中的值
49.下面能正确表示"
整数x的绝对值大于等于5"
的C语言表达式是________。
A)x≥0B)abs(x)≥0C)abs(x)>
=0D)abs(int(x))>
50.以下所列的C语言常量中,错误的是________。
0.5C)1.0/2.0D)'
\72'
二.填空题。
1.在C语言中用关键字【1】定义整型类型变量,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量。
【1】int
C语言中规定用关键字int定义整型变量。
+1/2的计算结果是【2】
【2】
1/2的值为0,故3.5+1/2的值为3.5。
y是int型,请写出y为奇数的关系表达式【3】。
【3】(y%2)==1或(y%2)!
inta=5,b=6,表达式(++a==b--)?
++a:
--b的值是【4】。
【4】7
此表达式为三目运算符,++a的值为6,b--的值为6,则整个表达式的值为++a的值,++a的值为7。
请注意前缀++,--和后缀++,--的区别。
【5】。
inta=1234;
printf("
%2d\n"
,a);
【5】1234
在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。
6.以下程序的输出结果是【6】。
{inta=0;
a+=(a=8);
%d\n"
a);
【6】16
赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解:
a+=(a=8)此时,a的值由于赋值为8,而不是0
a+=8
a=a+8
a=16
7.在计算机中,字符的比较是对它们的【7】进行比较。
ASCII码
【7】C语言中,字符也可以进行比较运算,且是按照ASCII码值进行的。
8.在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用【8】个字节。
【8】2
计算机存储一个字符用1个字节,存储字符串时,每个字符用占用1个字节,另在字符串的有效字符之后存储1个字符串的结束标记符。
所以存储字符串“X”要占用2个字节,存储字符′x′只要1个字节。
9.以下程序的运行结果是【9】。
{
intm=5;
if(m++>
5)
printf("
%d\n"
m);
else
m--);
【9】6
10.设有intx=8;
则表达式(++x*1/3)的值是【10】。
【10】3
11.设x,y,z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为【11】。
【11】32
12.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是【12】。
【12】0至65535
13.执行以下语句后b的值为【13】。
inta,b,c;
a=b=c=1;
++a||++b&
++c;
【13】1
14.设intx=2,y=1;
则表达式(!
x||y--)的值是【14】。
【14】1
15.设inta=5,b=2,c=3,d=4;
则表达式a>
b?
a:
c>
d?
c:
d值为【15】。
【15】5
16.若有以下程序段,
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3的值是【16】。
【16】0
17.有程序:
{
inty=3,x=3,z=1;
%d%d\n"
(++x,y++),z+2);
运行该程序的输出结果是【17】。
【17】33
18.能正确表示逻辑关系:
a≥5或a≤-1"
的C语言表达式是【18】。
【18】a>
=5||a<
=-1
19.执行下面程序段:
inta=10,b=9,c;
c=(a-=(b-5));
c=(a%11)+(b=3);
则变量b的值是【19】。
【19】9
20.假定w、x、y、z、m均为整型变量,且w=1,x=2,y=3,z=4则执行语句:
m=(w<
x)?
w:
x;
m=(m<
y)?
m:
y;
z)?
z;
后,m的值是【20】。
【20】1
《C语言程序设计》练习题
一、单项选择题
单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。
本类习题主要检查对C语言基本概念的掌握情况。
在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。
对于掌握不准的问题,应该通过上机实验来检验。
1.下列四组字符串中都可以用作C语言程序标识符的一组是__A__。
标识符开头的必须是字母或者下划线
A)printB)i\amC)PxqD)str_l(字符串名称)
_3done_halfMy->
bookCpp
oodbstart$itline#pow
aBc3paiHis.agewhile
2.C语言程序从main()函数开始执行,所以这个函数要写在_D___。
A)程序文件的开始B)程序文件的最后
C)它所调用的函数的前面D)程序文件的任何位置
3.下列关于C语言的叙述错误的是___A_。
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
4.在C语言中,错误的int类型的常数是___A_。
注意范围
A)32768B)0C)037D)0xAF
5.已知longi=65539;
执行语句printf("
%d"
i);
屏幕显示A____。
A)65539B)-3C)3D)程序不能执行
6.在C语言中,整数-8在内存中的存储形式是___A_。
A)1111111111111000B)1000000000001000
C)0000000000001000D)1111111111110111
7.C语言中字符型(char)数据在内存中的存储形式是__D__。
A)原码B)补码C)反码D)ASCII码
8.将字符g赋给字符变量c,正确的表达式是__C__。
A)c=\147B)c="
\147"
C)c='
\147'
D)c='
0147'
9.已知:
chara;
intb;
fl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 数据类型 运算 练习题 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)