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

合集下载

第2章 c语言基本数据类型、运算符和表达式

第2章 c语言基本数据类型、运算符和表达式
负整数的补码是①将此数绝对值的二进制形式(原码);②除最高位符号位外其他数取反 (反码);③加1(补码)。 -5的补码:
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。

C语言程序设计 第二章 基本数据类型、运算符及表达式

C语言程序设计 第二章 基本数据类型、运算符及表达式

一、选择题1、C语言中的数据的基本类型包括()A、整型、实型、字符型和逻辑型B、整型、实型、字符型和结构体C、整型、实型、字符型和枚举型D、整型、实型、字符型和指针型2、在C语言中,不合法的int型常量是()A、32767B、0678C、0XABCD、32768L3、在C语言中,运算对象必须是整型数的运算符是()A、%B、\C、%和\ D、**4、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是()A、1B、2C、2.0D、2.55、若t为double类型,表达式t=1,t+5,t++的值就是()A、1B、6.0C、2.0 D、 1.06、若有定义:int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为()A、9B、4C、3D、27、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____A、22B、264C、144 D、 -2648、以下结果为整数的表达式(设有int i;char c;float f;)( ).A.i十f B.i*c C.c十f D.i十c十f9、以下不正确的语句(设有int p,q)是( )。

A.P*=3; B.p/=q; C.p十=3; D.p&&=q;10、以下使i的运算结果为4的表达式是( )。

A.int i=0,j=0; (i=3,(j十十)十i);B.int i=1,j=0; j=i=((i=3)*2);C.int i=0,j=1; (j==1)?(i=1);(i=3);D.int i=1,j=1; i+=j十=2;11、下列四组选项中,均不是C语言关键字的选项是( ).A)define B)getc C)include D)whilei f char sanf gotype printf case pow12、设char ch;以下正确的赋值语句是(B).A.ch='123'; B.ch=\xff'; C.ch='\08’; D.ch="\”;13、下面四个选项中,均是合法整形常量的选项是( ).A)160 B)-0xcdf C)-01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x14、设n=10,i=4、则赋值运算n%=i+1执行后,n的值是( ).A.0 B.3 C.2 D.115、下面四个选项中,均是不合法浮点数的选项是( ).A)160. B)123 C)-.18 D)-e30.12 2e4.2 123e4 0.234e3 .e5 0.0 1e316、下面四个选项中,均是合法浮点数的选项是( ).A)+1e+1 B)-.60 C)123e D)-e35e-9.4 12e-4 12e-.4 .8e-403e2 -8e5 +2e-1 5.e-017、逗号表达式(a=3*5,a*4),a十15的值为( ),a的值为( )。

C语言第2章 数据类型、运算符和表达式

C语言第2章  数据类型、运算符和表达式

2、算术表达式 结合性是指同级运算时运算符的结合方向。 用算术运算符和括符将操作数连接起来的式子。 如 a#b#c 优先级: (#代表某一运算符) 若先运算a#b,再将其结果与c运算, ( ) * / % +
称为左结合性;从左至右运算规则 结合性
若先运算b#c,再将a与其结果运算, 自左向右,与数学上一致。 则称右结合性。从右至左运算规则 表达式的值: 数值型: int、long、unsigned、double
(3) 对于括号内的自增运算,又要先使用i, 再使i增加1。
运算结果: i的值为3,j的值为-2。
二、关系运算符和关系表达式
1、关系运算符
关系运算:比较运算,比较两个操 作数,看是否满足给定的关系。 <:小于 ,5<3, 3<5
<=:小于等于,5<=3,3<=5,与数学上(≤)不同
>:大于,5>3,3>5 >=:大于等于,5 >=3,3 >=5 ,与数学上(≥)不同 ==:等于,5==3 ,与数学上(=)不同
C H I N A \0
最后一个字符'\0'是系统自动加上的,它占用6字节而非 5字节内存空间。 综上所述,字符常量'A'与字符串常量"A"是两回事: (a)定界符不同。 (b)长度不同。(0,或一整数) (c)存储要求不同。
(4)符号常量。“ 见名知意”
2.5 变量
2.5.1 变量的概念 定义1:用于存储程序输入数据和运算结果的内存单元。 因为变量中存储的数值随着程序的执行可以改变。 定义2:在程序运行过程中,其值可以改变的量。 2.5.2 变量的定义 格式: 数据类型 变量名表; 例: int a; char ch1,ch2; 2.5.3 变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名, 变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存 中。在程序中,通过变量名来引用变量的值。

