当前位置:文档之家› 第2章数据类型 运算符和表达式

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

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

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

2.1 数据类型(教材P25)

可分为值类型、引用类型、指针类型(只有在不安全代码中才可使用,其他地方几乎不用)。2.1.1 值类型

直接存储自己的数据。分为:简单类型、枚举类型、结构类型。

一.简单类型:包括整数类型、字符类型、浮点类型、小数类型、布尔类型。

1.整数类型

如: int i=20;

Char ch=’A’;

2.字符类型(char):

单一的Unicod字符,16位,字符类型常量使用时必须加上单引号。

如: char c=’A’;

char c=’\x0041’; //16进制转义符,字母A的16进制表示

或 char c=’\u0041’;

3.浮点类型(float,double)

单精度(float)型:32位浮点数,精度为7位数。该类型数据后要加f。

如:float myFlooat=2.3f;

双精度(double)型:64位浮点数,精度为15-16位数。该类型数据后可以加d,也可以缺省。如:double my Double =2.3E+23;

4.小数类型(decimal):128位,有28-29位有效数字,适于金融、货币等领域。

该类型数据后要加m。如: decimal a=300.5m;

5.布尔类型(bool):有两个值:true和false.

如: bool myBool=false;

二.枚举型(enum):

把相同类型、表达固定含义的一组数据作为一个集合放到一起形成的数据类型。如:enum WeekDdays{Sun,Mon,Tue,Wed,Thu,Fri,Sat};

三.结构类型(struct)

是一组相关的信息组合成的单一实体。其中的每个信息成为他的一个成员。

如:定义一个通讯录记录的结构:

struct PhoneBook

{

public string name;

public string phone;

public unit age;

public string address;

}

PhoneBook p1; //p1就是一个PhoneBook结构类型的变量。

2.1.2 引用类型

一.类类型

字符串类(string):一组字符,无上限,字符串类型常量使用时必须加上双引号。

如:string myString=”How”;

二.数组类型:同类数据组成的集合。如:某班10名学生的英语成绩。

三.接口类型:略

四.委托类型:略

2.1.2数据类型转换(教材P29)

一.强制类型转换

如:char ch=(char)Console.Read();

二.类型转换函数

1.转成整数

Convert.ToInt32(变量名)或 Int32.Parse(变量名)

例如: string s=Console.ReadLine();

int i= Convert.ToInt32(s);

或 int i= Int32.Parse(s);

2.转成float数

Convert.ToSingle(变量名)或 float.Parse(变量名)

例如: string s=Console.ReadLine();

float i= Convert.ToSingle(s);

或 float i=flaot.Parse(s);

3.转成double数

Convert.ToDuble(变量名)或 double.Parse(变量名)

4.转成char数

Convert.ToChar(变量名)或 char.Parse(变量名)

5.转成decimal数

Convert.ToDecimal(变量名)或 decimal.Parse(变量名)

6.转成string数

Convert.ToString(变量名)

2.2 常量和变量

2.2.1 变量

一.定义:是在应用程序中数值可变的量。

变量值:变量的值

变量名:由程序员指定的、用于标志每个变量的字符或字符串。

二.格式

[访问修饰符][变量修饰符] 变量的数据类型变量名1,变量名2,……

说明:

1.使用变量之前需要声明它们,指定其名称和类型,之后才能使用。将它们用作存储单元,存储声明的数据类型的数据。

2.访问修饰符用于描述对变量进行访问的限制级别。可以是:

public:表示对变量的访问不受任何限制。

protected:只能在包含变量的类或派生类中对变量进行访问。

internal:变量的访问范围只能在当前项目或者是模块内。

private: 变量的访问范围只能在包含它的类中。

3.变量修饰符用来区分变量是静态变量还是其他变量。如:

static:静态变量

ref:形式参数变量

4.变量的数据类型为C#中数据类型对应的关键字。

5.变量名:

必须以字母开头;

由字母、数字和下划线组成,不能包含空格、标点符号、运算符等其他符号;

不能与C#中的库函数、关键字名称相同;

允许使用前缀“@“加上关键字作为变量名(一般情况下尽量不用该方法)。

例如:

age firstName timeOfDeath

Age LastName WinterOfDiscontent

以上均合法

99BottlesOfBear namespace It’s_All_Over

以上均不合法

例题:在class1.cs中添加如下代码:

static void Main( )

{ int myInteger,herInteger;

myInteger=17;

herInteger=18;

Console.WriteLine(“myAge is {0},herAge is {1}”, myInteger, herInteger);

}

