第1部分c语言概述变量运算符与表达式 2.docx

上传人:b****5 文档编号:6769469 上传时间:2023-01-10 格式:DOCX 页数:14 大小:31.08KB
下载 相关 举报
第1部分c语言概述变量运算符与表达式 2.docx_第1页
第1页 / 共14页
第1部分c语言概述变量运算符与表达式 2.docx_第2页
第2页 / 共14页
第1部分c语言概述变量运算符与表达式 2.docx_第3页
第3页 / 共14页
第1部分c语言概述变量运算符与表达式 2.docx_第4页
第4页 / 共14页
第1部分c语言概述变量运算符与表达式 2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

第1部分c语言概述变量运算符与表达式 2.docx

《第1部分c语言概述变量运算符与表达式 2.docx》由会员分享,可在线阅读,更多相关《第1部分c语言概述变量运算符与表达式 2.docx(14页珍藏版)》请在冰豆网上搜索。

第1部分c语言概述变量运算符与表达式 2.docx

第1部分c语言概述变量运算符与表达式2

第1章C语言概述、变量、运算符与表达式

本章要点

1.C语言概述

C语言程序的特点:

〔1〕C程序是由函数构成的,其中必须有且只有一个主函数main()。

〔2〕函数体是由左右花括号{}括起来的部分。

〔3〕一个C程序总是从main函数开始执行的,不管main函数在整个程序中的位置如何。

〔4〕C语言中的每个根本语句都以“;〞完毕。

〔5〕C语言书写格式自由,一行内可以写一个语句,也可以写多个语句。

〔6〕C语言本身没有输入输出语句。

输入和输出的操作是由库函数scanf和printf等函数来完成的。

〔7〕可用/*…*/对C程序中的任何部分作注释。

1.1.2标识符、常量和变量

常量——在程序运行过程中值不能被改变的量。

例如:

2.2、-0.3、02、1e3等。

变量——在程序的执行过程中值可以被改变的量。

标识符——用来标识变量名、符号常量名、函数名、数组名、类型名或文件名等的有效字符序列。

1.标识符的有关规定:

〔1〕由英文字母、数字、下划线组成,且第一个字符必须是字母或下划线,一般不超过8个字符。

〔2〕大小写字母的含义不同。

〔3〕不能使用C语言中的关键字做标识符。

附:

C语言中的关键字共有32个,而且都是小写。

其中,标识类型关键字有:

int,char,float,double,long,short,unsigned,signed,struct,union,enum,auto,extern,static,register,typedef,void,const和volatile。

标识控制流的关键字有:

for,goto,return,break,continue,if,else,while,do,switch,case和default。

其它关键字有:

sizeof。

〔4〕用户取名时,应当尽量遵循“简洁明了〞和“见名知意〞的原那么。

2.常量的有关规定:

常量的分类如下:

(1)整型常量:

0,-3,12

(2)

(3)字符常量:

‘a’,‘d’

(4)符号常量:

可以用一个标识符代表一个符号常量。

但在程序中必须用define说明,例如“#defineN30〞,这里N就是一个字符常量,编程时直接用N来表示字符串30。

3.变量的有关规定:

(1)使用变量前,一定先定义后使用,否那么不能直接做为变量名。

〔2〕每一个变量属于一种类型,在编译时为其分配一定的存储单元,并根据此类型检查该变量所进展的运算是否合法。

〔3〕变量名的定义:

[存储属性]<数据类型><变量名表>

1.2.3数据类型

整型类型

 根本类型浮点型类型

字符型类型

数据类型

构造类型

复杂类型指针类型

枚举类型

1.整型数据

✋整型常量:

〔1〕十进制整数:

数码直接开头的十进制数。

如1234,-234

〔2〕八进制整数:

以0开头的常量是八进制数。

如011=〔11〕8

〔3〕十六进制整数:

以0x开头的数是十六进制。

如0x123即〔123〕16

✋整型变量:

如表所示

表整型变量说明表

整型数据类型

关键字

所占位数

所占字节

数的表示范围

根本型

int

16

2

-215~215-1

