当前位置:文档之家› 第2章 数据类型与运算符—补充案例

第2章 数据类型与运算符—补充案例

第2章 数据类型与运算符—补充案例
第2章 数据类型与运算符—补充案例

第2章数据类型与运算符

案例2-1 什么是二进制

一、案例描述

1、考核知识点

编号:00602001

名称:什么是二进制

2、练习目标

了解二进制的表达形式

掌握二进制和十进制的互相转换

3、需求分析

二进制是一种“逢二进一”的机制,它用0和1两个符号来描述。为了让初学者更好地掌握二进制,本案例将对0-9这十个数字分别用十进制和二进制打印出来。

4、设计思路(实现原理)

1)声明main()函数

2)在main()函数中对0-9这十个数字分别用十进制和二进制打印

二、案例实现

编写程序,代码如下:

1#include

2#include

3void main()

4{

5int num;

6char s[16];

7printf(" -----------------\n");

8printf("| 十进制 | 二进制 |\n");

9printf("|-----------------|\n");

10for (num = 0; num <= 9; num++)

11{

12itoa(num, s, 2);

13printf("| %d | %6s |\n", num, s);

14}

15printf(" -----------------\n");

16getchar();

17}

1

运行结果如图2-1所示。

图2-1运行结果

三、案例总结

1、从运行结果中可以看出,当用二进制表示十进制数字2时,由于二进制的数码只有0和1,所以根据“逢二进一”的规则,需要向高位进一位,表示为“10”。同理,使用二进制表示十进制数字4时,继续向高位进一位,表示为“100”。

2、需要注意的是,十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。

案例2-2 八进制与十六进制

一、案例描述

1、考核知识点

编号:00602002

名称:八进制与十六进制

2、练习目标

了解八进制和十六进制的表达方式

掌握十进制、八进制和十六进制的转换方式

3、需求分析

八进制是一种“逢八进一”的进制,它由0~7八个符号来描述;十六进制是一种“逢十六进一”的进制,它由0~9、A~F十六个符号来描述。为了加深学员对八进制和十六进

制的理解,本案例将用十进制、八进制、十六进制这三种格式分别打印0-32这33个数字。

4、设计思路(实现原理)

1)声明main()函数。

2)在main()函数中用十进制、八进制、十六进制这三种格式分别打印0-32。

2

3

编写程序,代码如下:

1 #include 2

void main() 3 { 4 int num;

5 printf(" ----------------------------\n");

6 printf("| 十进制 | 八进制 | 十六进制 |\n");

7 printf("|----------------------------|\n");

8 for (num = 0; num <= 32; num++)

9 { 10 printf("| %6d | %6o | %6x |\n", num, num, num);

11 }

12 printf(" ----------------------------\n"); 13 getchar();

14 }

运行结果如图2-2所示。

图2-2 运行结果

从案例中可以看出,当使用八进制表示十进制数字8时,由于表示八进制的符号只有0~7,因此,根据逢八进一的规则,需要向高位进一位,表示为10。同理,使用八进制表示十进制数字16时,继续向高位进一位,表示为20。当使用十六进制表示十进制数字16时,由于表示十六进制的符号只有0~9、A~F,因此,根据逢“逢十六进一”的规则,需要向高位进一位,表示为10。同理,使用十六进制表示十进制数字32时,继续向高位进一位,表示为20。

案例2-3 进制转换与ASCII码表

一、案例描述

1、考核知识点

编号:00602003

名称:进制转换与ASCII码表

2、练习目标

了解进制转换和ASCII码

掌握常用进制间的进制转换和常见的ASCII码

3、需求分析

在计算机中一个数值可以用不同的进制形式来表示,但不管是哪种进制形式来表示,数值本身是不会发生变化的。为了加深学员对进制转换的认识,本案例将分别用十进制、

二进制、八进制、十六进制这四种格式打印0-32这33个数字。

4、设计思路(实现原理)

1)声明main()函数。

2)在main()函数中用十进制、二进制、八进制、十六进制这四种格式打印0-32。

二、案例实现

编写程序,代码如下:

1#include

2#include

3void main()

4{

5int num;

6char s[16];

7printf(" ---------------------------------------\n");

8printf("| 十进制 | 二进制 | 八进制 | 十六进制 |\n");

9printf("|---------------------------------------|\n");

10for (num = 0; num <= 32; num++)

11{

12itoa(num, s, 2);

4

5

13 printf("| %6d | %8s | %6o | %6x |\n", num, s, num, num);

14 }

15 printf(" ---------------------------------------\n"); 16 getchar();

17 }

运行结果如图2-3所示。

图2-3 运行结果

三、案例总结

1、由于计算机中的数据都是以二进制的形式被存储,我们输入的数字,不管是十进制、八进制、十六进制,都将被转换为二进制。而我们打印数字时,不管是十进制、八进制还是十六进制,都是从二进制转换来的。