运行结果:myAge is 17,herAge is 18

注:对语句Console.WriteLine()的说明:

该语句括号中有两部分:一个“输出格式串”、一个用逗号分隔开的变量列表,这些变量的值将插入到“输出格式串”中。

“输出格式串”中包括:

(1)文本内容:原样照印;

(2)“输出格式串”中的每对花括号都是一个占位符(实际上是插入变量内容的一个模板,每个变量的值需用一个占位符来表示)。占位符用包含在花括号中的一个整数来表示,整数以0开始,每次递增1。占位符的总数应等于变量列表中指定的变量数。

把文本输出到控制台时,每个占位符就会用相应的一个变量的值来替换。

例如:

int p=2;

Console.WriteLine(“p={0}”,p);

输出结果: p=2

三.七种变量

1.静态变量与非静态变量

静态变量:声明为static的变量。只需创建一次,后面的程序中可以多次引用。

非静态变量:未声明为static的变量。在指定的对象中被声明。该变量所在的对象被销毁,该变量也就从内存中被清除了。

例:

class Test

{

static int var; //静态变量

char ch; //非静态变量

……

}

注:1.Var被从类Test定义的多个对象共享;ch只属于单独的对象,且只能由其所属

的对象初始化。

2.类中的非静态变量可由编译器对其进行初始化。其大多数初始化为0,布尔型实例变量初始化为false,引用初始化为null。

2.数组元素

例:

using System;

class Test

{

static void Main()

{

int[] arr=new int[5];

for (int I=0;I

arr[I]=I*2;

for(int j=0;j

Console.WriteLine(“arr[{0}]={1}”,arr[j]);

}

}

运行结果:arr[0]=0

arr[1]=2

arr[2]=4

arr[3]=6

arr[4]=8

3.按值与按引用

按值传递参数:声明前没有ref或out修饰符的参数。

按引用传递参数:声明前有ref修饰符的参数。

例:按值传递参数

using System;

class Test

{

static void F(int p)

{

Console.WriteLine(“p={0}”,p);

P++;

}

static void Main()

{

int a=1;

Console.WriteLine(“pre:a={0}”,a);

F(a);

Console.WriteLine(“post:a={0}”,a);

}

}

程序运行结果

pre:a=1

p=1

post:a=1

改写该例题,按引用传递参数。

例:按引用传递参数

using System;

class Test

{

static void Swap(ref int a,ref int b)

{

int t=a;

a=b;

b=t;

}

static void Main()

int x=1

int y=2;

Console.WriteLine(“pre:x={0},y={1}”,x,y);

Swap(ref x,ref y);

Console.WriteLine(“post:x={0},y={1}”,x,y);

}

}

程序运行结果

pre:x=1,y=2

post:x=2,y=1

注意:

加上ref后,编译时,x和a指向同一地址,y和b指向同一地址; 必须在主程序中对变量进行初始化。

4.输出参数

using System;

public class mathClass

{

public static int TestOut(out int ival1,out int ival2)

{

ival1=10;

ival2=20;

return 0;

}

public static void Main()

int i,j

Console.WriteLine(TestOut(out i,out j));

Console.WriteLine(i);

Console.WriteLine(j);

}

}

程序运行结果

0 //TestOut()的返回值是0 (return 0;)

10 // i与ival1指向同一地址

20

注意:使用out参数时,允许在主程序中不对变量进行初始化,而从TestOut()中返回值。

5.局部变量

在方法中声明的临时变量,它只在定义它的块内起作用,当块结束时,局部变量也会随着消失。

例:

using System;

public class Test

{

public static void TestOut()

{

int var=250;

int i;

for (i=0;i<10;i++)

var=251+i;

Console.WriteLine(var);

}

public static void Main()

TestOut();

Console.WriteLine(var);

//编译时将产生错误,名称”var”在类或名称空间”Test”中不存在。

}

}

程序运行出错

解决方法:在主程序中对var进行初始化,即添加 int var=100;

即:

using System;

public class Test

{

public static void TestOut()

{

int var; //编译时将产生错误,变量var未被初始化。

int i;

for (i=0;i<10;i++)

var=251+i;

Console.WriteLine(var);

}

public static void Main()

{

int var=100;

TestOut();

Console.WriteLine(var);

}

}

程序运行结果

260

100

2.2.2 常量

[属性][常量修饰符]const 类型常量表达式

