《C程序设计》课程设计
学 院: *** 专 业: *** 班 级: *** 学 号: *** 姓 名: *** 指导教师: ***
2016 年 9 月
第1章 分支与循环
设计任务
1. 王小二自夸刀工不错,有人放一张大地煎饼在砧板上,问他:“煎饼不许离开砧板,切100刀最多能分成多少块”
2. 若一个口袋中放有12个球,其中有3个红色球,3个白色球和6个黑色球,从中任取8个球,问共有多少不同的颜色搭配,把每种搭配显示出来。
3. 输入年月日,求它是该年的第几天。注:闰年的2月有29天,平年的2月有28天。 4. 简单计算器。请编写一个程序计算表达式:data1 op data2的值。其中op为运算符+、-、*、/,data1和data2是数据。
5. 猜数游戏。由计算机“想”一个数请人猜,如果猜对了,则游戏结束,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到猜对为止。计算机记录人猜的次数,以此可以反映出猜数者“猜”的水平。
6. 一辆肇事汽车的号码是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(\
}
【编译示图】(示图中要有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;若一个口袋中放有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黑\\n\}
【编译示图】(示图中要有0 error,0 warning的提示)
【运行结果示图】
设计任务4实现过程
【任务描述】
3. 输入年月日,求它是该年的第几天。注:闰年的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(\
有一个一维数组score[],内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。 2. 编写一个函数,将输入的一串字符中的小写字母转变成大写字母,并输出所有的大写字
母。
3. 输入10个学生姓名,按字典顺序将排在最前面的学生姓名输出。即在字符数组中求最小字符串。
4. 用函数求N*N的对角线的和。其中的N是用户通过键盘输入的任意值。
5. “数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差任为一个自然数。重复进行上述运算,会发现一个神秘的数。
6. 输入n值,打印边长为n的空心正六边形,其边有‘*’组成。例如:n=4时,图形如下:
**** * * * * * * * * * * ****
实现过程
设计任务1实现过程
【任务描述】
1. 有一个一维数组score[],内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。
【算法分析】(用文字或流程图进行描述)
用数组存放10个学生的成绩,然后用求出平均分、最高分、最低分。
【源程序代码】 #include<>
int score[10]={56,66,21,45,52,65,70,82,90,92}; int i,max,min; aver() {int i;
float aver=0,a=0; for(i=0;i<10;i++) a+=score[i];