2、同样,计算机中的字符数据也是以二进制的形式存储,计算机使用特定的整数编码来表示对应的字符。我们通常使用的英文字符编码是 ASCII 。

6

案例2-4 常量与变量

一、案例描述

1、 考核知识点

编号:00602005 名称:常量与变量

2、 练习目标

了解常量与变量区别 掌握常量和变量的应用

3、 需求分析

程序将数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。为了让初学者更好地掌握变量,本案例将实现变量的定义和赋值。

4、 设计思路(实现原理)

1) 声明main()函数。

2) 在main()函数中,实现变量的定义和赋值。

二、案例实现

编写程序,代码如下:

1 #include 2

void main() 3 { 4 int x = 0, y; 5 y = x + 3;

6 printf("x = %d, y = %d\n", x, y);

7 getchar();

8 }

运行结果如图2-4所示。

图2-4 运行结果

该案例中,第4行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值,变量x和y在内存中的状态如图2-5所示。

图2-5x、y变量在内存中的状态

第5行代码的作用是为变量赋值,在执行第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化,如图2-6所示。

图2-6x、y变量在内存中的状态

案例2-5 变量的数据类型

一、案例描述

1、考核知识点

编号:00602006

名称:变量的数据类型

2、练习目标

了解有关C语言的基本知识

3、需求分析

在应用程序中,由于数据存储时所需要的容量各不相同,因此,为了区分不同的数据,需要将数据划分为不同的数据类型。为了让初学者更好地掌握变量,本案例将针对六种基

本数据类型,分别定义六个变量,并进行赋值操作。为了让初学者更好地掌握变量的数据

类型,本案例将针对六种基本数据类型,分别定义六个变量,并进行赋值操作。

4、设计思路(实现原理)

1)声明main()函数。

2)在main()函数中,针对六种基本数据类型,分别定义变量并赋值。

3)打印变量的值。

7

8

编写程序,代码如下:

1 #include 2

void main() 3 { 4 short a = 123; 5 int b = 123456; 6 long c = 123456789; 7 float d = 3.14; 8 double e = 3.141593; 9 char f = 'f';

10 printf("short a = %d\n", a); 11 printf("int b = %d\n", b); 12 printf("long c = %d\n", c); 13 printf("float d = %f\n", d); 14 printf("double e = %f\n", e); 15 printf("char f = %c\n", f); 16 getchar();

17 }

运行结果如图2-7所示。

图2-7 运行结果

三、案例总结

1、C 语言对变量的数据类型有严格的限定,在定义变量时必须声明变量的类型。

2、定义变量的方式有两种,具体如下: 方式一:

数据类型 变量名 = 初始化值;

方式二:

数据类型 变量名; 变量名 = 初始化值;

案例2-6 类型转换

一、案例描述

1、考核知识点

编号:00602007

名称:类型转换

2、练习目标

了解变量类型转换的规则

3、需求分析

强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。例如,两种类型彼此不兼容,或者目标类型取值范围小于源类型,都需要进行强制类型转换。为了明确两种不同类型的变量如何进行强制类型转换,本案例以int和char类型为例,演示如何将int类型的变量强转为char类型。

4、设计思路(实现原理)

1)声明main()函数。

2)在main()函数中定义多个int类型的变量和char类型的变量,并将int类型的变量的值赋给char类型的变量。

3)分别打印int类型变量的值和char类型变量的值。

二、案例实现

编写程序,代码如下:

1#include

2void main()

3{

4int A = 72;

5int B = 101;

6int C = 108;

7int D = 108;

8int E = 111;

9char a = (char)A;

10char b = (char)B;

11char c = (char)C;

12char d = (char)D;

13char e = (char)E;

14printf("%d %d %d %d %d\n", A, B, C, D, E);

15printf("%c%c%c%c%c\n", a, b, c, d, e);

16getchar();

17}

运行结果如图2-8所示。

9

10

图2-8 运行结果

三、案例总结

1、强制类型转换,具体格式如下:

目标类型 变量 = (目标类型)值

2、在对变量进行强制类型转换时,会发生取值范围较大的数据类型向取值范围较小的数据类型的转换,如将一个int 类型的数转为char 类型,这样做极容易造成数据精度的丢失。int 在内存中占用4个字节。char 类型的数据在内存中占用1个字节,当char 类型的变量被赋入int 类型的值时,前面3个高位字节的数据会丢失,数值也会发生改变。

案例2-7 算术运算符

一、案例描述

1、 考核知识点

编号:00602009 名称:算术运算符

2、 练习目标

了解有哪些算术运算符 掌握算术运算符的用法

3、 需求分析

在数学运算中最常见的就是加减乘除四则运算。C 语言中的算术运算符就是用来处理四则运算的符号,这是最简单、最常用的运算符号。为了加深初学者对算术运算符的认识,本案例将对所有算术运算符进行演示。

4、 设计思路(实现原理)

1) 声明main()函数。

2) 在main()函数中定义变量a 、b 。 3) 用算术运算符对变量进行处理。

二、案例实现

