当前位置:首页 >> 初中教育 >>

第2章C语言数据类型与基本操作


第二章 C语言数据类型与基本操作

?常量和变量 ?标识符与关键字 ?整型数在计算机中的存储方式 ?有符号的数据类型和无符号的数据类型 ?运算符及表达式 ?不同类型数据间的转换

1

数据类型
整型 数值 基本 类型 字符类型 枚举 数据 类型 构造类型 数组 char 类型 实型

整型 整型 长整型 单精度 双精度

结构体
共同体

数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作

指针类型
空类型

<

>

2

基本类型
类型
关键字 (signed)int 位数 16 16 32 取值范围 -32768~32767 -32768~32767

(signed)short
整 型

(signed)long unsigned int unsigned short unsigned long float

-2147483648~2147483647
0~65535 0~65535

16
16 32 32 64 80 8

浮点型 字符型

double long double char

0~4294967295 1e-37~1e38 1e-307~1e308 1e-4931~1e4932

说明:数据类型所占位数随机器硬件不同而不同,上表以微机为例:

<

>

3

2.1 常量与变量

?整型常量
十进制:例 15,19,123,-345,0…… 八进制:以 0(零) 开头的整数 ,例 0123,011…… 十六进制:以 0x 或 0X 开头的整数,例 0x123,0Xff……

注:

问题: 问题: 用 l或0123 = (( 83 ))10 L表示一个数是长整型,例 123L; 无符号数用 u 0123 = 10 或 U表示,无符号长整型用 ))10 或 UL 表示,例: 0x123 = (( 291 ul 0x123 = 10 123u,0xful…… = (( 0Xff = 10 0Xff 255 ))10
例 30000 65536 为int型 为long int 型
例 12 与 12L

<

4

?实型常量
格式:(必须有小数点)


0.123, .123, 123.0, 0.0, 123. …… 指数格式:(必须有 数字 在 e 或 E的前面; 指 数 必须是 整型)

例:
12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5

注:
用 f 或 F 注明是单精度,用l 或 L 注明是长双精 度,没有注明则是 双精度 .

<

5

?字符常量和转义字符
?用单撇号括起来的一个字符; ?一个字符的值可用ASCⅡ数值表示; 如 'a' 'A' '? ' '\n' '\101' ?特殊形式的字符常量就是以一个“﹨‖ 开头的字符序 列,称为转转义字符。例: \n(换行); 如 'A'——65, 'a'——97, 例: '0'——48 , '\n'——10 例 转义字符举例(ch2_001.c,ch2_004.c) 'A'-------'\101'-------'\x41'--------65 转义字符及含义: 运行结果:(屏幕显示) main() ABC { 响铃 反斜杠 \a \\ I say:”How 如 '\101' -----------'A' '012' -----------'\n' are you?” printf("\101 \x42 C\n"); \C Program\ \b 退格 \? 输出结果加?号标记 printf("I'\376' -----------'?' '\x61' -----------'a' say:\"How are you?\"\n"); Turbo ‘C’ 换页 -----------'0 ' 单撇 \f '\60' \' ' \483' ----------(?) printf("\\C Program\\\n"); \n 换行 \'' 双撇 printf("Turbo \'C\'"); } \r 回车 \ddd 8进制代表的字符 运行结果: 例水平制表Tab位 main() 16进制代表的字符 \t \xhh 屏幕显示:¥ { printf("Y\b=\n"); \v 垂直制表 tab位 } <

6

?字符串常量
?用 双撇号 '' ''括起来的0个或多个字符序列; ?在内存中用‘\0‘ 作结束标记,它是一个空操作.

例 字符串''hello''在内存中 例 空串 '' ''

h e

l

l

o

\0

\0

注:
字符与字符串的区别.

例 'a'

a

''a''

a \0
char ch; ch= '' A '';
7

例:
<

char ch; ch='A';

例:

?符号常量
?

定义:用一个标识符代表一个常量
#define 标识符 代表的常量

– 常用大写字母,与变量名区分开来。 例 – 不是一个变量,是一个常量。符号常量举例(ch2_1.c) 如 #define PRICE 30 #define PRICE 30 ? 符号常量可以是: main() 整型常量 > 运行结果:total=300 { > 实型常量 int 字符常量 > num,total; num=10; 字符串常量 > total=num*PRICE; printf("total=%d",total); } 8 < >

– 变量
? 变量 及 赋值 3 ? 定义变量 : 数据类型 var1 [,var2,…,var n] ; ?一个变量可以边定义边赋值;
a

变量名 值 存储单元

变量类型决定变量所占存储空间大小变量名 a=1, b=-3,c; int …...

?所有变量必须先定义后使用。. 例: 例: int a,b,c; ?一般在函数开始部分定义. address int a=2,b,c=4; float data; 2 bytes 1 float data=3.67; a main() main() 例1 { { int a,b=2; int a,b=2; address char ch=?A‘; 例2 int student; 2 bytes b变量定义 int x=1,y=1,z=1; -3 float data; float a,b,c; a=1; stadent=19; //Undefined symbol ‘statent’ in function main address c=a%b; // illegal use of floating pointint x=y=z=1; main in a=1; float data; 可执行语句 function 2 bytes ?? data=(a+b)*1.2; c data=(a+b)*1.2; 编译程序根据变量定义为其
分配指定字节的内存单元 data=%f\n'',data); printf(''data=%f\n'',data); printf('' …...
随机数
9

<

>

} }

内存

?整型变量
? 占 2 字节bytes; ? short≤int≤long ? sizeof( type )求字节数

?实型变量
?单精度: 占 4 bytes,7 位有效数值 ?双精度: 占 8 bytes,15~16位有效数值

?字符变量 a; 例 float
?以 ASCⅡ 字符集中的数值保存在内存中; a=111111.111; /* a=111111.1*/ double b; ?字符可以当作一般整型数来处理. b=111111.111; /* b=111111.111*/ 例 a='D'; /* a=68; */ x='A'+5; /* x=65+5; */ C程序 中没有 字符串变量 s='! '+'G' /* s=33+71; */ >

<

10

例 #define PRICE 12.5 main() { int num=3; float total; char ch1,ch2='D'; 定义符号常量 定义变量

total=num*PRICE; ch1=ch2- ' A'+'a'; printf("total=%f,ch1=%c\n",total,ch1); } 运行结果: total=37.500000, ch1=d

输出

11

2.2 标识符和关键字
-标识符 ?一个标识符可由字母、数字和下划线组成 ; ?必须用字母或下划线开头;

?大小写要区分 ; ?不能用保留关键字作变量名 ;
?避免混淆的字母 ; 例如 : l 与 I, o 与 0…….. 例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123
12

-关键字
32 个关键字:(由系统定义,不能重作其它定义) auto continue enum if short switch volatile break default extern int signed typedef while case char const do double else float for goto long register return sizeof static struct unsigned union void

13

2.3 整型数在计算机中的存储方式
1.二进制位与字节 计算机系统的内存储器,是由许多称为字节的单元 组成的,1个字节由8个二进制位(bit)构成,每位的取 值为0/1。最右端的那1位称为“最低位”,编号为0;最 左端的那1位称为“最高位”,而且从最低位到最高位顺 序,依次编号。图11-1是1个字节各二进制位的编号。

7

6

5

4

3

2

1

0

图11-1 1个字节各二进制位的编号 2.数值的原码表示 数值的原码表示是指,将最高位用作符号位(0表示正数, 1表示负数),其余各位代表数值本身的绝对值(以二进 制形式表示)的表示形式。为简化描述起见,本节约定 用1个字节表示1个整数。
14

2.3 整型数在计算机中的存储方式
例如,+9的原码是00001001 └→符号位上的0表示正数 -9的原码是10001001。 └→符号位上的1表示负数 3.数值的反码表示 数值的反码表示分两种情况: (1)正数的反码:与原码相同。 例如,+9的反码是00001001。 (2)负数的反码:符号位为1,其余各位为该数绝对 值的原码按位取反(1变0、0变1)。 例如,-9的反码:因为是负数,则符号位为“1‖;其 余7位为-9的绝对值+9的原码0001001按位取反为 1110110,所以-9的反码是11110110。
15

2.3 整型数在计算机中的存储方式
4.数值的补码表示 数值的补码表示也分两种情况: (1)正数的补码:与原码相同。 例如,+9的补码是00001001。 (2)负数的补码:符号位为1,其余位为该数绝对值 的原码按位取反;然后整个数加1。 例如,-9的补码:因为是负数,则符号位为“1‖;其 余7位为-9的绝对值+9的原码0001001按位取反为1110110; 再加1,所以-9的补码是11110111。 已知一个数的补码,求原码的操作分两种情况: (1)如果补码的符号位为“0‖,表示是一个正数, 所以补码就是该数的原码。 (2)如果补码的符号位为“1‖,表示是一个负数, 求原码的操作可以是:符号位不变,其余各位取反,然后 再整个数加1。

16

2.3 整型数在计算机中的存储方式
例如,已知一个补码为11111001,则原码是10000111(-7):因 为符号位为“1”,表示是一个负数,所以该位不变,仍为 “ 1” ; 其 余 7 位 1111001 取 反 后 为 0000110 ; 再 加 1, 所 以 是 10000111。
5.数值在计算机中的表示──补码 在计算机系统中,数值一律用补码表示(存储),原因在于:使 用补码,可以将符号位和其它位统一处理;同时,减法也可 按加法来处理。另外,两个用补码表示的数相加时,如果最 高位(符号位)有进位,则进位被舍弃。 (用一字节表示数)

原码
+7 -7 00000111 10000111

反码
00000111 11111000

补码
00000111 11111001

+0
-0

00000000
10000000

00000000
11111111

00000000
00000000
17

2.4 有符号的数据类型和无符号的数据类型
表2.3基本数据归纳
类型标识符 类型 长度 取值范围及精度

字符型 [signed] char unsigned char 整 形 [signed] short [int]
unsigned short [int] [signed] long [int] unsigned long [int] 实 型 Float Double

8 8 16
16 32 32 32 64

-128~+127 0~255 -32768~+32767
0~65535 -2 147 483~+2 147 647 0~4 294 967 295 约±(3.4×10-38~3.4×1038),6位精度 约±(1.7×10-308~1.7×10308),16位 精度
18

算术运算符:+ - * / % ++ -关系运算符:< <= == > >= != 逻辑运算符:! && || 位运算符:<< >> ~ | ^ & 赋值运算符: = += -= 条件运算符: ? : 逗号运算符: , 地址运算符:* & 求字节数运算符: sizeof 强制类型转换:(type-name) 分量运算符: . -> 下标运算符:[ ] 其他 :( ) < >
19

? 2.5 运算符及表达式

?赋值运算符和复合赋值运算符及表达式
? 简单的赋值运算
?

=

? 变量 = 表达式 例 a=3; ?复合的赋值运算符 ? += -= d=func(); 《= 》= &= ^= |= *= /= %= c=d+2; ? 变量1 操作符= 表达式2 ? 变量1 = 变量1 操作符 表达式2 a+=3 x*=y+8 x%=3 a=a+3 x=x*(y+8) x=x%3

20

<

>

?算术运算符及表达式 运算符 :+ - * / %(取余)++(自增)--(自减)
–运算规律 :从左至右 –优先级 : % ---->* / -----> + (1) (2) (3)

注:

–两个整数 / 是 整型; –两个整数 %是 整型. 例 例 5/2 = 5/2 = 2 -5/2 = -5/2 = -2 (向零取整)

例 例

5%2 5%2 -5%2 -5%2 1%10 1%10 5%1 5%1 5.5%2 5.5%2

= = 1 = = -1 = = 1 = = 0 (?)
21

<

>

? 自增、自减运算符 ++
–自增、自减 ? 在变量前面: ? 在变量后面:

-++i, --i

(在表达式中,先自加(自减)后用其值)

i++, i--

(在表达式中,先用其值再自加(自减))



//k=4,j=4 j=3; k=++j; //k=3,j=4 j=3; k=j++; j=3; printf("%d",++j); //4 j=3; printf("%d",j++); //3 //c=20,a=4 a=3;b=5;c=(++a)*b; //c=15,a=4 a=3;b=5;c=(a++)*b;

<

>

22

注意 : 只针对变量,而不针对常量和表达式;不要产生
二义性;运算规律是自右至左。




8++

(x*y)++
j= -(++k); k=4 j= -(k++); k=4 j= -4 j= -3

k=3; j= -++k; j= -k++;

? 解决办法
1. 避免在同一表达式中的同一变量的自加自减.

例: i=3; ① y=6 y=(i++)+(i++) ② y=7

i=5 i=5

y=3+3; i++; i++; y=3+4; i++;
23

2.不使用连续运算符,用括弧分隔。 例1:i=3;j=1;x=i+++j; ① x=i+(++j); ② x=(i++)+j; 例2: i=3;j=1;x=i-++j ; 等价于 x=i-(++j); x=1 i=3

x=5
x=4

i=3
i=4

j=2
j=1

j=2

3.在函数调用时,实参的求值顺序C无统一规定.

例3: i=3; printf("%d,%d", i , i++); 可能输出: ① 3,3 ② 4,3

24

注:
?运算顺序: 右-to-左 ?操作符左边只能是 变量,不能是常量和 表达式 ?类型不一致,数值型和字符型会自动转换。 ?高到低转换数据有可能丢失 例 3=x-2*y; a+b=3;

// b=5;a=5 a=(b=5) 例: int a=2; //表达式值11,c=6,a=11 a=5+(c=6) a%=4-1; a=(b=4)+(c=6) 等价于a=a+(a=a*(a=a-(a=a*3))) a+=a*=a-=a*=3;//a=0 //表达式值10,a=10,b=4,c=6 a=(b=10)/(c=2) //表达式值5,a=5,b=10,c=2 < >
25

例 int i; 例 float f; i=2.56; int i; //结果i=2; i=10; 例: a=12; 例: a+=a-=a*a //a=-264 等价于a=a+(a=a-(a*a)) a=b=c=5 f=i; //表达式值为5,a,b,c值为5 则 f=10.0

?长度测试运算符sizeof
长度测试运算符sizeof可用来测试某个类型的变量所占用 计算机内存空间的字节长度。 格式为:sizeof(类型名) 例: main( ) { printf("char:%d bytes\n",sizeof(char)); printf("short:%d bytes\n",sizeof(short)); printf("int:%d bytes\n",sizeof(int)); printf("long:%d bytes\n",sizeof(long)); printf("float:%d bytes\n",sizeof(float)); printf("double:%d bytes\n",sizeof(double)); }

26

?关系运算及关系表达式
? < <= == >= > ? 运算顺序: 左-to-右 ? 优先级: 例 != <
<= > >= == //c>(a+b) !=

优先级别相同(高)

c>a+b a>b!=c //(a>b)!=c ?关系表达式的值为一个逻辑值,用 1 代表“真”, a==b<c //a==(b<c) 用 0 代表“假”。非零数也表示“真”。 a=b>c //a=(b>c) 例 int a=3,b=2,c=1,d,f; a>b //表达式值1 (a>b)==c //表达式值1 b+c<a //表达式值0 d=a>b //d=1 //f=0 f=a>b>c

优先级别相同(低)

<

>

27

注意:

例 若 a=0; b=0.5; x=0.3; 则 a<=x<=b的值为 0 例 5>2>7>8在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2

例 'a'>0 结果为 1 'A'>100 结果为 0

<

>

28

注意: 例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6 例 注意区分“=”与“==” int a=0,b=1; if(a=b) printf("a equal to b"); else printf("a not equal to b");

29

?逻辑运算符和逻辑表达式
?
a T

!

&&
b T

||
!a F F T T !b F T F T a&&b T F F F

a||b
T T T F

T
F F

F T
F

运用逻辑值 :

0 表示 “假” 非0 表示 “真” 求逻辑值时 : “假” 则为0 “真” 则为1
< >
30

?优先级别:

! && ||



!

:right-to-left

?运算顺序:

&& :left-to-right



||

: left-to-right

例 a<=x 例 a=4;b=5; && x<=b // (a<=x) 例:已知year 为整型变量,不能使表达式&& (x<=b) !a a>b&&x>y //值为0 //(a>b)&&(x>y) (year%4==0&&year%100!=0)||(year%400==0)的值 a==b||x==y a&&b //值为1 //(a==b)||(x==y) 为“真”的数据是() a||b (B)1992 (A)1990 !a||a>b //值为1 //(!a)||(a>b) !a||b (D)2000 //值为1 (C)1996 4&&0||2 //值为1 5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1 'c'&&'d' //值为1 < >
31

?优先级别: ?运算顺序:

! &&



!

:right-to-left

&& :left-to-right 低 || :left-to-right

||

短路特性:结果能确定后,后面的就不再运算。 例 a&&b&&c //只在a为真时,才判别b的值;
(1假为假)

例 a||b||c
(1真为真)

只在a、b都为真时,才判别 c的值 //只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值

例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d) //结果m=0,n=1 < >
32

