当前位置:文档之家› 第二章 数据类型(3)

第二章 数据类型(3)

第二章 数据类型(3)
第二章 数据类型(3)

C语言初学者入门讲座第二讲数据类型(3)

基本运算符和表达式

运算符的种类、优先级和结合性

C语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。这也是C语言的主要特点之一。

C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。

运算符的种类C语言的运算符可分为以下几类:

1.算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+ +)、自减(--)共七种。

2.关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&

=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符

这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符

用于把若干表达式组合成一个表达式(,)。

8.指针运算符

用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符

有括号(),下标[],成员(→,.)等几种。

优先级和结合性

C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,

则按运算符的结合性所规定的结合方向处理。C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。 C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

算术运算符和算术表达式基本的算术运算符

1.加法运算符“+”加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+ 8等。具有右结合性。

2.减法运算符“-”减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。

3.乘法运算符“*”双目运算,具有左结合性。

4.除法运算符“/”双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

void main(){

printf("\n\n%d,%d\n",20/7,-20/7);

printf("%f,%f\n",20.0/7,-20.0/7);

}

双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

printf("\n\n%d,%d\n",20/7,-20/7);

printf("%f,%f\n",20.0/7,-20.0/7);

本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型。

5.求余运算符(模运算符)“%”双目运算,具有左结合性。要求参与运算的量均为整型。求余运算的结果等于两数相除后的余数。

void main(){

printf("%d\n",100%3);

}

双目运算,具有左结合性。求余运算符% 要求参与运算的量均为整型。本例输出100

除以3所得的余数1。

自增1,自减1运算符

自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: ++i i自增1后再参与其它运算。--i i自减1后再参与其它运算。

i++ i参与运算后,i的值再自增1。

i-- i参与运算后,i的值再自减1。

在理解和使用上容易出错的是i++和i--。特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。

void main(){

int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

} i<--8

i<--i+1

i<--i-1

i<--i+1

i<--i-1

i<--i+1

i<--i-1 int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

i的初值为8

第2行i加1后输出故为9;

第3行减1后输出故为8;

第4行输出i为8之后再加1(为9);

第5行输出i为9之后再减1(为8) ;

第6行输出-8之后再加1(为9);

第7行输出-9之后再减1(为8)

void main(){

int i=5,j=5,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

printf("%d,%d,%d,%d",p,q,i,j);

}

i<--5,j<--5,p<--0,q<--0

i+i+i--->p,i+1-->i,i+1-->i,i+1-->i

j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。算术表达式表达式是由常量、变量、函数和运算符组合起来的式子。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。表达式求值按运算符的优先级和结合性规定的顺序进行。单个的常量、变量、函数可以看作是表达式的特例。

算术表达式

是由算术运算符和括号连接起来的式子,以下是算术表达式的例子:

a+b (a*2)/c (x+r)*8-(a+b)/7 ++i sin(x)+sin(y) (++i)-(j++)+(k--)

赋值运算符和赋值表达式

简单赋值运算符和表达式,简单赋值运算符记为“=”。由“= ”连接的式子称为赋值表达式。其一般形式为:变量=表达式例如:

x=a+b

w=sin(a)+sin(b)

y=i+++--j 赋值表达式的功能是计算表达式的值再赋予左边的变量。

赋值运算符具有右结合性。因此:

a=b=c=5

可理解为

a=(b=(c=5))

在其它高级语言中,赋值构成了一个语句,称为赋值语句。而在C中,把“=”定义为运算符,从而组成赋值表达式。凡是表达式可以出现的地方均可出现赋值表达式。例如,式子x=(a=5)+(b=8)是合法的。它的意义是把5赋予a,8赋予b,再把a,b相加,和赋予x ,故x应等于13。

在C语言中也可以组成赋值语句,按照C语言规定,任何表达式在其未尾加上分号就构成为语句。因此如x=8;a=b=c=5;都是赋值语句,在前面各例中我们已大量使用过了。