编写程序,代码如下:

1 #include

2 void main()

11

3 { 4

int a, b; 5 a = 3;

6 printf("a = 3, +a = %d\n", +a);

7 a = 4;

8 printf("a = 4, -a = %d\n", -a); 9 a = 5; b = 5;

10 printf("a = 5, b = 5, a + b = %d\n", a + b); 11 a = 6; b = 4;

12 printf("a = 6, b = 4, a - b = %d\n", a - b); 13 a = 3; b = 4;

14 printf("a = 3, b = 4, a * b = %d\n", a * b); 15 a = 5; b = 5;

16 printf("a = 5, b = 5, a / b = %d\n", a / b); 17 a = 7; b = 5;

18 printf("a = 7, b = 5, a % b = %d\n", a % b); 19 a = 2;

20 printf("a = 2, ++a = %d, a = %d\n", ++a, a); 21 a = 2;

22 printf("a = 2, a++ = %d, a = %d\n", a++, a); 23 a = 2;

24 printf("a = 2, --a = %d, a = %d\n", --a, a); 25 a = 2;

26 printf("a = 2, a-- = %d, a = %d\n", a--, a); 27 getchar();

28 }

运行结果如图2-9所示。

图2-9 运行结果

三、案例总结

1、进行四则混合运算时,运算顺序遵循数学中“先乘除后加减”的原则。

2、在进行自增(++)和自减(--)的运算时,如果运算符(++或--)放在操作数的前面则是先

进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。

3、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有浮点数参与运算,系统会将整数数据隐形类型转换为浮点类型,最终得到的结果会是一个浮点数。例如,2510/1000属于整数之间相除,会忽略小数部分,得到的结果是2,而2.5/10的实际结果为0.25。

案例2-8 赋值运算符

一、案例描述

1、考核知识点

编号:006020010

名称:赋值运算符

2、练习目标

了解有哪些赋值运算符

掌握赋值运算符的用法

3、需求分析

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。为了让初学者熟悉赋值运算符的用法,本案例将对所有赋值运算符进行演示。

4、设计思路(实现原理)

1)声明main()函数。

2)在main()函数中定义变量a、b。

3)用赋值运算符对变量进行处理。

二、案例实现

编写程序,代码如下:

1#include

2void main()

3{

4int a, b;

5 a = 3; b = 2;

6printf("a = %d, b = %d\n", a, b);

7 a = 3; b = 2; a += b;

8printf("a = 3, b = 2, a += b, a = %d, b = %d\n", a, b);

9 a = 3; b = 2; a -= b;

10printf("a = 3, b = 2, a -= b, a = %d, b = %d\n", a, b);

11 a = 3; b = 2; a *= b;

12printf("a = 3, b = 2, a *= b, a = %d, b = %d\n", a, b);

13 a = 3; b = 2; a /= b;

14printf("a = 3, b = 2, a /= b, a = %d, b = %d\n", a, b);

12

13

15 a = 3; b = 2; a %= b;

16

printf("a = 3, b = 2, a %%= b, a = %d, b = %d\n", a, b); 17 getchar();

18 }

运行结果如图2-10所示。

图2-10 运行结果

三、案例总结

1、在赋值过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量。

2、在C 语言中可以通过一条赋值语句对多个变量进行赋值,具体示例如下:

int a, b, c, d;

a =

b =

c =

d = 5; // 为四个变量同时赋值

3、除了“=”,其他的都是特殊的赋值运算符,以“+=”为例:

int x = 2; x += 3;

上述代码中,执行代码x += 3后,x 的值为5。这是因为在表达式x+=3中的执行过程为: (1)将x 的值和3相加。

(2)将相加的结果赋值给变量x 。

所以,表达式x += 3就相当于x = x + 3,先进行相加运算,再进行赋值。-=、*=、/=、%=赋值运算符都可依此类推。

案例2-9 比较运算符

一、案例描述

1、 考核知识点

编号:006020011 名称:比较运算符

2、 练习目标

了解有哪些比较运算符 掌握比较运算符的用法

3、 需求分析

比较运算符用于对两个数值或变量进行比较,其结果是一个逻辑值(“真”或“假”)。C 语言的比较运算中,“真”用数字“1”来表示,“假”用数字“0”来表示。为了让初学

14

者熟悉比较运算符的用法,本案例将对所有比较运算符进行演示。

4、 设计思路(实现原理)

1) 声明main()函数。

2) 在main()函数中定义变量a 、b 。 3) 用比较运算符对变量进行处理。

二、案例实现

编写程序,代码如下:

1 #include 2

void main() 3 { 4 int a = 4, b = 3;

5 printf("4 == 3 的结果是 %d\n", a == b);

6 printf("4 != 3 的结果是 %d\n", a != b);

7 printf("4 < 3 的结果是 %d\n", a < b);

8 printf("4 > 3 的结果是 %d\n", a > b);

9 printf("4 <= 3 的结果是 %d\n", a <= b); 10 printf("4 >= 3 的结果是 %d\n", a >= b); 11 getchar();

12 }