C语言 基本数据类型、运算符及表达式

C语言  基本数据类型、运算符及表达式

+ - * / % ++ -> >= < <= == != ! && || << >> ~ ∣ ∧ & = 复合赋值运算符 ?:
(7) 逗号运算符 (8) 指针运算符 (9) 求字节数运算符 (10)强制类型转换运算符 (11)分量运算符 (12)下标运算符 (13)其它
, *和& sizeof (类型标识符) ·→ [] 函数名( )
形式:(1)定点数形式: 它由数字和小数点组成。整数和小数部分可以省 去一个,但不可两者都省,而且小数点不能省。
如:1.234,.123,123.,0.0等。
(2)指数形式(或称科学表示法): 它是用整数或定点数后加e(或E)和指数来表示; 指数可正可负必须为整数, 字母e之前必须有数字。
如: 1.234e3, 12.34e2 均合法表示 1.234*103; 而 e3,1e2.3,.e3,e 均不合法。
c1=C, c2=A, c3=C i=3, j=5, k=3
j=i--;
k=--i;
printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
int i=3;
说明:m=(i++)+(i++)+(i++);
int i=3;
用难于理解和容易出错的表达方式,尤其 是具有二义性的表达式。
2、算术表达式
用算术运算符将运算对象连接起来,符合 C语法规则,并能说明运算过程的式子。
赋值运算符与赋值表达式

第02章C语言基本数据类型与表达式

第02章C语言基本数据类型与表达式