?条件运算符及条件表达式
? 表达式1 ? 表达式2 : 表达式3
? 像 if 语句的简化

?先求表达式1,根据其值再求表达式2或表达式3; 例 例 求 a+|b| if (a>b) 例 (a==b)? %d': ,a); ' 如 printf(" 'Y " 'N x>0?1:(x<0?-1:0) printf("%d",a>b?a:b); printf("a+|b|=%d\n",b>0?a+b:a-b); (x%2==1)?1:0 else =0 非0 (x>=0)?x:-x expr1 printf("%d",b); (c>= 'a ' right-to-left ?运算顺序: && c<= 'z ')?c- 'a '+ 'A ':c

如 a>b?a:c>d?c:d ? a>b?a:(c>d?c:d) 取expr2值 取expr3值 ?expr1、expr2、expr3 值的类型如果不一样,则值转换 成较高的类型.
例 x? 'a ': 'b ' //x=0,表达式值为'b '; x?0,表达式值为'a ' x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
33

<

>

?条件运算符及条件表达式

例:从键盘读入一个整数赋给x, 如果x大于等于0,把x的 平方赋给y,否 则把x的2倍赋给y。 # include "stdio.h" 请编制程序,任意输入两个整数, 分析下列程序的输出结果。 编制程序,输入大写字母,则输出小写字母;输入小写字母, 输出其中较小者。 void "stdio.h" #include main() 则输出大写字母。 main() { void main() main() { int x,y; { { int scanf("%d",&x); n1,n2,main; int i,j,k,a=3,b=2; char ch; y=x>=0?x*x:2*x; i=(--a==b++)?--a:++b; clrscr(); printf("input any letter: "); printf("input two number(n1,n2): "); j=a++; printf("y=%d\n",y); scanf("%c",&ch); scanf("%d,%d",&n1,&n2); } k=++b; ch=((ch>='A')&&(ch<='z'))?ch+32:ch-32; printf("i=%d,j=%d,k=%d\n",i,j,k); printf("output:%c\n",ch);min=(n1>n2)?n2:n1; printf("min=%d",min); } } }

<

>

34

?逗号运算符和逗号表达式
?表达式1, 表达式2,…… 表达式n ?运算顺序: 左-to-右 ?逗号表达式的值是 表达式 n 的值 ?不是所有的逗号都是逗号表达式 //a=15,表达式值60 例 a=3*5,a*4 例: //a=15,表达式值20 a=3*5,a*4,a+5 /*ch2_6.c*/ 例 x=(a=3,6*3)//赋值表达式,表达式值18,x=18 #include <stdio.h> x=a=3,6*a //逗号表达式,表达式值18,x=3 main() 例 a=1;b=2;c=3; 运行结果:x=3 { int x,y=7; //1,2,3 printf(―%d,%d,%d‖,a,b,c); float z=4; printf(―%d,%d,%d‖,(a,b,c),b,c); //3,2,3 x=(y=y+6,y/z); printf("x=%d\n",x); >}

<

35

?位运算
位运算符 1.按位与── &
(1)格式:x&y

(2)规则:对应位均为1时才为1,否则为0:3&9=1。 例如,3&9=1: 0011 & 1001 ──── 0001=1 (3)主要用途:取(或保留)1个数的某(些)位,其余各位置0。

2.按位或── |
(1)格式:x|y (2)规则:对应位均为0时才为0,否则为1:3|9=11。

0011 | 1001 ──── 1011=11 (3)主要用途:将1个数的某(些)位置1,其余各位不变。

例如,3|9=11:

36

?位运算
3.按位异或──^ (1)格式:x^y (2)规则:对应位相同时为0,不同时为1:3^9=10。 (3)主要用途:使1个数的某(些)位翻转(即原来为1的位 变为0,为0的变为1),其余各位不变。 4.按位取反──~ (1)格式:~x (2)规则:各位翻转,即原来为1的位变成0,原来为0的 位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。 (3)主要用途:间接地构造一个数,以增强程序的可移植 性。 5.按位左移──<< (1)格式:x<< 位数 (2)规则:使操作数的各位左移,低位补0,高位溢出: 37 5<<2=20。

?位运算
6.按位右移──>> (1)格式:x>>位数 (2)规则:使操作数的各位右移,移出的低位舍弃;高位: 1)对无符号数和有符号中的正数,补0; 2)有符号数中的负数,取决于所使用的系统:补0的称为 “逻辑右移”,补1的称为“算术右移”。例如,20 >> 2=5。 说明: (1)x、y和“位数”等操作数,都只能是整型或字符型 数据。除按位取反为单目运算符外,其余均为双目运算 符。 (2)参与运算时,操作数x和y,都必须首先转换成二进 制形式,然后再执行相应的按位运算。 例如,5<<2=20: 0101 → 10100, 20 >> 2=5:10100 → 00101。 38