运行结果如图2-11所示。

图2-11 运行结果

三、案例总结

1、比较运算符用于对两个数值或变量进行比较,其结果是一个逻辑值(“真”或“假”)。C 语言的比较运算中,“真”用数字“1”来表示,“假”用数字“0”来表示。

2、需要注意的是,在使用比较运算符时,不能将比较运算符“==”误写成赋值运算符“=”。

15

案例2-10 逻辑运算符

一、案例描述

1、 考核知识点

编号:006020012 名称:逻辑运算符

2、 练习目标

了解有哪些逻辑运算符 掌握逻辑运算符的用法

3、 需求分析

逻辑运算符用于判断数据的真假,其结果仍为“真”或“假”。为了让初学者熟悉逻辑运算符的用法,本案例将对所有逻辑运算符进行演示。

4、 设计思路(实现原理)

1) 声明main()函数。

2) 在main()函数中定义变量a 、b 。 3) 用逻辑运算符对变量进行处理。

二、案例实现

编写程序,代码如下:

1 #include 2

void main() 3 { 4 int a = 0, b = 1;

5 printf("!a 的结果是 %d\n", !a);

6 printf("a && b 的结果是 %d\n", a && b);

7 printf("a || b 的结果是 %d\n", a || b);

8 getchar();

9 }

运行结果如图2-12所示。

图2-12 运行结果

三、案例总结

当使用逻辑运算符时,有一些细节需要注意,具体如下:

1、逻辑表达式中可以包含多个逻辑运算符,例如,!a||a>b

2、三种逻辑运算符的优先级从高到低依次为:!、&&、||

3、运算符“&&”表示与操作,当且仅当运算符两边的表达式结果都为真时,其结果才为真,否则结果为假。如果左边为假,那么右边表达式是不会进行运算的。

4、运算符“||”表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为假。同“&&”运算符类似,如果运算符“||”左边操作数的结果为真,右边表达式是不会进行运算的。

案例2-11 位运算符

一、案例描述

1、考核知识点

编号:006020013

名称:位运算符

2、练习目标

了解有哪些位运算符

掌握位运算符的用法

3、需求分析

位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。为了让初学者熟悉位运算符的用法,本案例将对所有的位运算符进行演示。

4、设计思路(实现原理)

1)声明main()函数。

2)在main()函数中定义变量a、b。

3)用逻辑运算符对变量进行处理。

二、案例实现

编写程序,代码如下:

1#include

2void main()

3{

4int a = 4, b = 3;

5printf("4 & 3 = %d\n", a & b);

6printf("4 | 3 = %d\n", a | b);

7printf("4 ^ 3 = %d\n", a ^ b);

8printf("4 << 3 = %d\n", a << b);

9printf("4 >> 3 = %d\n", a >> b);

10printf("~4 = %d\n", ~a);

16

17

11 getchar();

12

}

运行结果如图2-13所示。

图2-13 运行结果

三、案例总结

案例2-12 sizeof 运算符与运算的优先级

一、案例描述

1、 考核知识点

编号:006020014

18

名称:sizeof 运算符与运算的优先级

2、 练习目标

了解sizeof 运算符和运算优先级

掌握sizeof 运算符的用法和运算符的优先级

3、 需求分析

在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,我们把这种顺序称作运算符的优先级。为了让初学者熟悉位运算符的用法,本案例将通过演示一个较为复杂的表达式运算来讲解运算符的优先级。

4、 设计思路(实现原理)

1) 声明main()函数。

2) 在main()函数中定义两个int 型变量x 和y 。 3) 将表达式3>2*x?x++:--x 赋值给y 。 4) 用输出语句分别输出变量x 和y 的值。

二、案例实现

编写程序,代码如下:

1 #include 2

void main() 3 { 4 int x = 1, y = 0;

5 printf("x = %d, y = %d\n", x, y);

6 y = 3>2*x ? x++ : --x;

7 printf("y = 3>2*x ? x++ : --x;\n"); 8 printf("x = %d, y = %d\n", x, y); 9 getchar();

10 }

运行结果如图2-14所示。

图2-14 运行结果

三、案例总结

1、本案例中表达式的运算过程具体如下:

1) 在表达式“y=3>2*x?x++:--x;”中赋值运算符“=”的优先级最低,所以要先运算“=”

右侧的表达式;

2) “?:”为三元运算符,该运算符的优先级也较低,要先运算“?”前面的表达式。

3)“*”的优先级比“>”的高,所以“3>2*1”为true。按照三元运算符的运算规则表达式可计算为“y=x++”

4)“x++”的“++”在后面,所以要先进行其它运算再自增。所以x=2,y=1

5)用输出语句输出x和y的值。分析输出结果与计算结果是否一致。

2、下表列出了C语言中运算符的优先级,数字越小优先级越高。