4.字符变量
字符变量用来存放字符常量,注意一个字符变 量只能存放一个字符。 一般以一个字节来存放一个字符,或者说一 个字符变量在内存中占一个字节。
例如: char c; c= ’a’; c= ’\034’; c= ’\n’; c= ’\x65’; c=65;c=0101;c=0x41;
第二章 2.2 常量和变量
数据分类、
算术运算
处理
第二章 2.2 基本数据类型
2.2.1 数据类型概述
基本类型 (简单类型)
C 数 据 类 型
构造类型 (组合类型)
指针类型 空类型(void

整型



实型
浮点型
字符类型(char) 枚举类型(enum) 数组类型
短整型(short) 整型(int) 长整型(long) 单精度型(float)
(1)与数据类型有关的(14): char int float double signed unsigned short long void struct union typedef enum sizeof
第二章 2.2 C语言简介
(2)与存储类别有关的: auto extern register static
第二章 2.2 常量和变量
数据类型(关键字) short unsigned short int unsigned long unsigned long
字节个数 2 2 2 2 4 4
取值范围
-32768~+32767
0~+65535
-32768~+32767
0~+65535 -
2147483648~214748 3647

C语言第02章 数据类型、运算符与表达式

C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。

C语言2基本语法规则练习题2

C语言2基本语法规则练习题2

C语言2基本语法规则练习题2第二章基本语法规则2.1数据类型、运算符、表达式一、选择题1.C语言中确定数据存储的格式、范围与有效位数的依据是A.数据正负B.数据范围C.数据类型D.数据大小2.一般说在C语言中字符型数据、整型数据、单精度浮点型及双精度浮点型数据的存储长度分别为A.2、4、8、1B.4、2、1、8D.1、4、2、8B.竖向跳格D.换行C.1、2、4、83.转义字符“\\t”表示A.横向跳格,即跳到下一个输出区C.退格4.以下叙述不正确的是A.C语言中的常量分别为整型常量、浮点常量、字符常量、符号常量B.整型常量在C语言中有十进制、八进制和十六进制等3种不同形式C.C语言中,变量必须先定义后使用D.变量被定义后,变量名是固定的,变量的值在程序运行过程中是不可以随时被改变的5.以下叙述不正确的是A.C语言中的字符常量是用一对单引号('')括起来的单个字符B.字符串常量是用一对双引号(““)括起来的字符序列C.字符型数据与整型数据之间不可以通用。

D.为了便于判断字符串是否结束,系统会自动在最后一个字符后面加上一个转义字符(\\0)6.在赋值语句中用来将运算表达式的值赋给变量的“=”称为A.等号B.赋值运算符C.关系运算符D.逻辑运算符7.设a=12,n=3,则执行表达式a%=n+3后a的值为A.3B.0C.6D.12D.3D.4D.1198.设,A=0,B=1表达式!A&&B的值是A.1B.0C.29.在16位PC机环境下,字符串“A”应占的字节数为A.2B.1C.010.采用十进制数为表示方法,则077是A.77B.112C.6311.设某为float型变量,y为double型变量,a为int型变量,b 为long型变量,c为char型变量,则表达式某+y某a/某+b/y+c计算结果的类型为A.intB.longC.doubleD.char12.设a,c为int型变量,进行a=(c=5,c+5,c/2)运算后的结果为A.2B.5C.2.5D.013.在C语言中,表示逻辑“真”和“假”的值分别是A.0、1B.1、2C.1、014.C语言中表示a小于b或小于c的表达式为A.ac&&b>cB.a>c||b>cC.a>b||b>cD.a>b&&b>c16.a和b中有一个小于c的表达式为A.aB.aD.0和3D.1和1D.2D.35D.2、117.若有a=2,b=3,c=4,则表达式a==3和a=3的值分别为A.0和0B.1和3C.3和318.表达式!(1<3)||(2>5)和!(4<=8)&&(7>=3)的值分别为A.1和0B.0和0C.0和1某19.设a=4,计算表达式a=1,a+5,a++的值为A.1B.5C.1020.设某=4,y=8,计算表达式y=(某++)某(--y)的值为A.28B.32C.4021.设有语句chara=`\\72`;则变量包含的字符数为A.3B.2个C.1D.422.设有说明语句:chara='\\123abc';则变量a包含的字符数为A.4B.6C.5D.723.下列叙述正确的是A.赋值语句中的“=”是表示左边变量等于右边表达式B.赋值语句中左边的变量值不一定等于右边表达式的值C.赋值语句是由赋值表达式加上分号构成的D.某+=y;不是赋值语句24.下列选项中,可以作为C语言标识符的是A.3tuB.#tuC.tu3D.tu.3D.tudent3D.13.8eD.chard;25.下列选项中,不可以作为C语言标识符的是A.numB.turbo_cC.print26.下列选项中,不可以作为C语言常量的是A.”abc”B.1/2C.M27.下列选项中,正确的一组语句是A.chara;B.charb;C.charc;a=M;b=55;c=”M”;d=”55”;28.已知字母b的ASCII码值为98,如ch为字符型变量,则表达式ch=b+5-2的值为A.eB.dC.102D.10029.下列不是字符串常量的是A.“1818\B.“aad”C._abdcD.“a”30.在C语言中,int、char和hort三种类型数据所占用的内存是A.均为2个字节B.由用户定义C.是任意的D.由所用机器的机器字长决定31.设int类型的数据长度为2个字节,则unignedint类型数据的取值范围是A.0至255C.-32768至3276732.以下是不正确的转义字符是A.\\\\B.\\B.0至65535D.-256至255C.\\081D.\\0D.反码33.在C语言中,char型数据在内存中的存储形式是A.原码B.补码C.ASCII码某34.若某为unignedint变量,则执行以下语句后的某值为。

C语言基础(02-数据类型、运算符与表达式)

C语言基础(02-数据类型、运算符与表达式)

常量和变量:
常量――程序运行过程中其值不变的量,如一个整数 134, 一个字符 ‘a'
变量――程序运行过程中其值可以变化的量,如 int a; char b; 那么 a 和 b 都是变量。
符号常量 ――用一个“符号”来表示的一个“常量”称为“符号常量”。
符号常量有什么好处 ――在给符号常量命名的时候,按习惯取的名字与实际上的含义相符,可以“见名识意”;另外在需要修改常量的值的时候,只需要修改符号常量的定义部分即可,非常方便。
整型数据类型 int /* 一般指可以运算的数,如自然数就是整型数据类型 */
字符数据类型 char /* 一般指文字,如英文字母;字符类型的 '1''2''3''4' 等 */
实型 float /* 也称作浮点型,记住 float 类型的数都是有小数位的,如 425.23*/
深入理解变量 ―― 1 ) 1 个变量必须有一个变量名。 2 )变量必须有其指定的数据类型
3 )变量一旦被定义,它就在内存中占有一个位置,这个位置称做该 变量的地址 。
4 )每一个变量都有其对应的值。
l 一定要牢记变量的这 4 个特性。
变量使用时的注意事项 ―― 1 )变量在使用之前一定要先定义,使用一个没有定义的变量是错误的。
char b; /* 定义了一个字符型变量,以后这个变量只能存放符字符型数据 */
怎样把常量值赋给已定义了的变量 ――用一个 = 号赋值。
例: int a; /* 定义一个整型娈量 a*/
char b; /* 定义了一个字符型变量 b*/
a=20; /* 用 = 号完成赋值,赋值后变量 a 的值此时为 20*/