短整型

shortint

16

2

-215~215-1

长整型

longint

32

4

-231~231-1

无符号整型

unsignedint

16

2

0~216-1

无符号短整型

unsignedshort

16

2

0~216-1

无符号长整型

unsignedlong

32

4

0~232-1

2.浮点型数据

✋浮点型常量

浮点型常量有两种表示形式:

〔1〕十进制数形式:

它是由数字和小数组成,如:

3.14159,-7.2,8.9。

注意:

〔1〕字母e或E之前〔即尾数部分〕必须是有数字的。

〔2〕e或E后面的指数部分必须是整数。

✋实型变量

实型变量分为单精度型〔float〕和双精度型〔double〕。

〔1〕单精度:

占4个字节,有效位为7位,数值范围为10-38~1038。

〔2〕双精度:

占8个字节,有效位为15~16位,数值范围约为10-308~10308。

3.字符型数据

✋字符型常量

字符型常量是由一对单引号括起来的单个字符构成。

一个字符型常量的值是该字符集中对应的编码值。

‘0’~‘9’的ASCⅡ编码值是48~57。

显然字符‘0’与数字0是不同的。

C语言中还允许用一种特殊形式的字符常量,它是以‘\’开头的字符序列。

下表为换码序列表。

表换码序列表

换码序列

意义

换码序列

意义

\n

回车换行

\r

回车

\b

左退一格

\t

横向跳格字符

\f

换页

\0

空值〔NULL〕

\’

单引号

\〞

双引号

\v

竖向跳格

\000

1至3位八进制所代表的字符

\\

反斜线

\xhh

1至2位十六进制所代表的字符

✋字符型变量

字符型变量存放一个字符的ASCII码,在内存中占一个字节。

字符型变量分为两类:

一般字符型〔char〕和无符号字符型〔unsignedchar〕。

✋字符串常量

字符串常量是由一对双引号括起来的字符序列。

C语言中规定以字符‘\0’作为字符串完毕标志,字符‘\0’由系统自动参加到每个字符串的完毕处。

4.变量的初始化

变量的初始化:

在定义变量的同时给变量赋予初值。

方法:

〔1〕先说明变量类型,然后再赋值。

〔2〕在对变量类型说明的同时,给变量赋初值。

运算符与表达式

C的运算符根据运算对象的个数分为单目运算符、双目运算符和三目运算符。

运算符的优先级是指不同的运算符计算的先后顺序。

运算符的结合性是指当一个运算对象两侧的运算符的优先级一样时,进展运算处理的结合方向。

其结合方向分为:

自左向右和自右向左。

下表为运算符的优先级与结合性。

表运算符的优先级与结合性

优先级

运算符

含义

运算对象个数

结合方向

1

〔〕

[]

—>

.

圆括号运算符

下标运算符

指向构造体成员运算符

构造体成员运算符

自左向右

2

~

++--

-

〔类型〕

*

&

sizeof

逻辑非运算符

按位取反运算符

自增,自减运算符

负号运算符

类型转换运算符

指针运算符

取地址运算符

长度(求字节数)运算符

1

自右向左

3

*/

%

乘法,除法运算符

求余(取模)运算符

2

自左向右

4

+-

加法,减法运算符

2

自左向右

5

<<>>

左移,右移运算符

2

自左向右

6

<<=>>=

关系运算符

2

自左向右

7

==!

=

等于,不等于运算符

2

自左向右

8

&

按位与运算符

2

自左向右

9

^

按位异或运算符

2

自左向右

10

|

按位或运算符

2

自左向右

11

&&

逻辑与运算符

2

自左向右

12

||

逻辑或运算符

2

自左向右

13

条件运算符

3

自右向左

14

=+=-=*=/=%=<<=>>=&=|=^=

赋值运算符

2

自右向左

15

逗号运算符

自左向右

1.算术运算符及其表达式

算术运算符包括加、减、乘、除及取模5种,分别由+,-,*,/,%来表示。

C语言规定:

〔1〕模运算符%,仅用于整型变量或整型常量。

〔2〕优先级:

乘、除、模优先级高于加、减的优先级。

〔3〕结合方向:

算术运算符的结合方向是从左至右。

算术表达式是由算术运算符、括号以及操作对象组成的符合C语言语法规那么的表达式。

2.赋值运算符及其表达式

赋值运算符“=〞的作用是将一个数据赋给一个变量。

赋值运算符“=〞之前加上其它运算符,可构成其复合运算符。

例如:

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。

赋值表达式:

<变量><赋值运算符><表达式>

3.增1、减1运算符及其表达式

i++(或i--)表示在使用该表达式值之后将i值加1〔或减1〕。

++i(或--i)表示在使用该表达式值之前将i值加1〔或减1〕。

说明:

〔1〕++和--仅适用于变量,不能用于常量或表达式。

〔2〕++和--运算符的结合方向是“自右向左〞。

4.关系运算符及其表达式

关系运算符均为两目运算符,共有六种:

>,<,>=,<=,==,!

=。

前4个运算符的优先级高于后2个。

结合方向是自左向右。

关系运算符要求两个操作数是同一种数据类型,其结果为一逻辑值,即关系成立时,其值为真〔true),用非0值表示;关系不成立时,其值为假〔false〕,用0表示。

关系表达式是由关系运算符将两个表达式连接起来的有意义的式子。

关系表达式的值是一个逻辑值,即“真〞或“假〞。

用1表示“真〞,用0表示“假〞。

5.逻辑运算符及其表达式

逻辑运算符有“&&〞〔逻辑与〕、“||〞〔逻辑或〕和“!

〞〔逻辑非〕三种。

其中“&&〞和“||〞为二目运算符,并为自左向右结合方向;“!

〞为单目运算符,仅对其右边的对象进展逻辑求反运算。

逻辑运算符的操作对象为零或非零整数值。

逻辑表达式是由逻辑运算符和其操作对象组成的表达式。

6.位运算符

位运算符包括:

&,|,~,<<,>>,^。

在位运算符中,~的优先级最高,其次是<<和>>,然后依次是&,^,|。

说明:

〔1〕这些运算符除~之外,均为二目运算符,即要求两侧各由一个运算量。

〔2〕运算量只能是整型或字符型的数据,不能是实型数据。

7.逗号运算符及其表达式

逗号运算符为“,〞。

逗号表达式是用逗号运算符把两个表达式连接起来。

其一般形式为:

〈表达式1〉,〈表达式2〉

说明:

〔1〕逗号表达式的执行过程是:

先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。

〔2〕逗号运算符是所有运算符中级别最低的。

〔3〕逗号表达式的一般形式可以扩展为

〈表达式1〉,〈表达式2〉,〈表达式3〉,……〈表达式N〉

表达式N的值是整个表达式的值。

8.条件运算符及其表达式

条件运算符是一个三目运算符,把三表达式组合成一个表达式。

其一般形式为:

〈表达式1〉?

〈表达式2〉:

〈表达式3〉

说明:

〔1〕其执行过程为:

先计算〈表达式1〉的值,假设该值为真〔非0值〕,那么计算〈表达式2〉的值,并且该值即为条件表达式值。

假设〈表达式1〉的值为假〔0〕,那么计算〈表达式3〉的值,并将该值作为条件表达式的值。

〔2〕条件运算符优先级别高于赋值运算符,低于算术运算符和关系运算符。

〔3〕条件运算符结合方向是“自右至左〞。

〔4〕〈表达式1〉与〈表达式2〉、〈表达式3〉的类型可以不同。

选择题

1.C语言程序的根本单位是〔〕。

A.程序行B.字符C.函数D语句

2.在C语言中,字符型数据在内存中以〔〕形式存放。

A.原码B.反码C.补码D.ASCII码

3.以下转义字符中〔〕是非法的。

A.'\t'B.'\033'C.'\0xf'D.'\''

4.C语言中,最简单的数据类型包括〔〕。

A.整型、实型、关系型B.整型、实型、逻辑型

C.整型、实型、字符型D.整型、字符型、逻辑型