其中属性可以省略,常量修饰符可以是new, public, protected, internal, private. 常量表达式表示常量的名字,例如:

Class Constants

{

public const int A=1;

public const int B=A+1;

}

注:常量只能被赋值一次。

2.3 运算符

2.3.1 算术运算符

表2-3 C#的算术运算符

1.基本的算术运算符

(1)除法运算符:

?整数相除的结果也是整数,如:7/5结果为1,3/4结果为0,计算结果舍弃小数部分;

?通常除法运算符的取值按趋向于0取结果,即-7/5的结果为-1;

?一个实数与一个整数相除,运算结果为实数。

(2)模运算符:

要求运算符两边的操作数都是整数型,否则将产生错误。运算结果是两个整数相除后得到的余数。如:7%5、8%6、55%3都是正确的,其结果分别是2、2、1。而7.0%5是错误的。

2.自增运算符和自减运算符

只能用于变量,不能用于常量或表达式。如:12++或++(x+y)都是错误的。

两种不同的表达方式:++a;a++;--a;a--;

2.3.2 赋值运算符

用于将一个数据赋予一个变量。见表2-4

表2-4 C#的赋值运算符

说明:

1.“=”是基本的赋值运算符,它的作用是将数据赋给某个变量,数据可以是常量,也可以是表达式;

2.复合赋值运算符的结合方向是自右向左;例如:x%=y-3 相当于x=x%(y-3);

2.3.3 关系运算符

表2-5 C#的关系运算符

表2-6 C#的逻辑运算符

说明:关系及逻辑运算结果:真值(true)为1,假值(false)为0。

2.3.5位运算符

表2-7 C#的位运算符

例: 7:00000000 00000000 00000000 00000111 7<<2: 00000000 00000000 00000000 00011100 7>>2: 00000000 00000000 00000000 00000001

是一个三元运算符,一般格式:

操作数1?操作数2:操作数3

其中,

?操作数1的值必须是逻辑值。

?进行条件运算时,首先判断问号前面的逻辑值是真还是假,若

是真,则条件运算表达式的值等于操作数2的值;若是假,则条件运算表达式的值等于操作数3的值。

?例如:3>5?a:b 由于3>5为假,所以表达式的值为b的值。

2.3.7 其它运算符

表2-8 C#的位运算符

2.4 表达式(略)

例题1:增运算符的使用

using System;

namespace ConsoleApplication1

{

class Class1

{

static void Main()

{

int x=2;

int y=1;

int s1=-x++ +y;

Console.WriteLine("s1={0},x={1},y={2}",s1,x,y);

int s2=- ++x +y;

Console.WriteLine("s2={0},x={1},y={2}",s2,x,y);

}

}

}

运行结果:(已调试)

S1=-1,x=3,y=1

S2=-3,x=4,y=1

例题2:增运算符的使用

using System;

namespace ConsoleApplication2

{

class Class1

{

static void Main()

{

int ix,iy;

ix=iy=1;

iy=ix++ -1;

Console.WriteLine("IX={0} IY={1}",ix,iy);

iy=-ix++ + ++iy;

Console.WriteLine("IX={0} IY={1}",ix,iy);

iy=ix/++ix;

Console.WriteLine("IX={0} IY={1}",ix,iy);

}

}

}

运行结果:(已调试)

IX=2 IY=0

IX=3 IY=-1

IX=4 IY=0

练习:整数求和:由用户键入两个整数,将这两个整数求和并显示其结果。(要求在用户输入数据前显示输入数据提示信息)

using System;

namespace整数求和

{

class Class1

{

static void Main()

{

string firstNumber, secondNumber;

int number1,number2,sum;

Console.Write("Please enter the first integer:");

firstNumber=Console.ReadLine();

//方法ReadLine使程序暂停并等待用户输入数据。

Console.Write("\nPlease enter the second integer:");

// \n为换行符

secondNumber=Console.ReadLine();

number1=Int32.Parse(firstNumber);

//方法Int32.Parse将字符参数转换成整数。

number2=Int32.Parse(secondNumber);

sum=number1+number2;

Console.WriteLine("\nThe sum is {0}.",sum);

}

}

}

补充作业:

1.编写一个应用程序,输入两个数字,打印出这两个数字的和、差、积、商。

2.编写一个应用程序,输入一个圆的半径(r),打印该圆的直径、周长和面积。使用下面的公式:

直径=2r ,周长=2πr,面积=πr2

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/563784568.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

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