C语言程序设计教程(第三版)李凤霞 第三章课后习题答案

第三章 数据类型与运算规则
一、单项选择题
1、C语言中字符型(char)在内存中的形式存储是( )。
A)源码 B)补码 C)反码 D)ASCII码
2、运算符有优先级,在C语言中关于运算符优先级的正确叙述是( )。
A)所有单目运算的级别相同
B)单目运算高于双目运算
C)赋值运算级别最低
D)求余运算比乘除运算级别高
3、C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是( )。
A)任何不同数据类型都不可以通用
B)有些不同类型的变量可以在一个表达式中运算
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
4、以下选项中属于C语言的数据类型是( )。
A)复数型 B)逻辑型 C)双精度型 D)集合型
5、在C语言中,int、char和short三种类型数据所占的内存( )。
A)均为2个字节 B)由用户自己定义
C)由所用编译系统决定 D)是任意的
6、下列常数中不能作为C语言的常量的是( )。
A)0xa5 B)2.5e-2 C)3e2 D)0582
7、设int类型的数据长度为2字节,则unsigned int类型数据的取值范围是( )。
A)0至255 B)0至65535 C)-256至255 D)-32768至32767
8、在C语言中,数字029是一个( )。
A)八进制数 B)十六进制数 C)十进制 D)非法数
9、下列可以正确表示字符型常数的是( )。
A)”a” B)’\t’ C)”\n” D)297
10、以下错误的转义字符是( )。
A)’\’ B)’’’ C)’\81’ D)’\0’
11、C语言中整数-8在内存中的存储形式是( )。
A)1111 1111 1111 1000 B)1000 0000 0000 0000
C)0000 0000 0000 1000 D)1111 1111 1111 0111
12、已知 int i; float f; 正确的语句是( )。
A)(int f)%i B)int(f)%i C)int(f%i) D)(int)f%i
13、已知:char a; int b;float c; double d; 执行语句c=a+b+c+d; 后,变量c的数据类型是( )。
A)int B)char C)float D)double
14、已知:int i,a;执行语句“i=(a=23,a5),a+6;后,变量i的值是( )。
A)6 B)12 C)30 D)36
15、已知:int i=5;执行语句i+= ++i;i的值是( )。
A)10 B)11 C)12 D)A,B,C答案都不对
16、字符串”\ \22a,0\n”的长度是( )。
A)8 B)7 C)6 D)5
17、已知:char c=‘A’;int i=1,j;执行语句j=!c&&i++;则i和j的值是( )。
A)1,1 B)1,0 C)2,1 D)2,0
18、已知:int x=1,y=2,z;则执行z=x>y?++x:++y;则z的值为( )。
A)1 B)2 C)3 D)4
19、为了求出s=10!的值,则变量s的类型应当为( )。(10!=3628800)
A)int B)unsigned C)long D)以上三种类型均可以
20、已知:float x=1,y;则 y= ++x* ++x的结果为( )。
A)y=9 B)y=6 C)y=1 D)表达式是错误的
21、已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为( )。
A)0 B)1 C)4 D)5
22、已知:char w;int x;float y;double z;则表达式为为wx+z-y的结果的类型是( )。
A)float B)char C)int D)double
23、选出使变量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;
(j==1)?(i=1):(i=3); i+=j+=2;
24、已知:int x;则使用逗号运算的表达式“(x=4
5,x
5),x+25”的结果为( 1 ),变量x的值为( 2 )。
(1)A)20 B)100 C)表达式不合法 D)45
(2)A)20 B)100 C)125 D)45
25、执行下面的语句后x的值为( )。
int a=14,b=15,x;
char c=‘A’;
x=sizeof©;
A)A B)41H C)0 D)1
26、若定义了int x;则将x强制转化为双精度类型应该写成( )。
A)(double)x B)x(double) C)double(x) D)(x)double

二、填空题
1、负数在计算机中是以______形式表示。(补码)
2、双精度实数的表示范围是___________,其有效位数是________。(¬-10308~ -10-308 ,10-308~10308,15 ~ 16 位)
3、一个整型数与一个实型数的运算结果是________型。(实型)
4、“=”是________运算符,其结合性是由______。(赋值 从右向左)
5、表达式的运算对象可以是常量、变量和________。(函数调用)
6、已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是________。(65,89)
#include “stdio.h”
main()
{char c1=‘A’,c2=‘Y’;
printf("%d,%d\n",c1,c2);
}
三、应用题
1、 下面程序的输出结果试__________。(10 9)
main()
{int x=10,y=10;
printf("%d %d\n",x–,--y);
}
2、分析下面程序执行后的结果 。
main()
{int a=3,b=7;
printf(“%d\n”,a++ + ++b); (11)
printf(“%d\n”,b%a); (0)
printf(“%d\n”,a/b); (0)
printf(“%d\n”,a+b); (12)
printf(“%d\n”,a*=b+1); (36)
}
3、C语言中,怎样区分求负与减法运算?怎样区分取地址运算和按位与运算?
答: 区别是:-:求负:单目,右结合
减法:双目,左结合
&:取址:单目,右结合
按位与:双目,左结合

你可能感兴趣的:(C语言,c语言)