5.以下各标识符组中,合法的用户标识符是()。

A.3A3B.KEYC._ABCD.char

printfaa_1Aa_b2b

whilefortextvoid

6.以下4个选项中,均是C语言关键字的是()。

A.signedB.switchC._autoD.char

printftypedefscanfIF

include   continuetextvoid

7.以下4个选项中,均是字符常量或数值常量的是()。

A.10.2B."A"C.'8'D.0xh11

2.3e2.3e-6.50232e3

'a'1a10xa2a06 

8.在C语言中,运算对象必须是整型的运算符是〔  〕。

A.%=与/B.=与&C.*与^D.%与|

9.设“inta=2,b=2;〞,那么++a+b的结果是〔   〕,a的结果是〔 〕,b的结果是〔 〕。

A.2B.3C.4D.5

10.以下运算符中优先级最高的是〔〕。

A.++B.+C./D.+=

11.设“inta=2;〞,那么表达式“(a++*1/3)〞值是〔 〕,a的值是〔   〕。

A.0B.1C.2D.3

12.设有以下语句,那么c的二进制值是〔〕。

chara=3,b=6,c;

c=a^b<<2;

A.00010110B.00011011C.00011110D.00011000

13.在C语言中,不同的两个数据混合运算时,要先转换成一样类型再进展运算,设有int、long、unsigned和char类型的变量和数据,那么表达式最后的运算结果是〔  〕类型的数据。

A.intB.charC.longD.unsigned

14.数学表达式x

A.x

15.设a=2,b=3,c=4,那么逻辑表达式“!

(a+c)*b-2&&a+c%2”的值是〔 〕。

A.0B.1C.-1D.2

16.设a=1,b=2,c=3,d=4,那么表达式“a>b?

b:

c>d?

d:

a〞的值为〔〕。

A.1B.2C.3D.4

17.“inta,b;〞,表达式〔a=2,b=3,a>b?

a++:

b++,a+b〕的值是〔  〕。

A.5B.6C.7D.8

18.请从以下表达式中选出当a为奇数时值为1的表达式〔〕。

A.a%2==0B.a%2C.a%2-1!

=0D.a/2*2-a==0

19.设a=5,b=2,那么表达式“!

a+b〞的值是〔〕。

A.-1B.0C.1D.2

20.设inti=3,那么表达式“(i++)+(++i)+(i++)〞的值是〔〕。

A.6B.9C.11D.12

21.设inti=3,那么表达式“(++i)+(++i)+(++i)〞的值是〔〕,i的值是〔〕。

A.3B.6C.15D.18

22.以下不正确的表达是〔〕。

A.一个好的程序应该有详尽的注释。

B.假设x和y类型一样,在执行了赋值语句“x=y;〞后y中的值将放入x中,y中的值不变。

C.在程序中,ABC与abc是两个不同的变量。

D.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。

23.以下不正确的表达是〔〕。

A.在C程序中,赋值运算符的优先级最低。

B.在C程序中,“a――;〞是赋值语句。

C.在C程序中,#include和#define均不是C语句。

D.在程序中所用的变量必须先定义后使用。

