点击查看:2018年9月计算机二级C语言考试章节习题及答案汇总
第2章 C程序设计的初步知识
2.3 整型数据
1[单选题] 用8位无符号二进制数能表示的最大十进制数为( )
A.127
B.128
C.255
D.256
参考答案:C
参考解析:2^8-1=256-1=255
2[单选题] 若有以下程序段(n所赋的是八进制数)
int m=32767,n=032767
printf("%d,%o/n",m,n);
执行后输出结果是( )
A.32767,32767
B.32767,032767
C.32767,77777
D.32767,077777
参考答案:A
3[单选题] 有以下程序
main()
{ char *s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是( )
A.n,two
B.t,one
C.w,one
D.o,two
参考答案:C
4[单选题] 以下定义语句中正确的是
A.int a =b =0;
B.char A = 65 + 1,b='b';
C.float a = 1,*b=&a,*c=&b;
D.double a = 0.0;b=1.1;
参考答案:B
参考解析:A选项中定义时赋值不能用连等。C选项中变量C和&b的类型不匹配。D选项中变量b前是分号,所以变量b没有类型,即未定义。B为变量定义时赋值的正确表达形式
5[单选题] 设有定义:int x=2;以下表达式中,值不为6的是 ( )
A.x*=x+1
B.x++=2*X
C.X*=(1 X)
D.2*X,X+=2
参考答案:D
参考解析:选项A和C很容易看出结果是6。选项B和D是逗号表达式,逗号表达式是从左到右顺序求子表达式的值,整体的逗号表达式的值取最后一个子表达式的值,很容易判断出答案D错误。
6[单选题] 若有以下定义(设int类型变量占2个字节)
int i=8,j=9;
则以下语句:
printf("i=%%d,j=%%%d\n",i,j);
输出结果是( )。
A.i=8,d=9
B.i=%d,j=%8
C.i=%d,j=%d
D.8,9
参考答案:B
参考解析:本题考查printf函数的格式。printf函数中格式说明符之前插入的任何字符都按原样输出。对于printf函数,有两个%说明;第一个%后面的内容要按原样输出。
7[单选题] 有下列程序:
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,P中的值为789,则正确的输入是( )。
A.m=123n=456p=789
B.m=123 n=456 p=789
C.m=123,n=456,p=789
D.123 456 789
参考答案:A
参考解析:scanf()函数中格式控制字符串是为了输入数据用的,无论其中有什么字符,在输入数据时,按照一一对应的位置原样输入这些字符。
8[单选题] 以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )。
A.均占4个字节
B.根据数据的大小来决定所占内存的字节数
C.由用户自己定义
D.由C语言编译系统决定
参考答案:D
参考解析:不同的编译系统或计算机系统对几类整型数所占用的字节数有不同的规定。long、int和short类型数据占用内存大小是由选择何种C编译系统决定的。
9[单选题] 设a和b均为int型变量,且a=6、b=11、c=3,则能使值为3的表达式是( )。
A.b%(c%4)
B.b%(c-a%5)
C.b%a-a%5
D.(b%a)-(a%4)
参考答案:D
参考解析:选项D)括号内的运算分别是b%a=11%6=5和a%c=6%4=2,最后得到5-2=3。
10[单选题] 若函数中有定义语句:int a;,则( )。
A.系统将自动给a赋初值0
B.这时a中的值是和随机数
C.系统将自动给a赋初值-1
D.这a中无任何值
参考答案:B
参考解析:本题考查变量赋值基本概念。在声明一个变量后,如果未显式的对其进行赋值,则它的值是一个随机值。
11[单选题] 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
A.-369
B.369
C.0.369
D.整数集合{1,2,3,4,5}
参考答案:B
参考解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A)和选项c),选项D)是整数集合,所以也排除。
12[单选题] 若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b值的类型是( )。
A.char
B.int
C.double
D.float
参考答案:C
参考解析:在c语言中不同类型的数据进行运算时,除了强制数据类型转换外,都要进行默认的数据类型转换,通常转换为精度较高的数据类型。对于本题来说,字符型数据'A'与整型a相加转换为整型数据,其和再与双精度型数据b相加,要转换为双精度型数据。
13[单选题] 关于C语言中数的表示,以下叙述正确的是( )。
A.只有整型数在允许范围内能精确无误的表示,实型数会有误差
B.只要在在允许范围内整型和实型都能精确表示
C.只有实型数在允许范围内能精确无误的表示,整型数会有误差
D.只有八进制表示的数在不会有误差
参考答案:A
参考解析:实型数据在内存中存储的二进制位数是有限的,例如float型数据在内存中有24位二进制尾数。而一个十进制实数转化为二进制实数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。
14[单选题] 若有定义和语句:int a,b; scanf("%d,%d",&a,&b); 以下选项中的输入数据,不能把值3 赋给变量a、5 赋 给变量b 的是
A.3,5,
B.3,5,4
C.3 ,5
D.3,5
参考答案:C
参考解析:题目中用scanf 函数以整数的形式输入a,b 的值。选项C)整型数字3 后面有一个空格,当输入空格时,scanf 函数输入就会终止。
15[单选题] 若函数中有定义语句:int a;,则( )。
A.系统将自动给a赋初值为0
B.系统将自动给a赋初值-1
C.这时a中的值无意义
D.这时a中无任何值
参考答案:C
参考解析:用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中放任何值,此时变量中的值是无确定的,称变量值”无意义”。因此,本题正确答案为c。
16[单选题] 程序段:int x=12;double y=3.141593;printf(”%d%8.6f”,x,y);的输出结果是( )。
A.123.141593
B.12 3.141593
C.12,3.141593
D.123.1415930
参考答案:A
参考解析:本题考查prinff函数的输出格式控制符,%m.nf表示指定输出的实型数据的宽度为m(包含小数点),并保留n位小数。当输出数据的小数位大于n时,截去右边多余的小数,并对截去的部分的第一位做四舍五入的处理;当输出数据小数位小于n时,在小数的最右边补0,输出数据的小数部分宽度为n。若给出的总宽度m小于ll加上整数位数和小数点,则自动突破m的限制;反之,数字右对齐,左边补空格。本题中3.141593数值长度为8,小数位数是6,因此左端没有空格,故正确答案为A。
17[单选题] 以下叙述不正确的是( )。
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
参考答案:D
参考解析:在c语言所有的运算符中,逗号运算符的优先级最低。C语言区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值赋予a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输人数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。
18[单选题] 有以下程序,其中%u表示按无符号整数输出:
main()
{
unsigned int x = 0xFFFF; /* x 的初值为十六进制数*/
printf("%u\n",x);
}
程序运行后的输出结果是( )。
A.-1
B.65535
C.32767
D.0xFFFF
参考答案:B
参考解析:本题考查的是整型无符号数的输出。%U的作用是按无符号的十进制形式输出整型数,整型无符号数的取值范围在0~65535之间,无符号数不能表示成小于0的负数,十六进制数0xFFFF转换为二进制位其值为l6个1,代表的整数就是65535。
19[单选题] 以下选项中不属于c语言的类型的是( )。
A.unsigned long int
B.long short
C.unsigned int
D.signed short int
参考答案:B
参考解析:c语言中整型变量分为4种,基本型int,短整型short int,长整型long int和无符号型(unsigned int、un-signed short、unsigned long)。因此B)选项不属于c语言的类型。
20[单选题] 在C语言中,合法的长整型常数是( )。
A.0.123456
B.4962717
C.9L
D.5.321e2
参考答案:C
参考解析:选项A)和D)是实型而非整型。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: