C语言期末集训3(大一,超基础,小猫猫大课堂配套练习)——循环结构

news/2025/2/14 6:31:22/

 更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发,

最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要。 

大一上程序设计期末复习,超基础,小猫猫大课堂配套练习。

目录

前言

while循环语句

折叠编辑本段do-while语句

折叠编辑本段for语句

折叠编辑本段三种语句比较

求1+2+3+...+100之和

方法1:dwhile()

方法2: do...while()

要求输出100~200的不能被3整除的数

输出以下4*5的矩阵

输出100-200所有不能被3整除的数,并统计这些数的个数

输出所有的玫瑰花数

输入m和n两个正整数求最大公约数和最小公倍数

输人一行字符,分别统计出其中英文字母、空格、 数字和其他字符的个数。

5.求Sn=a十aa+ aaa+...+a...a之值,其中a是一个数字,n表示a的位数,n由键盘输入例如:2+22十222十2222十22222(此时n=5)

同类型题,升级版1

同类型题,升级版2

老朋友,星号菱形

用双重循环,输出矩形(星号),每个图形输出5行

总结


前言

水字数,不然csdn要建议,小朋友需要可以看看,帮助理解

C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。

while循环语句

一般形式如下:

while(表达式)

语句;

其中执行过程如下:正在上传…重新上传取消while语句

(1)计算while后面括号里表达式的值,若其结果非0,则转入(2),否则转(3)

(2)执行循环体,转(1)

(3)退出循环,执行循环体下面的语句。

由于是先执行判断后执行循环体,所以循环体可能一次都不执行。

循环体可以为空语句";"。

折叠编辑本段do-while语句

一般形式如下:

do

语句;

while(表达式);

(1)执行循环体,转(2)正在上传…重新上传取消do...while语句https://so1.360tres.com/t01fca9c92e175e20d4.jpg

(2)计算while后面括号里表达式的值,若其结果非0,则转入(1),否则转(3)

(3)退出循环,执行循环体下面的语句。

注意:do……while语句最后的分号(;)不可少,否则提示出错。循环体至少执行一次。

折叠编辑本段for语句

for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。

一般形式如下:

for ( [表达式 1]; [表达式 2 ]; [表达式3] )

语句

其中:

表达式1:一般为赋值表达式,给控制变量赋初值;正在上传…重新上传取消for语句https://so1.360tres.com/t01389352673bc08e9a.jpg

表达式2:关系表达式或逻辑表达式,循环控制条件;

表达式3:一般为赋值表达式,给控制变量增量或减量;

语句:循环体,当有多条语句时,必须使用复合语句。

其执行过程如下:首先计算表达式1,然后计算表达式 2。若表达式2为真,则执行循环体;否则,退出 for循环,执行for循环后的语句。如果执行了循环体,则循环体每执行一次,都计算表达式3,然后重新计算表达式2,依此循环,直至表达式 2的值为假,退出循环。

for语句的三个表达式都是可以省略的,但分号";"绝对不能省略。for语句有以下几种格式:

(1)for(; ;) 语句;

(2)for(;表达式2;表达式3 ) 语句;

(3)for(表达式1;表达式2;) 语句;

(4)for(i=1,j = n; i < j; i ++,j - - ) 语句;

折叠编辑本段三种语句比较

同一个问题,往往既可以用 while语句解决,也可以用 do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:

(1) 如果循环次数在执行循环体之前就已确定,一般用 for语句。如果循环次数是由循环体的执行情况确定的,一般用 while语句或者do- while语句。

(2) 当循环体至少执行一次时,用 do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。

C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。

三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。


求1+2+3+...+100之和

方法1:dwhile()

#include<stdio.h>
int main()
{int i=1,sum=0;while(i<=100){sum=sum+i;i++;} printf("sum=%d",sum);return 0;} 

方法2: do...while()

