c++程序设计第二版完整答案

更新时间:2024-07-08 15:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章基本控制结构程序设计习题 1

第一章 C++基础知识习题

1.1 判断下列标识符的合法性。 sin book 5arry _name Example2.1 main $1 class_cpp a3 x*y my name

答:合法的:sin book _name main class_cpp a3 非法的:5arry Example2.1 $1 x*y my name

1.2 假定有下列变量: int a=3,b=5,c=0;

float x=2.5,y=8.2,z=1.4;

char ch1=’a’,ch2=’5’,ch3=’0’,ch4;

求下列表达式的值,以及运算后表达式所涉及的各变量的值。

x+(int)y%a x=z*b++,b=b*x,b++ ch4=ch3-ch2+ch1 int(y/z)+(int)y/(int)z !(a>b)&&c&&(x*=y)&&b++ ch3||(b+=a*c)||c++ z=(a<<2)/(b>>1)

答:x+(int)y%a 表达式值为:4.5,运算后x、y、a的值不变,仍分别为2.5、8.2、3。 提示:运算时取出y变量的数值强制转化为整型数放入寄存器参加运算,但内存中y本身的数值不变化。只有赋值运算和自增、自减运算才改变变量本身的值 x=z*b++,b=b*x,b++ 表达式值为:42,运算后x为7.0,b为43。

提示:逗号表达式,依次运算,表达式的值是最后一次运算的值。后++是变量先参加运算然后变量自身加1,所以第1步x等于1.4*5,即7.0,然后b增为6;第2步b赋值为42;第3步,表达式的值是上一步后b的值42,但随后b的值自增1,成为43。

ch4=ch3-ch2+ch1 表达式值为:’\\\\’,字符外斜杠。运算后ch1、ch2、ch3值不变。 提示:字符型的变量实质是范围很小的整型量。

int(y/z)+(int)y/(int)z 表达式值为:13。y和z自身的值不变。

提示:int(y/z)是完成实数除法后,商强制转化为整型,(int)y/(int)z则是数值先转换,完成的是整除。

!(a>b)&&c&&(x*=y)&&b++ 表达式值为:0。运算后x仍为2.5,b仍为5

提示:只要出现一个false右边的不再做,因为c为0,即false,所以其右的所有运算不再做。

ch3||(b+=a*c)||c++ 表达式值为:1。运算后b为5,c为0,均不变。 提示:只要出现一个true,右边不再做。ch3的值为48。

z=(a<<2)/(b>>1) 表达式值为:6。运算后a与b的值不变仍为3和5。

提示:a的数值为(00000011)2,左移2位为(00001100)2即12,相当整数2两次,而b的数值为(00000101)2,右移1位为(00000010)2,即2,相当于整除2。

1.3 判断下列哪些是常量,哪些是变量。

\ const int n=10; int m=5; 'a' char ch='a' int array[5]={1,2,3,4,5}; char s[]=\答:\文字常量 const int n=10;常变量 int m=5;变量 'a'文字常量 char ch='a'变量

第二章基本控制结构程序设计习题 2

int array[5]={1,2,3,4,5}; 变量 char s[]=\变量

1.4 将下列算式或叙述用C++表达式描述。

?(1) 2?arcsin2(x)?c2

(2) (x+y)/((x-y)*ay)

(3) 位于原点为圆心,a, b为半径的圆环中的点坐标。 (4) a?b?c。

(5) k?20并且字符ch不为'\\0'。

答:pi/2+sqrt(asin(x)*asin(x)+c*c) (x+y)/((x-y)*pow(a,y))

((x*x+y*y)>=a*a)&&((x*x+y*y)<=b*b) (a!=b)&&(a!=c)&&(b!=c) (k<=20)&&(ch!='\\0')

1.6 设有语句: int a, b; float x,y;

char ch1,ch2,ch3;

cin>>a>>b>>x>>y>>ch1; ch2=cin.get(); cin>>ch3;

若从键盘输入:

3 2 1.8 7 a b c

执行后各变量取值如何?注意abc三字符两两间有空格。

答:a是3,b是2,x是1.8,y是7,ch1是’a’,ch2是空格,ch3是’b’。

1.7 设有语句: int a,b,c,d;

cin>>oct>>a>>b>>hex>>c>>dec>>d; 若从键盘输入: 23 23 23 23

执行后各变量的值用十进制表示各是多少? 答:a:19,b:19,c:35,d:23

1.8 对于习题1.7,若执行:

cout<

第二章基本控制结构程序设计习题 3

第二章基本控制结构程序设计习题 一.基本概念与基础知识自测题 2.1 程序阅读题 2.1.1

解答:

本题检查学生整除的概念。跟踪: a 3 4 5 ? 15 16 17 (1)14 (2)17 (3)100

2.1.2 解答:

b 100 100 100 ? 100 100 100 b/a 33 25 20 ? 6 6 5 循环次数 1 2 3 ? 13 14 停 b-a 97 96 95 ? 85 84 xxx2n1?(1?)nnn222第一个循环使x成为:;y成为:;第二个循环使y成为:;

(1)B

xn考虑整除,当x连除4次2以后即为0,所以:2为0

(2)1

2.1.3 解答:

检查条件语句与字符串输出概念: (1)Alpha (2)Bata (3)Gamma

2.1.4 执行下面程序段后,m和k的值分别为(1)、(2)。 int m,k;

for(k=1,m=0;k<=50;k++){ if(m>=10) break; if(m%2==0){ m+=5; continue; }

第二章基本控制结构程序设计习题 4

m-=3; }

解答:注意continue语句的使用 m=0 初值 第1次循环后 第2次循环后 第3次循环后 第4次循环后 第5次循环后 第6次循环后 第7次循环后 第8次循环 (1)11

(2)8

二.编程与综合练习题 2.2

解:

#include using namespace std; int main(){ double x,y;

m=5 m=2 m=7 m=4 m=9 m=6 m=11 m=11结束 k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8 k=8,k++未做 cout<<\输入x=\ cin>>x; if(x<1) y=x; else if(x<10) y=2*x-1; else y=3*x-11; cout<<\ return 0; }

2.3 解:10分一档用10进行整除获得,转换用开关语句实行。 #include using namespace std; int main(){

int mark,result; //mark是百分制成绩,result是5分制 cout<<\请输入百分制成绩:\cin>>mark; if(mark<0) { cout<<\缺考!\ return 0; }

switch (mark/10){ case 9: case 10:

第二章基本控制结构程序设计习题 5

result=5;

cout<<\输出五分制成绩:\ break; case 8: result=4; cout<<\输出五分制成绩:\ break; case 7: result=3; cout<<\输出五分制成绩:\ break; case 6: result=2; cout<<\输出五分制成绩:\ break;

case 5:case 4:case 3:case 2:case 1:case 0: result=1; cout<<\输出五分制成绩:\ break; default:

cout<<\输入错误!\ } return 0; } 2.4

#include using namespace std; int main(){ double income,tax=0; int k; cout<<\请输入个人月收入:\ cin>>income; if(income<=1200){ cout<<\免征个人所得税\ return 0; } else income-=1200; if(income>20000){ k=income/20000; switch(k){ default: tax+=(income-100000)*0.45;income=100000; case 4: tax+=(income-80000)*0.40;income=80000; case 3: tax+=(income-60000)*0.35;income=60000;

本文来源:https://www.bwwdw.com/article/j4d.html

Top