?位运算
(3)实现&、|、^运算主要用途的方法 1)构造1个整数:该数在要取(或保留)的位、或要置1 的位、或要翻转的位上为1,其余均为0。 2)进行按位与、或按位或、或按位异或操作。 (4)实现按位取反主要用途的方法 1)求~0,间接地构造一个全1的数; 2)按需要进行左移或右移操作,构造出所需要的数。 例如,直接构造一个全1的数,在IBM-PC机中为0xffff (2字节),而在VAX-11/780上,却是0xffffffff(4字 节)。如果用~0来构造,系统可以自动适应。

39

? 2.6 不同类型数据间转换
–自动转换 (automatic)
–转换规律如下图

<

>

40

说明: 高 double float 必须转换 long

运算之前 例 int i; float f; double d; long l;
10+?a‘ +i*f int int d/l

unsigned

低 例 char ch; int i; float f; double d;

int

char,short

ch/i int int

+ f*d - (f+i) double double double double

double double double double

double

double double
41

<

>

double

–强制转换
? (类型)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 ? 注意 值的类型转换了,但变量的类型没变. 例 main() 思考 { float x; int i; 高类型向低类型转换会怎样… x=3.6; i=(int)x; printf("x=%f,i=%d",x,i); } 结果:x=3.600000,i=3

