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

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

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

C++的特点:1.支持抽象数据类型

2.多态性,一个接口,多重算法,支持早期联编和滞后联编

3.继承性,保证了代码复用,支持分类的概念

一个c++程序由一个或多个函数构成,并且在这些函数中只有一个主函数main ,它是程序执行的入口。 C++程序严格区别字母的大小写。

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

【内容提要】 数据类型 变量与常量 运算符与表达式 简单输入与输出 【重点与难点】 2.1 数据类型

在C++程序里,每个名字都有一个与之相关联的类型,这个类型决定了可以对这个名字所指代的实体应用什么操作,并决定这些操作将如何做出解释。

图中Type

表示非控数据类型。

2.1.1 基本数据类型

逻辑型:又称布尔型,用关键字bool 表示。有两个值true 或false 。true 可以转换成整数1,false 可以转换成整数0。与此对应,整数也可以隐式的转换成bool 值:非0的整数转换成true,0转换成false 。

结构类型 struct 枚举类型 enum

数组类型 Type[] 布尔型 bool 指针类型 Type* 联合类型 union 类类型 class 整型 int

图2.1 C++的数据类型

字符型:用关键字char表示。取值包含具体实现所用的字符集里的一个字符。字符型数

据通常占用1个字节的存储空间。

整型:用关键字int表示。取值是计算机所能表示的所有整数。

浮点型:包括单精度型(float)和双精度型(double)。单精度型通常占用4个字节的存储

空间,双精度型通常占用8个字节的空间。

空类型:用关键字void表示。用于说明某个函数没有返回值。没有void类型的对象。

在基本的数据类型前可以添加修饰符,以改变基本类型的意义。

signed:有符号。

unsigned:无符号。

unsigned和signed只用于修饰char和int,且signed修饰词可以省略。当用unsigned 修饰词时,后面的类型说明符可以省略。对于有符号和无符号的整型数据,它们所占的存储空间的大小相同,但它们的表数范围却不相同(对字符型意义相同)。

short:短型。只用于修饰int,且用short修饰时,int可以省略。

long:长型。只用于修饰int和double。当用long修饰int时,int可以省略。

数据类型的描述确定了其内存所占空间的大小,也确定了其表示范围。用sizeof(数据类型)可以确定某数据类型的字节长度。请读者查看在你所用的机器上,下面类型的最大值和最小值是什么:char、short、int、long、float、double、long double 、unsigned。

2.1.2 复合数据类型

数组:由具有相同数据类型的元素组成的集合。

结构体:由不同的数据类型构成的一种混合的数据结构,构成结构体的成员的数据类型

一般不同,并且在内存中分别占据不同的存储单元。

共用体:是类似于结构体的一种构造类型,与结构体不同的是构成共同体的数据成员共

用同一段内存单元。

枚举:将变量的值一一列举出来,每个枚举成员(枚举符)都与一个整数相对应。按默

认方式,枚举符所赋的值从0开始递增。枚举的值也可以用整型的表达式赋值进行初始化。如果某个枚举中所有枚举符的值均非负,该枚举的表示范围是[0: 2K-1],其中2K 是能使所有枚举符位于此范围内的最小的2的幂;如果存在负的枚举符值,该枚举的取值范围就是[-2K:2K -1]。

指针类型:指针类型变量用于存储另一变量的地址,而不能用来存放基本类型的数据。

它在内存中占据一个存储单元。

类类型:类是体现面向对象程序设计的最基本特征,也是体现C++与C最大的不同之处。

类是一个数据类型,它定义的是一种对象类型,由数据和方法组成,描述了属于该类型的所有对象的性质。

2.2变量与常量

2.1.1 变量:指在运行期间其值可以改变的量。

变量有三个特征:变量类型、变量名、变量值。

命名:遵循标识符命名规则。

标识符是对实体定义的一种定义符,用来标识用户定义的常量名、变量名、函数名、文件名、数组名、和数据类型名和程序名等。只能由字母、数字和下划线组成,且以字母或下划线开头。命名时注意以下几点:

1. C++的关键字不能用作用户自定义的实体名;

2.以下划线开头的名字是保留给实现或者运行环境,用于特殊目的,在应用程序里不要采用这样的名字;

3.大写与小写字母是区分的;

4.见名知义。

