1.若用1个字节存储1个整数,那么用二进制补码能表示的有符号整数和无符号整数的范围分别是(B)
A.-128~127,0~256 B.-128~127,0~255 C.-27~27,0~28 D.-28~28-1,0~28-1
有符号:0正负1。对于正数,最大数为:01111111 = +127,并且由于正数补码是自身,所以存储在计算机中也是01111111;对于负数,能表示的最小二进制是 10000000。但是这个是存储在计算机中的补码,求原码为:10000000,换算成十进制,就是128,符号位前移,即为-128。
2.该代码段输出的结果是(D)。
short a=-1;printf("%hd,%ho,%hx\n",a,a,a);
A.-1,37777777777,ffff B.-1,177777,ff C.111111111,377,F D.-1,177777,ffff
内存中的数据都存储为二进制形式,可以将其转换为十进制形式输出,用%d格式表示;用%o的格式按照八进制输出无符号的整数,还可以用%x或者%X输出十六进制形式的无符号整数。
-1的二进制为16个1即1111 1111 111 11111,三个二进制位对应一个八进制位(因为三位二进制最小是000b,最大是111b,其范围恰好在0-7,构成了八进制一位)故第二个输出177777,同理四个二进制位对应一个十六进制位,故第三个输出ffff
3.c为字符型变量,则语句c='A'+'5'-'1';执行之后c的值为(B)
A.69 B.E C.D D.不确定
4.在c语言中int型数据的负数在内存中存储形式是(A)
A.补码 B.反码 C.原码 D.ASCII码
5.以下程序段的输出结果是(C)。
int a=1234;
printf("%2d\n",a);
A.12 B.34 C.1234 D报错
输出最小宽度:%nd
用于显示该小数的最小位数,若数据实际位数多于定义的宽度n,则按实际位数输出;若实际位数少于定义的宽度n,则补以空格和0。
6.以下程序运行结果是(A)
#define PRICE 30;
#include<stdio.h>
int main(){
int num=10,total;
total=PRICE*num;
printf("total PRICE=%d\n",total);
return 0;
}
A. 编译错误 B. total PRICE=300 C. total 30=300 D. 连接错误
定义常变量后不能加分号
7.在c语言控制台程序运行窗口中输入,输出的数据可以认为都是什么类型()
char
8.scanf函数中什么数据类型不会跳过回车换行字符()
char
9.scanf函数输入时,若出现某个数据输入出现错误,后面的数据会,(A)。
A. 全部放弃 B. 正常输入 C. 不一定
10.常数5是什么数据类型。(B)
A.int B.short int C.long int D.unsigned
11.如下代码段计算得到的三角形的面积为(C)
float l=3, h=5 ; //三角形的底,高
double area = 1/2 * l * h ;
A. 7.5 B. 7 C. 0.0 D. 以上答案都不对