《c语言循环结构上机习题_计算机-.NET.pdf》由会员分享,可在线阅读,更多相关《c语言循环结构上机习题_计算机-.NET.pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、计算 n 的阶乘(n!),n 的取值在 110之间。分别使用 while、do while和 for语句实现。(三个程序)给循环变量赋初值 循环条件 循环体 循环变量的增值 2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。3、假设函数 f(x)=3x2+2x+1,试利用 for 循环语句分别求出 1=xamax)amax=x;if()amin=x;scanf(%f,&x);printf(namax=%fnamin=%fn,amax,amin);行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分
2、子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 3 7、使用循环语句输出以下图形 8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出
3、所有符合上述要求的乘积式并打印输出。8、一百个铜钱买了一百只鸡,其中公鸡一只 5 钱、母鸡一只 3 钱,小鸡一钱 3 只,问一百只鸡中公鸡、母鸡、小鸡各多少)。行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡
4、分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 4 分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为 x,y,z,问题化为三元一次方程组:100=x*5+y*3+z/3 100=x+y+z 这里 x,y,z 为正整数,且 z 是 3 的倍数;由于鸡和钱的总数都是 100,可以确定 x,y,z的取值范围:1)x 的取值范围为 120 2)y 的取值范围为 133 3)z 的取值范围为 399,步长为 3 对于这个问题我们可以用穷举的方法,遍历x,y,z
5、的所有可能组合,最后得到问题的解。数据要求 问题中的常量:无 问题的输入:无 问题的输出:int x,y,z/*公鸡、母鸡、小鸡的只数*/初始算法 1初始化为 1;2计算 x 循环,找到公鸡的只数;行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个
6、铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 5 3计算 y 循环,找到母鸡的只数;4计算 z 循环,找到小鸡的只数;5结束,程序输出结果后退出。算法细化 算法的步骤 1 实际上是分散在程序之中的,由于用的是 for 循环,很方便的初始条件放到了表达式之中了。步骤 2 和 3 是按照步长1 去寻找公鸡和母鸡的个数。步骤 4 的细化 41 z1 42 是否满足百钱,百鸡 421 满足,输出最终百钱买到的百鸡的结果 422 不满足
7、,不做处理 43 变量增加,这里注意步长为 3 程序代码如下#include stdio.h main()int x,y,z;for(x=1;x=20;x+)行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分
8、别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 6 for(y=1;y=33;y+)for(z=3;z=99;z+=3)if(5*x+3*y+z/3=100)&(x+y+z=100)/*是 否 满 足 百 钱 和 百 鸡 的 条 件*/printf(cock=%d,hen=%d,chicken=%dn,x,y,z);分析 程序运行结果如下:cock=4,hen=8,chicken=78 cock=8,hen=11,chicken=81 cock=12,hen=4,ch
9、icken=84 对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即。请同学们自己分析二重循环和三重循环的运行次数,做为练习自己行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公
10、鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 7 调试这一方法。程序修改:1、统计使用三重循环的循环次数 2、使用二重循环完成,并统计循环次数#include int main()int i1,i2,j1,j2,a,b,c,d;for(i1=11;i1=99;i1+)for(j1=i1+1;j1=99;j1+)a=i1/10;b=i1%10;c=j1/10;行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列
11、求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 8 d=j1%10;if(a!=b&a!=c&a!=d&b!=c&b!=d&c!
12、=d)i2=b*10+a;j2=d*10+c;if(i1*j1=i2*j2)printf(%d*%d=%d*%dt,i1,j1,i2,j2);return 0;#include void main()int a,b,c,d;for(a=1;a=9;a+)for(b=1;b=9;b+)for(c=a+1;c=9;c+)for(d=1;d=9;d+)dif(a*10+b)*(c*10+d)=(10*b+a)*(10*d+行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数
13、据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 9 c)if(a!=b)&(a!=c)&(a!=d)&(b!=c)&(b!=d)&(c!=d)printf(%d%d*%d%d=%d%d*%d%dt,a,b,c,
14、d,b,a,d,c);#include main()int i,n,j=0;printf(请输入一个整数 n:);scanf(%d,&n);if(n=1&n=100)printf(1100间可以被%d 整除的数是:n,n);for(i=n;i=100;i+=n)printf(%-3d,i);行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出
15、以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 10 j+;if(j%5=0)putchar(n);else printf(输入错误!);#include int main()int x,y;for(x=1;x=9;x+)y=3*x*x+2*x+1;printf(f(%d)=%dn,x,y);#include int main()int
16、 n,m=0,i=0;printf(求 1 到 100 之间可以被 n 整除的整数n);printf(请输入整数 n:);行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整
17、数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历 欢迎下载 11 scanf(%d,&n);if(n=1&n=100)while(m=100-n)m+=n;i+;printf(%3d,m);if(i%5=0)putchar(n);printf(n1到 100 一共有%d 个整数可以被%d 整除n,i,n);else printf(输入错误);#include int main()int letters=0,space=0,digit=0,others=0;char c;printf(请输入一串字符:);for(;(
18、c=getchar()!=n;)if(c=a&c=A&c=0&c=9)digit+;else others+;printf(你一共输入了%d 个字母,%d 个空格,%d个数字,%d 个其它字符n,letters,space,digit,others);使用数组#includestring.h#include void main()int k;static char st1;gets(st);k=strlen(st);printf(%d,k);行字符分别统计输入了多少个字母数字空格和其他字符假设函数试利用循环语句分别求出的各函数值有分数序列求这个数列的前项和分析提示每个分子等于前一个数据分子与分母的和每个分母等于前一个数据的分子输出显示之间可是从键盘上输入若干学生的学习成绩统计并输出最高成绩和最低成绩当输入为负数时结束输入欢迎下载使用循环语句输出以下图形有一个数学等式式中的一个字母代表一位数字试找出所有符合上述要求的乘积式并打印输出一百个铜古典数学问题设一百只鸡中公鸡母鸡小鸡分别为问题化为三元一次方程组这里为正整数且是的倍数由于鸡和钱的总数都是可以确定的取值范围的取值范围为的取值范围为的取值范围为步长为对于这个问题我们可以用穷举的方法遍历