5.维持统一的命名风格。

定义:

格式: <类型名><变量名>[[=<表达式>],…]

typedef:为某种类型声明一个新名字,而不是定义一种新类型。

格式:typedef <已有类型名><新类型名>

2.1.2 常量:程序执行期间其值不变的量。主要有下列几类常量。

布尔常量

字符常量

用单引号括起的一个字符。在内存中,字符数据以ASCII码存储,如字符‘a’的ASCII 码为97。以转义字符‘\’开始的字符常量后跟不同的字符表示不同的特殊字符。

字符串常量

由一对双引号括起来的零个或多个字符序列。

字符串可以写在多行上,不过在这种情况下必须用反斜线‘\’表示下一行字符是这一行字符的延续。

字符串常量实际上是一个字符数组,组成数组的字符除显示给出的外,还包括字符结尾处标识字符串结束的符号‘\0’,所以字符串“abc”实际上包含4个字符:‘a’、‘b’、‘c’和‘\0’。

注意字符常量与字符串常量在表示、存储、运算方面的区别。

整型常量

可以用十进制、八进制或十六进制表示。

十进制常量:一般占一个机器字长,是一个带正负号的常数(默认情况下为正数)。

八进制常量:由数字0开头,其后由若干0-7的数字组成,如0378,0123等。

十六进制常量:以0x或0X开头,其后由若干0-9的数字及A-F(或小写a-f)的字母组成,如0x123,0x3ab。

浮点型常量

只能以十进制形式表示。共有两种表示形式:小数表示法和指数表示法。

如:11.3、.2、2.3e10、-2.3E-1等。

枚举常量

枚举声明形式: enum <枚举名>{<枚举符表>};

枚举符可以有两种形式:

<枚举符名>/<枚举符名>=<整形常量>

符号常量

定义形式:const <类型名><符号常量名>=<表达式>[,…];

[]表示可选项,以下都采用这种标记。

定义的符号常量必须初始化。一个符号常量可看作是一个只读变量,由const定义的常量的值不可以改变。const的最常见的用途是作为数组的界和作为分情况标号。

2.3 运算符与表达式

在程序中,表达式是计算求值的基本单位,它是由运算符和运算数组成的式子。运算符是表示进行某种运算的符号。运算数包含常量、变量和函数等。C++语言的运算符按其在表

2.4 简单输入与输出

在C++中,I/O使用了流的概念-字符(或字节)流。每一个I/O 设备传送和接收一系列的字节,称之为流。输入操作可以看成是字节从一个设备流入内存,而输出操作可以看成是字节从内存流出到一个设备。要使用C++标准的I/O流库的功能,需要包括两个头文件:iostream.h用于提供基本的输入输出功能,iomanip.h用于提供格式化的功能。

2.4.1 I/O的书写格式(基本数据类型的输入输出)

头文件iostream.h包含有cin和cout对象,对应于标准输入流和标准输出流。流读取运算符“>>”表示流的输入,可以从cin输入流中读取字符;流插入运算符“<<”表示流的输出,可以向cout输出流插入字符。

如:cout<<”hello world.”<

int i,j;

cin>>i>>j; //输入i,j的值

2.4.2使用控制符(基本数据类型输入输出的格式控制)

C++中提供了大量的用于执行格式化输入输出的格式控制符,具体名称及作用请参看表2.2。

控制符描述所在头文

dec 置基数为10iostream.h hex置基数为16

oct置基数为8

setfill(c)设填充字符为c

setprecision(n)设显示小数精度为n位

setw(n)设域宽为n个字符

setiosflags(ios::fixed)固定的浮点显示iomanip.h

setiosflags(ios::scientific)指数表示

setiosflags(ios::left)左对齐

setiosflags(ios::right)右对齐

setiosflags(ios::skipws)忽略前导空白

setiosflags(ios::uppercase)16进制数大写输出

setiosflags(ios::lowercase)16进制数小写输出

setiosflags(ios::showpoin) 显示小数点

setiosflags(ios::showpos) 显示符号(正负号)

setiosflags(ios::showbase) 指定在数值前输出进制(0表示八进制,0x或

0X表示十六进制)

表2.2 I/O流的常用控制符

【典型例题】

例题1:对以下各种数据类型比较所占用存储空间的大小:

(1)char、int、short int、long int、double、long double.

(2) signed int、unsigned int.

解答:

(1) 本题主要考查的知识点是各种类型所占用的存储空间的大小以及相应的表数范围。在32位计算机中,char占1个字节,short int 占2个字节,int占4个字节,long int占4个字节,double占8个字节。sizeof运算符用于求解某种数据类型的大小。short和long 在修饰整型时可以省略int。答案为:

(2)对于一种确定的数据类型有符号数与无符号数所占的存储空间相同,表数范围不同。修饰符signed和unsigned只能用于修饰字符型和整型。答案为:

例题2:下列哪一项能用作用户自定义的标识符:

(a)const (b)2var (c)my name (d)var2

解答:

本题主要考查标识符命名规则。C++关键字不能用于用户自定义标识符,(a)中const是关键字;第一个字符必须是字母或下划线,(b)中2var是以数字开头;不能含有空格,(c)中my name含有空格。答案为:d。

例题3:指出下列程序中的错误:__________。

int main()

{

const int x;

x=100;

return 0;

}

解答:

本题主要考查对符号常量的理解。const定义的符号常量必须初始化,由const定义的常量的值不可以改变。所以本题有两处错误:第一、没有对符号常量x进行初始化;第二、给符号常量赋值是错误的。

例题4:给下列表达式加上全部的括号(假设所用变量均已定义):

(1) a+b-c--%b

(2) a>b?b:c>d?a:c

(3) a+=a+b||e

(4) a&b+c++

(5) -a&&b-c

(6) k=b=c=a

解答:

本题主要考查表达式中运算符的优先级与结合性。请参阅表2.1。为了避免出错,建议读者在书写表达式时完整书写括号。

(1)答案为:(a+b)-((c--)%b)

