第02章基本数据类型和基本操作
- 格式:pdf
- 大小:179.12 KB
- 文档页数:6
第二章数据和表达式目录第一节基本语法元素第二节基本数据类型第三节表达式01 基本语法元素1.空白在java程序中,换行符及回车符都可以表示一行的结束,它们可被看作是空白,另外空格键,水平定位键(Tab)亦是空白,编译器会忽略多余的空白。
2.注释(1)单行注释://一行内的注释(2)多行注释:/*一行或多行注释*/(3)文档注释:/**文档注释*/3.语句、分号和块语句是Java程序的最小执行单位,程序的各语句间以分号“;”分隔。
一个语句可以写在连续的若干行内。
大括号“{”和“}”包含的一系列语句称为块语句,简称块。
语句块可以嵌套,即语句块中可以含有子语句块;关键字Java语言定义了许多关键字,关键字也称为保留字,他们都有各自的特殊意义和用途。
*标红的为预留关键字,尚未使用标识符1.标识符是由字母、数字、下划线(_)或美元符($)组成的字符串,其中数字不能作为标识符的开头。
2.标识符区分大小写,长度没有限制。
3.标识符中不能含有其他符号,例如+、=、*、及%等,当然也不允许插入空白。
4.标识符可用作变量名、方法名、接口名和类名。
5.Java源代码采用的是Unicode码,用16位无符号二进制数表示一个字符,Unicode字符集中的字符数可达65535个,汉字也是字符,所以也可以出现在标识符中,例如“这是一个标识符”也是一个正确的标识符。
Java编程风格编写程序时应该注重自己的编程风格,增加必要的注释和空格,采用缩进格式。
定义的各种标识符也要遵从惯例注意大小写。
程序中尽量不使用没有含义的标识符。
最好能望名知义,例如,变量用于计数,可将它命名为counter;用变量保存税率,可将它命名为taxRate。
·类名或接口名:多为名词,含有大小写,每个单词的首字母大写如HelloWorld、Customer、SortClass 等。
·方法名:多是动词,含有大小写,首字母小写,其余各单词的首字母大写。
程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整参考答案:D【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
所以选项A)、B)、C)说法都不完整。
2.以下关于简单程序设计的步骤和顺序的说法中正确的是。
A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构参考答案:B【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。
②算法设计:给出解决问题的步骤,即算法。
③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。
④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。
⑤程序调试:对编写好的程序进行调试,修改程序中的错误。
⑥程序文档编写与程序维护。
综上所述,B)选项是符合上述描述的,其他选项不恰当。
3.以下叙述中正确的是________。
A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完参考答案:C【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
故本题答案为C)。
4.以下叙述中正确的是。
A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中参考答案:C【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。
C语言答案()第一章C语言程序设计基础习题参考答案1-1 冯·诺依曼体系结构的基本原理:五大构成部分:输入、输出、CPU、控制器、存储器;程序存储、自动执行、逻辑判断功能;二进制的信息表示。
1-6 编辑、编译、链接、执行。
1-7 必须有一个主函数,它是程序执行的起点;一个C语言程序由函数构成;每一条可执行语句都必须由分号结束;函数的代码段必须由花括号对括住。
一个函数中的语句组由声明区和可执行语句区两部分构成。
1-8 三个一缩;每遇到一个结构时均缩格,每结束一个结构时回退;缩格格式必须对齐。
1-9 试给出以下问题的程序设计过程描述:1) 求两个数中之最大者。
#include<stdio.h>int main(void){float fA,fB;clrscr();printf("Please input two values(fA,fB)::"); /*输入要比较的两个数fA,fB*/scanf("%f,%f",&fA,&fB); /*格式化输入fA,fB*/if(fA>=fB) printf("the max is %f",fA);if(fA<fB) printf("the max is %f",fB);return 0;} /*main()函数结束*/2) 求三个数中之最大者。
#include<stdio.h>int main(void){float fA,fB,fC,fMax;printf("Please input three values(fA,fB,fC)::");/*fA,fB,fC是输入的3个数,fMax存放最大值*/scanf("%f,%f,%f",&fA,&fB,&fC);fMax=fA;/*假定fA最大*/if(fMax<fB) fMax=fB;if(fMax<fC) fMax=fC;printf("The max is %f\n",fMax);/*输出最大值*/return 0;} /*main()函数结束*/3) 求1+2+3+…+100,即。
C语言基本数据类型及运算题库有答案第二章基本数据类型及运算一、选择题1. 若以下选项中的变量已正确定义,则正确的赋值语句是。
A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;答案:C2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。
A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0答案:C3. 下列C语言中运算对象必须是整型的运算符是。
A) %= B) / C) = D) *=答案:A4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。
A) 0 B) 0.5 C) 1 D) 2答案:A5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。
A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值答案:D6. 下列变量定义中合法的是。
A)short_a=1-.le-1; B)double b=1+5e2.5;C)long do=0xfdaL; D)float 2_and=1-e-3;答案:A7. 以下4个选项中,不能被看作是一条语句的是。
A) {;} B) a=0,b=0,c=0;C) if (a>0); D) if (b==0)m=1;n=2;答案:D8. 设x=1,y=-1,下列表达式中解为8的是。
A)x&y B)~x│x C)x^x D)x<<=3答案:D9. 在C语言中不合法的整数是。
A)20 B)0x4001 C)08 D)0x12ed答案: C10. 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2答案:B)11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7 B)a=7+b+c,a++C)int(12.3%4) D)a=a+7=c+b答案:B)12.以下十六进制数中不合法的是A)oxff B)0Xabc C)0x11 D)0x19答案:A)13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。
第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例如:x = 1; // Assign 1 to x;radius = 1.0; // Assign 1.0 to radius;a = 'A'; // Assign 'A' to a;X = 5*(3/2)+3*2; //Assign the value of the expression to x;注意:变量名必须在左边,1 = X就是错误的。
♦表达式表示值、变量和运算符的运算。
是程序的基本单位之一。
可以是语句的一部分,也可以是单独的。
它的值就是组成部分运算后所得。
运算主要由运算符规定。
例如:area = radius*radius*3.14159;在一步中说明和初始化变量变量通常有初值,可以在一步中说明变量并对其初始化:♦int x = 1;♦double d = 1.4;♦float f = 1.4;思考:上述语句都正确吗?常量♦变量的值在程序执行过程中可能会改变,常量则表示永远不变的数据。
♦常量的语法如下:final datatype CONSTANTNAME=VALUE;(final 数据类型 常量名=值;)♦常量必须在使用前给予说明和初始化。
只要对其进行了说明就不能改变它的值。
例如:final double PI = 3.14159;final int SIZE = 3;数值数据类型Java有六种数值类型:四种整型和两种浮点数。
(了解各种类型的值域/范围,见书P25)byte 8 bits short 16 bitsint 32 bits long 64 bitsfloat 32 bits double 64 bits数值字面量字面量是在程序中直接出现的基本类型的数据值。
♦int i = 34;(34就是字面量)♦long l = 1000000;♦float f = 100.2f;或float f = 100.2F;♦double d = 100.2d;或double d=100.2D;注意:浮点型字面量默认为double型。
①整型注意:[1]java中的数据类型的长度是固定的,也是与平台无关的,而c/c++不是,他们的数据长度与硬件平台和操作系统都有关系。
比如16位的操作系统和32位的操作系统中数据长度是有区别的。
[2]Long型的常量需要加l 或 L :1234L②浮点型[1]float和double的区别:长度不同 32/64;精确度不同,double的精确度高。
[2]提到之前的思考题:其中,语句float f = 1.4;是错误的,因为符点型字面量默认为double 型,不能将double型的数值直接赋给float型的变量,正确写法:float f = 1.4f; [3]与C不同,没有无符号型(unsigned)。
算术运算符♦数值类型的标准算术运算符包括:+, -, *, / 和 %。
♦整数除法的结果是整数,如5/2= 2而不是2.5。
整型除法中对于不能整除的部分做截断处理:1/2=0;为了避免,做除法运算时可以使用浮点型。
♦运算符%得出除法的余数,如5%2=1 。
简捷赋值运算符运算符 例 等价于+= i+=8 i = i+8-= f-=8.0 f = f-8.0*= i*=8 i = i*8/= i/=8 i = i/8%= i%=8 i = i%8增量运算符和减量运算符♦前置增量/减量运算符:变量先加1或减1,再参与表达式中的运算。
♦后置增量/减量运算符:变量先参与表达式的运算,再加1或减1。
例如:x = 1;y = 1 + x++; ——(y = 2, x = 2)y = 1 + ++x; ——(y = 3, x = 2)y = 1 + x--; ——(y = 2, x = 0)y = 1 + --x; ——(y = 1, x = 0)数值类型转换考虑下面的语句:byte i = 100;long l = i*3+4;double d = i*3.1+l/2;int x = l; ———— (错误)long l = x; ———— (正确,隐式类型转换)这些语句正确吗?♦Java允许用于二元运算的数值变量和值具有不同类型。
当两个类型不同的运算对象进行二元运算时,Java自动把精度较低的类型转换成另一个精度较高的类型。
♦总可以将低精度类型的值赋给高精度类型的变量。
但是,如果不进行类型转换,就不能将高精度类型的值赋给低精度类型的变量。
类型转换♦类型转换是一种操作,它把一种数据类型的值转换成另一种数据类型。
♦将一个小范围类型的变量转换为大范围类型称为拓宽类型;把大范围类型的变量转换为小范围类型称为缩窄类型。
例如:float f = (float)10.1; ——(缩窄类型)int i = (int)f; ——(缩窄类型)精度由高到底排序:♦double♦float♦long♦int♦short♦byte隐式类型转换(自动类型转换):这种转换由Java编译系统自动完成,不需要程序另作特别说明。
double d = 3; (拓宽类型)显式类型转换(强制类型转换):由于目标数据类型的取值范围小于待转换数据类型的取值范围,转换过程中会出现取模或截断的现象,会造成溢出或精度下降。
int i = (int)3.0; (缩窄类型)int x = 5/2.0; 正确吗?错误。
不能把double型的数值直接赋给int型变量x,正确写法:int x = (int)(5/2.0);字符数据类型♦字符数据类型char用于表示单个字符。
如:char letter = 'A';char numChar = '4';更正书P28错误:char numChar = 4;是正确的。
字符型变量的取值可以使用字符型和整型的常数,但不能使用整型的变量。
♦Char型只表示一个字母,表示一串字符要用叫做String的数据结构。
♦字符串必须用双引号引住,一个字符的字面量是单引号括住的单个字符。
♦Java采用统一码(Unicode),它是一种16位的编码方案,占两个字节,书写上用以\u开头的4位十六进制数表示,范围从’\u0000’到’\uFFFF’。
j ava使用16位的Unicode字符集,c/c++使用8位的ASCII。
Unicode字符集是Unicode协会推出的一种用以取代ascii字符集的新的字符编码标准。
增加了许多非拉丁语字符。
♦大多数计算机使用ASCII码,Unicode包含ASCII码。
在Java程序中,可以使用ASCII 字符,也可以使用Unicode。
例如,下面的语句是等价的:char letter = 'A'; (ASCII)char letter = '\u0041'; (Unicode)♦可以利用类型转换将字符转换为数值编码,反之亦然。
如:int decimalCode = (int) '0';变量decimalCode的值变为48。
♦Java也允许用转义序列表示特殊字符。
如:char tab = ‘\t’;♦特殊字符对应的转义序列表如下:Description Escape Sequence Unicode退格键 \b \u0008Tab键 \t \u0009换行符 \n \u000a回车键 \r \u000d斜杠 \\ \u005c单引号 \’ \u0027双引号 \” \u0022布尔数据类型♦布尔数据类型来自布尔代数,它的值域包括两个值:真(true)和假(false)。
例如:boolean lightsOn = true;boolean lightsOn = false;♦用布尔值进行运算的运算符是比较运算符(关系运算符)和布尔运算符(逻辑运算符)。
比较运算符运算符 名称 例 结果< 小于 1<2 true<= 小于等于 1<=2 true> 大于 1>2 false>= 大于等于 1>=2 false== 等于 1==2 false!= 不等于 1!=2 true逻辑运算符运算符 名称 描述! 非 逻辑否定,取反&& 与 逻辑与,并且|| 或 逻辑或,或者^ 异或 逻辑异或,排同运算符 & 和 |♦Java也提供 & 和 | 运算符。
♦运算符 & 和 | 的两个运算对象都要计算。