ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:36.81KB ,
资源ID:5866382      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5866382.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言编程练习之循环结构.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言编程练习之循环结构.docx

1、C语言编程练习之循环结构1生成3的乘方表3输入一个非负整数n,生成一张3的乘方表,输出30 3n 的值。可调用幂函数计算3的乘方。输入格式:输入在一行中给出一个非负整数n。输出格式:按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。输入样例:3输出样例:pow(3,0) = 1pow(3,1) = 3pow(3,2) = 9pow(3,3) = 27 (1)编程思路。 简单的循环处理。程序中无需调用幂函数计算3的乘方。因为3n=3n-13。 (2)源程序。#include int main() int i,n; long

2、long p=1; scanf(%d,&n); for (i=0;i=n;i+) printf(pow(3,%d) = %lldn,i,p); p=p*3; return 0;2统计学生成绩本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为D;小于60为E。输入格式:输入在第一行中给出一个正整数N(1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。输出格式:在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空

3、格分隔,行末不得有多余空格。输入样例:777 54 92 73 60 65 69输出样例:1 0 2 3 1 (1)编程思路。 简单的循环处理。 (2)源程序。#include int main() int i,n; scanf(%d,&n); int score,a=0,b=0,c=0,d=0,e=0; for (i=1;i=90) a+; else if (score=80) b+; else if (score=70) c+; else if (score=60) d+; else e+; printf(%d %d %d %d %dn,a,b,c,d,e); return 0;3输出闰年

4、输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。输入格式:输入在一行中给出21世纪的某个截止年份。输出格式:逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出Invalid year!。若不存在任何闰年,则输出“None”。输入样例1:2048输出样例1:200420082012201620202024202820322036204020442048输入样例2:2000输出样例2:Invalid year! (1)编程思路。闰年的判定条件是:能被4整除,但不能被100整除的年份都是闰年,如

5、1996年,2004年是闰年;能被100整除,又能被400整除的年份也是闰年。如2000年是闰年。可以用一个逻辑表达式来表示: (year40&year100! 0) | | year4000当year为某一整数值时,如果上述表达式值为true(1),则year为闰年;否则year为非闰年。 (2)源程序。#include int main() int endyear; scanf(%d,&endyear); int i,cnt=0; if (endyear2100) printf(Invalid year!n); else for (i=2001;i=endyear;i+) if (i%4=

6、0 & i%100!=0 | i%400=0) printf(%dn,i); cnt+; if (cnt=0) printf(Nonen); return 0;4寻找250对方不想和你说话,并向你扔了一串数 而你必须从这一串数字中找到“250”这个高大上的感人数字。输入格式:输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。输出格式:在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。输入样例:888 666 123 -233 250 13 250 -222输出样例:5 (1)编程思路。由于输入的数据

7、个数未知,因此采用循环 while (scanf(%d,&x)!=EOF) 输入各数据。 (2)源程序。#include int main() int ans=0,cnt=0,x; while (scanf(%d,&x)!=EOF) cnt+; if (x=250 & ans=0) ans=cnt; printf(%dn,ans); return 0;5最佳情侣身高差专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。