如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下:

1.实型赋予整型,舍去小数部分。前面的例

2.9已经说明了这种情况。

2.整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。

3.字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII 码值放到整型量的低八位中,高八位为0。

4.整型赋予字符型,只把低八位赋予字符量。

void main(){

int a,b=322;

float x,y=8.88;

char c1='k',c2;

a=y;

x=b;

a=c1;

c2=b;

printf("%d,%f,%d,%c",a,x,a,c2);

}

int a,b=322;

float x,y=8.88;

char c1='k',c2;

printf("%d,%f,%d,%c",a=y,x=b,a=c1,c2=b);

本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8 88后只取整数8。x为实型,赋予整型量b值322,后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,

按ASCII码对应于字符B)。

复合赋值符及表达式

在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如

+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。构成复合赋值表达式的一般形式为:变量双目运算符=表达式它等效于变量=变量运算符表达式例如:

a+=5 等价于a=a+5

x*=y+7 等价于x=x*(y+7)

r%=p 等价于r=r%p

复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。逗号运算符和逗号表达式在

逗号运算符

C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。

其一般形式为:表达式1,表达式2 其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。

void main(){

int a=2,b=4,c=6,x,y;

y=(x=a+b),(b+c);

printf("y=%d,x=%d",y,x);

}

a<--2,b<--4,c<--6,x<--0,y<--0

x<--a+b,y<---b+c

本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式还要说明两点:

1.逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。例如:表达式1,(表达式2,表达式3) 形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:表达式1,表达式2,…表达式n 整个逗号表达式的值等于表达式n的值。

2.程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。

3.并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。

[Practice] //arithmeticint a,b,c;

float d;

a=11;

b=235;

c=a+b-a*b;

d=(float)c/(float)a;

a=c/a;'Vtable

a,2,0

b,2,0

c,2,0

d,4,0.0

of Vtable

'Vupdate

1,0;2,0;3,0

4,0.0

1,11

2,235

3,-2339

4,-212.636368

1,-212

of Vupdate

of Practice

[Practice] //1int a,b,c1,c2;

a=25;

b=3243;

c1=b/a;

c2=b%a;'Vtable

a,2,0

b,2,0

c1,2,0

c2,2,0

of Vtable

'Vupdate

1,0;2,0;3,0;4,0

1,25

2,3243

3,129

4,18

of Vupdate

of Practice

[Practice] //1int a,b,c;

a=25;

b=40;

c=a+b,c+35;'Vtable

a,2,0

b,2,0

c,2,0

of Vtable

'Vupdate

1,0;2,0;3,0

1,25

2,40

3,65

of Vupdate

of Practice

小结

1.C的数据类型

基本类型,构造类型,指针类型,空类型

2.基本类型的分类及特点

类型说明符字节数值范围

字符型char 1 C字符集

基本整型int 2 -32768~32767

短整型short int 2 -32768~32767

长整型 long int 4 -214783648~214783647

无符号型 unsigned 2 0~65535

无符号长整型 unsigned long 4 0~4294967295 单精度实型 float 4 3/4E-38~3/4E+38

双精度实型 double 8 1/7E-308~1/7E+308

3.常量后缀

L或l 长整型

U或u 无符号数

F或f 浮点数

4.常量类型

整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。

5.数据类型转换

·自动转换

在不同类型数据的混合运算中,由系统自动实现转换,由少字节类型向多字节类型转换。不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。

·强制转换

由强制转换运算符完成转换。

6.运算符优先级和结合性

一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值

7.表达式

表达式是由运算符连接常量、变量、函数所组成的式子。每个表达式都有一个值和类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。

C++习题第02章 基本数据类型、运算符与表达式