C++第2章-基本数据类型与表达式(共67张PPT)精选全文

C++第2章-基本数据类型与表达式(共67张PPT)精选全文
整数类型 实数类型 字符类型
逻辑类型
空值类型
整数类型
int 和计算机的字长有关
short int或short 2个字节
long int或long
4个字节
“short
intu”n的s范ign围ed≤in“t i或nt”的u范ns围ign≤ed“long
int”的范围
unsigned short int 或 unsigned short
#define <常量名> <值>
例如:
const double PI=3.1415926; 或,
#define PI 3.1415926
变量
在程序中,其值可以改变的量称为变量。 变量可以用来表示可变的数据。
例如:在计算圆周长的表达式2*PI*r中,半
径r就是一个可变的数据,它可能是通过用户输 入得到,也可能由程序的其它部分计算得到。
int a=0; int b=a+1; double x=0.5;
或:
int a=0,b=a+1; double x=0.5;
变量的定义与声明(续)
在C++程序中使用变量之前,必须对使用的变量进行声
明。变量定义属于一种声明,称为定义性声明。变量声明的 另一种形式为:
extern <类型名> <变量名>;变量声明
对un相sig邻n在e的d两in实个t 或操数作u符n的s,ig按ne内下d 面存规则空确定间(p3中6):存储的是尾数和指数两部分,它们均采 用二进制表示。 变量:在程序执行过程中值可变的数据,如:2*PI*r中的r。
1就无法精确地用二进制表示。 否则,如果一个操作数类型为long int,则另一个操作数转换成long int。 而字符串常量可以表示多个字符,其类型为常量字符数组。 -10/3的结果为-3

C语言程序设计第2章 数据类型、运算符与表达式

C语言程序设计第2章 数据类型、运算符与表达式

整数类型是以二进制数据形式存储的,确 切地说是以二进制补码形式。
9
一、整型

整数的存储方式 一个十进制整数,先转换为二进制形式 如整数15,以二进制形式表示是1111 用一个字节存放
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 用两字节存放 负数按补码形式存放 请问:-15又是如何存储的呢?
27
四、字符串常量
字符串常量与字符常量的区别:
(5)字符串中可以有转义字符。 (6)单引号和双引号只是字符和字符串的定界符,如果字符 常量本身是单引号,则要用转义字符,如‘\‟‟ 。
'a'是一个字符常量 "a"是一个字符串常量
a
a \0
空字符作为字符串常量的结束
28
五、符号常量
用一个标识符来代表一个常量,称为符号常量。 符号常量在使用前必须先定义,用宏定义的形式, 其一般定义格式为:
31
2.2.2 变量
变量是指在程序运行过程中其值可以变化的量。 C语言要求在使用变量之前必须先进行声明。 给变量指定一个标识符,这个标识符称为变量名; 变量名(标识符)的命名规则: 只能由字母、数字或下划线组成; 第一个字符必须是字母或下划线。

32
1、变量的声明
声明一个变量包括: 指定该变量的数据类型,该类型决定了变量值的 类型、表现形式和占用内存空间,以及对该变量能 执行的运算; 指定变量的存储类型和变量的作用域。
22
二、实型常量
0、1.2

1.2、7.、.36、1e3、1.8e-3、-.1e-3
、3、e3、2.1e3.5、.e3、e
在实型常量中不能有空格。 默认状态下,实型常量被识别为双精度 (double)类型。可以使用后缀F或f表示单精 度(float)类型,后缀L或l表示长双精度 (long double)类型。比如123.56是double类 型,123.56f是float类型,1.2356E2L是long double类型。

第2章数据类型运算符和表达式习题

第2章数据类型运算符和表达式习题

第2章数据类型运算符和表达式习题1. 单项选择题(1) 以下选项中,正确的C 语言整型常量是 D 。

A. 32LB. 510000C. -1.00D. 567(2) 以下选项中, D 是不正确的C 语言字符型常量。