8、输入格式:输入第一行给出正整数N(10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 1.0, 3.0 之间的实数。输出格式:对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。输入样例:2M 1.75F 1.8输出样例:1.611.96 (1)编程思路。 简单的循环处理。 (2)源程序。#include int main() int n; scanf(%d,&n); for (int i=1;i2。 第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分

9、的。输出格式:输出平均分,结果保留两位小数。输入样例:610 9 8 7.9 9 9.5输出样例:8.88 (1)编程思路。 定义变量min、max和sum分别保存选手的最低分、最高分和总分,先输入第1个评委的打分score,且置min=max=score,即第1个分数既是最低分,也是最高分,同时置sum=score;之后用循环依次输入第2第n个评委的打分,对每次输入的score,累加到sum中(sum+=score),若scoremax,置max=score;若scoremin,置min=score。 (2)源程序。#include int main() int n; scanf(%d,&n

10、); float score,min,max,sum=0; scanf(%f,&score); min=max=score; sum+=score; for (int i=2;iscore) min=score; if (maxscore) max=score; printf(%.2fn,(sum-min-max)/(n-2); return 0;7求平方根序列前N项和本题要求编写程序,计算平方根序列的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目

11、保证计算结果不超过双精度范围。输入样例:10输出样例:sum = 22.47 (1)编程思路。 简单的循环累加求和。 (2)源程序。#include #include int main() int n; scanf(%d,&n); double sum=0; for (int i=1;i=n;i+) sum+=sqrt(1.0*i); printf(sum = %.2fn,sum); return 0;8求分数序列前N项和本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+. 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一

12、行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20输出样例:32.66 (1)编程思路。本题中分子和分母分别来自斐波那契数列数列的相邻两项,分子取后一项,分母取前一项。设斐波那契数列的前两项分别为y=1,x=2,用循环迭代求斐波那契前n项,在循环中执行z=y+x; / 计算下一项的值y=x; x=z; / 为下次迭代作准备 将前n项的x/y累加起来即得所求答案。 (2)源程序。#include #include int main() int n; scanf(%d,&n); double sum=0; double x=

13、2,y=1,z; sum=x/y; for (int i=2;i=n;i+) z=x+y; y=x; x=z; sum+=x/y; printf(%.2fn,sum); return 0;9打印九九口诀表下面是一个完整的下三角九九口诀表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7

14、=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。输入格式:输入在一行中给出一个正整数N(1N9)。输出格式:输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。输入样例:4输出样例:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 (1)编程思路。 程序写

15、成一个嵌套的二重循环,外循环i控制输出的行数(1n),内循环j控制每行中输出i个乘法算式。 (2)源程序。#include int main() int n; scanf(%d,&n); for (int i=1;i=n;i+) for (int j=1;j=i;j+) printf(%d*%d=%-4d,j,i,i*j); printf(n); return 0;10统计素数并求和本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1MN500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 3

16、1输出样例:7 143 (1)编程思路。判断一个数m是否为素数的方法是:用2sqrt(m)中的每一个整数i去除m,若某一个i能整除m,则m不是素数;否则,m是素数。该操作可以写成一个循环,如下: for (i=2;i sqrt(1.0*m),则m是素数,因为这种情况下,循环中的break语句没有被执行,即2sqrt(m)中的每一个整数i都不能整除m。求mn之间的所有素数,写成一个循环,在循环中嵌套一个循环判断每个整数i是否为素数,若是,则计数并累加求和。 (2)源程序。#include #include int main() int m,n; int cnt=0,sum=0; int i,j;

17、 scanf(%d%d,&m,&n); if (m=1) m+; for (i=m;i=n;i+) int t=(int)sqrt(1.0*i); for (j=2;jt) cnt+; sum+=i; printf(%d %dn,cnt,sum); return 0;11输出三角形字符阵列本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。输入格式:输入在一行中给出一个正整数n(1n7)。输出格式:输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。输入样例:4输出样例:A B C D E F G H I J (1)编程思路。 程序写成一个嵌

18、套的二重循环,外循环i控制输出的行数(1n),内循环j控制每行中输出n+1-i个字符。 由于输出的字符从A开始,因此增加一个计数器cnt,每输出一个字符cnt加1,初始时cnt=0,这样当前输出的字符为A+cnt。 (2)源程序。#include int main() int n,cnt=0; scanf(%d,&n); for (int i=1;i=n;i+) for (int j=1;j=n+1-i;j+) printf(%c ,A+cnt); cnt+; printf(n); return 0;12特殊a串数列求和给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa+aaa(

19、n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246 (1)编程思路。 aaa(n个a)可以看成由n-1个a乘以10加上a得到。初始时设num=0,每次循环执行num=num*10+a。显然,第1次循环(i=1)时,num=0*10+a=a;第2次循环(i=2)时,num=a*10+a=aa;第n次循环(i=n)时,num= aaa(n-1个a)*10+a= aaa(n个a)。将每次循环得到的num累加起来就是所求答案。 (2)源程序。#include #include int main(

20、) int a,n,num=0,sum=0; scanf(%d%d,&a,&n); for (int i=1;i=n;i+) num=num*10+a; sum+=num; printf(s = %dn,sum); return 0;13约分最简分式分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。输入格式:输入在一行中给出一个分数,分子和分母中间以斜杠/分隔

21、,如:12/34表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。提示:在scanf的格式字符串中加入/,让scanf来处理这个斜杠。输出格式:在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母的形式表示分数。如 5/6表示6分之5。输入样例:66/120输出样例:11/20 (1)编程思路。 本题的实质是求输入的分子和分母的最大公约数。利用转辗相除法求两个整数的最大公约数。例如,求整数m=48,n=18两个数的最大公约数的方法如下图所示。 具体做法是:,若m%n=0,则n是最大公约数,否则,计算 r=m%n,置m=n,n=r,重复这个过程,直

22、到m%n=0。 (2)源程序。#include int main() int m,n,r,a,b; scanf(%d/%d,&a,&b); m=a; n=b; while (m%n!=0) r=m%n; m=n; n=r; printf(%d/%dn,a/n,b/n); return 0;14输出N以内的所有素数编程找出N(2N500)以内(即小于等于N)的所有素数。输入格式:输入整数N(2N500)。输出格式:每8个一行输出N以内的所有素数。注意每个数据均占5列,且采用右对齐。输入样例:50输出样例: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 (1)编

23、程思路。判断一个数m是否为素数的方法是:用2sqrt(m)中的每一个整数i去除m,若某一个i能整除m,则m不是素数;否则,m是素数。该操作可以写成一个循环,如下: for (i=2;i sqrt(1.0*m),则m是素数,因为这种情况下,循环中的break语句没有被执行,即2sqrt(m)中的每一个整数i都不能整除m。求2n之间的所有素数,写成一个循环,在循环中嵌套一个循环判断每个整数i是否为素数,若是,则计数并输出,输出时每输出8个数后换行。 (2)源程序。#include #include int main() int n; int cnt=0; int i,j; scanf(%d,&n)

24、; for (i=2;i=n;i+) int t=(int)sqrt(1.0*i); for (j=2;jt) printf(%5d,i); cnt+; if (cnt%8=0) printf(n); if (cnt%8!=0) printf(n); return 0;15跟奥巴马一起画方块美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3N21)和组成正方形边的某种字符C,间

25、隔一个空格。输出格式:输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。输入样例:10 a输出样例:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa (1)编程思路。 程序写成一个嵌套的二重循环,外循环控制输出的行数(1(n+1)/2),内循环控制每行中删除n个字符c。 (2)源程序。#include int main() int n; char c; int i,j; scanf(%d %c,&n,&c); for (i=1;i=(n+1)/2;i+) for (j=1;j=n;j+) printf(%c,c); printf(n); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1