第二章数据的存储与运算--湛江专升本培训计算机
第二章 数据的存储与运算
【1】
一、单项选择
1 . 若a 是整型变量,则逻辑表达式(a==6)||(a!=6)的值为( )
A.0 B.6 C.1 D. 不确定
2.表达式((double)4/2)+2.5的值为( )
A.4 B.5.0 C.5 D.4.5
3. 已知整型变量a=2,b=3,则“!a||b” 的值为( )
A.0 B.1 C.2 D.3
4.当 a 的值为奇数时,表达式的值为“真”;当 a的值为偶数时,表达式的值为“假”。不能满足需求的是( )
A.a%2==1 B.!(a%2)
C.!(a%2==0) D.(a%2)&&(a%2>0)
5.十进制数630的二进制表示为( )
A.1001110000 B.1001110110
C.1010110100 D.1010100111
二、填空题
1 .在C 语言中,char 类型所占的字节数是
2.有语句“int a=3,b=2,c=1;”,表达式a>b>c 的值等于
3.若 a,b,c 为 int型变量,则表达式2||a/b&.&!c 的值为
4.有语句“double a=28;int b;”当执行表达式b=(int)a%9%4之后 ,b的值为
三、简答题
十进制数2022转化为二进制数是多少?转化为十六进制数是多少?
答案解析
一、单项选择
1.【精析】C
表达式中的逻辑运算是“或”运算,“或”运算两边表达式只要有一个为真,该逻辑表达式的值就为真。由题意知a为整型变量,则a 的值要么是6,要么不是6,表达式(a==6)||(a!=6) 中“或”运 算符两边必定有一个为真,逻辑表达式的结果用1表示真,用0表示假。故选C。
2.【精析】 D
(double)是强制类型转换运算符,表达式((double)4/2)+2.5的计算步骤为:
①(double)4=4.0;②4.0/2=2.0;③2.0+2.5=4.5。
3.【精析】 B
在一个逻辑表达式中如果包含多个逻辑运算符,按以下的优先次序:!(非) →&& (与)→ ||(或),即“!”为三者中最高的。因此先计算!a=0, 则 !a ||b=1。
4.【精析】 B
A选项,若a 为奇数则a%2 的余数为1,表达式值为“真”;若a 为偶数则余数为0,表达式值为“假”,故A 选项满足需求。B 选项,先求a%2 的余数,然后进行“非”运算,若a 为奇数则余数为1,表达式值为“假”;若a 为偶数则余数为0,表达式值为“真”,故B 选项不满足需求。C 选项,先判断a%2 的余数是否为0,然后进行“非”运算,若a 为奇数则余数不等于0,表达式值为“真”;若a 为偶数则余数等于0,表达式值为“假”,故C 选项满足需求。D 选项,若a 为奇数,a%2 的值为1,a%2>0, “与”运算符两边都为“真”, 则表达式值为“真”;若a 为偶数,a%2 的值为0,a%2<0, 则表达式值为“假”,故D 选项满足需求。
5 .【精析】B
十进制整数转换为r 进制整数采用除r 取余法,即逐次除以r,直至商为0,得出的余数 倒排,即为r 进制各位的数码。十进制数630转化为二进制数为:1001110110。
二、填空题
1.1
2.0
3.1
4.1
三、简答题
【参考答案】
十进制整数转换为r进制整数采用除 r取余法,即逐次除以r,直至商为0,得出的余数 倒排,即为r 进制各位的数码。
十进制数2022转化为二进制数为:111100110
十进制数2022转化为十六进制数为:0x7E6
【2】
一、单项选择
1.以下语句的输出结果是( )
int u=010,v=0x10,w=10;
printf("%d,%d,%d\n",u,v,w);
A.8.16.10 B.10,10,10
C.8,8.10 D.8,10,10
2.下列4组数据类型中,C 语言允许使用的一组是( )
A. 整型、实型、逻辑型、双精度型
B. 整型、枚举型、宇符型、空类型
C. 整型、双精度型、布尔型、逻辑型
D. 整型、实型、逻辑型、字符型
3. 若有说明语句:char c='\t';,则变量c( )
A.包含1个字符 B.包含2个字符
C. 包含3个字符 D. 说明不合法,c的值不确定
4.设有如下定义:
int a;
float f; double i;
则表达式10+a+i*f 的值的数据类型为
A.int B.float C.double D. 不确定
5.假设在程序中,a、b、c均被定义成整型,并且已赋非0值,则下列能正确计算如图所示代数式的表达式是( )
A.1/a*b*C B.1/(a*b*c)
C.1/a/b/(float)c D.1.0/a/b/c
6.C 语言的字符串以( )结尾。
A.'1 B.0 C.\n D. 字符串长度
7.以下选项中,合法的长整型数是( )
A.0L B.12345 C.324568 D.216D
8.以下字符常量中,不合法的是( )
A. '\018' B. '\" ' C. '\\' D.'\xcc'
9.以下选项中,正确的数据常量是( )
A.e15 B.0118 C.1.5el.5 D.115L
10.下面运算符的优先级最低的是( )
A.= B.= =
C. + D.+ +
11.若变量已定义且已赋值,以下合法的C 语言赋值表达式是( )
A.x=y==1 B.x=5=y
C.x+y=5 D.x==y=1
12.以下能正确定义并赋初值的语句是( )
A.int x=y=78; B.char x=97;
C.int x=x+1; D.double x=2e10.1;
13.字符串"wonderful"在内存中占( )个字节
A.8 B.9 C.10 D.11
14.以下正确的C 语言关键字是( )
A.Float B.integer C.CHAR D.long
15.以下符合正确的C 语言语法的赋值表达式是( )
A.d=9+e+f=d+3 B.d=9+e,f=d+3
C.c!=a+b D.a+=(b=5)*(c=3)
16.以下运算符中优先级最低的是( )
A.&& B.& C.|| D.|
17.以下不符合C 语言语法的赋值语句是( )
A.a=1,b=2; B. 十 +j;
C.a=5; D.y=(a=3,6*5);
- C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A. 必须为字母
B. 必须为下划线
C. 必须为字母或下划线
D. 可以是字母、数字和下划线中任 一字符
19.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为( )
A. 算术、赋值、关系
B. 关系、赋值、算术
C. 算术、关系、赋值
D. 关系、算术、赋值
20.下列运算对象必须是整型的运算符是
A.% B./
C.= D.*=
二、判断题
1.C 语言所提供的基本数据类型分为实型和字符型。( )
2.在C 程序中,逗号运算符的优先级最低。( )
3.当从键盘输入数据时,对整型变量只能输入整型数据,对实型变量只能输入实型数据。( )
4.C 语言中的标识符只能由字母、数字和下划线三种字符组成。( )
5.在C 语言中,char 型的数据在内存中的存储形式是原码形式。( )
6.a=(b=4)+(c=6) 是一个合法的赋值表达式。( )
7.在C 程序中对用到的所有数据都必须指定其数据类型。 ( )
8.一个实型变量的值肯定是精确的。( )
9.%运算符要求运算数必须是整数。( )
10.C 语言不允许混合类型数据间进行运算。( )
三、填空题
1.若x=1,y=2, 则 x%=y+5的值是
2. 已知char str=\055',则 str中包含 个字符。
3 在C 语言中(以16位PC 为例),一个char 型数据在内存中所占的字节数为 ;一个float 型 收据在内存中所占的字节数为 ;一个double型数据在内存中所占的字节数为 。
4.字符串“hello!”在内存中占 个字节。
5.C 语言中,“&”既可以作为单目运算符表示 ,又可以作为双目运算符表示 *”作为单目运算符表示 ,作为双目运算符表示 。
6.若k 为 int 型且值为12,则表达式k%=k的值是 。
7.若有定义“int x=0;”,则执行“x=3+5,x*5;”语句后,变量x 的值为 。
8.在C 语言中,实型变量分为三种类型,它们是 、 和长双精度浮点型(long double型)。
9.C 语言中的标识符只能由三种字符组成,它们是 、 和 。
10.表达式8/4*(int)2.5/(int)(1.25*3.7+2.3) 值的数据类型为 。
11.字符常量使用一对 界定单个字符,而字符串常量使用一对 界定若干个字符 的序列。
12.定义:double x=3.4,y=3.2;,则表达式(int)x*0.5的值是 ,表达式y+=x++的值是 。
13.表达式5%(-3)的值是 ,表达式-5%(-3)的值是 。
答案解析
一、单项选择
1.【精析】 A
在C 语言程序中凡是以0开头的数都认为是八进制数,以0x 开头的数都认为是十六进 制数。%d 表示以十进制形式输出,010对应的十进制数为8,0x10对应的十进制数为16,10就表示十进 制数10。
2.【精析】 B
C语言中允许使用的数据类型有5种,即整型、浮点型、枚举类型、空类型和派生类型,不 包括逻辑型。双精度型属于实型,字符型和布尔型属于整型。
3.【精析】 A
字符型变量用来存放字符常量,只能存放一个字符,选项B、C错误;\t'是水平制表符, 选项D 错误。
4.【精析】 C
在表达式中,当不同类型的数据进行运算时,系统会自动将操作数由低类型向高类型进 行转换。在该表达式中,double是最高的数据类型,选项C 正确。
5.【精析】 D
1/a*b*c等价于(1/a)*b*c,A 选项错误;两个整数相除结果仍为整数,会导致结果 去掉小数点,B选项错误;C 选项同B 选项一样,结果会有偏差;1.0/a/b/c 等价于1.0/(a*b*c), 左操作数 为浮点型,先将右操作数转换为 double型再进行运算,运算结果准确。D 选项正确。
6.【精析】 B
\01是一个ASCII 码为0的字符,是系统在处理字符串时自动在字符串常量结尾加上 的,作为字符串结束的标志。
7.【精析】 A
长整型常量是在整型常量后面加字母1或L 来显示说明的。
8.【精析】 A
字符常量是括在一对单引号内的字符,字母、数字等可以直接用单引号括住,编码与特 殊字符等前要加上“\”。A 选项中,\后跟的是八进制数,每一位只能使用数字0~7,出现了8,A 选项错误; B 选项表示字符";C 选项表示字符\;D选项表示ASCII码为十六进制数cc 的字符。
9.【精析】 D
字母e或 E 代表以10为底的指数,e或 E 之前必须有数字,且e或 E 之后必须为整数, A 选项、C 选项错误;用八进制表示常量时,每位数字只能使用0~7,B 选项错误;L 表示长整型数,D 选项正确。
10.【精析】 A
C语言运算符优先级:!(逻辑非)>算术运算符>关系运算符>&&>1I> 赋值运算 符,=是赋值运算符、==是关系运算符、十是算术运算符、++是自增运算符,故选A。
11.【精析】A
由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。赋值表 达式的左值也可以出现在赋值运算符右侧,变量可以作为左值,而算术表达式x+y 和常量则不能作为左 值。选项B、C、D错误。A 选项中若是y==1 成立则给x 赋值1,反之则赋值0。
12.【精析】 B
定义整型变量x 和y并赋同一个初值78的正确形式为“int x=78,y=78;”,选项A 错 误;字符'a '的ASCII码值为97,选项B 的作用是定义一个字符变量x, 并赋初值为字符'a'; 选项C 无法实 现给整型变量x 赋初值;以指数形式表示实型常量时,e 之前必须有数字且e 之后必须为整数,故选项D 错误。
13.【精析】C
C语言编译系统在处理字符串时,在每一个字符串常量的结尾自动加一个字符\0',作 为字符串结束的标志,所以字符串"wonderful"实际在内存中占用10个字节的存储空间。
14.【精析】 D
C语言有32个关键字,它的命名是区分大小写的,float 和 char 是关键字而A、C选项 不是,其中B 选项integer 在C 语言关键字中应写成int, 故选D。
15.【精析】 D
赋值表达式是将一个表达式的值赋给一个变量,等号左边是变量,不能是常量与算术表达式。选项A 是先将d+3 赋值给9+e+f, 再赋值给d, 其中9+e+f 不能当左值;B选项中的","相当于 分成两个赋值表达式,不符合题意要求;C 选项中的!=不是赋值运算符;D 选项中,表达式等同于 a=a+(b=5)*(c=3),D选项正确。
16.【精析】C
四个选项中运算符优先级从高到低是:&、1、8.&、11。
17.【精析】 A
赋值语句是由一个赋值表达式加一个分号组成的,故选A。
18.【答案】C
19.【精析】C
C语言运算符优先级:!(逻辑非)>算术运算符>关系运算符>&&>II> 赋值运算符,故选C。
20.【精析】 A
%运算符要求参加运算的两个运算对象(即操作数)必须为整数,结果也是整数,不能 对两个实型数据进行求余运算。
二、判断题
1.【精析】 ×
C语言的基本数据类型是整型和浮点型。
2.【精析】√
C语言运算符优先级:!(逻辑非)>算术运算符>关系运算符>&.&>1I> 赋值运算 符>逗号运算符。
3.【精析】×
通过键盘给变量赋值时,对实型变量可以只输入一个整数,系统自动将其转换为浮点 数;对整型变量可以输入一个小数,系统将去掉小数点后的数字,只将整数部分赋给变量。
4.【精析】√
标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
5.【精析】×
字符常量存储在计算机存储单元中时,并不是存储字符本身,而是以其代码(一般采用 ASCII 代码)存储的。
6.【精析】√
赋值表达式是将一个表达式的值赋给一个变量。a=(b=4)+(c=6) 是先对b、c进行 赋值,再将b、c进行相加,最后将和的值赋给a。
7 .【答案】√
8.【精析】×
由于实型变量在内存中的存储单元是由有限个字节组成的,能提供的数字也是有限 的,在有效位以外的数字将被舍去,因此可能会产生误差。
9.【精析】√
%是求余运算符,要求参加运算的两个运算对象(即操作数)必须为整数,结果也是整 数,不能对两个实型数据进行求余运算。
10.【精析】 ×
不同类型数据间可以进行混合运算,只要遵循一定的规律,如整型与float或double 型数据进行运算,先把整型和float 型数据转换为double 型,然后进行运算,结果是double 型。
三、填空题
1. 1
2. 1
3. 1 4 8
4. 7
5.取地址运算符按位与运算指针运算乘法运算
6. 0
7. 8
8.单精度浮点型(float 型)双精度浮点型(double 型 )
9 . 字母数字下划线
10.整型(int 型)
11.单引号双引号
12.1.56.6
13. 2 -2
【3】
1.已知字符'g'的ASCⅡ码是103,将它赋给字符变量c的正确语句是( )
A. c=\147; B. c=g;
C. c='\147'; D.c=10147';
2.以下转义字符中,错误的是( )
A.1000' B.'\014'
C.'\x111' D.∨2⋅
3.下列4个选项中,均是不合法的浮点数的选项是( )
A.160.0,0.12,e3 B.123,2e4.2,.e5
C.-1812.9,3e4,0.03 D.-e3,2.234,1e3
4.若有以下定义:( )
# define E2
int a=15; double b=7.5; char c='A';
则下列语句中错误的是
A. a++ B. b++ C. c++ D. E++
5.已知 int a=6,b=4,表达式++a+b%a+++b的结果是( )
A.14 B.15 C.16 D.17
6.判断字符变量c是否为大写字母的正确表达式是( )
A.'A'<=c<='Z' B. c>=A&&c<=Z
C. c>='A',c<='Z' D. c>='A'&&c<='Z'
7.设a为7,执行下列语句后,b的值不为3的是( )
A. b=a/2; B. b=9-(--a);
C. b=a%2; D. b=a>5?3;4;
8.已知各变量的类型说明如下:
int k,a,b;
unsinged long w=5;
double x=1.42
则以下不符合C 语言语法的表达式是( )
A.x%(—3) B.w+=-2
C.k=(a=2,b=3,a+b) D.a+=a-=(b=4)*(a=3)
9.已 知 :int a=2;,则表达式(a+'E'—'A')*3的值是( )
A.18 B.12 C.8 D.20
10.设 x,y,z 都是 int 型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是( )
A.x&&y B.x<=y
C.x|l++y&&y-z D.!(x<y&&!z||1)
11 .若x,i,j,k 都 是int 型变量,则计算表达式x=(i=4,j=16,k=32) 后 ,x的值为( )
A.4 B.16 C.32 D.52
12.若x=2,y=3, 则 x&y 的结果是( )
A.0 B.2 C.3 D.5
13.若有定义“int a=15,b=7,c;”,执行语句“c=a/b+0.8;” 后 ,c 的值为( )
A.2.8 B.2.0 C.2 D.2.9
14.设变量均已正确定义,若要通过“scanf("%d%c%d%c",&a1,&c1,&a2,&c2);”语句为变量al和a2赋数值10和30,为变量cl和c2赋字符e 和f, 以下正确的输入是(注:“□”表示空格)
A.10□e□30□f < 回 车 >
B.10□e30□f< 回 车 >
C.10□e < 回 车 >
30□f < 回 车 >
D.10e < 回 车 >
30□f < 回 车 >
15.设有以下程序: #include<stdio,h> void main()
{
int x=302,y=333; printf("%d\n",(x,y);
}
则下列叙述中正确的是( )
A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B. 运行时出现出错信息
C. 输出值为302
D. 输出值为333
16.设有以下程序:
#include<stdio,h> void main()
char x;
printf("请输入一个字符:"); scanf("%c",&x):
(x>='a'&&x<='z')?printf("%c\n",x-32):printf("%c\n",x); }
则下列叙述中正确的是( )
A. 输入一个英文大写字母,将其转换成小写字母后输出
B. 输入一个英文小写字母,将其转换成大写字母后输出,否则输出原字符
C. 输入一个英文字母,将其输出
D. 输入一个数字字符,将其转换成字母输出
17. 已知int a=0,b=4,c=6;,表达式(a&&b)==(bl|c)的值为( )
A.0 B.1 C.4 D.6
18 .若a 为 int 类型,且其值为2,则执行完表达式a+=a-=a*a后,a 的值是( )
A.-2 B.8 C.-4 D.6
二、填空题
1.决定表达式计算顺序的两个因素是 和 。
2. x为 float型变量,y为 double型变量,a为 int型变量;b为 long 型变量,c为 char型变量,则表达式x+y*a/x+b/y+c的值是 类型。
3.把kI和k2定义成基本整型变量,并赋初值7的定义语句为_,若有语句k1+=kI-=k1+1;,则 k1的值为 。
4.写出算式\frac {-b+ \sqrt {b^{2}-4ac}}{2a}的C语言表达式 。
5.设字符型变量 ch中存放字符“A”,则执行ch+++2之后, ch中的字符是 。
6.若a是整型变量,则逻辑表达式((a=5)|(a|=5)的值是 。
7.设a,b均为 double型常量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是 。
8.表达式3.5+1/2+56%10的计算结果是 。
9.有一个整数345,取它的个位数的表达式为 ,取百位数的表达式为 ,取十位数的表达式为 。
10.设有整型变量a,若赋值“a=10;a+=a-=a*a;”,则a 的值为 。
11.已知i、j均为整型变量,其中j=20,写出依次执行下列语句后的i、j值。
三、简答题
1.将二进制数101101.0111分别转换为十进制数、八进制数和十六进制数。
2.什么是常量?什么是变量?
3.简述变量的命名规则。
4.字符常量和字符串常量的区别是什么?
5.i++ 和 + +i的区别是什么?
6. C 语言的基本数据类型有几种?分别占几个字节?
答案解析
一、单项选择
1.【精析】C
在单引号或双引号内的反斜线\表示转义字符,A选项在无引号时使用反斜线是错误的;字符常量必须用单引号括起来,B选项错误;C选项表示ASCII码为八进制数147的字符g,C选项正确;单引号只允许括起一个字符,D选项在单引号内出现了4个字符,D选项错误。
2.【精析】C
\x后只能跟1~2位十六进制数,用来表示ASCⅡ码值为该十六进制数的字符,\x111的值为273,超出了ASCII码字符的允许范围。其他都是由三位以内(包括三位)的八进制数构成的转义字符。
3.【精析】 B
C语言中的浮点数有两种表示形式:①十进制小数形式;②指数形式,注意e之前必须有数字且e后面必须为整数。A选项中e前面没有数字,不合法,其余两个数都合法;B选项中123是整数,不是浮点数,2e4.2中e后面4.2不是整数,是非法的,.e5中e前面只有小数点,也是非法的;C选项中的3个数均是合法的浮点数;D选项中的2.234 和1e3是合法的浮点数,-e3因为e前面没有数字,是非法的。
4.【精析】 D
自增运算符(++)和自减运算符(--)只能用于变量,不能用于常量或表达式。选项D为符号常量,故选项D错误。
5.【精析】B
+a与a++的区别是前者先加1再参加运算,后者是参加运算后再加1。所以+++a+b%a+++b=(a+1)+(b%a)+b=(6+1)+4%6+4=7+4+4=15
6.【精析】 D
A选项不符合C语言语法;判断是否为大写字母的条件是其ASCII码在A~Z之间,比较时要将A和Z用''括起来,且两个关系表达式之间连接要用&&运算符,即(c>=1A:8.8.c<=1Z',故选D。
7.【精析】C
A选项中a除以2,商为3;B选项中,a的值先减1,得到6,再用9减6,得到3;C选项中a对2求余,余数是1,即b的值为1,不为3;D选项中若a的值大于5则把3赋给b,否则把4赋给b。
8.【精析】 A
取余操作时,左右操作数都必须为整数,故选 A。
9.【精析】 A
由 ASCII码表可知,'E'的码值为69,'A'的码值为65,所以表达式((a+1E'-'A')*3=(2+69-65)*3=18。
10.【精析】 D
&&是逻辑与,||是逻辑或,!是逻辑非。选项A,3&&4为真;选项B,3<=4为真;选项C是一个逻辑或和逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为 x的值为真;选项. D,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算值为0。
11.【精析】 C
逗号表达式的取值是最后一个句子的结果,最后一个式子k赋值后等于32,那么题中表达式就相当于i=4;j=16;k=32;x=k;,所以x最终赋值为32。
12.【精析】 B
&是按位与运算符,先将符号两边的数转换为二进制数,再按位进行与运算,最后将得到的二进制数转换为十进制数就是结果。2转换为二进制是10,3转换为二进制是11,进行与运算后得到二进制数10,即十进制数2。
13.【精析】 C
在表达式中,根据运算符的优先级和结合性,先计算a/b,即15/7=2,再将2+0.8赋给c,由于c为整型变量,要舍去小数位,故选C。
14.【精析】 D
%d表示要输入整数,%c表示要输入字符,由输入语句可以得到各格式符之间无任何分隔符,故要求输入的数据之间也不能分开。选项A、B、C在10和e之间都加了空格,这会使系统在输入时误将空格赋值给c1,从而导致后面的输入错位,故选D。
15.【精析】 D
由于(x,y)是逗号表达式,逗号表达式的结合性为从左到右,因此逗号表达式将从左到右进行运算。整个逗号表达式的值为逗号表达式中最后一个表达式的值,所 以“printf("%d\n'',(x,y));”的输出结果为333。
16.【精析】 B
表达式( 表示的意思是a'<=x<=1z',如果从键盘输入的字符满足该条件(表示输入的是英文小写字母),则条件表达式((x>a'8.8.x<=1z¹)的值为真,执行printf("clnn',x-32)语句(小写字母的 ASCⅡ值比大写的ASCⅡ值多32),将小写字母转换成大写字母后输出,否则执行 printf("%c\n".,x) 语句,输出原字符。选项B正确。
17.【精析】 A
.&&是逻辑与,要求两个数都非0才为真,故a8.8.b=0;||是逻辑或,要求两个数有一个非0就为真,故b|c=1;=是关系运算符,要求两个表达式的值相等则为真,不相等则为0,因个非0就为真,故此 为0。
18.【精析】 C
赋值运算符按照“自右而左”的运算顺序,a+=a-=a*a先运算a-=a*a,a⋅a=4,即a=a-4=-2;再运算a+=a,即a=a+a,得到a=-4.
二、填空题
1. 优先级 结合性
2. double
3. intk1=7,k2=7;一2
4.(-b+sqrt(b*b-4*a*c))/(2*a);
5. B
6. 1
7. 6.0
8. 9.5
9. 345%10 345/100 345/10%10
10. -180
三、简答题
1.【解析】
(1)将二进制数快速转换为十进制数
①转换整数部分101101(从右到左每一位的权重是2的幂次方,从20开始{常数的0次方等于1})
(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45
②转换小数部分0111(从左到右每一位的权重是2的负幂次方,从2-开始)
所以二进制数101101.0111转换为十进制数:
(101101.0111)2=45.4375
提醒:【整数从右到左划分,小数从左到右划分】
(2)将二进制数快速转换为八进制数的方法被称为“取三合一法”,这是一种简单而直接的转换技巧。以下是转换步骤的详细说明:
分组:将二进制数从小数点开始,向左(向右)每三位取成一位,不足三位的可以在小数点最左边(最右边)添0补足三位。
转换:将每个三位二进制数转换为对应的八进制数。
二进制数与八进制数的对应关系如下:
二进制 000 对应八进制 0
二进制 001 对应八进制 1
二进制 010 对应八进制 2
二进制 011 对应八进制 3
二进制 100 对应八进制 4
二进制 101 对应八进制 5
二进制 110 对应八进制 6
二进制 111 对应八进制 7
排列:将转换后的八进制数按顺序排列,小数点的位置不变。
通过上述步骤,你可以快速地将二进制数转换为八进制数。这种方法适用于整数和小数部分的转换,只需注意小数部分的转换时,从小数点向右分组。
所以二进制数101101.0111转换为八进制数:
(101101.0111)2=55.34
【整数从右到左划分,小数从左到右划分】
(2)将二进制数快速转换为十六进制数的方法如下:
分组:将二进制数从右到左每4位一组进行划分。如果二进制数的位数不是4的倍数,那么在左边用0补齐,直到它是4的倍数。例如,二进制数1101可以表示为00001101。
转换:将每组4位二进制数转换为对应的十六进制数字。可以使用以下对照表进行转换:
0000 = 0
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = A(代表10)
1011 = B(代表11)
1100 = C(代表12)
1101 = D(代表13)
1110 = E(代表14)
1111 = F(代表15)
组合:将转换后的十六进制数字组合起来,按照从右到左的顺序,将每组4位二进制数转换得到的十六进制数字组合起来,得到最终的十六进制数。
所以二进制数101101.0111转换为八进制数:
(101101.0111)2=2D.7
2.【参考答案】常量:指在程序运行过程中,其值不能被改变的量。
变量:指在程序运行过程中其值可以改变的量,可以在程序运行过程中给它们赋子新的值
3.【参考答案】变量名的命名应遵守以下基本的命名规则:
(1)变量名只能由字母,数字和下划线3种字符组成,且第1个字符必须为字母或下划线
(2)变量的命名区分大小写,
(3)不允许使用C关键字为变量命名。
(4)变量名的长度是有限的。
(5)变量名应简单,容易记忆,应尽量做到见名知意。
(6)在同一程序的同一函数中,不能给不同的变量取相同的变量名。
4.【参考答案】字符常量,用单撒号括起来的一个字符,如‘A’,‘a’ 等。字符事常量,用一对双搬号括起来的字符序列,加"boy","123"等。
5.【参考答案】i++, 先使用;的值,再执行i-i+1 操作++i;先执行i=i+1 操作,再使用i的值。
6.【参考答案】C 语言的基本数据类型主要有,char,int,float,double等。char为字着型,占1个字节 int 为整型,占4个字节;float 为单精度浮点型,占4个字节,double 为双精度浮点型,占8个字节。