《C程序设计》课程设计
学
院:
***
专
业:
***
班
级:一
***
学
号:一
***
姓
名:.
***
指导教师:_
***
2016年9月
第 1 章 分支与循环
设计任务
王小二自夸刀工不错,有人放一张大地煎饼在砧板上,问他:“煎饼不许离开砧板,切
100 刀最多能分成多少块?”
若一个口袋中放有 12个球,其中有 3个红色球 ,3 个白色球和 6个黑色球 ,从中任取 8个 球, 问共有多少不同的颜色搭配,把每种搭配显示出来。
输入年月日 ,求它是该年的第几天。注 :闰年的 2月有 29天, 平年的 2月有 28天。
简单计算器。请编写一个程序计算表达式:data1 op data2 的值。其中 op 为运算符 +、
-、* 、 /,data1 和 data2 是数据。
猜数游戏。由计算机“想”一个数请人猜,如果猜对了,则游戏结束,否则计算机给出
提示, 告诉人所猜的数是太大还是太小, 直到猜对为止。 计算机记录人猜的次数, 以此可以 反映出猜数者“猜”的水平。
一辆肇事汽车的号码是 4 位十进制数。目击者向交警描述这个车号:这是一个完全平方 数;这 4 个数字从左至右一个比一个小。请帮助交警寻找肇事者,将车号算出来。
实现过程
设计任务 1 的实现过程
【任务描述】
1 .王小二自夸刀工不错,有人放一张大地煎饼在砧板上,问他: “煎饼不许离开砧板,切
100 刀最多能分成多少块?” 【算法分析】(用文字或流程图进行描述) 用到数学中的逆推公式。
s=1+n*(n+1)/2
【源程序代码】
#include <>
main()
{int n,s;
for(n=1;n<=100;n++)
{ s=1+n*(n+1)/2;
}
printf("%d\n",s);
编译示图】 ( 示图中要有 0 error,0 warning的提示 )
运行结果示图】
设计任务 2 的实现过程
【任务描述】
6. 一辆肇事汽车的号码是 4 位十进制数。目击者向交警描述这个车号:这是一个完全平方 数;这 4 个数字从左至右一个比一个小。请帮助交警寻找肇事者,将车号算出来。
【算法分析】(用文字或流程图进行描述) 找出这个四位数的个、十、百、千位数,利用题目条件运用两个 for 循环最后求出结果。
【源程序代码】
#include <>
main()
{int s,a,b,c,d,e;
for(s=1000;s<10000;s++)
{
a=s%10;若一个口袋中放有 12个球,其中有3个红色球,3个白色球和6个黑色球,从中 任取 8 个球 , 问共有多少不同的颜色搭配,把每种搭配显示出来。
【算法分析】(用文字或流程图进行描述)
用三个 for 循环嵌套,再以一个 if 条件语句就可以输出最后结果。
【源程序代码】
#include <>
main()
{int x,y,z;
for(x=0;x<4;x++)
for(y=0;y<4;y++)
for(z=0;z<7;z++)
if(x+y+z==8)
printf("%d 红 %d 白 %d 黑\n”,x,y,z);
}
编译示图】 ( 示图中要有 0 error,0 warning的提示 )
运行结果示图】
设计任务 4 实现过程
【任务描述】
输入年月日 ,求它是该年的第几天。注 :闰年的 2月有 29天, 平年的 2月有 28天。 【算法分析】(用文字或流程图进行描述)
先用 if 语句判断出平年和闰年,再用 for 循环输出最后结果。
【源程序代码】
#include <>
void main()
{
int year,moth,day;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};简单计算器。请编写一个程序计算
表达式: data1 op data2 的值。其中 op 为运算符 +、 - 、 * 、 /,data1 和 data2 是数据。 【算法分析】(用文字或流程图进行描述)
先输出所需数据和运算符,然后用 switch 语句进行判断,最后输出结果。 【源程序代码】
#include <>
void main()
{
float a,b;
char c;
printf(" 请输入数字 a, 运算符 c, 数字 b:\n");
scanf("%f%c%f",&a,&c,&b);
有一个一维数组 score[] ,内存放 10 个学生的成绩,要求编写三个函数分别求学生的平均 成绩,求 10个学生的最高分,求 10 个学生的最低分。
编写一个函数, 将输入的一串字符中的小写字母转变成大写字母, 并输出所有的大写字 母。
输入 10 个学生姓名, 按字典顺序将排在最前面的学生姓名输出。 即在字符数组中求最小 字符串