一、循环变量为字符型

试编一程序,按字典顺序输出26个字母。

流程图:



程序代码如下:

#include <iostream>    //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
char i;
for (i='a';i<='z';i++)//循环变量可以是整数,也可以是字符。
{
cout<<i<<' ';
}
return 0;
}

思考:先顺序输出26个小写英文字母,再逆序输出26个大写英文字母。

循环可以是递增型循环,也可以是递减型循环。

#include <iostream>
using namespace std;
int main()
{
char i;
for(i='a'; i<='z';i++)
cout<<i<<' '; //''中有一个空格
cout<<endl;
for(i='Z';i>='A';i--)
cout<<i<<''; //''中有一个空格
return 0;
}

运行结果:

a bcde fgh ijk Im n o pqrs tuv w xy z

ZYXWVUTSRQPONMLKJIHGFEDCBA

练习:

(1)字符型变量n,其初值为'a',则表达式n+3的值是()。

   A.65      B.68      C.'a'       D.100

(2)阅读程序写结果。

#include <iostream>    //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int x,y;
char i,ans;
for (i='a';i<'f';i++)
{
x=i-'a'+1;
if (x%2==1) y=i+1;
else y=i-1;
ans=y;
cout<<ans;
}
return 0;
}

x,y,i,ans的输出:_____________________

(3)完善第11,15行程序

按字典顺序输出大小字典对照表,先输出一个大写字典,再输出一个小写字母,即AaBbCcDd.......Zz。

 4 #include <iostream>    //包含输入输出流头文件iostream
5 using namespace std; //指明程序 使用命名空间std(标准)
6 int main()
7 {
8 int n;
9 char i,j;
10 n='a'-'A';
11 for (i='A'; ;i++)
12 {
13 cout<<i;
14 j=i+n;
15 ;
16 }
17 return 0;
18 }

二、打擂台-for语句的另一种形式

问题:试编一程序,输入10个数,输出其中最大的数。

以前学过,输入三个数求最大值时,先假设第一个数为最大值,把它赋值给max;然后,第二个数和max比较,若比max大,就把第二个数赋值给max;接着,第三个数和max比较,若比max大,就把第三个数赋值给max,有点儿类似打擂台。求10个数中的最大值可以采用同样的方法,如图示。



流程图:

#include <iostream>
using namespace std;
int main()
{
float max,x;
int i;
cout<<"请输入第1个数:";
cin>>x;
max=x;
i=2;
for(;i<=10;i++)
{
cout<<"请输入第"<<i<<"个数:";
cin>>x;
if(x>max) max=x;
}
cout<<"最大的数:"<<max;
return 0;
}

注:C++语言是很灵活的,可以把循环变量赋初值语句写在for循环语句前,也可以把循环变量增值语句写在循环体中。当循环体有多个语句时,就需要用“{}”把它们复合起来,成为一个整体。

练习:

(1)从ENIAC到当前最先进的计算机,冯·诺依曼体系始终占有重要的地位。冯·诺依曼体系结构的核心内容是()。

A.采用键盘输入

B.采用半导体器件

C.采用存储程序和程序控制原理

D.采用开关电路

(2)阅读程序写结果。

#include <iostream>
using namespace std;
int main()
{
long long i, ans=20;
i=2;
for(;i<ans;)
{
ans-=i;
i+=3;
}
cout<<"i="<<i<<' '<<"ans="<<ans<<endl; //''中有一个空格
return 0;
}

i,ans输出:_______________________

3.完善程序。

输入n个数,输出最小的数。

#include <iostream>
using namespace std;
int main()

float min,x;
int i, n;
cout<<"n=";
____________;
cout<"请输入第1个数:";
cin>>x;
min=x;
for(i=2;_________;i++)
{
cout<"请输入第"<<i<"个数:";
cin>>x;
if(___)min=x;
}
cout<<"最小的数:"<< min;
return 0;
}

三、break语句

问题:试编一程序,输入一个自然数,判断是不是素数。

素数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。如2,3,5,7,11,13,17等是素数,4,6,8,9,10,12,14,15等不是素数是合数,而1既不是素数也不是合数。

