《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("%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实现过程【任务描述】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("%f%c%f",&a,&c,&b);有一个一维数组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];printf("aver=%f\n",a/10);}maxain(){max=min=score[0];for(i=0;i<10;i++){if(score[i]>max)max=score[i];if(score[0]<min)min=score[i];printf("max=%d\n min=%d\n",max,min);}}void main(){aver();max=min=score[0];for(i=0;i<10;i++)if(score[i]>max)max=score[i];if(score[0]<min)min=score[i];printf(" max=%d\n min=%d\n",max,min);}【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】设计任务2实现过程【任务描述】2. 编写一个函数,将输入的一串字符中的小写字母转变成大写字母,并输出所有的大写字母。
【算法分析】(用文字或流程图进行描述)用gets()函数输入字符串,然后讲小写字母转换成大写使用puts()输出。
【源程序代码】#include<>void main(){char ch[20];int i;printf("input string:\n");gets(ch);for(i=0;i<20;i++)if(ch[i]>=97&&ch[i]<=122)ch[i]-=32;puts(ch);}【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】第3章指针设计任务1.已知一个整型数组a[5],其各元素值为4,6,8,10,12。
使用指针法求该数组元素之积。
个围成一圈,从第1个人开始,每数到3的人出圈。
问最后一个出圈的人是哪一个。
3.编写两个排序函数,要求一个函数完成从小到大排序,一个函数完成从大到小排序,并编写主函数完成:①输入n个数;②调用排序函数对n个数按从大到小排序并输出;③调用排序函数对n个数按从小到大排序并输出;实现过程设计任务1实现过程【任务描述】1.已知一个整型数组a[5],其各元素值为4,6,8,10,12。
使用指针法求该数组元素之积。
【算法分析】(用文字或流程图进行描述)使用数组存放元素,然后用指针取出数值运算。
【源程序代码】#include<>main(){int a[5]={4,6,8,10,12};int *p,s=1;for(p=a;p<=a+4;p++)s=s*(*p);printf("%d\n",s);}【编译示图】(示图中要有0 error,0 warning的提示)【运行结果示图】设计任务2实现过程【任务描述】100个围成一圈,从第1个人开始,每数到3的人出圈。
问最后一个出圈的人是哪一个。
【算法分析】(用文字或流程图进行描述)使用for循环取出出圈人,然后用wile输出最后一个出圈的人。
【源程序代码】#include<>#define n 100void main(){int a[n],i,quit_num,k;for(i=0;i<n;i++)用C语言开发一个“小学生算术四则运算测试系统”。
该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题并阅卷。
该系统要求实现下列功能:①为小学生出题(分别进行+、-、*、/等不同运算)。
②学生做题后,进行评阅。
学生每做一题后,评阅给出“答题正确,很好”或“答题错误,重做”等信息。
③加、减、乘、除运算功能可以自由选择实现。
④运算数值可控制在两位数的四则运算范围内。
2.运用C语言开发一个“比赛评分系统”。
评委打分原则:满分10分,评委打分后,去掉一个最高分和一个最低分,最后的平均分为参赛选手的最后得分(精确到小数点后两位)。
要求该系统实现以下功能:①假设参赛人数为20人,评委为10人。
(有兴趣的同学可拓展为参赛人数为n人,评委为m人)。
并对参赛选手和评委分别编号,序号从1开始,顺序编号。
②选手按编号顺序依次参加比赛,统计最后得分。
③比赛结束,按从高分到低分每行5人依次打印选手的得分情况。
④公布选手获奖。
取一等奖1名,二等奖2名,三等奖3名。
3.王小二帮学生食堂编了一个买菜计价的程序,该程序可以显示菜单,让学生输入菜号来选择买什么菜,之后程序会报出你买了多少个菜,用了多少钱。
设计过程设计任务实现过程【任务描述】2.运用C语言开发一个“比赛评分系统”。
评委打分原则:满分10分,评委打分后,去掉一个最高分和一个最低分,最后的平均分为参赛选手的最后得分(精确到小数点后两位)。
要求该系统实现以下功能:①假设参赛人数为20人,评委为10人。
(有兴趣的同学可拓展为参赛人数为n人,评委为m人)。