第02章基本数据类型、运算符与表达式 1. 选择题 (1)在32位机中,int型字宽为()字节。 A) 2 B) 4 C) 6 D) 8 (2)下列十六进制的整型常数表示中,错误的是()。 A) 0xad B) 0X11 C)0xA D) 4ex (3)设n=10,i=4,则执行赋值运算n%=i-1后,n的值是()。 A) 0 B) 1 C) 2 D) 3 (4)若有a=2,b=4,c=5,则条件表达式a>b?a:b>c?a:c的值为()。 A) 0 B) 2 C) 4 D) 5 (5)若有a=1,b=2,则表达式++a==b的值为()。 A) 0 B) 1 C) 2 D) 3 2.简答题 (1)指出下列数据中哪些可作为C++的合法常数? (a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) ″A″ (f) .55 (g) ’\\’ (h) 0XCD (i) 8E7 (j) π (2)指出下列符号中那些可作为C++的合法变量名? (a) ab_c (b) β (c) 3xyz (d) if (e) cin (f) a+b (g) NAME (h) x! (i) _temp (j) main (3)根据要求求解下列各表达式的值或问题。 (a) (int)3.5+2.5 (b) (float)(5/2)>2.4 (c) 21/2+(0xa&15) (d) 设int i=10,则表达式i&&(i=0)&&(++i)的值是多少?该表达式运算结束后变量i的值为多少? (e) 设int a=1,b=2,c=3;,求表达式a

第二章JAVA的基本数据类型

第2章Java的基本数据类型 本章试验的主要任务是正确理解和掌握Java基本类型数据的使用方法,包括:掌握各种不同类型数据之间的转换规则、运算规则;学会使用Java运算符、表达式,掌握运算符的优先级、表达式的运算规则。 2.1 实验一:Java 的基本类型数据的应用 1. 实验目的 1) 了解Java的基本数据类型的特点; 2) 掌握各种类型变量的声明、赋值、转换及运算方式。 2. 实验要求 编写并实现程序,完成对基本类型变量的声明、赋值,并对变量进行简单运算输出运算结果。 3. 实验内容 实验示例 2.1.1. 在程序中实现对整型变量的定义、赋值、运算并输出运算结果。执行程序并分析运算结果。 使用Jcreator开发工具完成实验,其操作步骤如下: ⑴执行JCreator,进入JCreator开发环境窗口; ⑵为了方便起见,关闭一些视图窗口,只留下编辑和常规输出(Build Output)窗口(如图2-1所示); ⑶执行“File”→“New”菜单下的“File…”项,在“File Wizard”对话框的文件名栏中输入“Practice2_1”,根据需要,可以改变文件路径。一般来说,可以创建一个文件夹,用该文件夹来存放你开发程序,例如E:\javaTest; ⑷新建文件后,在编辑窗口输入如图2-1中所示的java程序源代码; ⑸完成代码的输入之后,执行“Build”菜单中的“Compile File”命令项或单击工具栏上的编译按钮编译源程序文件; ⑹完成编译之后,执行“Build”菜单中的“Execute File”命令项或单击工具栏上的运行程序按钮执行程序。执行结果如图2-2所示。 下边我们来分析一下程序及程序的输出结果: 在程序中,定义了两个字节(byte)变量b1和b2、两个短整型(shortt)变量s1和s2、两个整型(int)变量i1和i2、两个长整数变量(long)l1和l2,并分别对它们进行了简单的赋值运算。最后分别输出它们的十进制值,s1的二进制表示形式的值,l2十六进制表示形式的值。

第二章数据类型