3、其实没有必要去刻意记忆运算符的优先级。编写程序时,尽量使用括号“()”来实现想要的运算顺序,以免产生歧义。

19

c语言试题数据类型、运算符与表达式

3 数据类型、运算符与表达式 一、单项选择题 1、以下选项中,不正确的 C 语言浮点型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.0 分析:e 后面的指数必须为整数。 2、以下选项中,( D )是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" 分析:在C 语言中,’a ’表示字符常量,”a ”表示字符串。 3、 在 C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。 A.原码 B.反码 C. ASCII 码 D. BCD 码 分析:将一个字符常量放入一个字符变量中,实际上并不是将字符本身放到内存单元中,而是将字符的对应的ASCII 码放到储存单元中。 4、若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值是( C )。 x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为32,所以x=32. 5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 分析:算术运算符包括加法运算“+”符减法运算“-”符乘法运算符“*”以及除法运算符“/”,赋值运算符包括“=、+=、-=、*=、/=、……”,关系运算符包括“<、<=、>、>=”。 6、若有代数式bc ae 3 ,则不正确的C 语言表达式是( C )。 A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3 分析:C 选项表达的是3ace/b 。 7、表达式!x||a==b 等效于( D )。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) 分析:由符优先级先后顺序在!x||a==b 中应先算“||”再算“!”,最后算“==”。选项B 不影响运算顺序。 8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A )。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 分析:先算括号里面的,a 不大于b ,则m=0,c 不大于d ,则n=0. 9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12 分析:从后往前算,a*=a 即a=a*a ,a=9;然后a-=a=9,a=a-9,=0;a+=0,a=a+a=0.

1、c语言-数据类型与运算符(含答案)详解

一、选择题 1. 可用作C语言用户标识符的一组标识符是( B )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 2. 存储以下数据,占用存储字节最多的是(D )。 A. 0 B. ‘0’ C. “0” D. 0.0 3. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288 5. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数 式1/abc的表达式是( A)。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。 A. 15 B. 26,15 C. 15,26 D. 26 7. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 8. x>0 && x<=10的相反表达式为( A )。 A. x<=0 || x>10 B. x<=0 && x>10 C. x<=0 || x<=10 D. x>0 && x>10 9. x>0 || y==5的相反表达式为( B )。 A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5 10. 下面的哪个保留字不能作为函数的返回类型?( C ) 。 A. void B. int C. new D. long 11. 假定a为一个整型数组名,则元素a[4]的字节地址为(B) 。 A. a+4 B. a+8 C. a+16 D. a+32 12. 字符串”a+b=12\n”的长度为(B )。 A. 6 B. 7 C. 8 D. 9 13. 假定下列x和y均为int型变量,则不正确的赋值为( B )。 A. x+=y++ B. x++=y++ C. x=++y D. ++x=++y 14. 设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 ( D ) A.a++; B. b++ C. c++; D.d++; 15. 设x和y均为bool量,则x&&y为真的条件是( A) 。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个 16.以下叙述中正确的是(A) A. C程序中注释部分可以出现在程序中任意合适的地方 B.花括号"{"和"}"只能作为函数体的定界符

数据类型、运算符与表达式练习题

第三章运算符与表达式练习题 一、单项选择题 1.下列数据中属于“字符串常量”的是()。 A.”a” B. {ABC} C. ?abc\0? D. ?a? 2.下列数据中属于“字符串常量”的是()。 A.ABC B. “ABC” C. ?abc? D. ?a? 3. 在PC机中,?\n?在内存占用的字节数是()。 A. 1 B. 2 C. 3 D. 4 4. 在PC机中,”a\xff” 在内存占用的字节数是()。 A. 5 B. 6 C. 3 D. 4 5.字符串”\”ABCD\””在内存占用的字节数是()。 A. 4 B. 6 C. 7 D. 8 6. 在C语言中,合法的长整型常数是()。 A. 0L B. 49627 C. 0.054838743 D. 2.1869e10 7.在C语言中,合法的短整型常数是()。 A. OL B. 0821 C. 40000 D. 0x2a 8.下列数据中不属于“字符常量”的是()。 A. …\a? B. …\160? C. …070? D. 070 9.char型常量在内存中存放的是()。 A. ASCII代码值 B. BCD代码值 C. 内码值 D. 十进制代码值 10. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是()。 A. 1 B. 0 C. -1 D. 出错 11.在以下一组运算符中,优先级最高的运算符是()。 A. <= B. = C. % D. && 12.设整型变量i的值为3,则计算表达式i---i后表达式的值为()。 A. 0 B. 1 C. 2 D. 表达式出错 13.设整型变量i,j=3; 则计算表达式i=j+++j后i,j的值为()。 A. 4,4 B. 6,6 C. 4,6 D. 6,4 14.设整型变量a,b,c均为2,表达式a+++b++c++的结果是()。 A. 6 B. 9 C. 8 D. 表达式出错 15.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是()。 A. 3,3 B. 5,4 C. 4,5 D. 6,6 16.sizeof(double)的结果值是( )。 A.8 B. 4 C. 2 D. 出错 17. 表达式“1?(0?3:2):(10?1:0)”的值是()。 A. 3 B. 2 C. 1 D. 0 18.int a=0; if(a=1) a+=10; 结果的值是()。 A. 0 B. 11 C. 10 D. 出错 19.下列表达式中符合C语言语法的赋值表达式是()。 A. a=7+b+c=a+7 B. a=7+b++=a+7 C. a=(7+b,b++,a+7) D. a=7+b,c=a+7 20.下列表达式中,不正确的表达式是()。 A. a=1,b=1 B. y=int(x) C. a=b=5 D. i++