A. 'a'B. '\x41'C. '\101'D. "a"(3) 在C 语言中,字符型数据在计算机内存中,以字符的C 形式存储。

A. 原码B. 反码C. ASCII 码D. BCD码(4) 字符串的结束标志是 C 。

A. 0B. '0'C. '\0'D. "0"(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为B。

A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算(6) 逻辑运算符中,运算优先级按从高到低依次为D。

A. &&,!,||B. ||,&&,!C. &&,||,!D. !,&&,||(7) 表达式!x||a==b 等效于 D 。

A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)(8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是A 。

A. 0,0B. 0,1C. 1,0D. 1,1(9) int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为 A 。

A. 2,3B. 2,0C. 3,0D. 3,2(10) 设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量a 的值是B 。

A. 3B. 0C. 9D. -12(11) 在以下一组运算符中,优先级最低的运算符是 D 。

C语言——第2章 数据类型、运算符、表达式

C语言——第2章 数据类型、运算符、表达式

B • 2、在C语言中,合法的字符常数是:——。 A) „\084‟ B) „\x43‟ C) „\84‟ D) “\0”

C 3、下列不正确的转义字符是:——。
A) „\\‟ B) „\‟‟ C) „074‟ D) ‘\0’
A • 4、下列变量定义中合法的是:——。 A) short a=1-.1e-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3;
a 01111000 b 01111001 所以也可以把它们看成是整型量。
• C语言允许对整型变量赋以字符值,也 允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出,也允许 把整型量按字符量输出。 整型量为二字 节量,字符量为单字节量,当整型量按 字符型量处理时, 只有低八位数参与处 理。
第二章 数据类型、运算符与表达式 2.1 C的数据类型 2.2 运算符和表达式
§ 2.1 C的数据类型
Back
C的数据基本类型
2.1.1 常量与变量 2.1.2 整型数据 练习
2.1.3 实型数据 2.1.4 字符型数据 练习
Back
§2.1.1 常量与变量
常量
1. 常量 在程序执行过程中不能被改变它的值; void double area() 也可以用一个标志符代表一个常量;常量区 { 分为不同类型。
转义字符示例
void main() { int a,b,c; a=5; b=6; c=7; printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c); }
转义字符示例说明
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);

C语言讲解第二章 基本数据类型、运算符及表达式

C语言讲解第二章 基本数据类型、运算符及表达式

2.2.3 符号常量
例: #define PRICE 30 #include<stdio.h> void main ( ) { int num, total; num=10; total=num*PRICE; printf("total=%d",total); }
显示结果: total=300
当开始编译前,系统先将程序中所有的PRICE 这个单词换成30,再进行编译(翻译成二进制)。
2.2.3 符号常量
例:#include<stdio.h> #define PI 3.14 #define R 10.0-7.0*PI void main() { float s; s=PI*R; printf(“s=%f\n”,s); }
显示结果: s=9.420000
2.2.4 字符型常量
它可分为字符常量和字符串常量两种。 (1) 字符常量 * 字符常量的定义 用一对单引号括起来的单个字符,称为字符 常量。 例如,‘A’、‘1’、‘+’等。 * 转义字符 C语言还允许使用一种特殊形式的字符常 量,就是以反斜杠“\ ”开头,引导的一个字 符或一个数字序列的转义字符
2.2 常量
什么是常量?
程序运行过程中不能被改变的量。 如程序中: 20 整型常量
15.8 浮点型常量
'a' 字符常量
2.2.1 整型常量
1、整型常量的基本类型
整型数据有三种形式
十进制整数 八进制整数 十六进制整数
2.2.1 整型常量
(1)十进制整数的表示与数学上的表示相同

合法的十进制常数如: 256,-321,0
不合法的十进制常数有: 023,25D

《C语言程序设计》第2章 数据类型、运算符与表达式