第二章数据类型 一、选择题 1.C语言中的标识符只能由字母、数字和下划线组成,且第一个字符( )。 A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一字符 2.VS2008作为开发环境,long、int和short这3种类型数据所占用内存大小的叙述中正确的( )。 A.均占4个字节 B.根据数据的大小来决定所占内存的字节数 C.由用户自己定义 D.由C语言编译系统决定 3.在C语言中,char型数据在内存中是以( )形式存储的。 A.原码 B. ASCII码 C.补码 D. EBCDIC码 4.以下不能定义为用户标识符的是( )。 A. Main B. _0 C. _int D. sizeof 5. 以下选项中关于C语言常量的叙述错误的是( )。 A.所谓常量,是指在程序运行过程中,其值不能被改变的量 B.常量分为整型常量、实型常量、字符常量和字符串常量 C.常量可分为数值型常量和非数值型常量 D.经常被使用的变量可以定义成常量 6.在C语言中,合法的字符常量是( )。 A.“\x41” B.‘\x41’ C.‘ab’ D.“ab” 7.以下选项中不能用作C程序合法常量的是( )。 A.1,234 B.'123' C.123 D."\x7G" 8.下列符号可以作为变量名的是( )。 A. +a B. *p C._DAY D. next day 9.设c是字符变量,则以下表达式正确的是( )。 A. c=666 B. c=‘c’ C. c=“c” D. c=“abcd” 10.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( )。 A.a=(b=4)=3; B.a=b=c+1; C.a=(b=4)+c; D.a=1+(b=c=4); 11.设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch.该表达式的值是( )。 A. A B. a C. Z D. z 12.int x=3,y=2;则表达式x+=x*=y+8的值为( )。

第二章数据类型.

第二章 Java 中的数据类型 本章知识要点 标识符 Java 注释 Java 数据类型 2.1 使用规范的标识符为变量命名: 2.1.1标识符命名规则: 在 Java 中,标识符用来为程序中的常量、变量、方法、类、接口和包命名 . Java 中的标识符有以下四种命名规则 : 1. 标识符由字母、数字、下划线 (_或美元符号 ($组成 . 2. 标识符的首字母由字母、下划线 (_或美元符号 ($开头,不能以数字开头 . 3. 标识符的命名不能与关键字、布尔值(true,false 和 null 相同。 4. 标识符区分大小写,没有长度限制,坚持见名知义的原则 .

2.1.2 关键字 : 关键字是 Java 语言保留的,为其定义了固定含义的特殊标识符 . 注意 :关键字全部为小写字母,程序员不能将关键字定义为标识符,否则出现编译错误 . Java 中定义的 48个关键字如下表所示 : 提示 : 见名知义的原则 : 是指在使用标识符命名时,要使用能反映被定义者含义或作用的字符。这样,其他人在阅读代码时通过名称就可以对程序有所理解。

驼峰命名法就是当使用标识符命名时,如果是由一个或多个单词连接在一起,第一个单词以小写字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,这样的变量名看上去就像骆驼峰一样此起彼伏,故取名。如fileName,username. 2.2 使用注释对代码进行解释说明 注释是程序开发人员和程序阅读者之间交流的重要手段,是对代码的解释和说明。好的注释可以提高软件的可读性,减少软件的维护成本 . 在 Java 中,提供了 3种类型的注释 : 2.2.1 单行注释 单行注释指的是只能书写一行的注释,是最简单的注释类型,用于对代码进行简单的说明 . 当只有一行内容需要注释的时候,一般使用单行注释。在 Eclipse 中默认使用” Ctrl ” + “ /” , 可以快捷实现单行注释 . 单行注释的语法 : //单行注释 在语法中 单行注释使用“ //” 开头 . “ //”后面的内容都被认为是注释 . 注意:1. 单行注释不会被编译 2.“ //”不能放到被注释代码的前面,否则这行代码会被注释。 2.2.2 多行注释

第2章 基本数据类型-习题(C语言)

第2章基本数据类型 一.选择题 1.不合法的字符常量是【】。 A) ‘\t’B) “B” C) ‘a’ D)’\x32’ 2.合法的字符常量是【】。 A) ‘\084’ B) ‘\84’ C) ‘ab’ D)’\x4A’ 3.C语言提供的合法的数据类型关键字是【】。 A) Float B) Signed C) integer D)char 4.属于合法的C语言长整型常量的是【】。 A)2736 B)0L C)2E10 D)(long)5876273 5.下面选项中,不是合法整型常量的是【】。 A)160 B)-0xcdg C)-01 D)-0x48a 6.以下所列的C语言常量中,错误的是【】。 A)0xFF B)1.2e0.5 C)2L D)’\72’ 7.下面四个选项中,均是不正确的8进制数或16进制数的选项是【】。 A)016 0x8f 018 B)0abc 017 0xa C)010 -0x11 0x16 D)0a12 7ff -123 8.下选项中不属于C语言的类型是【】。 A)signed short int B)unsigned long int B)unsigned int D)long short 9.判断int x = 0xaffb1。x的结果是【】。 A)赋值非法 B)溢出 C)为affb D)为ffbc 10.下面选项中,是合法浮点数的是【】。 A)+1e0.5 B)-.60 C)123e D)-e3 11.在C语言中,要求参加运算的数必须是整数的运算符是【】。 A)/ B)* C)% D) = 12.在C语言中,字符型数据在内存中存放形式是【】。 A)原码 B)BCD码 C)反码 D)ASCII码