C语言数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题 1. 以下不合法的用户标识符是:() a) f2_G3 b) If c) 4d d) _8 2. 以下选项中合法的用户标识符是:() a) long b) _2Test c) 3Dmax d) A.dat 3. 以下可用作用户标识符的是:() a) 12_a b) signed c) t-o d) _if 4. 以下不是关键字的标识符是:() a) continue b) char c) If d) default 5. C语言提供的合法的关键字是:() a) swicth b) cher c) Case d) void 6. 以下选项中不合法的int整型常数是() a) 32768b) -56 c) 03 d) 0xAF 7. 以下合法的长整型常量是() a) 2L b) 49627 c) 34566666 d) 213& 8. 以下正确的实型常量是() a) 1.2E b) .579899 c) 1.2e0.6 d) 8 9. 以下选项中合法的实型常数是() a) 5E2.0 b) E-3 c) .2E0d) 1.3E 10. 以下合法的八进制数是() a) 0135b) 068 c) 013.54 d) o7

11. 以下合法的十六进制数是() a) 0x b) 0x4de c) 0x1h d) ox77 12. 以下选项中非法的数值常量是() a) 019b) 0L c) 0xff d) 1e1 13. 若变量已正确定义,以下合法的赋值表达式是() a) a=1/b=2 b) ++(a+b) c) a=a/(b=5)d) y=int(a)+b 14. 若变量已正确定义,以下非法的表达式是() a) a/=b+c b) a%(4.0) c) a=1/2*(x=y=20,x*3) d) a=b=c 15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是: a) 3 b) 4 c) 11 d) 12 16.设a,b均为double型,且a=5.5;b=2.5;则表达式 (int)a+b/b的值是() a) 6.500000 b) 6 c) 5.500000 d) 6.000000 17.若a为int型,且其值为3,则执行完表达式: a+=a-=a*a后,a的值是() a) -3 b) 9 c) -12 d) 6 18.设k和x均为int型变量,且k=7;x=12;则能使 值为3的表达式是() a) x%=(k%=5) b) x%=(k-k%5) c) x%=k-k%5 d) (x%=k)-(k%=5)

03.JAVA考核题-数据类型和运算符(一)第一部分(答案)

JAVA考核-数据类型和运算符 第一部分 英语测试(每题1分,共10分) 1 .(单选) oriented ( A ) A 面向 B 向上 C向下 D 方向 2 .(单选) Object ( B) A 目标 B 对象 C 象征 D 锚 3 .(单选) integer ( D) A 小数 B 浮点数 C 实数 D 整数 4 .(单选) syntax ( C) A 标识符 B 句号 C 语法 D 选择 5 .(单选) infinity ( A) A 无穷 B 确定 C 渺小 D孤独 6. (单选) insert ( B) A 导出 B 嵌入 C 往上 D 动作 7 .(单选) instance ( C) A 插入 B 迅速 C 实例 D 速溶 8 .(单选) comment ( A) A 注释 B 语句 C 内容 D 文档 9.(单选)String ( D) A一束 B一捆 C一打 D一串 10.(单选)conversion ( A) A转换 B分配 C指定 D优化 第二部分 知识点测试(90分) 一、选择题(每题1.5分,共67.5分) 1 . 用8位无符号二进制数能表示的最大十进制数为(C) A. 127 B. 128 C. 255 D. 256 2 .以下能作为char类型的字面值的有(BDE) A. "e" B. 'f' C. '\u12' D. '\u0012' E. '\n' 3 .byte变量的取值范围是(B) A. 0~65535 B. -128~127 C. -256-255 D. 0~32767