(2)答案为:a>b?b:(c>d?a:(c

(3)答案为:a+=((a+b)||e)

(4)答案为:a&(b+(c++))

(5)答案为:(-a)&&(b-c)

(6)答案为:k=(b=(c=a))

例题5:请根据下列题意写出相应的表达式。

(1)有a、b、c、max四个变量a、b、c中的最大值,并将结果放入max中。

(2)年龄在1到100之间(包含1和100,年龄用变量age表示)。

(3)公式。

(4)判断一年是否为闰年,年用year表示。满足下列两个条件之一即为闰年:①

能被4整除但不能被100整除②能被400整除。

解答:

(1)主要考查对条件表达式的理解和书写。答案为:max=a>b?(a>c?a:c):(b>c?b:c)。

(2)主要考查对逻辑表达式的理解和书写。答案为:1<=age&&age<=100。

(3)主要考查如何在计算机中表示一个数学公式。答案为:(a+b)*h/2。

(4)主要考查对逻辑表达式的理解和书写。答案为:(year%4==0&&year%100!=0)||(year%400==0)。

例题6:下列选项中两个表达式的运算结果相同的是()。

(a)3/2和3.0/2.0 (b)3/2和3.0/2 (c) 3/2.0和3.0/2.0 (d) 3/2.0和3/2 解答:

本题考查数据类型及表达式中数据类型的隐式转换。3/2中两个操作数都为整型,运算结果仍为整型即1;3.0/2和3/2.0中一个操作数为整型另一个为浮点型,运算时整型隐式转换为浮点型,运算结果也为浮点型即1.5;3.0/2.0两个操作数均为浮点型,结果也为浮点型即1.5。答案为:(c)。

例题7:

下列程序的运行结果为:______________。

#include

void main()

{

int a=2,b=4,i=0,x;

x=a>b&&++i;

cout<<"x:"<

cout<<"i:"<

}

解答:

本题主要考查“短路”表达式的运算。对于表达式中的“与”运算而言,只要有一个操作数为假,结果为假。所以当第一个操作数为假时,不在求解其它操作数。对于表达式中的“或”运算而言,只要有一个操作数为真,则结果为真。所以当第一个操作数为真时,不在求解其它操作数。本题中a>b为假,所以表达式a>b&&++i为假,而++i没有执行。故i为0。答案

为:x:0

i:0

例题8:求解下列各表达式的值(其中x的值为100)。

(1)(a=1,b=2,c=3)

(2)1|3<<5

(3)'a'+3&&!0%1

(4) x%2?“odd”:” even”

解答:

(1)逗号表达式的值是其最后一个表达式的值。答案为:3。

(2)<<运算符的优先级高于|运算符,所以先算3<<5结果为96(二进制1100000),然后与1

做按位与运算则结果为97(二进制1100001)。答案为:97。

(3)参与本题的运算符,按优先级由高到低依次是:!运算符、算术运算符、逻辑运算符。

'a'+3时字符型首先隐式转换成整型然后相加结果为100,!0%1即1%1结果为0,100&&0结果为0。答案为:0。

(4)算术表达式的优先级高于条件表达式,所以先算x%2结果为0,0?”odd”:”even”结

果为”even”。本题完成判断一个数是奇数还是偶数,若该数为奇数,则表达式的值为”

odd”,为偶数,则表达式的值为”even”。答案为:”odd”。

例题9:下列程序运行结果为:_______________。

#include

#include

void main()

{

int a=23;

double b=23.123456789;

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

}

解答:

本题主要考查对格式化输入输出的掌握。

①本题主函数中第三行输出a,b,’\t’为转义字符,其含义是跳过一个制表位。不设置输出宽度时,默认输出6位有效数字,超出部分四舍五入。所以该行输出为:23 23.1235。

② setprecision(n)设置显示精度,最少显示一位有效数字。如果不重新设置,则其保持效力,所以使用完后要还原为6位默认值。第四行中设置setprecision(0)与setprecision(1)作用相同,结果显示一位有效数字即为:2e+001。

③ setiosflags(ios::fixed)为固定的浮点显示,其后跟setprecision(n)表示小数点后显示精度为n。所以第五行输出结果为:23.1234568。

④ setiosflags(ios::scientific)为指数显示,当其整数部分宽度大于设置的显示精度(默认为6位)时,以指数形式显示结果。否则根据设置的(或默认的)显示精度显示n位有效数字。所以第六行输出结果为:23.12346。

⑤ setiosflags(ios::showbase)为指定在数值前输出进制。hex置基数为16,且该操作保持效力,所以使用完后应该恢复为默认值10进制。第九行输出结果为:0x17 0x17。

⑥setw(n)设域宽为n个字符,setfill(c)设填充字符为c,setiosflags(ios::left)为左对齐。第十一行输出结果为:23********。

答案为:

23 23.1235

2e+001

23.1234568

23.12346

0x17 0x17

23********

【习题】

一、选择题

1.下列数据类型不是C++语言基本数据类型的是()。

(a)字符型 (b)整型 (c)浮点型 (d)数组

一、下列字符列中,可作为C++语言程序自定义标识符是()。选择题

2.

(a)x (b)-var (c)new (d)3i

3.下列数中哪一个是8进制数()。

(a)0x1g (b)010 (c)080 (d)01b

4.已知a=1,b=2,c=3,则表达是++a||-b&&++c的值为()。

(a)0 (b)1 (c)2 (d)3

5.下列表达式选项中,()是正确的。

(a)++(a++) (b)a++b (c)a+++b (d)a++++b

6.已知枚举类型定义语句为:()。

enum color{RED,BLUE,PINK=6,YELLOW,GREEN,PURPLE=15};

则下列叙述中错误的是()。

(a)枚举常量RED的值为1 (b)枚举常量BLUE的值为1

(c)枚举常量YELLOW的值为7 (d)枚举常量PURPLE的值为15

7.下列程序的运行结果正确的是()。

#include

#include

void main()

{

const double pi=3.1415926;

cout<

<

<

return;

}

(a)3.142

3.142

**3.14159260

(b)3.14

3.142

**3.14159260

(c)3.14

3.14

3.14159260**

(d)3.14

3.142

***3.1415926

8.若int x=3,y=5;则表达式x&y++%3的值为()。

(a)0 (b)1 (c)2 (d)3

9.下列常量正确的是()。

(a) ”hello (b)1FL (c)3.14UL (d) 1.8E-3

World”

10.若char x=97;,则变量x包含几个字符()。

(a)1个 (b)2个 (c)4个 (d)8个

二、填空题

1.c++语言标示符是以字母或__________开头的,由字母、数字、下划线组成。

2.在C++语言中,char型数据在内存中的存储形式是__________。

3.在内存中,存储字符‘x’占用1个字节,存储字符串“x”要占用________个字节。

4.符号常量可以用宏定义define和__________表示。

5.转义字符序列中的首字符是_________。

6.空字符串的长度是__________。

7.表达式cout<<’\n’;还可以表示为__________。

8.若要为unsigned int定义一个新的名字UINT应采用的语句是__________。

9.以下程序不借助第3个变量实现a,b值得交换,请填空。

#include

Void main()

{

int a,b;

cout<<”输入a,b:”;

cin>>a>>b;

a=___a+b_______;

b=_____a-b_____;

a=______(a-b)/2;

cout<

}

10.大多数C++程序都要包含头文件__________。该文件中包含了所有输入/输出流操作

所需的基本信息。当使用带参数的操作时,程序中必须包含头文件__________。

三、编程题

1.编写一个程序,输入一个三位数,分别输出该数的百位、十位和个位。

2.编写一个程序打印出各种基本数据类型、几个你自己定义的复合数据类型的大小。

使用sizeof运算符。

【参考答案】

一、选择题

1.d

2.a

3.b

4.b

5.c

6.a

7.b

8.c

9.d

10.a

二、填空题

1.下划线

2.ASCII

3.2

4.const

5.\

6.0

7.cout<

8.typedef unsigned int UINT;

9.a+b a-b a-b

10.iomanip.h iostream.h

三、编程题

1.

#include

void main()

{

int num,var1,var2,var3;

cout<<"请输入一个三位数:"<

cin>>num;

if(num>999||num<100) //用于检查输入数据的合法性

cout<<"您的输入有误!"<

else

{

var1=num/100;

var2=(num-var1*100)/10;

var3=num%10;

cout<<"百位数为:"<

<<"十位数为:"<

<<"个位数为:"<

}

}

2.

#include

#include

void main()

{

int array[10];

enum month{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};

char *p;

cout<<"The size of char is:"<

<<"The size of int is:"<

<<"The size of short int is:"<

<<"The size of long int is:"<

<<"The size of float is:"<

<<"The size of double is:"<

<<"The size of long double is:"<

<<"The size of signed int is:"<

<<"The size of unsigned int is:"<

<<"The size of array is:"<

<<"The size of month is:"<

<<"The size of p is:"<

}

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. 10、在以下一组运算符中,优先级最低的运算符是( D )。

运算符与表达式练习题附答案

1. 以下运算符中优先级最高的是()。 A.&&B.+ C.!= D.?: 2.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()。 A.a>=10 or a<=0 B.a>=10| a<=0 C.a>=10 && a<=0 D.a>=10||a<=0 3. C语言中运算对象必需是整型的运算符是()。(A)+ (B)/ (C)% (D)* 4. 已知int i;float f;正确的表达式是()。 A)(int f)%i B) int(f)%i C) int(f % i) D) (int)f % i 5. 下列程序的输出结果是()。 void main( ) { int a=7,b=5; printf("%d\n",b=b%a); } (A)0 (B)1 (C)5 (D)不确定值6. 若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;