第二章 数据类型(3)

C语言初学者入门讲座第二讲数据类型(3) 基本运算符和表达式 运算符的种类、优先级和结合性 C语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。这也是C语言的主要特点之一。 C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+ +)、自减(--)共七种。 2.关系运算符 用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。 3.逻辑运算符 用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 5.赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&

=,|=,^=,>>=,<<=)三类共十一种。 6.条件运算符 这是一个三目运算符,用于条件求值(?:)。 7.逗号运算符 用于把若干表达式组合成一个表达式(,)。 8.指针运算符 用于取内容(*)和取地址(&)二种运算。 9.求字节数运算符 用于计算数据类型所占的字节数(sizeof)。 10.特殊运算符 有括号(),下标[],成员(→,.)等几种。 优先级和结合性 C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时, 则按运算符的结合性所规定的结合方向处理。C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。 C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。 算术运算符和算术表达式基本的算术运算符 1.加法运算符“+”加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+ 8等。具有右结合性。 2.减法运算符“-”减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。

第二章 数据类型课后习题及答案

第二章数据类型课后习题 1.下列哪些是合法的变量名?如果合法,你认为它是一个好的助记符(能提醒你它的用途)吗? (a) stock_code 合法、好的助记符 (b) money$ 非法,$为非法字符 (c) Jan_Sales 合法、好的助记符 (d) X-RAY 非法,–为非法字符 (e) int 非法,int为关键字 (f) xyz 合法、不是好的助记符 (g) 1a 非法,变量名必须以字母或下划线打头 (h) invoice_total合法、好的助记符 (i) john's_exam_mark非法,’为非法字符 (j) default 非法,default为关键字 2.请确定下列常量的数据类型: (a) 'x' char (b) -39 int (c) 39.99 double (d) -39.0 double 3.下列哪些是合法的变量定义?

(a) integer account_code ; 非法,无integer类型 (b) float balance ; 合法 (c) decimal total ; 非法,无decimal类型 (d) int age ; 合法 (e) double int ; 非法,int为关键字,不能作为变量名 (f) char c ; 合法 4.写出下列各小题中的变量定义: (a) 整型变量number_of_transactions和age_in_years int number_of_transactions, age_in_years; (b) 单精度浮点型变量total_pay,tax_payment,distance和average float total_pay, tax_payment, distance, average; (c) 字符型变量account_type char account_type; (d) 双精度浮点型变量gross_pay double gross_pay; 5. 为下列各小题写出最合适的变量定义: (a) 班级中的学生人数int number_of_students; (b) 平均价格float average_price; (c) 自1900年1月1日以来的天数int days_since_1900; (d) 利率百分比float interest_rate;

第二章 基本数据类型