#include<stdio.h>
int main()
{int i=1,sum=0;do{sum=sum+i;i++; }while(i<=100);//记得填i的范围哦!printf("%d",sum);return 0;} 

要求输出100~200的不能被3整除的数

#include<stdio.h>
int main()
{int n;for(n=100;n<=200;n++){if(n%3==0)continue;//有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环,可以使用continue。 printf("%d ",n);}printf("\n");return 0;} 

输出以下4*5的矩阵

#include<stdio.h>
int main()
{int i,j,n=0;for(i=1;i<=4;i++)for(j=1;j<=5;j++,n++){if(n%5==0)printf("\n");printf("%d\t",i*j);//  \t讲过,忘了看前几次的习题博客。 }printf("\n"); return 0;} 

输出100-200所有不能被3整除的数,并统计这些数的个数

#include<stdio.h>
int main()
{int n,count=0;for(n=100;n<=200;n++){if(n%3==0)continue;count++;} printf("count=%d",count);return 0;
}

输出所有的玫瑰花数

#include<stdio.h>
int main()
{int a,b,c,d,n;for(n=1000;n<=9999;n++){a=n/1000;b=n%1000/100;c=n%1000%100/10;d=n%1000%100%10;if(n==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)printf("%d  ",n);}return 0;
}

输入m和n两个正整数求最大公约数和最小公倍数

#include <stdio.h>
int main()
{int m=0,n=0,mn=0,i=0,a=0;scanf("%d,%d",&m,&n);if(m>n)mn=n;elsemn=m;for(i=mn;i>0;i--){if(m%i==0&&n%i==0)//最大公因数应该小于等于n和m的较小数,不断进行试错,可得 break;}for(a=mn;a<m*n;a++){if(a%m==0&&a%n==0)//最小公倍数应该大于等于n和m的较小数,不断进行试错,可得 break;}printf("最大公因数=%d,最小公倍数=%d",i,a);return 0;
}

输人一行字符,分别统计出其中英文字母、空格、 数字和其他字符的个数。

#include <stdio.h>
int main()
{char a[20];int number =0;int space  =0;int letters=0;int other=0;while((a[i]=getchar())&&a[6]]!='\n')//getchar作用是读取字符,getchar()的功能最主要是c语言中读取字符的一个函数,能够提取单个字符{if(a[i]>='0'&&a[i]<='9')number++;else if(a[i]==' ')space ++;else if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))letters ++;elseother++;}printf("英语字母个数为:%d\n",letters);printf("数字个数为:%d\n",number);printf("空格个数为:%d\n",space);printf("其他个数为:%d\n",other);return 0;
}

求Sn=a十aa+ aaa+...+a...a之值,其中a是一个数字,n表示a的位数,n由键盘输入例如:2+22十222十2222十22222(此时n=5)

#include<stdio.h>
int main()
{double a=2.0,b=1.0;double n,sum=0.0,t;int i;for(i=1;i<=20;i++){n=a/b;t=a;a=a+b;b=t;sum=sum+n;}printf("%.10lf",sum);return 0;
}

同类型题,升级版1

#include<stdio.h>
int main()
{int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for(k=1;k<=n1;k++){s1=s1+k;}for(k=1;k<=n2;k++){s2=s2+k*k;}for(k=1;k<=10;k++){s3=s3+1/k;}printf("%lf",s1+s2+s3);return 0;
}

同类型题,升级版2

有一个分数序列

#include<stdio.h>
int main()
{double a=2.0,b=1.0;double n,sum=0.0,t;int i;for(i=1;i<=20;i++){n=a/b;t=a;a=a+b;b=t;sum=sum+n;}printf("%.10lf",sum);return 0;
}

老朋友,星号菱形

 

#include<stdio.h>//菱形写了三遍了,自己还是写不出来,啊————,真是头疼!
int main()
{int n,i,j,k;scanf("%d",&n);for(i=1;i<=n+1;i++){for(j=1;j<=n+1-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*"); printf("\n");}for(i=1;i<=n;i++){for(j=1;j<=i;j++)printf(" ");for(k=1;k<=(2*n+1)-2*i;k++)printf("*");printf("\n"); }return 0;
}

用双重循环,输出矩形(星号),每个图形输出5行

#include<stdio.h>
#include<math.h>
int main()
{int i,j;for(i=1;i<=5;i++){for(j=1;j<=5;j++){printf("*");}printf("\n");}return 0;
} 

总结

循环结构,小喵练习得差不多有这些数,有些重复了的,小喵挑拣了些,最近状态不对,小喵会对自己的博客进行再度完善的,希望下一次的小喵会更美好。

更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发,

最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要。 


http://www.ppmy.cn/news/6002.html

相关文章

vue3 composition api的click-outside选择

想在<script setup>里直接使用一个click-outside组件&#xff0c;试了下面几种都不行&#xff1a; x​​​​​​​v-click-outside&#xff1a;不可用&#xff0c;测试版本3.2.0 ff click-outside-vue3: 不可用&#xff0c;测试版本4.0.1 vue-click-outside: 不可用…

Redis常见面试题(六)

目录 1、Redis支持的Java客户端有哪些? 2、Redisson是什么框架? 3、Redis和Redisson有什么关系? 4、Jedis和Redisson对比有什么优缺点? 5、Redis为什么不提供Windows版本? 6、Redis怎么在Windows下使用? 7、Redis如何设置密码访问? 8、Redis如何分析慢查询操作?…

文件中的成绩统计分析----Python

文件中的成绩统计分析 描述 现在一个包含若干学生学习成绩的文件&#xff0c;每位同学有4 门课程的成绩&#xff0c;按要求完成以下任务。 文件中每行数据格式如下&#xff1a; 0121801101266,刘雯,92,73,72,64 0121801101077,张佳喜,81,97,61,98 … 0121801101531,佘玉…

36-Vue之ECharts高级-动画的使用

ECharts高级-动画的使用前言加载动画增量动画动画的配置前言 本篇来学习下ECharts中动画的使用 加载动画 showLoading() &#xff1a;显示加载动画&#xff0c;一般在获取图表数据之前 显示加载动画hideLoading()&#xff1a;隐藏加载动画&#xff0c;在获取图表数据之后 隐…

Allegro如何更改铜皮的网络操作指导

Allegro如何更改铜皮的网络操作指导 在做PCB设计的时候需要更改铜皮的网络,Allegro上可以快速的更改铜皮的网络。如下图,需要给铜皮赋上网络 具体操作如下 选择selcet shape命令选中铜皮

音频怎么转换成文字?推荐这几个转文字的方法给你

在平时的工作中大家通常会先利用录音工具将会议内容录制下来&#xff0c;结束以后再根据录音来整理会议纪要&#xff0c;但一边听音频一边整理的操作既麻烦又费时间&#xff0c;还有可能会因为讲述的人语速快&#xff0c;而漏掉一些内容&#xff0c;从而导致效率不高&#xff0…

在Android端集成OpenCV的三种方式

1.Opencv Android SDK 基于Opencv C本地代码&#xff0c;通过Java语言接口使用JNI技术调用C本地方法的SDK开发包。 &#xff08;1&#xff09;etc:各类模型文件存储地址 &#xff08;2&#xff09;java:Java版本的Android SDK相关文件 &#xff08;3&#xff09;native:JNI层…

求N!后面有多少个连续的零

Description 给出一个数字N,求N的阶乘&#xff0c;其右边有多少个连续的零。 例如5&#xff01;120&#xff0c;其右边有1个零。 Format Input 每行一个数字N&#xff0c;1 < N < 1000000000. Output 每行一个数字。 Samples 输入数据 1 100Copy 输出数据 1 2…