103.一个字节一般由_【_1_】_个二进位组成,每一个二进位的值是_【_2_】_。 答案:【1】8;【2】0或1
104.原码只将最高位作符号位(以_【_1_】_代表正,_【_2_】_代表负),其余个位代表数值本身的绝对值(以二进制表示)。 答案:【1】0;【2】1
105._【_1_】_的补码同其原码相同,_【_2_】_的补码为:最高位是1,其余各位为原码的相应位取反,然后对整个数加1。 答案:【1】正数;【2】负数
106._【_1_】_的补码是唯一的,其值为_【_2_】_。 答案:【1】0;【2】0
107.用补码进行运算,减法可以用_【_1_】_法来实现。 答案:【1】加
108.计算机是以_【_1_】_码形式存放数的。 答案:【1】补
109.按位与运算的特殊用途:_【_1_】_、取一个数中某些指定位、保留一个数中的某一位。 答案:【1】清零
110.按位或运算常用来对一个数据的某些位定值为_【_1_】_。 答案:【1】1
111.按位异或运算的特殊用途:使特定位_【_1_】_、交换两个值,不用_【_2_】_。 答案:【1】翻转;【2】临时变量
112.同一个数与本身相_【_1_】_运算,结果必为0。 答案:【1】异或
113.取反运算符的优先级别比算术运算符、关系运算符、逻辑运算符和其它位运算符都_【_1_】_。 答案:【1】高
114.左移比乘法运算快得多,乘2运算可用左移_【_1_】_位来实现。 答案:【1】一
115.右移一位相当于除以_【_1_】_。 答案:【1】2
116. 以下程序的运行结果是 ___ 。
#include
int i=8,j=9,m,n; m=++i; n=j++;
printf(\}
答案:9,10,9,9
117.以下程序的运行结果是 。
#include
int a,b,c; a=b=c=1;
if (a++||++b) c++;
printf(\}
答案:2,1,2
118. 以下程序的输出结果是 ___ 。
#include
int k, i=0, j=2; k = i++&&j++;
printf (\}
答案:1,2,0
119.下列程序的输出结果是 ___ 。
#include
int a = 3, b = 4 , c = 5;
printf( \} 答案:2
120.下列程序的输出结果是 ___ 。
#include
int a = 3 , b = 14 , c = 5 ;
c = c + a *a + b % 5 * 10 ; printf(\} 答案:66
121.有以下程序, 若从键盘输入:247<回车>,则程序的输出结果是 _ 。
#include
int c;
while ((c=getchar())!='\\n') {
switch (c-'2') {
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break; case 3: putchar(c+3);
default:putchar(c+2);break; } } }
答案:6689
三、问答题
1. 字符型常量和字符串常量有什么区别?
解:字符型常量与字符串常量的书写方式不同,用单引号括起来的字符是字符常量,用双引号括起来的字符是字符串常量。字符串常量与字符型常量的存储方式不同,C编译程序在存储字符串常量时,自动采用\\0作为字符串常量的结束标志。 2. 已知int i=5,j=5;试问表达式或函数输出的值:
(1)i++ - ++j (2)++i - j++
(3)printf (“%d\\n”,++i+(++j)); (4)printf (“%d\\n”,i++ +j);
答案: (1)-1 (2)1
(3)12 (4)10
3. 程序改错
#include
{ float f=7.12; char c=“c”;
printf(“%d\\n”,int(f%3)); printf(\}
解:正确程序如下。 #include
void main( ) /*修改 */ {
float f=7.12;
char c='c'; /*修改 */ printf(\ /*修改 */ printf(\}
4. 请指出以下程序段中的错误。
#include
short j,i,k; char a,b,c; float x, y, z; i=30000; j=30000; a= '9'; b= '5'; k=a*i+b*j; z=x*x+y*y; } 答:
错误的地方如下:
(1)变量k的值溢出,不能得到正确结果。 (2)变量x和y未赋初值。