招生电话:0759-2296349

课程咨询微信号:619809370

地址:湛江市霞山区人民大道南81号新宇大厦501室

新闻中心

第二章数据的存储与运算--湛江专升本培训计算机

2024-11-15

第二章 数据的存储与运算

 

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.假设在程序中,abc均被定义成整型,并且已赋非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);

 

  1. 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 语言中(16PC 为例),一个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  

字符型变量用来存放字符常量,只能存放一个字符,选项BC错误;\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   

长整型常量是在整型常量后面加字母1L 来显示说明的。

 

8.【精析】 A  

字符常量是括在一对单引号内的字符,字母、数字等可以直接用单引号括住,编码与特 殊字符等前要加上\A 选项中,\后跟的是八进制数,每一位只能使用数字0~7,出现了8,A 选项错误; B 选项表示字符";C 选项表示字符\;D选项表示ASCII码为十六进制数cc 的字符。

 

9.【精析】 D

字母eE 代表以10为底的指数,eE 之前必须有数字,且eE 之后必须为整数, A 选项、C 选项错误;用八进制表示常量时,每位数字只能使用0~7,B 选项错误;L 表示长整型数,D 选项正确。

 

10.【精析】 A    

C语言运算符优先级:!(逻辑非)>算术运算符>关系运算符>&&>1I>   赋值运算 符,=是赋值运算符、==是关系运算符、十是算术运算符、++是自增运算符,故选A

 

11.【精析】A  

由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。赋值表 达式的左值也可以出现在赋值运算符右侧,变量可以作为左值,而算术表达式x+y  和常量则不能作为左 值。选项BCD错误。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 是关键字而AC选项 不是,其中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  

四个选项中运算符优先级从高到低是:&18.&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)    是先对bc进行 赋值,再将bc进行相加,最后将和的值赋给a

 

7 .【答案】

 

8.【精析】×  

由于实型变量在内存中的存储单元是由有限个字节组成的,能提供的数字也是有限 的,在有效位以外的数字将被舍去,因此可能会产生误差。

 

9.【精析】

%是求余运算符,要求参加运算的两个运算对象(即操作数)必须为整数,结果也是整 数,不能对两个实型数据进行求余运算。

 

10.【精析】 ×  

不同类型数据间可以进行混合运算,只要遵循一定的规律,如整型与floatdouble 型数据进行运算,先把整型和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.a7,执行下列语句后,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);语句为变量ala2赋数值1030,为变量clc2赋字符e f, 以下正确的输入是(注:“□”表示空格)

A.10e30f < 回 车 >       

B.10e30f< 回 车 >

C.10e  < 回 车 >           

30f < 回 车 >

D.10e < 回 车 >

  30f < 回 车 >

 

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. xfloat型变量,ydouble型变量,aint型变量;blong 型变量,cchar型变量,则表达式x+y*a/x+b/y+c的值是    类型。

3.kIk2定义成基本整型变量,并赋初值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.已知ij均为整型变量,其中j=20,写出依次执行下列语句后的ij值。

三、简答题

 

1.将二进制数101101.0111分别转换为十进制数、八进制数和十六进制数。

 

2.什么是常量?什么是变量?

 

3.简述变量的命名规则。

 

4.字符常量和字符串常量的区别是什么?

 

5.i++ + +i的区别是什么?

 

6. C 语言的基本数据类型有几种?分别占几个字节?

 

答案解析

 

一、单项选择

 

1.【精析】C

在单引号或双引号内的反斜线\表示转义字符,A选项在无引号时使用反斜线是错误的;字符常量必须用单引号括起来,B选项错误;C选项表示ASCII码为八进制数147的字符gC选项正确;单引号只允许括起一个字符,D选项在单引号内出现了4个字符,D选项错误。

 

2.【精析】C

\x后只能跟1~2位十六进制数,用来表示ASCⅡ码值为该十六进制数的字符,\x111的值为273,超出了ASCII码字符的允许范围。其他都是由三位以内(包括三位)的八进制数构成的转义字符。

 

3.【精析】 B

C语言中的浮点数有两种表示形式:十进制小数形式;指数形式,注意e之前必须有数字且e后面必须为整数。A选项中e前面没有数字,不合法,其余两个数都合法;B选项中123是整数,不是浮点数,2e4.2e后面4.2不是整数,是非法的,.e5e前面只有小数点,也是非法的;C选项中的3个数均是合法的浮点数;D选项中的2.234 1e3是合法的浮点数,-e3因为e前面没有数字,是非法的。

 

4.【精析】 D

自增运算符(++)和自减运算符(--)只能用于变量,不能用于常量或表达式。选项D为符号常量,故选项D错误。

 

5.【精析】B

+aa++的区别是前者先加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之间,比较时要将AZ''括起来,且两个关系表达式之间连接要用&&运算符,即(c>=1A:8.8.c<=1Z',故选D

 

7.【精析】C

A选项中a除以2,商为3B选项中,a的值先减1,得到6,再用96,得到3C选项中a2求余,余数是1,即b的值为1,不为3D选项中若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转换为二进制是103转换为二进制是11,进行与运算后得到二进制数10,即十进制数2

 

13.【精析】 C

在表达式中,根据运算符的优先级和结合性,先计算a/b,15/7=2,再将2+0.8赋给c,由于c为整型变量,要舍去小数位,故选C

 

14.【精析】 D

%d表示要输入整数,%c表示要输入字符,由输入语句可以得到各格式符之间无任何分隔符,故要求输入的数据之间也不能分开。选项ABC10e之间都加了空格,这会使系统在输入时误将空格赋值给c1,从而导致后面的输入错位,故选D

 

15.【精析】 D

由于(xy)是逗号表达式,逗号表达式的结合性为从左到右,因此逗号表达式将从左到右进行运算。整个逗号表达式的值为逗号表达式中最后一个表达式的值,所 以“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.【参考答案】字符常量,用单撒号括起来的一个字符,如Aa 等。字符事常量,用一对双搬号括起来的字符序列,加"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个字节。

上一篇

这里有最新的公司动态,这里有最新的网站设计、移动端设计、网页相关内容与你分享

下一篇