4. 以下选项中正确的有(ACD) A. int i = 32; B. float f = 45.32; C. double d=3.2; D. double d=9.21D; 5 .假定x和y为double型,则表达式x=2,y=x+3/2的值是(D) A. 3.5 B. 3 C. 2.0 D. 3.0 6 .下列对于>>和>>>操作符描述正确的是(A) A. 当左面的操作数是正数时,>>和>>>结果相同。 B. (-1 >> 1)的结果是0。 C. (-1 >>> 1) 的结果是-1。 D. 只有在右面的操作数大于等于1时, >>> 才会返回负数。 7 .有如下一段代码: 1)public class ReturnIt{ 2) returnType methodA(byte x, double y){ 3) return x/y*2; 4) } 5) } 在第2行中,方法methodA的有效返回类型returnType应该是?(D) A. int B. byte C. short D. double 8.下列代码的执行结果是(D) 1)public class Beirun{ 2) public static void main(String args[]){ 3) float t=9.0f; 4) int q=5; 5) System.out.println((t++)*(--q)); 6) } 7)} A. 40 B. 40.0 C. 36 D. 36.0 9.下列代码的执行结果是(D) 1)public class Beirun{ 2) public static void main(String args[]){ 3) System.out.println(5/2); 4) } 5)} A. 2.5 B. 2.0 C. 2.50 D. 2 10.下列代码的执行结果是(B) 1)public class Beirun{ 2) public static void main(String args[]){ 3) System.out.println(100%3);

java基础数据类型与运算符

//这是我们的第一个java application,该程序保存在文件Property.Java中 import Java.util.*; /*下面我们用到了Date和Properties这两个类,是 属于Java.util这个包的;*/ /*而System和Runtime这两个类,是属于 https://www.doczj.com/doc/f416441158.html,ng这个包的。*/ public class Property { //程序员给这个类取名为Property public static void main(String args[]){ //main是类的主方法 System.out.println(new Date( )); //在命令行下面打印出日期 Properties p=System.getProperties( ); //获得系统的Properties对象p p.list(System.out); //在命令行下打印出p中的各个系统变量的值 System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.getRuntime( ); //获得系统的Runtime对象rt System.out.println("Total Memory= " + rt.totalMemory( ) //打印总内存大小 +" Free Memory = " +rt.freeMemory( )); //打印空闲内存大小 } } JA V A教程第二讲 Java语言基础知识 2.1简单数据类型 2.1.1 标识符和保留字 1.标识符(变量) 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。J ava语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。例如,identifier,userName,User_Name,_sys_val, $c hange为合法的标识符,而2mail room#,class 为非法的标识符。 2.保留字(关键字) 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserv ed word),也称为关键字,下面列出了Java语言中的所有保留字: abstract,break,byte,boolean,catch,case,class,char,continue,default,do uble,do,else,extends,false,final,float,for,finally,if,import,impleme nts,int,interface,instanceof,long,length,native,new,null,package,priv ate,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while 。

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

第一章数据类型、运算符与表达式 (1)以下程序输出的结果是 include main() { int i=6,y=4,z=2; printf("%d\n",i/y%z); } (2)以下程序输出的结果是 #include main() { int x=10,y=10; printf("%d,%d\n",x--,--y); } (3)以下程序输出的结果是 #include main() { printf("%f\n",2.5+1*7%2/4); } (4)以下程序输出的结果是 #include main() { int x=023; printf("%d\n",--x); } (5)以下程序输出的结果是 #include main() { int a=-10,b=-3; printf("%d\n",a%b); printf("%d\n",a/b*b); printf("%d\n",-a%b); printf("%d\n",a-=b+++1); } (6)以下程序输出的结果是 #include main() { int a,b,c;

a=(b=(c=3)*5)*2-3; printf("a=%d,b=%d,c=%d\n",a,b,c); } (7)以下程序输出的结果是 #include main() { int m=12; int n=34; printf(“%d\n%d\n”,m++,++n); } (8)以下程序输出的是 #include main() { int a=1,b=4,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf("%f\n",z); } (9)以下程序输出的是 #include main() { int x,y; y=(x=1,++x,x+2); printf("%d\n",y); } (10)以下程序输出的是 #include main() { int x=10,y,z; y=z=x; x=y==z; printf("%d\n",x); } (11)以下程序输出的是 #include main() { int a=12; printf("%d\n",a+=a-=a*a); }

基本数据类型、运算符和表达式

基本数据类型、运算符和表达式 (总分:56.00,做题时间:90分钟) 一、选择题 (总题数:21,分数:42.00) 1.阅读下面程序 public static void main (String[] args) System.out.printIn (34+56-6); System.out.printIn (26*2-3); System.out.printIn (3*4/2); System.out.printIn (5/2); 程序运行结果是______。 (分数:2.00) A.84 49 6 2 √ B.90 25 6 2.5 C.84 23 12 2 D.68 49 14 2.5 解析:[解析] 第一条输出语句中,+、-是同优先级的运算符,按照左结合的原则,表达式34+56-6的值应该是84。第二条输出语句中,*的优先级高于-,先算26*2=52,再进行减法运算:52-3=49。第三条输出语句中,+与/是同优先级的运算符,按照左结合可以得到3*4/2的值为6。第四条输出语句中,两个整型数据做除法运算,其结果也应该为整型数据,所以结果是2,而不是2.5。 2.下列属于合法的Java标识符是______。 (分数:2.00) A."ABC" B.&5678 C.+rriwo D.saler √