后,c的值为()。 (A)1.4 (B)1 (C)2.0 (D)2 7. 已知x=4.5,y=2.5,求表达式(x+y)/2+(int)y%(int)x的值()。 A) 3 B) 5 C) 3.5 D) 5.5 8. 已知各变量的类型如下 int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是()。 (A)a+=a-=(b=4)*(a=3)(B)a=a*3+2 (C)x%(-3)(D)y=float(i) 9. 已知int a,b;执行语句a=(b=3*2,b*4),a+6;后变量a的值为()。 A) 6 B) 12 C) 24 D)30 10. 若有以下程序 main() { int k=2,i=2,m; m=(k+=i*=k);

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.花括号"{"和"}"只能作为函数体的定界符

(完整word版)C语言运算符与表达式的练习题答案

C语言运算符与表达式的练习题 单项选择题 (1)以下选项中,正确的 C 语言整型常量是(D)。 A. 32L B. 510000 C. -1.00 D. 567 (2)以下选项中,(D)是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3)字符串的结束标志是(C)。 A. 0 B. '0' C. '\0' D. "0" (4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (5)逻辑运算符中,运算优先级按从高到低依次为(D)。 A. && ! || B. || && ! C. && || ! D. ! && || (6)表达式!x||a==b 等效于(D)。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (7)设整型变量 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 *(8)设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是(B)。 A. 3 B. 0 C. 9 D. -12 (9)在以下一组运算符中,优先级最低的运算符是(D)。 A. * B. != C. + D. = (10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B,上机13)。 A. 6 B. 12 C. 15 D. 表达式出错 (11)若已定义 x 和 y为double 类型,则表达式的值是(D)。

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

第三章运算符与表达式练习题 一、单项选择题 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)

