第3章练习 表达式和语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编程题:

1.输入一名学生的成绩,判断该成绩的等级。

如>=60的,显示“合格”,<60的显示“不合格”。

程序:

#include //输入输出流对象的头文件

void main()

{ int score; //声明成绩变量,用来保存分数

cout<<”输入成绩:”; //提示用户的信息

cin>>score; //从键盘上输入分数传递给score

if( score>=60) //判断该条件是否真或假

cout<<”合格”<=60是真的时候,运行该语句

else

cout<<”不合格”<=60是假的时候,运行该语句

}

分析:

(1)首先该题目要求输入一个分数,则事先声明一个整型变量score。

(2)其次从键盘上输入该分数,应有输入语句cin,并由上面定义的变量来保存分数。

(3)然后根据分数来判断等级,有两种情况应该用if语句。

(4)输出的信息是根据不同条件显示字符串,用到cout输出流对象。

(5)用到标准输入输出流对象,所以在程序前加相应头文件。

2.编写一个能输出以下信息的程序。

How are you.

Fine,thank you.

程序:

#include

V oid main()

{ Cout<<”How are you.”<

Cout<<”Fine,thank you.”<

}

3.编写一个求两个数78、45之差的程序。

程序:

#include

void main()

{ int sum=0;

sum=78+45; //求和

cout<<"78+45= "<

}

4.编写一个求三个数14、25、16之和的程序。

#include

void main()

{ int a,b,c,sum; //定义变量

cout<<"input three number:\n";

cin>>a>>b>>c; //从键盘输入三个数给变量a和b、c

sum=a+b+c; //求和

cout<<"sum is "<

}

5.上机运行,熟悉所用系统的上机方法与步骤。

选择分析题:

例题1:运算符+、=、*、>=中,优先级最高的运算符是()。P35

A.+ B.= C.* D.>=

答案:C

分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。

例题2:下面正确的为()。

A.4.1/2 B.3.2%3

C.3/2==1 结果为0 D.7/2 结果为3.5

答案:A

分析:%运算符要求式整型;关系运算值为1;两个整数相除,商为为相除后的整数部分。

例题3:已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a

答案:D

分析:此题是考察“++”运算符、逗号运算符、条件运算符及它们运算优先级的综合题,根据这些运算符的运算规则,得出表达式的运算结果。

例题4:已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。

A.j=i+(++j)B.j=j+i++ C.j=++i+j D.j=j+++i

答案:C

分析:自增++、自减运算符在变量的前面或后面,其运算结果是不同的。若++或—在变量前,则先将变量的值加1(或减1)后,再将变量的值参与运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。自增++、自减运算符优先级高于算术运算符。

例题5:已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是()。A.0 B.语法错C.1 D.“假”

分析:根据C++语言中运算符优先级的高低,“!”运算符最高,关系运算符高于逻辑运算符。则上面的表达式转换为:1&&1&&1,结果为1。

答案:C。

填空题

例题1:如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为____。

答案:1

分析:%运算符是求余运算,得到的结果是相除后的余数。表达式转换为6%2+(6+1)%2=0+7%2=1。

例题2:如果定义int a=2,b=3;float x=5.5,y=3.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_____。

答案:4.5

分析:不同类型的数据混合运算时,可以使用强制类型转换符,强制将一种数据类型转换为另一种数据类型后再进行运算。对表达式,先求表达式的值,再转换值的类型,本题的运算结果为4.5。

例题3:设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为____。

答案:9

分析:逗号运算符是是将两个或多个表达式组合成一个表达式的运算符。求解时从左至右依次计算每个表达式的值,整个表达式的值就是最右边的表达式的值。本题的答案为9。

例题4:已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘4’的值为____。

答案:e

分析:C++语言中,对字符数据进行算术运算,实际上就是对字符的ASCII码进行运算。以字符形式输出时,再将ASCII码转换为相应的字符输出。本题表达式为ch=97+8-4=101,101相应的ASCII为字符e。

选择题:

(1) 运算符+、<=、=、% 中,优先级最低的运算符是()。

A. +

B.<=

C.=

D.%

答案:C

(2) 设变量m,n,a,b,c,d均为0,执行(m = a==b)||(n=c==d)后,m,n的值是()。

A.0,0

B. 0,1

C. 1,0

D. 1,1

答案:C

(3)设有代码“int a = 5;”,则执行了语句“a + = a - = a*a;”后,变量a的值是()。

A.3

B. 0

C. -40

D. –12

答案:C

(4)设a为5,执行下列代码后,b的值不为2的是()。

A. b = a/2

B. b = 6-(--a)

C. b = a%2

D. b = a < 3 ? 3: 2

答案:C

(5)数学公式

y

x e

y

写成C表达式,下面的()是正确的。

A.sqrt (abs(pow(x, y) + exp(y)))

B.sqrt (abs(pow(y, x) + exp(y)))

C.sqrt (fabs(pow(x, y) + exp(y)))

D.sqrt (fabs(pow(y, x) + exp(y)))

答案:D

简答题:

1.x为int类型,y为double类型,指出下列各表达式值的类型。

(1)1/3 int (2) 48L long

(3) 5 % 3 int (4) x*3/y double

(5) ‘x’+20int (6) (int )y int

(7) y != 10 bool (8) x<1 || x>10 bool

(9) x>10 ? x : sqrt (x) int或float (10) x && y bool

(11) true bool (12) (char) (x+10) char

(13) 1.0 /3 float (14) sizeof (float) int

(15) x,y,x+y double

说明:(9)题,如果x>10成立,表达式值的类型为int,如果x>10不成立,表达式值的类型为float。(15)题,为逗号表达式,x+y的值即为整个表达式的值,因而值的类型为double。bool型在C++用int代替,true值为1,false值为0。

2. 写出下列算术表达式的值:

(1) x+a%3*(int)(x+y)%2/4 x=2.5,a=7,y=4.7

答:上述表达式=2.5+1*(int)7.2%2/4 = 2.5+1*7%2/4 = 2.5

(2) (float)(a+b)/2+(int)x%(int)y a=2,b=3,x=3.5,y=2.5

答:上述表达式=(float)5/2+3%2 = 2.5+1 = 3.5

3.设程序中有说明语句

相关文档
最新文档