一、for语句
引出问题:
当需要重复执行某一语句时,使用for语句。for语句最常用的格式为:
for (循环变量赋初值;循环条件;循环变量增值)
语句;
注:
“语句;”就是循环体,可以是一个简单的语句,也可以是一个用“{}”括起来的复合语句。
它的执行过程如图示:
编写这个程序可以如此:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i;
for (i=1;i<=12;i++)
cout<<"老狼老狼几点钟?"<<i<<"点钟。"<<endl;
cout<<"狼来了,快跑!"<<endl;
return 0;
}
练习
(1)变量i的初值为0,在下列语句中,每执行一次能使变量i的值在1、0两数值上交替出现的是()。
A.i=i+1 B.i=l-i C.i=-i D.i=i-1
(2)阅读程序写结果
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i;
for (i=1;i<=5;i++)
cout<<'*';
cout<<i<<endl;
return 0;
}
i的输出:__________
(3)完善第12行程序。
输出1~100的所有整数。
6 #include <typeinfo> //变量类型头文件,还是有问题;无法判断int
7 #include <iostream> //包含输入输出流头文件iostream
8 using namespace std; //指明程序 使用命名空间std(标准)
9 int main()
10 {
11 int i;
12 for (i=1;i ; )
13 cout<<i<<endl;
14 return 0;
15 }
二、for语句与if语句的结合
问题描述:狐狸老师和格莱尔玩报数游戏。狐狸老师数到2的倍数时,格莱尔就说“叮叮”;狐狸老师数到3的倍数时,格莱尔就说“当当”;狐狸老师数到2和3的公倍数时,格莱尔就说“叮叮当当”。
狐狸老师:1
狐狸老师:2
格莱尔:叮叮
狐狸老师:3
格莱尔:当当
狐狸老师:4
格莱尔:叮叮
狐狸老师:5
狐狸老师:6格莱尔:叮叮当当
......
试编一程序,模拟1~20的报数程序。
流程图:
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i;
for (i=1;i<=20;i++)
{
cout<<i<<' ';
if (i%2==0) cout<<"叮叮";
if (i%3==0) cout<<"当当";
if (i%2==0 || i%3==0) cout<<endl;
}
return 0;
}
练习
(1).结构化程序设计的三种基本逻辑结构是()
A.顺序结构、选择结构和循环结构
B.选择结构、嵌套结构和循环结构
C.选择结构、循环结构和模块结构
D.顺序结构、递归结构和循环结构
(2)阅读程序写结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i,n;
cin>>n;
for (i=n;i>1;i--)
cout<<i;
return 0;
}
输入:5
n,i的输出:______________
(3)完善第9、12行程序
4 #include <iostream> //包含输入输出流头文件iostream
5 using namespace std; //指明程序 使用命名空间std(标准)
6 int main()
7 {
8 int i,n;
9 for ( ;i<=10;i++)
10 {
11 n=43%i;
12 cout<<i<<" "<< <<endl;
13 }
14 return 0;
15 }
三、累加求和
试编一程序,先求1+2+3+4+5的和。
程序流程图与代码如下:
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i,sum=0;
for (i=1;i<=5;i++)
{
sum+=i;
}
cout<<"1+2+3+4+5="<<sum;
return 0;
}
练习
(1)计算机使用的键盘中,Shift键是()。
A.退格键 B.上档键 C.空格键 D键盘类型
(2)阅读程序写结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i,sum=0;
for (i=1;i<=5;i++)
sum+=i*i;
cout<<sum<<endl;
return 0;
}
i,sum的输出:_____________________
(3)完善第9、11行程序
求1×2+2×3+3×4+...........+100×101的和是多少?
4 #include <iostream> //包含输入输出流头文件iostream
5 using namespace std; //指明程序 使用命名空间std(标准)
6 int main()
7 {
8 int i,sum;
9 ;
10 for (i=1;i<=100;i++)
11 ;
12 cout<<sum<<endl;
13 return 0;
14 }
四、超长整型与数据溢出
例程:试编一程序,算一算,64个棋盘格中放入麦粒;第一个放入一粒,每一个放入是前一个的两倍,求第64个格子放入的麦粒数是多少?
流程图与程序代码如下:
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
long long sum,n;
int i;
sum=0;
n=1;
for (i=1;i<=64;i++)
{
n*=2;
sum+=n;
cout<<i<<" "<<n<<endl;
}
cout<<"总数:"<<sum<<endl;
return 0;
}
运行出现问题,为什么会这样呢?因为运算过程中产生的数据实在是太大了,超出了超长整型数据long long可表示的范围,造成了数据溢出错误,数据溢出在编译与运行时并不报错,不易发现。超长整型数据long long表示的范围是-92233720368547758089223372036854775807,即-2^632^63-1,只有学了高精度计算才能解决此类问题。另int整型数据可表示的范围为
-21474836482147483647,即-2^312^31-1。
英汉小词典
long long [lon][lon]超长整型
练习
(1)彩色显示器所显示的五彩斑斓的色彩,是红色、蓝色和()色混合而成的。
A.紫 B.橙 C.黑 D.绿
(2)阅读程序写结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int m,n,i;
long long ans=0;
cin>>m>>n;
for (i=m;i<=n;i=i+2)
ans+=i;
cout<<ans<<' ';
cout<<i;
return 0;
}
输入:1 10
m,n,i,ans的输出:_________________
(3)完善第14、16行程序。
沃伦.巴菲特,1930年出生于美国,是全球著名的投资大师,也是一位慈善家,其管理的公司年收益率可以达到20%以上。假设年收益率为20%,10万元的投资一年后是12万元,两年后是14.4万元,试问20年后是多少万元?
8 #include <iostream> //包含输入输出流头文件iostream
9 using namespace std; //指明程序 使用命名空间std(标准)
10 int main()
11 {
12 int i;
13 float s=10.0;
14 for (i=1;i<=20; )
15 {
16 ;
17 cout<<i<<" "<<s<<endl;
18 }
19 return 0;
20 }
五、continue语句
模拟游戏,规则是:大家围坐在一起,从1开始报数,但逢7的倍数或者尾数是7,则不去报数,要喊“过”。
试编一程序,人数1~20。
程序代码如下:
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i;
for (i=1;i<=20;i++)
{
if (i%7==0 || i%10==7)
cout<<"过"<<' ';
else
cout<<i<<' ';
}
return 0;
}
另一种方法:
其中语句“continue;”的作用为提前结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int i;
for (i=1;i<=20;i++)
{
if (i%7==0 || i%10==7)
{
cout<<"过"<<' ';
continue; //结算本次for循环,进行下一次循环。
}
cout<<i<<' ';
}
return 0;
}
练习
(1)断电后会丢失数据的存储器是()。
A.RAM B.U盘 C.硬盘 D.光盘
(2)阅读程序写结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
for (int i=7;i>=1;i--)
{
if (i%2==0)
continue; //结算本次for循环,进行下一次循环。
cout<<i;
if (i==1)
continue; //当i为时,结束循环,不输出逗号(',')。
cout<<',';
}
return 0;
}
(3)完善第10、11行程序
输出100以内所有的偶数。
5 #include <iostream> //包含输入输出流头文件iostream
6 using namespace std; //指明程序 使用命名空间std(标准)
7 int main()
8 {
9 int i;
10 for (i=2;i<=100; )
11 cout<< <<endl;
12 return 0;
13 }
标签:11,std,头文件,int,C++,循环,iostream,using,include
From: https://www.cnblogs.com/citStudy/p/18453733