表达式与语句

表达式与语句 前面已经提到过表达式,相信大家对表达式也有了一个初步的认识,它是由常量、变量、运算符组合(到以后讲函数时,函数也可以是组成表达式的元素),计算以后返回一个结果值。表达式的结束标志是分号(;),C语言中所有的语句和声明都是用分号结束,在分号出现之前,语句是不完整的。例如: 1+2; Counter/3+5; Height*Width; 表达式本身什么事情都不做,只是返回结果值。在程序不对返回的结果值做任何操作的情况下,返回的结果值不起任何作用,表达式的作用有两点,一个是放在赋值语句的右边,另一个是作为函数的参数(以后再介绍)。 表达式返回的结果值是有类型的。表达式隐含的数据类型取决于组成表达式的变量和常量的类型。因此,表达式的返回值有可能是某种大小的整型,或者是某精度的浮点型,或者是某种指针类型。 这里面就有类型转化的问题了,在前面说整型运算的时候也提到过。类型转化的原则是从低级向高级自动转化(除非人为的加以控制)。计算的转换顺序基本是这样的:

字符型-->整型-->长整型-->浮点型-->单精度型-->双精度型 就是当字符型和整型在一起运算时,结果为整型,如果整型和浮点型在一起运算,所得的结果就是浮点型,如果有双精度型参与运算,那么答案就是双精度型了。 强制转换是这样的,在类型说明符的两边加上括号,就把后面的变量转换成所要的类型了。如: (int) a; (float) b; 第一个式子是把a转换成整型,如果原先有小数部分,则舍去。 第二个式子是把b转换成浮点型,如果原先是整数,则在后面补0。 每一个表达式的返回值都具有逻辑特性。如果返回值为非0,则该表达式返回值为真,否则为假。这种逻辑特性可以用在程序流程控制语句中。 有时表达式也不参加运算,如: if(a||b) ………… 5>3?a++:b++; 当a为真时,b就不参加运算了,因为不管b如何,条件总是真。 二、语句 (一)、赋值语句

C语言运算符与表达式的练习题

C语言运算符与表达式的练习题 (作业写到纸质作业本上,在规定时间内交给助教批阅,不要 再网上提交) 一、单项选择题 (1) 以下选项中,正确的C 语言整型常量是。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中,是不正确的C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3) 在C 语言中,字符型数据在计算机内存中,以字符 的形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4) 字符串的结束标志是。 A. 0 B. '0' C. '\0' D. "0" (5) 算术运算符、赋值运算符和关系运算符的运算优先级按 从高到低依次为。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运 算、赋值运算

C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为。 A. &&,!,|| B. ||,&&,! C. &&,||,! D. !,&&,|| (7) 表达式!x||a==b 等效于。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 (9) int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为。 A. 2,3 B. 2,0 C. 3,0 D. 3,2 (10) 设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量 a 的值是。 A. 3 B. 0 C. 9 D. -12 (11) 在以下一组运算符中,优先级最低的运算符是。 A. * B. != C. + D. =

运算符和表达式

