大学生C语言程序设计(第四版 谭洪强)实验三 参考答案
大学生C语言程序设计)实验三 参考答案
实验三 循环结构程序设计(参考答案)
1、设计程序sy3-1.c ,要求打印小学九九乘法表。
算法分析:
根据九九乘法表可知,该表共有9行,第i行有i个表达式,而且表达式中的操作数和行、列数相关,因此可以用嵌套的双重循环来实现,外循环控制行数(循环变量从1到9),内循环控制每行的表达式个数(循环变量从1变到i)。
参考答案:
# include <stdio.h>
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%-5d",j,i,i*j);
printf("\n");
}
}
运行结果:
2、设计程序sy3-2.c ,要求编程计算xn,其中x和n均由键盘输入2。
算法分析:
要计算x的n次方,即是n次x相乘,其中x可以是整型或实型,而n必须是整型;另外要考虑结果的类型,若x和n比较大,一般的int型容易产生溢出。
参考答案:
# include <stdio.h>
void main()
{
int i,n;
float x,p=1; /*累乘器要赋初值1*/
printf("Input x,n: "); scanf("%f,%d",&x,&n); /*以逗号分隔输入的已知数据x和n的值*/
for(i=1;i<=n;i++)
p=p*x;
printf("%g^%d=%g\n",x,n,p);
}
大学生C语言程序设计)实验三 参考答案
运行结果:
3、设计程序sy3-3.c,已知祖父年龄70岁,长孙20岁,次孙15岁,幼孙5岁,问要过多少年,三个孙子的年龄之和同祖父的年龄相等,试用单重循环结构编程实现。
算法分析:
这个程序可以用穷举法来实现,1年、2年、3年……,每加一年都判断三个孙子的年龄之和是否同祖父的年龄相等,若相等则不加了,这个时候所加的年数为我们需要的结果。
参考答案:
# include <stdio.h>
void main()
{
int i,a,b,c,d;
a=20; b=15; c=5; d=70;
i=1;
while(a+i+b+i+c+i!=d+i)
i++;
printf("After %d years be can.\n",i);
}
运行结果:
4、设计程序sy3-4.c ,有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。
算法分析:
这是一个序列累加的算法,第一项的值是2/1,之后每一项的规律是:分母为前一项的分子,分子为前一项分子分母之和;另外注意在除运算中若分子分母都为整数则结果也为整数,显然在这道题中分子分母的类型应为实型。
参考答案:
# include <stdio.h>
void main() {
int i;
float s=0,a=2,b=1,c,t;
for(i=1;i<=10;i++)
{ t=a/b; /*计算确定分子分母后当前项的值*/
s=s+t; /*将当前项t的值累加到求和变量s当中*/
c=a; /*将前一项的分子暂存于c变量中*/
a=a+b; /*修改下一项的分子为前一项分子分母之和*/
b=c; /*修改下一项的分母为前一项的分子*/
}
printf("The sum is %f\n",s);
大学生C语言程序设计)实验三 参考答案
}
运行结果:
5、设计程序sy3-5.c ,一球从200米高度自由落下,每次落地后反跳回原高度的四分之一,再落下。编程求它第10次落地时共经过的路程及第10次落地后反弹的高度。
算法分析:
该题也是进行多次加操作、求最终和的问题。在这里要定义一个变量(s)记录小球反复落地总共经历的高度,还要定义一个变量(h)表示小球每次反弹起来的高度。需要注意的一点是,小球第一次落地时经历的路程为初始高度,即s初值为200,在第一次落地后,s中每次累加的是两倍的h值(弹起和再落下),这个过程只需再重复九次即可。
参考答案:
# include <stdio.h>
void main()
{ float s=200,h=s/4; /*记录第一次落地经过的路程和第一次反弹的高度*/
int i;
for(i=2;i<=10;i++)
{ s=s+2*h;
h=h/4;
}
printf("s=%.2f\n",s);
printf("h=%f\n",h);
}
运行结果:
6、设计程序sy3-6.c ,要求求出满足“百位减去十位等于个位”的所有三位整数,并按一行5个数输出结果。 算法分析:
该算法可用循环穷举所有的三位整数,逐一判断是否满足条件,并设置一个计数器,计找到的满足条件数的个数,当计数器为5的倍数的时候输出回车换行。
参考答案:
# include <stdio.h>
void main()
{
int n=0,a,b,c,i; //计数器n要赋初值0
for(i=100;i<=999;i++) //穷举所有的三位整数
{
a=i/100; //分解百位
b=i/10%10; //分解十位
c=i%10; //分解个位
if(a-b==c)
大学生C语言程序设计)实验三 参考答案
{ printf("%5d",i);
n++;
if(n%5==0)
printf("\n");
}
}
printf("\n");
}
运行结果://输出满足条件的数
7、设计程序sy3-7.c ,要求从键盘上输入整数m和k,输出大于且紧靠m的k个素数。
算法分析:
该题用到判素数的算法,从输入的m+1开始往上找,找够k个结束。
参考答案:
# include <stdio.h>
# include <math.h>
void main()
{
int m,k,i,j,q;
printf("Input m,k: ");
scanf("%d,%d",&m,&k);
for(m=m+1; k>0 ;m++)
{ q=sqrt(m); //可以为q=m-1或q=m/2
for(j=2;j<=q;j++)
if(m%j==0) break;
if(j>q)
{ printf("%5d",m);
k--;
}
}
printf("\n");
}
大学生C语言程序设计)实验三 参考答案
运行结果:
8、中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?请编程解决该问题。(文件名存为sy3-8.c) 算法分析:
设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在0~20之间;同理,y的取值范围在0~33之间,可得到下面的不定方程:
5x+3y+z/3=100
x+y+z=100
所以此问题可归结为求这个不定方程的整数解。由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。
参考答案:
# include <stdio.h>
void main()
{
int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=33;y++)
{ z=100-x-y; //鸡的数目够100
if( z%3==0 && x*5+y*3+z/3==100 ) //购买鸡的钱够100,注意z必须是3的整数倍
printf("x:%d y:%d z:%d\n",x,y,z); //输出此种组合
}
} 运行结果:
9、编写程序sy3-9.c ,输入一个 …… 此处隐藏:2564字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




