C语言课程设计Word文档格式.docx
- 文档编号:21771078
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:25
- 大小:302.50KB
C语言课程设计Word文档格式.docx
《C语言课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
x1=n/100则得到百位数
x2=n/10%10则得到十位数
x3=n%10则得到个位数
y=x3*100+x2*10+x1*1
【源程序代码】
#include<
stdio.h>
voidmain()
{
intx1,x2,x3,n,y
;
printf(“pleaseinputnumbern
:
”);
scanf(“%d”,&
n);
x1=n/100
x2=n/10%10
x3=n%10
y=x3*100+x2*10+x1*1
printf(“y=
%d”,y)
}
【编译示图】
(示图中要有0error,0warning的提示)
【运行结果示图】
第一章选择和循环程序设计
1、输入变量x的值,计算y的值。
x+1x<
1
x+21=<
x<
2
y=x+32=<
3
x+4x>
=3
#include<
{intx,y;
printf("
inputx:
"
);
scanf("
%d"
&
x);
if(x<
1)
{y=x+1;
x=%d,y=x+1=%d\n"
x,y);
elseif(x<
2)
{y=x+2;
x=%d,y=x+2=%d\n"
3)
{y=x+3;
x=%d,y=x+3=%d\n"
else
{y=x+4;
x=%d,y=x+4=%d\n"
}
2、猜数游戏。
由计算机“想”一个数请人猜,如果猜对了,则游戏结束,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到猜对为止。
计算机记录人猜的次数,以此可以反映出猜数者“猜”的水平。
#definex500
{inti,sum;
for(i=0,sum=0;
i<
10000;
i++)
{printf("
inputadata:
\n"
i);
if(i<
x)
{printf("
你输入的数小了"
elseif(i>
你输入的数大了"
elsebreak;
sum=sum+1;
你共猜了%d次\n"
sum+1);
3、若一个口袋中放有12个球,其中有3个红色球,3个白色球和6个黑色球,从中任取8个球,问共有多少不同的颜色搭配。
{intx,y,z;
红色白色黑色\n"
x,y,z);
for(x=0;
=3;
x++)
for(y=0;
y<
y++)
for(z=0;
z<
=6;
z++)
if(x+y+z==8)
颜色搭配的情况:
%d%d%d\n"
第二章数组
1、某班有10名学生参加全国计算机等级考试,编写一个程序求该班学生考试成绩的平均分和高于平均分的人数。
定义数组,将10名学生的成绩按数组输入。
定义一个算平均值的函数。
一个算高于平均值的人数的函数。
用函数调用的方式运行函数,
intmain()
inta[10],i;
printf("
输入10名学生的成绩\n"
for(i=0;
10;
scanf("
a[i]);
intb=0;
floatc;
b=b+a[i];
c=(b/10.0);
平均值是%f\n"
c);
intd=0;
if(a[i]>
c)d++;
高于平均值的人数是%d\n"
d);
return0;
2、定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;
然后按顺序每5个数求出一个平均值,放在另一数组中并输出。
定义数组,找出对应关系,给数组赋值。
定义另一个二维数组,用嵌套循环完成赋值(将一维数组转变成二维数组。
定义一个新的数组
将二维数组每小段求和。
赋值给新定义的数组。
输出新定义的数组。
inta[30],c=0;
for(c=0;
c<
30;
c++)
a[c]=(c+1)*2;
intb[6][5],i,j;
6;
for(j=0;
j<
5;
j++)
b[i][j]=a[i*5+j];
floatd[6],f[6]={0};
inte;
for(e=0;
e<
e++)
f[e]=b[e][j]+f[e];
d[e]=f[e]/5.0;
%f\n"
d[e]);
第三章函数
1、有一个一维数组score[],内存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分。
定义数组,存放学生成绩。
定义三个功用的函数。
用函数调用完成主函数。
floataver(floatarray[10]);
floatmax(floatarray[10]);
floatmin(floatarray[10]);
floata[10];
inti;
请输入十名同学的成绩\n"
%f"
floatb,c,d;
b=aver(a);
平均值是%f\n"
b);
c=max(a);
最大值是%f\n"
d=min(a);
最小值是%f\n"
floataver(floatarray[10])
floatsum=array[0],n;
for(i=1;
sum=array[i]+sum;
n=sum/10;
returnn;
floatmax(floatarray[10])
inti;
if(array[i]>
array[0])array[0]=array[i];
returnarray[0];
floatmin(floatarray[10])
if(array[i]<
2、输入年月日,求它是该年的第几天。
注:
闰年的2月有29天,平年的2月有28天。
【算法
分别定义三个变量,通过三次输入确定年,月,日;
判断是否为闰年。
分为闰年和不为闰年。
两种情况分别做。
【源程序代码】分析】
{inta,b,c,i,d;
intpan(intx);
intsu1(intx,inty);
intsu2(intx,inty);
请输入年份\n"
a);
请输入月份\n"
b);
请输入是几号\n"
c);
i=pan(a);
if(i)
d=su1(b,c);
else
d=su2(b,c);
这是该年的第%d天\n"
intpan(intx)
{inti;
if(x%4==0&
&
x%100!
=0||x%100==0)i=1;
elsei=0;
returni;
intsu1(intx,inty)
switch(x)
case1:
i=y;
break;
case2:
i=31+y;
case3:
i=31+29+y;
case4:
i=31+29+31+y;
case5:
i=31+29+31+30+y;
case6:
i=31+29+31+30+31+y;
case7:
i=31+29+31+30+31+30+y;
case8:
i=31+29+31+30+31+30+31+y;
case9:
i=31+29+31+30+31+30+31+31+y;
case10:
i=31+29+31+30+31+30+31+31+30+y;
case11:
i=31+29+31+30+31+30+31+31+30+31+y;
case12:
i=31+29+31+30+31+30+31+31+30+31+30+y;
intsu2(intx,inty)
i=31+28+y;
i=31+28+31+y;
i=31+28+31+30+y;
i=31+28+31+30+31+y;
i=31+28+31+30+31+30+y;
i=31+28+31+30+31+30+31+y;
i=31+28+31+30+31+30+31+31+y;
i=31+28+31+30+31+30+31+31+30+y;
i=31+28+31+30+31+30+31+31+30+31+y;
i=31+28+31+30+31+30+31+31+30+31+30+y;
3、用函数法求N*N的对角线的和。
其中的N是用户通过键盘输入的任意值。
定义足够大的一介数组。
通过用户输入的值,确定方阵大小。
求和。
inti,sum;
inta[100][100];
请输入方阵的大小N\n"
请输入方阵的值\n"
intx,y;
for(x=0;
i;
for(y=0;
a[x][y]);
sum=a[0][0];
intj;
for(j=1;
sum=a[j][j]+sum;
对角线上的和%d\n"
sum);
第四章指针
1、已知一个整型数组a[5],其各元素值为4,6,8,10,12。
使用指针法求该数组元素之积。
用循环,将p分别指向数组里的每一个元素,然后在相乘。
inta[5]={4,6,8,10,12};
int*p;
intj=1,i;
{p=&
a[i];
j=*p*j;
数组之积是%d\n"
j);
2、编写两个排序函数,要求一个函数完成从小到大排序,一个函数完成从大到小排序,并编写主函数完成:
①输入n个数;
②组织调用排序函数对n个数按从大到小排序并输出;
③组织调用排序函数对n个数按从小到大排序并输出;
定义一个足够大的数组。
将数组赋值这N个数。
用指针和函数调用编写这两个函数。
调用,并输出。
{voida1(floatarray[100],intn);
voida2(floatarray[100],intn);
floata[100];
intN;
您将要输入几个数?
\n"
N);
请输入这N个数。
并按Enter结束\n"
inti=0;
N;
由大到小排序是:
a1(a,N);
由小到大排序是:
a2(a,N);
voida1(floatarray[100],intn)
inti,j,k;
floatt;
n-1;
k=i;
for(j=i+1;
n;
if(array[j]>
array[i])
k=j;
if(k!
=i)
{t=array[k];
array[k]=array[i];
array[i]=t;
}
%f"
array[i]);
voida2(floatarray[10],intn)
if(array[j]<
第五章课程设计总结
通过这段时间的学习,我是真的收获了不少。
我认为这样的收获是和平时老师的教导分不开的。
当然也和我我的扎实的态度是分不开的。
对于C语言这门课,我的确是用心在听。
每一次习题都独立思考,和完成。
对于做题的总结,我认为,首先应该将大体的思路规划出来。
熟练运用函数调用也可以让思路变得清晰得多。
在做和数组有关的题目时,一定不能忘了用循环。
在做课程设计的过程中遇到了很多障碍,但是都在老师的指导下顺利解决了。
失败是成功的必经路。
通过对走过的弯路的教训总结,我认为自己在基础知识上还有待加强。
以后的日子我将针对自己薄弱点,有针对的强化训练,使自己的水平更上一层楼。
以上就是我的总结。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计