为了判断某数n是否为素数,一个最简单的办法是用2,3,4,5,·,n-1这些数逐个去除n,看能否除尽。只要能被其中的一个数除尽,n就不是素数,只有n不能被2~n-1之间的所有数除尽时才是素数。流程图如图

#include <iostream>
using namespace std;
int main()
{
long long i,n;
bool flag;
cout<<"n=";
cin>>n;
flag=true;
for(i=2;i<n;i++)
if(n%i==0)
{
flag=false;
break;
}
if(flag) cout<<"是素数";
else cout<<"不是素数";
return 0;
}

注:break 语句是提前结束整个循环过程,不再判断执行循环的条件是否成立。continue语句只是结束本次循环,而不是终止整个循环的执行。

练习:

(1)在计算机中,Pentium(奔腾)、酷睿、赛扬等是指()。

A.显示器的型号

B.硬盘的型号

C.CPU的型号

D.生产厂家名称

(2)阅读程序写结果。

#include <iostream>
using namespace std;
int main()
{
int i, p, ans=0;
p=1;
for(i=1;i<400;i+=3)
{
p*=i;
ans+=p:
if(ans>=25)break;
}
cout <<"ans="<< ans <<endl;
returm 0;
}

i,p,ans输出:________________

(3)完善程序。

输入一个数,判断其是不是素数。

#include <iostream>
using namespace std;
int main()
{
int count=0;
long long i, n;
_________________;
for(i=2; i<n;i++)
if(n%i==0)count++;
if(___)cout<"素数";
else cout<<"不是素数";
return 0;
}

四、数位分离

问题:水仙花素雅端庄,清秀俊逸,香气馥郁。数学上有一种数称为水仙数。所谓水仙花数是一个三位数,它等于自己各个数位上数字的立方和。如153,它百位上的数字是1,十位上的数字是5,个位上的数字是3,13+53+33是153,等于它自己,因此153是水仙花数。

试编一程序,求出所有的水仙花数。

求水仙花数,要先学会分离百位、十位、个位上的数。153/100可以得到百位上的数字,(153/10)%10或(153%100)/10可以得到十位上的数字,153%10可以得到个位上的数字。

水仙花数是一个三位数,可以通过for循环把100~999所有的三位数都枚举出来,然后对每一个数进行计算和判断,若是水仙花数则输出。流程图如下:

#include <iostream>
using namespace std;
int main()
{
int ge,shi,bai,i;
cout<<"水仙花数"<<endl;
for(i=100;i<1000;i++)
{
bai=i/100;
shi=(i/10)%10;
ge=i%10;
if (bai*bai*bai+shi*shi*shi+ge*ge*ge==i)
cout<<i<<" ";
}
return 0;
}

可以增加一个计数器变量count,用于统计水仙数的个数。

练习:

(1)计算机有计算功能,那么这个“计算”是在( )中完成的。

   A.内存       B.中央处理器       C.硬盘       D.显卡

(2)阅读程序写结果。

#include <iostream>
using namespace std;
int main()
{
int a0=0, al=1, a2, i, n;
cin>>n;
for(i=2;i<n;i++)
{
a2=a0+al;
cout << a2 << endl;
a0=al;
al=a2;
}
return 0;
}

输入:5

a0,a1,a2,i,n输出为__________________________

(3)完善程序。

“消消乐”是一款老少皆宜的益智类游戏,游戏规则是找出三张及以上相同的连在一起的牌就可以消除。请编程找出三位数中可以玩“消消乐”的数,即个位、十位与百位上的数字相同。如222可以消除,123无法消除。

#include <iostream>
using namespace std;
int main()
{
int ge, shi, bai, i;
for(i=100;i<1000;i++)
{
_________________;
shi=(i/10)%10;
ge=i%10;
if(______)
cout <<i<<endl;
}
return 0;
}