运算符和表达式 上课到这一课相隔了好长一段时间,这些日子里收到不少网友的来信支持和鼓励,要求尽快完成余下的部分。出门在外的人不得不先为吃饭而努力,似乎这也成为我的借口,以后每晚抽空打一些吧这样大家也就可以不用隔太久就能看到一些新东西。或许我的笔记并不是很正确,但我尽量的保证每课的实验都会亲自做一次,包括硬件的部分,已求不会误人子弟。 随着访问量不断的增加,网站已启用了https://www.doczj.com/doc/dc16939399.html,的国际域名,在这里我感谢各位一直支持磁动力工作室的朋友,更要感激身在远方一直默默支持我的女友。 明浩2003-7-14 晚 呵,费话少说了。上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧。这个语句就是typedef,这是个很好用的语句,但我自己却不常用它,通常我定义变量的数据类型时都是使用标准的关键字,这样别人可以很方便的研读你的程序。如果你是个DELPHI编程爱好者或是程序员,你对变量的定义也许习惯了DELPHI的关键字,如int类型常会用关键字Integer来定义,在用C51时你还想用回这个的话,你可以这样写: typedef int integer; integer a,b; 这两句在编译时,其实是先把integer定义为int,在以后的语句中遇到integer就用int置换,integer就等于int,所以a,b也就被定义为int。typedef不能直接用来定义变量,它只是对已有的数据类型作一个名字上的置换,并不是产生一个新的数据类型。下面两句就是一个错误的例子: typedef int integer; integer = 100; 使用typedef可以有方便程序的移植和简化较长的数据类型定义。用typedef还可以定义结构类型,这一点在后面详细解说结构类型时再一并说明。typedef的语法是typedef 已有的数据类型新的数据类型名 运算符就是完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为单目运算符,双目运算符和三目运算符。单目就是指需要有一个运算对象,双目就要求有两个运算对象,三目则要三个运算对象。表达式则是由运算及运算对象所组成的具有特定含义的式子。C是一种表达式语言,表达式后面加";"号就构成了一个表达式语句。 赋值运算符 对于"="这个符号大家不会陌生的,在C中它的功能是给变量赋值,称之为赋值运算符。它的作用不用多说大家也明白,就是但数据赋给变量。如,x=10;由此可见利用赋值运

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/dc16939399.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); }

c语言关系运算符和表达式

关系运算符和表达式 在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。在C语言中有以下关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 != 不等于 关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。 关系表达式 关系表达式的一般形式为:表达式关系运算符表达式例如:a+b>c-d,x>3/2,'a'+1

a>(b>c),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。 如: 5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。 void main(){ char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",'a'+5=k+1); printf("%d,%d\n",1=k+1); printf("%d,%d\n",1

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

基本数据类型、运算符和表达式 (总分: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);

VBA编程系列之VBA的运算符和表达式

VBA编程系列之VBA的运算符和表达式

VBA编程系列之VBA的运算符和表达式 整理了近两天,贴出来供分享! VBA的运算符和表达式 [摘要] 本文从广义的角度将VBA的运算符进行了全面的归纳和总结,包括通常意义上的算术运算符、连接运算符、比较运算符和逻辑运算符,还包括了赋值运算符、点运算符以及Like运算符、AddressOf运算符等。同时,概述了表达式的知识。 提示学习是需要思考和实践的,只有举一反三,才能真正理解和掌握。因为VBA的一些运算符涉及到较强的逻辑关系,您在阅读本文时,可以不断思考它们之间的逻辑关系。同时,您可以在VBE编辑器的模块中测试本文中的一些语句和示例,以加深认识。 在使用VBA编程时,您一定会经常使用到VBA运算符,它是VBA程序的重要组成部分。在本文中,我将运算符分为两大类,一类是通常意义上的运算符,即:算术运算符、连接运算符、比较运算符和逻辑运算符;另一类是与语句相关的运算符,即:赋值运算符和点运算符。此外,还简略地介绍一下Like运算符和AddressOf运算符。 您通过使用运算符,对VBA各种元素进行连接,或者完成一些运算以形成了VBA表达式或语句。再进一步说,表达式是数字、字符串、常量、变量、对象成员、以及运算符的组合。 算术运算符和表达式 ■算术运算符包括+(加法运算符)、- (减法运算符)、/ (除法运算符)、\(整除运算符)、Mod(取模运算符)、^(乘幂运算符),下面逐一进行介绍。 + 加法运算符。形成数值表达式,并将数值或数值表达式相加。也可用于连接两个字符串变量,但建议用连接运算符进行连接。例如,结果=表达式1+表达式2。 - 减法运算符。形成数值表达式,将数值或数值表达式相减。也可用在数值之前,用于表示负数。例如,结果=表达式1-表达式2。 * 乘法运算符。形成数值表达式,将数值或数值表达式相乘。例如,结果=表达式1*表达式2。 / 除法运算符。形成数值表达式,将两个数值或数值表达式相除,其中除数不能为零,否则会得到一个错

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

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