c语言课程设计报告 下载本文

《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];