<

>

42

本章小结
1、基本数据类型的种类、取值范围、在内存中占用字节数; 2、常量的表示方法; 3、标示符的命名规则,变量的赋值、存放数据的实质; 4、数据类型的转换规律; 5、字符与字符串的区别; 6、运算符及表达式:符号、结合规律、优先级、取值; 7、逻辑运算符及逻辑值的表示; 8、逗号表达式及取值。

43

练习题
1、设int x=1,y=1;表达式(!x||y--)的值是() A. 0 B. 1 C. 2 D. -1 2、以下选项中合法的用户标识符是() A. long B. _2test C. 3dmax D. a.dat 3、若x=3.5,y=2.5,a=2,b=3,则 (float)(a+b)/2+(int)x%(int)y=( ) A. 3.5 B. 2.6 C. 3 D. 2.1 4、假设x和y为double型,则表达式x=2,y=x+3/2的值是() A. 3.500000 B. 3 C. 2.000000 D. 3.000000 5、已知a大于b及a小于等于c,则可以表示为() A. b<a&&a=<c B. b<a&&a<c C. b<a||a<=c D. b<a&&c>=a 6、c语言中合法的常量为() A. e-3 B. 1.2e+02 C. ‘\039’ D. ‘\xab’ 7、int I=0;执行语句while(I++<5);后,I的值是() A. 5 B. 6 C.7 D. 4 8、表达式:10!=9的值是() A. true B. 0 C. 1 D. 非零值 9、判断题:‘a’和“a”在内存中所占字节相同。() c语言没有逻辑值。 ()