《C语言程序设计》第2章 数据类型、运算符与表达式
( 1)选择结构控制语句 if()~else~, switch()~
(2)循环结构控制语句 do ~ while(), for() ~ , while() ~ ,
break, continue (3)其它控制语句
goto, return
2. 函数调用语句 函数调用语句由一次函数调用
加一个分号(语句结束标志)构成。
3.标识符命名规则
(1)有效字符:只能由字母、数字 和下划线组成,且以字母或下划线开头。
(2)有效长度:随系统而异,但至 少前8个字符有效。如果超长,则超长 部分被舍弃。
例 如 , 由 于 student_name 和 student_number的前8个字符相同,有的 系统认为这两个变量,是一回事而不加 区别。
在C语言中,要求对所有用到的变量, 必须先定义、后使用;且称在定义变量的 同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式
[存储类型] 数据类型 变量名[, 变量名2…];
例如,float radius, length, area;
(2)变量初始化的一般格式
[存储类型] 数据类型 变量名[=初值][, 变量 名2[=初值2]……];
例如,PC机中的一个int型变量, 其值域为-22*8-1~(22*8-1-1),即32768~32767;一个unsigned型变量 的值域为:0~(22*8-1),即 0~65535。
Hale Waihona Puke [案例2.2] 整型变量的取值范围 main() {short int a,b;
a=32767; b=a+1; printf(“a=%d,b=%d\n”,a,b); } 程序运行结果: a=32767,b=-32768

C语言程序设计(第2章数据类型、运算符和表达式)

C语言程序设计(第2章数据类型、运算符和表达式)

2.1 C语⾔的数据类型2.2 常量与变量2.2.1 标识符命名2.2.2 常量2.2.3 变量2.3 整型数据2.3.1 整型常量2.3.2 整型变量2.4 实型数据2.4.1 实型常量2.4.2 实型变量2.5 字符型数据2.5.1 字符常量2.5.2 字符串常量2.5.3 转义字符2.5.4 符号常量2.5.5 字符变量2.6 运算符2.6.1 算术运算符2.6.2 ⾃增和⾃减2.6.3 关系和逻辑运算符2.1 C语⾔的数据类型C语⾔有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。

尽管这⼏种类型数据的长度和范围随处理器的类型和C语⾔编译程序的实现⽽异,但以b i t为例,整数与C P U字长相等,⼀个字符通常为⼀个字节,浮点值的确切格式则根据实现⽽定。

对于多数微机,表2 - 1给出了五种数据的长度和范围。

表2-1 基本类型的字长和范围类型长度(bit)范围char(字符型)80~255int(整型)16-32768~32767float(单精度型)32约精确到6位数double(双精度型)64约精确到12位数void (空值)0⽆值表中的长度和范围的取值是假定CPU的字长为16 bit。

C语⾔还提供了⼏种聚合类型(aggregate types),包括数组、指针、结构、共⽤体(联合)、位域和枚举。

这些复杂类型在以后的章节中讨论。

除void类型外,基本类型的前⾯可以有各种修饰符。

修饰符⽤来改变基本类型的意义,以便更准确地适应各种情况的需求。

修饰符如下:• signed(有符号)。

• unsigned(⽆符号)。

• long(长型符)。

• short(短型符)。

修饰符signed、short、long和unsigned适⽤于字符和整数两种基本类型,⽽long还可⽤于double(注意,由于long float与double意思相同,所以ANSI标准删除了多余的long float)。

第2章 数据类型、运算符、表达式

第2章 数据类型、运算符、表达式

第二章 数据类型、运算符、表达式一、数据类型C 语言中的数据类型比别的语言丰富。

基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。

1、常量与符号常量常量:在程序执行过程中,其值不发生改变的量称为常量。

常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a ’,‘b ’,‘c ’则为字符常量。

常量即为常数,一般从其字面即可判别。

符号常量:有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。

如:#define PI 3.142、变量变量:程序执行过程中其值可以改变的量。

定义方法定义形式:数据类型 变量名1,变量名2,……变量名n ;整型(int )数据类型 基本类型 整型 单精度型(float )字符型(char )长整型(long )短整型(short )实型 双精度型(double )枚举类型(enum )共用体类型(union )构造类型结构体类型(struct )数组类型空类型(void )指针类型(*)如:char ch1, ch2; /* ch1,ch2为变量*/float x, y; /* x ,y 为实型变量*/int a, b, c; /* a,b,c 为整型变量*/在书写变量说明时,应注意以下几点:(1) 允许在一个类型说明符后,说明多个相同类型的变量。

各变量名之间用逗号间隔。

类型说明符与变量名之间至少用一个空格间隔。

(2) 最后一个变量名之后必须以“;”号结尾。

(3) 变量说明必须放在变量使用之前。

一般放在函数体的开头部分。

另外,也可在说明变量为整型的同时,给出变量的初值。