第二章基本数据类型 2.1数据概述 一、程序设计概述 一个程序应包括对数据的描述和对数据处理的描述。 1.对数据的描述,即数据结构。数据结构是计算机学科的核心课程之一,有许多专门著作论述,本课程就不再赘述。在C语言中,系统提供的数据结构,是以数据类型的形式出现的。 2.对数据处理的描述,即计算机算法。算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。为此,著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:数据结构+ 算法= 程序 实际上,一个程序除了数据结构和算法外,还必须使用一种计算机语言,并采用结构化方法来表示 二C语言的数据类型 C语言提供的数据结构,是以数据类型形式出现的。具体分类如下: 1.基本类型分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。 本章将介绍基本类型中的整型、实型和字符型三种数据。 三常量和变量 1 常量 常量的概念:在程序运行过程中,其值不能被改变的量称为常量。 常量的分类 (1)整型常量(2)实型常量 (3)字符常量。(4)符号常量。 常量的类型,可通过书写形式来判别。 2 变量 变量的概念:在程序运行过程中,其值可以被改变的量称为变量。 变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 变量要先定义后使用 变量定义的格式:类型说明符变量名;多个变量之间可以用逗号隔开 先定义:1)确定变量的数据类型2)分配存储空间3)决定能做的运算 变量的赋值变量名=值、表达式、函数调用 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。(2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别。在TC V2.0中,变量名(标识符)的有效长度

第2章练习 基本数据类型与输入输出xs答案

1.字符常量与字符串常量的区别是什么? 答:字符常量与字符串常量的主要区别在于:(1)定界符不同。字符常量使用单引号,而字符串常量使用双引号。(2)长度不同。字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数。(3)存储要求不同。字符常量存储的是字符的ASCII码值,而字符串常量除了要存储有效的字符外,还要存储一个结束标志’\0’。 二、选择题 1.下列数据类型不是C++语言基本数据类型的是()。 A.字符型 B.整型 C.实型 D.数组 2.在C++语言中,080是()。 A.八进制数 B.十进制数 C.十六进制数 D.非法数 3.下列字符列中,可作为C++语言程序自定义标识符是()。 A.switch B.file C.break D.do 4.下列字符列中,可以作为“字符串常量”的是()。 A. ABC B.″xyz″ C.′uvw′ D. ′a′ 5.字符串”vm\x43\\\np\102q”的长度是()。 A. 8 B. 10 C. 17 D. 16 6.在C++语言中,自定义的标识符()。 A.能使用关键字并且不区分大小写 B.不能使用关键字并且不区分大小写 C.能使用关键字并且区分大小写 D.不能使用关键字并且区分大小写 7.下面标识符中正确的是()。 A._abc B.3ab C. int D.+ab 8.下列不合法的变量名为()。 A.int B.int1 C.name_1 D.name0 9.下列变量名中,非法的是()。 A.A25 B.My_car C.My-str D.abc 10.下列常量中,十六进制int型常量是()。 A.0x5f B.x2a C.046 D.7a 11.下列常量中,不是字符常量的是()。 A.'\n' B."y" C.'x' D.'\7' 12.长双精度浮点型常量的后缀是()。 A.U B.F C.L D.无

第二章基本数据类型和运算

第二章基本数据类型和运算 一、单项选择题 1.下列数据中属于“字符串常量”的是(A)。 A.”a” B.{ABC} C.’abc\0’ D.’a’ 2.下列数据中属于“字符串常量”的是(B)。 A.ABC B.“ABC” C.’abc’ D.’a’ 3.在PC机中,’\n’在内存占用的字节数是(A)。 A.1 B.2 C.3 D.4 4.在PC机中,”a\xff”在内存占用的字节数是(C)。 A.5 B.6 C.3 D.4 5.字符串“ABC”在内存占用的字节数是(B)。 A.3 B.4 C.6 D.8 6.字符串”\’ABCD\’”在内存占用的字节数是(C)。 A.4 B.6 C.7 D.8 7.在C语言中,合法的长整型常数是(A)。 A.0L B.4962710 C.0.054838743 D.2.1869e10 8.在C语言中,合法的短整型常数是(D)。 A.0L B.0821 C.40000 D.0x2a 9.下列数据中不属于“字符常量”的是(C)。 A.‘\xff’ B.‘\160’ C.’070’ D.070 10.char型常量的内存中存放的是(A)。 A.ASCII代码值 B.BCD代码值 C.内码值 D.十进制代码值 11.若int类型数据字长为4,其最大值为(B)。 A.231 B.231-1 C.232-1 D.232 12.常数的书写格式决定了常数的类型和值,03322是(B)。 A.16进制int类型常数 B.8进制int类型常数 C.10进制int类型常数 D.10进制long int类型常数 13.“e2”是(D)。 A.实型常数100 B.值为100的整型常数 C.非法标识符 D.合法标识符 14.要为字符型变量a赋初值,下列语句中哪一个是正确的(A)。 A.char a=’3’; B.char a=”3”; C.char a=%; D.char a=*; 15.要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C)。 A.float x,y,z=3.14; B.float x,y,z=3*3.14; C.float x=3.14,y=3.14,z=3.14; D.float x=y=z=3.14; 16.语句“float pi=3.1415926535;”将(D)。 A.导致编译错误 B.说明pi为初值3.1415926535的单精度实型常数 C.导致运行时的溢出错误 D.说明pi为初值3.141593的单精度实型常数 17.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。 A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运算 D.关系运算、算术运算、赋值运算 18.关系运算符中优先级最低的运算符是(C)。 A.“>=”和“<=” B.“>”和“<” C.“==”和“!=” D.“<=”和“<” 19.逻辑运算符中,运算优先级按从高到低依次为(D)。 A.&&,!,‖ B.‖,&&,! C.&&,‖,! D.!,&&,‖ 20.对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的(A)。 A.0为假非0为真 B.只有1为真 C.-1为假1为真 D.0为真非0为假

