朱虎林实验单元二 程序模块化设计修改版文档格式.docx
- 文档编号:20929025
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:13
- 大小:52.80KB
朱虎林实验单元二 程序模块化设计修改版文档格式.docx
《朱虎林实验单元二 程序模块化设计修改版文档格式.docx》由会员分享,可在线阅读,更多相关《朱虎林实验单元二 程序模块化设计修改版文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
\n"
);
7.scanf("
%d"
&
a);
8.if(a>
1)
9.{
10.for(i=2;
i<
a;
i++)
11.{
12.if(a%i==0)
13.flag=-1;
14.}
15.if(flag==-1)
16.{
17.printf("
no\n"
18.}
19.else
20.printf("
朱虎林yes\n"
21.}
22.else
23.printf("
24.}
运行结果为:
25.源程序代码:
#include<
26.intmain()
27.{
28.inta[10];
29.inti,j;
30.for(i=0;
i<
10;
i++)
31.{
32.scanf("
a[i]);
33.}
34.for(i=0;
35.{
36.for(j=0;
j<
9-i;
j++)
37.{
38.if(a[j]>
a[j+1])
39.{
40.intt=a[j];
41.a[j]=a[j+1];
42.a[j+1]=t;
43.}
44.}
45.}
46.printf("
Aftersorting,thearrayis:
"
47.for(i=0;
48.{
49.printf("
%d"
a[i]);
50.}
51.printf("
朱虎林\n"
52.return0;
53.}
54.源程序代码:
55.#include<
math.h>
56.main()
57.{
58.floatx,x1,a;
59.scanf("
%f"
60.x1=a;
61.do
62.{
63.x=x1;
64.x1=(x+a/x)/2;
65.}
66.while(fabs(x-x1)>
1e-5);
67.printf("
朱虎林x=%.5f\n"
x1);
68.return0;
69.}
六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)
要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;
再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机
实验七指针
(1)掌握指针的概念和定义方法。
(2)掌握指针的操作符和指针运算。
(3)掌握指针和数组的关系。
1.有3个整型变量i、j、k,请编写程序,设置3个指针变量p1、p2、p3,分别指向i、j、k。
然后通过指针变量使变量i、j、k的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原值赋给i。
要求输出i、j、k的原值和新值。
2.输入3个整数,按由小到大的顺序输出。
要求定义函数用来交换两个变量的值,函数参数要使用指针变量。
3.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,写三个函数:
①输入10个数;
②进行处理;
③输出10个数。
1.有三个整型变量i,j,k,请编写程序,设置3个指针变量p1,p2,p3,分别指向i,j,k。
然后通过指针变量使i,j,k3个变量的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原值赋给i。
要求输出i,j,k的原值和新值。
源程序代码:
intmain()
{
inti=1,j=2,k=3,c;
int*p1=&
i,*p2=&
j,*p3=&
k;
printf("
未交换前:
%4d,%4d,%4d"
i,j,k);
c=*p3;
*p3=*p2;
*p2=*p1;
*p1=c;
朱虎林交换后:
return0;
}
voidswap(int*i,int*j)
intp;
p=*i;
*i=*j;
*j=p;
}
intmain()
intx,y,z;
int*pos1,*pos2,*pos3;
printf("
请输入三个整数:
"
scanf("
%d,%d,%d"
x,&
y,&
z);
pos1=&
x;
pos2=&
y;
pos3=&
z;
if(x>
y)swap(pos1,pos2);
z)swap(pos1,pos3);
if(y>
z)swap(pos2,pos3);
朱虎林201513280205三个整数的顺序为:
x,y,z);
return0;
源程序代码#include<
voidinp(int*a);
voidcomp(int*a);
voidout(inta[10]);
inta[10];
inp(a);
comp(a);
out(a);
void\inp(int*a)
inti;
for(i=0;
{
scanf("
a+i);
}
voidcomp(int*a)
intmin,max;
intm;
min=0;
max=0;
if(a[i]<
a[min])
{
min=i;
}
if(a[i]>
a[max])
max=i;
m=a[0];
a[0]=a[min];
a[min]=m;
m=a[9];
a[9]=a[max];
a[max]=m;
voidout(inta[10])
printf("
朱虎林%d"
}:
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。
只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
应化15EIE学号:
实验八结构体
(1)掌握结构体数据类型的定义;
(2)掌握结构体变量中成员的赋值及引用;
(3)掌握结构体数组的定义及初始化;
(4)掌握结构体数组元素中成员的赋值和引用。
1.设计一个程序,用结构体实现复数的运算。
定义复数结构体,包含复数的实部real,虚部img,输入两个复数,进行加、减、乘运算,最后输出结果。
(复数乘法:
(a+bi)(c+di)=(ac−bd)+(bc+ad)i)
2.编写程序完成10门课程信息的管理。
每门课程包括课程号、课程名、授课老师、学分、上课时间、上课教室,编写函数完成课程信息的输入、查询、输出。
2.
3.structComplex
4.{
5.doublereal,img;
6.};
7.intmain()
8.{
9.structComplexa,b;
10.printf("
依次输入两个复数a和b的实部和虚部:
11.scanf("
%lf%lf%lf%lf"
a.real,&
a.img,&
b.real,&
b.img);
12.if(a.img+b.img>
0)printf("
a+b=%.1lf+%.1lfi\n"
a.real+b.real,a.img+b.img);
13.elseprintf("
a+b=%.1lf%.1lfi\n"
14.if(a.img-b.img>
0)printf("
a-b=%.1lf+%.1lfi\n"
a.real-b.real,a.img-b.img);
15.elseprintf("
a-b=%.1lf%.1lfi\n"
16.if(a.img*b.real+a.real*b.img>
0)
17.printf("
a*b=%.1lf+%.1lfi\n"
a.real*b.real-a.img*b.img,a.img*b.real+a.real*b.img);
18.elseprintf("
朱虎林a*b=%.1lf%.1lfi\n"
19.return0;
20.}
21.源程序代码:
22.#defineNUM10
23.#defineSHOW3
24.
25.structstudent
26.{
27.intid;
28.charname[20];
29.floatscore[3];
30.floataverage;
31.}
32.info[NUM];
33.
34.voidgetdata()
35.{
36.inti;
37.
38.for(i=0;
i<
NUM;
39.{
40.printf("
pleaseinputthe%dstudentinfomationlike:
i+1);
41.printf("
idnamescore
(1)score
(2)score(3)\n"
42.scanf("
%d%s%f%f%f"
info[i].id,info[i].name,&
info[i].score[0],&
info[i].score[1],&
info[i].score[2]);
43.info[i].average=(info[i].score[0]+info[i].score[1]+info[i].score[2])/3.0;
44.}
45.return;
46.}
47.
48.voidshowlist()
49.{
50.inti;
51.
52.printf("
thestudentinformationlist:
53.printf("
id\tname\tscore
(1)\tscore
(2)\tscore(3)\taverage\n"
54.for(i=0;
55.{
56.printf("
%d\t%s\t%.2f"
info[i].id,info[i].name,info[i].score[0]);
57.printf("
\t\t%.2f\t\t%.2f\t\t%.2f\n"
info[i].score[1],info[i].score[2],info[i].average);
58.}
59.
60.}
61.
62.voidshowtop()
63.{
64.inti,j;
65.structstudenttop;
66.
67.for(i=0;
68.{
69.for(j=0;
j<
(NUM-i);
j++)
70.{
71.if(info[j].average>
info[j+1].average)
72.{
73.top=info[j];
74.info[j]=info[j+1];
75.info[j+1]=top;
76.}
77.}
78.}
79.
80.printf("
thetopthreeaverageis:
81.printf("
name\taverage\n"
82.for(i=NUM;
i>
NUM-SHOW;
i--)
83.{
84.printf("
%s\t%.2f\n"
info[i].name,info[i].average);
85.}
86.
87.return;
88.}
89.
90.intmain()
91.{
92.getdata();
93.showlist();
94.showtop();
95.return0;
96.}
完成程序的编写,决不意味着万事大吉。
你认为万无一失的程序,实际上机运行时可能不断出现麻烦。
如编译程序检测出一大堆错误。
有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。
开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。
程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。
有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 朱虎林实验单元二 程序模块化设计修改版 虎林 实验 单元 程序 模块化 设计 修改