24.以下语句中(〕是C语言的正确的赋值语句。

A.a=b=2B.a=4,b=5C.a++;D.y=int(x);

25.不能正确表示a*b/c*d的C语言表达式是〔〕。

A.a*b/c*dB.a*b/(c*d)C.a/(c*d)*bD.a*b/c/d

填空题

1.一个C语言程序必须有且只有一个,一个C程序必须从开始执行。

2.C语言中分号是语句的标志,而不是语句的分隔符。

3.C语言中标识符只能由字母、数字和三种字符组成,且必须以或英文字母开头。

4.‘a’在内存中占个字节,“a〞在内存中占个字节。

5.“float a=3.5,b=5.5;int c=12;〞,那么算术表达式“a+c/5*(int)(a+b)%5〞的值是。

6.定义“inta=2,b=4,c=6;〞,那么执行完语句“a*=12+c++-++b;〞后,表达式的值是,a的值是,b的值是,c的值是。

7.定义“intx=5,y=9;〞,那么执行语句“x=3+x,x+y,y-=x,y+x;〞后,变量x的值是,变量y的值是,表达式的值是。

8.a=5,那么表达式“a+=a-=a*a〞的值是。

9.a=5,那么表达式“a-=a+=a*a〞的值是。

10. i=3,执行语句“j=i++;〞后,j值是,i的值是。

11. a=3,b=4,c=5,写出以下逻辑表达式的值:

(1)a+b>c&&b==c结果为:

(2)!

(a+b)&&0||!

c结果为:

(3)(m=a)&&(y=b)||!

c结果为:

(4)(a+b)-!

(c<8)&&b+c%2结果为:

选择题参考答案

1.C

2.D

3.C

解释:

x与f不属于八进制字符。

4.C

5.C

6.B

解释:

printf,,include,_auto,text,IF均不是C语言中的关键字。

7.C

解释:

指数形式表示法要求e的前后必须有数字,而且e后的数字必须为整型。

所以A和B不正确。

还有,B中“A〞是字符串常量。

在D中,h不属于十六进制的字符。

8.D

解释:

要求运算对象必须为整型的有%和%=。

位运算中,要求运算量必须是整型或字符型。

所以,只有D正确。

9.DBA

解释:

在此表达式中,++的运算符高于+,所以先计算〔++a〕〔值为3,即a的值为3〕,然后加b〔值为5〕,因此,求得表达式的值为5,a的值为3,而b的值不变,仍为2。

10.A

解释:

题中运算符的优先级由高到低依次是:

++,/,+,+=。

11.AD

解释:

因为a++是先使用后加1,所以表达式的值为:

a*1/3=2*1/3=0,而后a的值加1为3。

12.B

解释:

题中a的二进制值为00000011,b的二进制值为00000110。

表达式中<<优先级高于^,所以,先将b左移2位〔得到的值为00011000〕,再将所得的值与a按位异或,结果为00011011。

13.CC

14.D

15.B

解释:

此题要求求逻辑表达式的值,所以只有A或B可能正确。

根据运算符优先级的不同,应先计算&&前的部分!

(a+c)=0,0*b-2=-2,然后计算&&后的部分a+〔c%2〕=2,最后求-2&&2=1。

所以B是正确的。

16.A

解释:

此题可以这样表示:

a>b?

b:

〔c>d?

d:

a〕。

即当a>b不成立时,执行冒号后的另一个条件表达式〔c>d?

d:

a〕。

17.B

解释:

此题可理解为a=2,b=3,然后计算表达式a>b?

a++:

〔b++,a+b〕的值。

由于a>b不成立,执行冒号后的逗号表达式〔b++,a+b〕,而逗号表达式的值为最后一个表达式的值。

即先求得b=4,再求a+b=2+4=6。

18.B

解释:

A,C,D表示的是a为偶数时的表达式。

19.D

解释:

此表达式等价于“〔!

a〕+b〞,等于0+2=2。

20.D

解释:

使用TurboC或MSC系统时,在整个表达式求解之前,先对表达式进展扫描,当遇到++i时,对i进展自加,i得4,然后进展4+4+4=12的运算,最后再执行其它的表达式i++。

所以表达式的结果为12,i的结果为6。

21.DB

解释:

由上可知题,先执行3次++i,i得6,然后6+6+6=18。

所以表达式的值为18,i的值为6。

22.D

23.A

解释:

在C程序中,逗号运算符的优先级最低。

24.C

解释:

语句应该以“;〞完毕,所以A和B不正确;而D的正确写法是“y=(int)x;〞。

因此只有C正确。

25.A

填空题参考答案

1.主函数〔或main函数〕、主函数〔或main函数〕

2.完毕

3.下划线下划线

4.一两

解释:

‘a’表示单个字符,在内存中占一个字节,而“a〞表示一个字符串,C规定‘\0’为字符串完毕标志,故又占一个字节的内存空间。

5. 11.5

6.262657

7.819

8.-40

9.0

10.34

11.

(1).0

(2).0

(3).1

(4).1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1