第02章基本数据类型和基本操作

第2章:基本数据类型和基本操作 学习目标 ?编写简单的Java程序 ?理解标识符、变量和常量 ?基本数据类型: z Byte, short, int, long, float, double, char, boolean ?运算符: z+, -, *, /, %, +=, -=, *=, /=, %=, ++, -- ?表达式 ?熟悉Java的文档管理、程序设计风格和命名习惯 ?理解语法错误、运行时错误和逻辑错误 标识符 命名规则: ?标识符必须以字母、下划线(_)或美元符号($)开头。 由字母、下划线、$和数字组成,但是不能以数字开头。 ?标识符不能包含运算符,如+, — 等。 ?标识符不能是关键字,如class, public等。 ?标识符不能是true, false 或 null。 布尔型字面量true,false不是关键字,对象值null也没有列入关键字,但是不能把它们派做其它用途。(见书后附录A) ?标识符可有任意长度。 注意: Java区分大小写,X和x是两个不同的标识符。 合法的例子:abc , _isTrue , $123 非法的例子:123,%isTrue, 9_xy 命名习惯:推荐使用较长,有一定含义的标识符。增加可读性。是区分高级程序员和初级程序员的标志之一 变量 ?变量用于存储数据——输入、输出和中间数据。 变量声明 ?变量用来表示多种不同类型的数据。为了使用变量,需要说明它并告诉编译器变量名及其所代表的数据类型。 ?说明变量的语法如下: datatype variableName;(数据类型变量名;) 例如: int x; // Declare x to be an integer variable; double radius; // Declare radius to be a double variable; char a; // Declare a to be a character variable; 赋值语句 ?进行变量说明后,可以用赋值语句给它赋一个值,赋值语句语法如下: variable = value; variable = expression; ?注意:在赋置语句中,左边变量的数据类型必须与右边值的数据类型相容。 例如:int X = 1.0;是非法的,因为X是整型int型,不能把double型的数值赋给X

相关主题
文本预览
相关文档 最新文档