程序结构练习题知识要点流程控制是控制程序中语句执行的顺序。
任何程序设计语言都具备流程控制的功能,而C++语言提供了比其它高级语言更丰富的流程控制语言。
本章节主要介绍了程序设计中最基本三种结构:顺序、分支和循环,要求掌握以下的知识要点:1.掌握顺序结构的编程方法。
2.掌握使用cin、cout实现数据的输入/输出。
3.学会应用字符输入/输出函数。
4.掌握scanf()函数和printf()函数的使用。
5.掌握条件语句的形式和使用。
6.掌握条件语句的嵌套。
7.掌握switch语句的形式和使用。
8.掌握for,while,do-while三种循环语句的应用。
9.掌握循环语句的嵌套。
10.掌握break、continue、goto语句。
一、阅读下列程序,写出执行结果:1.#include<iostream.h>void main(){int year,mon,days,leap;cout<<"年月:"; cin>>year>>mon; switch(mon){case 1:case 3:case 5:case 7:case 8:case 10:case 12:days=31; break;case 4:case 6:case 9:case 11:days=30;break;case 2:if(year%400==0)leap=1;else if(year%4==0&&year%100!=0)leap=1;else leap=0;if(leap) days=29;else days=28;}cout<<year<<"年"<<mon<<"月的天数为:"<<days<<endl; }输入:200572.#include<iostream.h>void main(){int x,y,s;cout<<"输入两个整数:"; cin>>x>>y;s=x;while(1){if(s%y==0)break;s+=x;}cout<<"最小公倍数:"<<s<<endl; }输入:383.#include<iostream.h> void main(){int r,i,j;cout<<"i=";cin>>i;cout<<"j=";cin>>j;if(i<j)r=i,i=j,j=r; r=i%j;while(r){i=j;j=r;r=i%j;cout<<"最大公约数:"<<j<<endl; }输入:3824.#include<iostream.h>void main(){int i,m,n,k;float s=0;m=1,n=2;for(i=1;i<=15;i++){s=s+1.0*n/m;k=m;m=n;n=k+n;}cout<<"s="<<s<<endl;}5.#include <iostream.h>void main( ){cout<<"please input the b key to hear a bell."<<endl;char ch;cin>>ch;if (ch=='b')cout <<'\a';elseif (ch=='\n')cout <<"what a boring select on..."<<endl;elsecout <<"bye! \n";}6.#include<iostream.h>void main(){int i = 1 ;while ( i <= 10 )if ( ++ i % 3 != 1)continue;else cout<< i <<endl;}7.#include<iostream.h>void main(){int i = 0 , j = 5 ;do{ i ++ ; j ―― ;if ( i >3 ) break ;} while ( j > 0 );cout << "i=" << i <<'\t'<<"j="<< j << endl ; }8.#include<iostream.h>void main( ){int I,j,a=0;for(I=0;I<2;I++){for(j=0;j<4;j++){if(j%2) break;a++;}a++;}cout<<a<<endl;}二、编程题:1.输入某学生成绩,若成绩在90-100输出"excellent",若成绩在80-89输出"good",若成绩在70-79输出"general",若成绩在60-69输出”pass”,若成绩在0-59输出”no pass”。
2.编程计算1!+2!+……+20!。
3.输入三人数,按从小到大的大顺序输出。
4.在100~200中找出同时满足3除余2,用5除余3和用7除余2的所有整数。
5. 求100~999中的。
所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。
例如,因为153=13+53+33,所以153为水仙花数。
6.求1000之内的所有完数。
所谓完数是指一个数恰好等于它的所有因子之和。
例如,6=1+2+3,所以6为完数。
7. 编一程序显示如下图案:** * ** * * * ** * * * * * ** * * * * * * * *8. 编一程序显示如下图案:AA B CA B C D EA B C D E F G9. 根据π/4 =1-1/3+1/5-1/7+…求π的近似值,直到最后一项的值小于0.000001为止。
10.猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?11.编程序模拟剪刀,石头和纸游戏。
游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头.玩游戏者从键盘上输入S(表示剪刀)或R(表示石头)或P(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。
12.编写程序输出菲波那切数列的前20项。
即前两项为1,以后每一项为前两项之和。
13.打印九九乘法表。
14.若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?15.求符合以下条件的所有四位数:该数各位数字的四次方之和等于该数本身。
如1634就是这样一个数。
16.从键盘上任意一串字符,以按enter键结束,统计其中字母c出现的个数。
17.编写程序,用循环语句输出如下图形:*******************************18.求sum=a+aa+aaa+aaaa+….+aa....a(n个a)之值,其中a是一位数字。
如当a=3,n=6时sum=3+33+333+3333+33333+333333。
a和n的值由键盘输入。
19.用迭代法求a的平方根x=。
迭代公式为:要求前后两次求出的x的差绝对值小于10-6。
20.输入一行字符,以回车结束输入,分别统计其中出现的大写英文字母、小写英文字母、数字字符、空格和其他字符等5类字符出现的次数。
例如,若输入I am 20 years old!<enter>,则统计的5类字符的次数分别是1,10,2,4,1。
21.编写程序,救出并输出1000以内的所有素数。
22.计算公式的值。
23.编程输出十位数字与个位数字的和能被7整除,百位数字与十位数字的和能被3整除的所有3位数。
24.求s=1+(1+2)+(1+2+3)+…….+(1+2+3+……+n)的值。