其格式为:类型说明符 变量名标识符1=初值1,变量名标识符2=初值2,...;3、数据在内存中的表示整型数据:以二进制的形式表示(1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示原码 反码(原码同) 补码(原码同)最大正整数 215-1=214+213+212+211+210+29+2827+26+25+24+23+22+21+20=32767负数:如 –123原码补码(补码加 1)1取反加1 最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215 而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16最大数215+214+213+2122+21+20=65535最小数 0 (3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short 用16 位二进制(二个字节)表示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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) 32.简答题(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<b!=c的值。

(f) 设int i=1;,则i++||i++||i++的值是多少?表达式运算结束后变量i的值是多少?(g) 设int a,b;,求表达式(a=1,a++,b=1,a&&b++)?a+1:a+4的值。

(h) 设int x=5;,求表达式x+=x-=x*x的值。

(i) 设int x=0,y=2;,则语句if(x=0)y++;执行完毕后变量y的值是多少?(j) 设int a=2,b=3;,执行表达式c=b*=a-1后变量c的值是多少?(k) 写出判断字符型变量s1的值为’0’~’9’的正确的C++表达式。

(l) 若给定条件表达式(N)?(c++):(c--),写出与N功能等价的表达式。

3.读程序写结果(1)设有以下程序段,请根据要求回答相应问题。

Int a,b,c,x;a=2;b=3;c=7;d=19;x=d/b%a;x=d%c+b/a*5+5;(2)设有以下程序段,请根据要求回答相应问题。

Int a,b,c;a=b=c=0;a=(++b)+(++c);a=b=c=0;a=(b--)+(--c);(3)写出与下列数字表达式相对应的C++表达式。

(a)a2+2ab+b2(b)4/3πR3(c)5/9(F-32)(d)a≤b≤c(4)#include<iostream.h>void func(int x,int y=10,int z=20);void main(){func(11,12,13);func(11);func(11,12);}void func(int x,int y,int z){cout<<x+y+z<<endl;}(5)#include<iostream.h>viod main(){ int x,y=5;If(x=y!=0)cout<<″x=″<<x<<endl;elsecout<<″x=″<<x++<<endl;cout<<endl;}4.编程题(1)编写程序,提示用户输入三角形的三条边长,判断该三角形是否为直角三角形,若是则输出结果以及三角形面积。

(2)编写程序,求解各种数据类型的存储长度并显示出来,在其中找出存储长度最大和最小的两种数据类型并输出。

(3)编写程序输入一个华氏温度,将其转换为摄氏温度并输出。

已知华氏稳定转换为摄氏度的计算公式如下:C=(F-32)*5/9其中,F为华氏温度,C为摄氏温度。

(4)编写程序输入一个十进制表示的正整数,将其转化为二进制表示并输出结果。

习题参考答案第1章C++语言概述1.填空题(1)函数说明,函数体(2)声明区,主程序区,函数定义区(3)多态性(4)namespace,using(5)std(6)cin,>>(7)//(8)对数据的操作2.判断题(1)对(2)错(3)错(4)错(5)错3.改错题(1)没有函数体,应改为void main() {};(2)语句没有分号,应改为using namespace myspace;(3)cout和操作符<<共同完成输出的功能,应改为cout<<" Input your name:";(4)应改为#include <iostream.h>4.简答题(略)5.编程题(略)第2章基本数据类型、运算符与表达式1.选择题(1)B (2)D (3)B (4)D (5)B2.简答题(1)(a)、(c)(e)、(f)、(g)、(h)、(i)(2)(a)、(g)、(i)、(j)(3)(a)5.5(b)0(c)20(d)0,0(e)1(f)1,2(g)3(h)-40(i)2(j)3(k)s1>='0'&&s1<='9'(l)N!=03.读程序写结果(1)0,15(2)(1、1、1),(-1、-1、-1)(3)(a)a*a+2*a*b+b*b(b)4.0/3.0*3.1415926*R*R*R(c)5.0/9.0*(F-32)(d)b>=a&&b<=c(4)364143(5)x=14.编程题(略)第3章C++的控制语句1.选择题(1)B (2)A (3)A (4)C (5)A2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)12 23 3 34 4 4 45 5 5 5 5(2)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1(3)j的值为0;i的值为2;4.编程题(略)第4章函数1.填空题(1)void(2)静态全局变量,static(3)函数重载(4)inline(5)递归函数(6)宏定义命令,文件包含命令,条件编译命令2.判断题(1)错(2)错(3)错(4)错(5)错(6)对(7)错(8)错(9)对(10)对3.读程序写结果(1)x=7,y=4x=9,y=5(2)34.56101(3)162228(4)12 15 18 21 24(5)2,1,4,1,3,2,1,4.简答题(略)5.编程题(略)第5章构造数据类型1.选择题(1)C (2)D (3)A (4)B (5)C2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)153(2)422 5 6 8 10(3)65535,21(4)419(5)6904(6)43214.编程题(略)第6章类和对象1.填空题(1)类,对象,类(2)数据成员,成员函数(3)不能(4)private,protected,public,private(5)成员函数(6)friend(7)类名,作用域运算符(8)对象名.成员名,指针变量名->成员名,(*指针变量名).成员名(9)构造,析构,构造,析构(10)常量数据,引用数据(11)全局,数据类型,所属的类(12)常成员,只读(13)成员,友元(14)类数据成员,类成员函数(15)this(16)浅拷贝2.选择题(1)C (2)C (3)B (4)C (5)B(6)C (7)D (8)B (9)C (10)D(11)A (12)C (13)D (14)D (15)B3.改错题(1)man1.salary=1000.00; 不能在类外访问类的私有成员(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值}后缺少分号“;”(3)成员函数void setdata(float x1,float y1,float r);没有实现(4)构造函数名point()应与类名同名,为Point没有头文件包含#include <iostream.h>4.读程序写结果题(1)x=0,y=0x=100,y=200(2)x=100,y=200x=1000,y=2000t=3.14(3)Sta::fun2()=10s.fun2()=11r.a=20(4)Constructor1 called!x=0Constructor2 called!x=100Destructor called!Destructor called!(5)575.简答题(略)6.编程题(略)第7章继承和派生1.填空题(1)继承(2)基类,派生类(3)private,protected,public,private(4)不可访问,保护,公有(5)私有(6)单(一),多(重)(7)赋值兼容规则(8)静态,动态(9)抽象类2.选择题(1)B (2)A (3)B (4)C (5)B(6)A (7)D (8)B (9)B (10)B(11)D (12)B3.改错题(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2000;和y.b3=3000;语句。

(2)本题的错误主要是成员函数的访问权限问题:由于派生类Derived是基类Base 的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。

对于类的不可访问和保护成员在类外是不能访问的,故main 函数中的语句obj.funl();,obj.fun2(); 和obj.fun3(); 是错误的。

4.读程序写结果题(1)d=110b=190d=110d=110(2)d=110b=190d=110b=90(3)基类B1的构造函数被调用基类B3的构造函数被调用基类B2的构造函数被调用派生类D的构造函数被调用派生类D的析构函数被调用基类B2的析构函数被调用基类B3的析构函数被调用基类B1的析构函数被调用(4)ABCDD(5)ABDD(6)AABDD(7)ABCDD(8)5255.简答题(略)6.编程题(略)第8章运算符重载1.填空题(1)函数重载(2)重载为类的成员函数,重载为类的友元函数(3)Operator(4)1,2(5)友元2.选择题(1)B (2)D (3)A (4)D (5)B(6)C (7)C (8)C3.简答题(略)4.编程题(略)第9章模板1.填空题(1)类模板,函数模板(2)类,对象(3)数据类型(4)fun(5)2.选择题(1)C (2)B (3)C (4)B (5)D3.简答题(略)4.编程题(略)第10章文件1.填空题(1)FILE,stdio.h(2)stdio.h,fopen,fclose(3)顺序,随机(4)cin,>>,cout,<<(5)ios(6)fstream,open,close(7)文件指针的当前位置,文件开头,文件尾2.选择题(1)B (2)B (3)A (4)D (5)B(6)D (7)C (8)B (9)A (10)B3.简答题(略)4.编程题(略)第11章string类与标准模板库STL 1.填空题(1)字符数组,string类(2)string(3)容器,迭代器,算法(4)顺序,关联(5)指针(6)函数模板2.简答题(略)3.编程题(略)第12章异常处理1.填空题(1)throw,try,catch(2)多(3)数据类型(4)catch(…)(5)相反2.判断题(1)错(2)对(3)错(4)错(5)错3.简答题(略)4.编程题(略)。

相关文档
最新文档