第二章基本制结构程序设计习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章基本控制结构程序设计习题
一.基本概念与基础知识自测题
2.1 程序阅读题
2.1.1 设有说明:
int a=3, b=100;
下面的循环语句执行(1)次,执行后a、b的值分别为(2)、(3)。
while(b/a>5){
if(b-a>25) a++;
else b/=a;
}
解答:
本题检查学生整除的概念。跟踪:
(1)14
(2)17
(3)100
2.1.2 设有说明:
int x,y,n,k;
下面程序段的功能是备选答案中的(1),当n=10,x=10打印结果是(2)。cin>>x>>n;
k=0;
do{
x/=2;
k++;
}while(k y=1+x; k=0; do{ y=y*y; k++; }while(k cout< 备选答案: A. n n x y )1(+= B. n n x y 2)21(+= C. n n x y )21(+= D. n n x y 21)2 1(++= 解答: 第一个循环使x 成为:n x 2;y 成为:n x 21+;第二个循环使y 成为:n n x 2)2 1(+; (1)B 考虑整除,当x 连除4次2以后即为0,所以: n x 2为0 (2)1 2.1.3 请看如下程序段: if (num==1) cout<<”Alpha”; else if (num==2) cout<<”Bata”; else if (num==3) cout<<”Gamma”; else cout<<”Delta”; 当num 的值分别为1、2、3时,上面程序段的输出分别为(1) 、(2) 、(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; } m-=3; } (1)11 (2)8 二.编程与综合练习题 2.2 有一个函数: ⎪⎩ ⎪ ⎨⎧≥-≤≤<=)10x ( 113x )10x (1 1-2x 1)(x x y 编写程序,输入x ,输出y 。 解: #include 2.3 设计程序将输入的百分制成绩转换为五分制输出,90分以上为5分,8089分为4分, 7079分为3分,6069分为2分,60分以下为1分。 解:10分一档用10进行整除获得,转换用开关语句实行。 #include 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 编程计算个人所得税。个人所得税率表如下:月收入1200元起征,超过起征点500元以内部分税率5%,超过500元到2,000元部分税率10%,超过2,000元到5,000元部分税率15%,超过5,000元到20,000元部分税率20%,超过20,000元到40,000元部分税率25%,超过40,000元到60,000元部分税率30%,超过60,000元到80,000元部分税率35%,超过80,000元到100,000元部分税率40%,超过100,000元部分税率45%。 解:应该从最高税率段开始计算,分段叠加。先算两万元以上各段,每两万为一档,采用switch 语句,注意没有使用break语句。后面各低收入段,用if语句,也没有使用else,这两种方法是对应的。第二要注意计算的入口处,收入减去该段的下限,进行计算,以后各段都是完整的段,计算十分简单。 #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;