12C++循环结构-for循环(2)的更多相关文章

  1. GO学习笔记 - Go 只有一种循环结构—— for 循环。

    一,Go 只有一种循环结构—— for 循环. 官方教程:https://tour.go-zh.org/flowcontrol/1 Go 只有一种循环结构—— for 循环. 基本的 for 循环包含 ...

  2. Lua循环结构while循环、repeat 循环、for循环_学习笔记03

    Lua循环结构while循环.repeat 循环.for循环 while语法结构 while 循环条件 do 循环体  end --1.输出1到100 index = do print(index) ...

  3. 039 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 01 循环结构概述

    039 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 01 循环结构概述 本文知识点:循环结构概述 循环结构主要内容 while 循环 do-whiile ...

  4. 黑马程序员——JAVA基础之程序控制流结构之循环结构,循环嵌套

    ------- android培训.java培训.期待与您交流! ---------- 循环结构: 代表语句:while ,do while ,for while语句格式 : while(条件表达式) ...

  5. python4 分支结构,循环结构 for循环

    ## 复习 ```python'''1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开 ...

  6. 循环结构-for循环和while循环

    循环语句1--for for循环语句格式: for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③ } 执行流程 执行顺序:①②③④>②③④>②③④-②不满足为止. ①负责完 ...

  7. C语言-循环结构及break、continue

    循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...

  8. [java基础]循环结构1

    [java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:WhileTest.j ...

  9. Java 第五章 循环结构1

    循环结构 1 while 循环结构 ,do- while 循环结构 . 循环结构: 必须满足两个条件 . 1,循环条件 和 循环 操作 ! while 循环 特点:先判断,再执行 , 编码规范:缩进, ...

  10. Chrome弹窗的简单应用(选择结构与循环结构)

    ★选择结构★ ★JS实现弹窗显示随机数 示例代码效果图   ★ 弹窗实现对随机数的进一步判断 示例代码效果图 ★综合应用   比较大小 ★ 判断成绩等级 ): : : : : alert(" ...

随机推荐

  1. 系统编程-文件IO-dup和dup2系统调用

    在linux下,一切皆文件. 文件描述符用于操作文件. 从shell中运行一个进程,默认会有3个文件描述符存在(0.1.2):)0表示标准输入,1表示标准输出,2表示标准错误. 一个进程当前有哪些打开 ...

  2. UEFI原理与编程(三)

    1 开发UEFI服务 本质Protocol 就是包含属性和函数指针的结构体,功能上来说就是提供者和使用者对服务的一种约定. 2 开发UEFI驱动 一个设备/总线驱动程序在安装时首要找到对应的硬件设备( ...

  3. 利用cv2.morphologyEx提取图像边界

    cv2.morphologyEx(image, cv2.MORPH_GRADIENT, SE)可以参考这篇博客cv2.MORPH_GRADIENT:形态学梯度(morph-grad),可以突出团块(b ...

  4. 新建 Blazor 项目 WebAssembly

  5. 18 . 介绍一下 Promise

    Promise 是js内置的构造函数,也叫做期约函数 ,它有 3 种状态 ,等待状态 pending ,成功状态 fullfilled ,失败状态 reject :2 个过程, 等待状态到成功状态 会 ...

  6. 强化学习笔记之【SAC算法】

    强化学习笔记之[SAC算法] 前言: 本文为强化学习笔记第四篇,第一篇讲的是Q-learning和DQN,第二篇DDPG,第三篇TD3 TD3比DDPG少了一个target_actor网络,其它地方有 ...

  7. 基于Jenkins + Argo 实现多集群的持续交付

    作者:周靖峰,青云科技容器顾问,云原生爱好者,目前专注于 DevOps,云原生领域技术涉及 Kubernetes.KubeSphere.Argo. 前文概述 前面我们已经掌握了如何通过 Jenkins ...

  8. KubeSphere 社区双周报|2024.02.29-03.14

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...

  9. 网络应用模型的经典分类:C/S 与 P2P

    网络应用无处不在,从我们日常使用的社交媒体到远程文件传输,网络应用模型是支撑这些通信和服务的基础架构.通常,这些网络应用根据其结构原理可以被大致划分为两大类:C/S(Client/Server)模型和 ...

  10. 国产东方通消息队列TongLINKQ8.1服务端安装步骤

    一.服务端安装 groupadd tlq # 新建组 useradd -m -g tlq tlq # 新建tlq用户并指定组tlq cd /home/tlq/ # 切换到安装目录并上传安装包 tar ...