44

练习题参考答案
1、设int x=1,y=1;表达式(!x||y--)的值是(B) A. 0 B. 1 C. 2 D. -1 2、以下选项中合法的用户标识符是(B) A. long B. _2test C. 3dmax D. a.dat 3、若x=3.5,y=2.5,a=2,b=3,则 (float)(a+b)/2+(int)x%(int)y=( a ) A. 3.5 B. 2.6 C. 3 D. 2.1 4、假设x和y为double型,则表达式x=2,y=x+3/2的值是(D) A. 3.500000 B. 3 C. 2.000000 D. 3.000000 5、已知大于b及a小于等于c,则可以表示为(D) A. b<a&&a=<c B. b<a&&a<c C. b<a||a<=c D. b<a&&c>=a 6、c语言中合法的常量为(b) A. e-3 B. 1.2e+02 C. ‘\039’ D. ‘\xab’ 7、int I=0;执行语句while(I++<5);后,I的值是(B) A. 5 B. 6 C.7 D. 4 8、表达式:10!=9的值是(C) A. true B. 0 C. 1 D. 非零值 9、判断题:‘a’和“a”在内存中所占字节相同。() c语言没有逻辑值。 ()

45


相关文章:
第2章 C语言数据类型与基本操作
第2 章 C 语言数据类型与基本操作 一、选择题 1. 在 C 语言中,正确的 int 类型的常数是( )。 A.-2U B.059 C.3a D.0xaf 2.下列数据中,为字符的是...
02 《C语言程序设计》教案 第二章 基本数据类型和表达式(1)
02 《C语言程序设计》教案 第二章 基本数据类型和表达式(1)_计算机软件及应用...C 语言是用来书写程序的,而通常程序要对数据进行操作处理:处理的对象是数据通过...
《C语言程序设计》第2章 数据类型与运算练习题及解答
C语言程序设计》第2章 数据类型与运算练习题及解答_信息与通信_工程科技_专业资料。中国铁道出版社第2 章数据类型和运算符一.选择题。 1.下列是用户自定义标识...
C语言基本数据类型答案第二章
C语言基本数据类型答案第二章_计算机硬件及网络_IT/计算机_专业资料。作业二 基本数据类型 1.请将下面各数用八进制和十六进制数表示:(20 分) (1) 75 (2) ...
C语言二级考试 第二章 数据类型 练习题
C语言二级考试 第二章 数据类型 练习题_IT认证_资格考试/认证_教育专区 暂无评价|0人阅读|0次下载|举报文档 C语言二级考试 第二章 数据类型 练习题_IT认证_...
第2章 数据类型
第2章 数据类型_数学_自然科学_专业资料。C语言第...是一个值的集合和定义在这个集合上的一组操作的...C 的数据类型如下:基本类型 整型 字符型 实型(即...
《明解C语言》第2章 运算和数据类型练习题答案
《明解C语言第2章 运算和数据类型练习题答案_IT认证_资格考试/认证_教育专区。《明解C语言第2章 运算和数据类型练习题答案 ...
第二章 基本数据类型
C 语言程序设计基础 基本数据类型、 第二章 基本数据类型、运算符及表达式 [教学目的] 1.了解 C 语言基本数据类型和运算符。 2.掌握各种基本数据类型的表示方...
第2章 数据类型与运算符
第2章 数据类型与运算符_计算机硬件及网络_IT/...接下来将针对 C 语言中的二进制、八进制和十六进制...求补码这三步操作,最终 将得到的机器数存入内存。 ...
C语言第二章 数据类型习题
第2章C语言基本数据类型及... 33页 10财富值 自定义数据类型习题及答案......1.9】在 C 语言中,输入操作是由库函数【 成的,输出操作是由库函数【 】...
更多相关标签:
c语言基本数据类型 | c语言的基本数据类型 | c语言基本类型 | c语言基本类型包括 | c语言的基本类型 | c语言最基本数据类型 | c语言链表的基本操作 | c语言栈的基本操作 |