第3章练习 表达式和语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编程题:
1.输入一名学生的成绩,判断该成绩的等级。
如>=60的,显示“合格”,<60的显示“不合格”。
程序:
#include
void main()
{ int score; //声明成绩变量,用来保存分数
cout<<”输入成绩:”; //提示用户的信息
cin>>score; //从键盘上输入分数传递给score
if( score>=60) //判断该条件是否真或假
cout<<”合格”<
else
cout<<”不合格”<
}
分析:
(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.设程序中有说明语句