解析:[解析] Java中所有的变量、常量、对象和类都用标识符命名,其命名规则为:(1)只能以字母、下画线、美元符($)作为首字符,不能用数字或其他符号(如*)作为标识符的首字符。(2)标识符是区分大小写的。只有D项是正确的。 3.阅读下面程序 public class OperatorsAndExpressions void equalsMethodl() String s1=new String("how are you"); String s2=new String("how are you"); System.out.printIn (s1==s2); public static void main (String args[]) OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions(); //用于复合类型数据的"= ="运算符 OperAndExp.equalsMethodl(); 程序运行结果是______。 (分数:2.00) A.== B.true C.false √ D.equal 解析:[解析] 本程序的运行结果应该是表达式s1=s2的结果。字符串对象s1和s2是复合数据类型,因而表达式s1=s2比较的是s1和s2是否是同一个对象。本题中s1和s2虽然有相同的值“how are you”,但它们是两个不同的对象,所以本题的结果是false。若要比较两个对象的值,可以调用equals()方法。4.下列代码中,将引起编译错误的行是______。 1) public class Exercise 2) public static void main (String args[]) 3)float f=0.0; 4) f+=1.0; 5) 6) (分数:2.00) A.第2行 B.第3行√ C.第4行 D.第6行 解析:[解析] float f=0.0;语句中,想要定义一个float型变量f,并且赋初值为0.0,但是数字后面没有跟任何字母,计算机默认为double类型,而从double类型不能自动转换为float,所以该语句将引起编译错误。 5.阅读下面程序 public class Test2 public static void main (String args[]) int a=10, b=4, C=20, d=6; System.out .printIn(a++*b+c*--d);

C语言(数据类型与运算符)习题与答案

一、单选题 1、表达式:(int)((double)9/2)-(9)%2 的值是 A.1 B.0 C.4 D.3 正确答案:D 解析: D、整数除以整数,结果为整数 2、若有定义语句:int x=10; ,则表达式 x-=x+x 的值为 A.0 B.-10 C.10 D.20 正确答案:B 3、以下选项中,不能作为合法常量的是 A.1.234e+4 B.1.234e04 C.1.234e0.4 D.1.234e0 正确答案:C 解析: C、指数次数必须为整型 4、下列选项中,不能用作标识符的是 A.int_2_ B.i_nt123 C. _1234_ D.2_int_ 正确答案:D

5、设有定义:float a=2,b=4,h=3; 以下C语言表达式与代数式(a+b)/2 × h 计算结果不相符的是 A.(1/2)*(a+b)*h B.h/2*(a+b) C.(a+b)*h/2 D.(a+b)*h*1/2 正确答案:A 二、填空题 1、若有定义语句:int a=5;,则表达式:a++ 的值是________。 正确答案:5 解析:相当于 y=a++,求y的值,++在后,先使用a的值赋给y,之后再给a增1 2、若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2;之后y 的值为 ________。正确答案:1 解析: %运算要求两数为整数,结果为整数 3、设有语句char a='\072';则变量a最终获得________个字符?(仅填写具体阿拉伯数字) 正确答案:1 解析:这是一个转义字符 4、一个float型变量占________个字节?(仅填写具体阿拉伯数字) 正确答案:4 5、int a=5,b=6,c=7,f; f=c>b>a ;f的最终结果是________。 正确答案:0 解析:关系运算只能两两判断

2.数据类型和运算符作业-

数据类型和运算符作业 一、填空题 1.Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能 是数字。 2.Java中整型变量有byte、short、int和long四种,不同类型的整数变量在内存中分 配的字节数不同,数值范围也不同。对于int型变量,内存分配4个字节。 3.在Java中浮点型变量有float和double两种,对于float型变量,内存分配4个字 节,尾数可精确到7位有效数字,对于double型变量,内存分配8个字节。 4.char c=’a’;System.out.println(c+1);运行结果为:98。 5.______&&___是短路与运算符,如果左侧表达式的计算结果是false,右侧表达式将 不再进行计算。 6.下面的语句是声明一个变量并赋值:boolean b1=5!=8; b1的值是____true______。× 7.使用位运算符来实现运算效率最高,所以最有效率的方法算出2乘以8等于多少的 语句是2<<3。 8.基本数据类型的类型转换中,要将double类型的常量3.14159赋给为整数类型变量 n的语句是____int_n=(int)(3.14159)________________。 9.八进制整数012表示十进制的___10____,十六进制数0x3C表示十进制的_____60__。 10.一个十进制整数转换成八进制数后是1234,则它转为十六进制数后是29C。 二、选择题 1. 在Java中,以下错误的变量名是( d )。(选择一项) A constant B. flag C. a_b D. final 2. 以下选项中属于合法的Java标识符的是(cd )。(选择两项) A. public B. 3num C. name D. _age 3. 在Java中,byte数据类型的取值范围是( a )。(选择一项) A -128 ~ 127 B. -228 ~128 C. -255 ~ 256 D. -255 ~ 255 4. 下面的代码段中,执行之后i和j的值是( c )。(选择一项)× int i=1;int j; j=i++; A 1,1

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