《C语言程序设计》实验报告.doc_第1页
《C语言程序设计》实验报告.doc_第2页
《C语言程序设计》实验报告.doc_第3页
《C语言程序设计》实验报告.doc_第4页
《C语言程序设计》实验报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计实验报告C语言程序设计实验报告学 院: 专 业: 学 号: 姓 名: 成 绩: 课程代码: 2001301 指导教师: 实验中心: 电气信息专业试验中心 日 期: 目 录 实验总体要求 实验一C语言的运行环境和运行过程实验二数据类型、运算符与表达式实验三程序结构(顺序、选择和循环)实验四数组实验五函数实验六指针实验七结构体实验八类和对象实验总体要求C语言程序设计课程是一门实践性很强的课程,为了培养学生的计算机应用能力,除了课堂理论教学外,必须加强程序设计课程实验的教学环节。1、 课程实验教学目的通过C语言程序设计的课程实验教学,学生应具有使用计算机解决相关问题的能力,同时为学生今后学习其他计算机应用课程打下良好的程序设计基础。 分析问题和解决问题能力的训练课程实验教学将课本上的理论知识和实际应用有机地结合起来,达到训练学生分析问题解决实际问题的能力,提高学生应用计算机知识开发应用系统的综合能力。 逻辑思维能力的训练通过课程实验教学,使学生正确地掌握C语言的基本知识,较好掌握基本的程序算法,以及描述方法。培养学生在程序设计解题思路、算法的描述、编程构思等方面的计算机逻辑思维能力。 程序设计技能的训练通过C语言环境下的应用实例,训练学生编写程序的能力,掌握编程的思路和方法,掌握结构化程序设计的基本概念和基本技能。通过课程实验教学,使学生掌握C程序设计语言的语法规则,数据结构的应用,掌握算法描述及相应代码描述,掌握结构化程序设计的基本方法,能熟练编写一般的应用程序。2、 课程实验教学要求 要求通过解题、程序设计和上机实践,加深对所学概念的理解,提倡理论与实践相结合的学习方法。 要求学生认真进行解题分析,掌握算法描述方法,掌握编程基本技能。通过布置一定数量程序设计题目,帮助学生逐步熟悉编写程序的方法,提高程序设计能力。 要求学生在课程实验中,努力培养发现程序错误、纠正程序错误的能力,独立完成每一次课程实验,提高编程的效率和成功率。 要求学生在完成课程实验规定的任务外,利用课余的时间多编程,多上机实践。反对抄袭或拷贝他人的源程序。 要求学生培养科学、严谨的学习作风,认真写好实验报告。学生在上机实践前,应事先编写好相应的源程序,准备好有关的调试数据,了解上机操作的步骤和过程,较好地完成每一次上机实验课。为了使学生能真正做到每一次课程实验有收获,做完一个实验后,要求学生必须写成完整的实验报告。实验报告模板(如下)要求手工填写,程序代码、及运行结果用附页(见本文件最后一页),打印、手写均可,程序应包含较清楚的注释,装订时附页附在每次实验报告之后。 报告所有文本、程序代码,均要求独立完成,严禁抄袭。实验一 C语言的运行环境和运行过程实验目的1、熟悉C语言运行环境Visual C+6.0集成开发环境。2、掌握C语言程序的书写格式和语言程序的结构。3、掌握编辑、编译、连接和运行C程序的操作步骤。实验环境 硬件: 软件:实验内容1、有下面的程序,目的是想计算由键盘输入的任意两个整数的积。/*exl_1.c*/#include (stdio.h); main() scanf(“%x,%y”,&x,%y) printf(“n x*y=%d, x/y=%d n”,x*y,x/y)在编辑状态纠正上述程序中的所有错误,并用一下输入数据测试,并对结果予以解释。()9, 3 ()3, 9 (),32、编写程序,通过函数max调用实现从键盘输入两个(或三个)整数,输出最大的一个。其中max函数分别用if-else结构和?:表达式实现。实验过程及总结体会1.纠错: /*exl_1.c*/ #include main() int x; int y; scanf(“%x,%y”,&x,&y) ; printf(“ x*y=%dn, x/y=%d n”,x*y,x/y)(1) .输入9,3 结果是27和3(2) 输入3,9 结果是27和一个异常,因为定义的都是整形,但是3/9是一个 非整形(3) 输入20,3 结果是60和一个异常 理由和(2)一样2.程序: #include main() int x; int y; int max(x,y); int max(a,b)if(ab)reture a;else reture b;其它参考资料:(程序代码、及运行结果拷贝附后) 实验日期: 指导教师:实验二 数据类型、运算符与表达式实验目的1、熟悉和理解C语言中的基本数据类型。2、了解基本数据类型的字节宽度和范围表示。3、学会C语言的有关运算符,以及包含这些运算符的表达式,特别是+和-运算符的使用。4、进一步熟悉C程序的编辑环境,能利用学习的数据类型,编制简单的C程序。实验环境 硬件: 软件:实验内容1、运算符sizeof用以测试一个数据或类型所占用的存储空间的字节数。请编写一个程序,测试输出各基本数据类型char, short, int, long, float, double所占用的存储空间大小(字节数)。2、编写程序,测试所学过的C+语言主要运算符。例如可包含如下类似语句:printf(“n 3+4=%d,5*6=%d,5/6=%d,5.0/6.0=%f n”,3+4,5*6,5/6,5.0/6.0);cout6?”68?”810=10?”10=10endl;cout6) =”6)?”TRUE”:”FALSE”endl;cout5)&(85)=”5)&(85)5)&(85)=”5)&(85)5)|(85)=”5)|(85)endl;实验过程及总结体会1. #include void main() char a; short b; int c; long d; float e; double f; printf(sizeof(a);printf(sizeof(b);printf(sizeof(c);printf(sizeof(d);printf(sizeof(e);printf(sizeof(f);2.includemain()cout6?”68?”810=10?”10=10=j)midNum=ai;ai=aj;aj=midNum;i-;j+;2.#include stdio.hvoid main()int Oddtotal(int num);int Total(int num);int num;int oddtotal=0;int total=0;printf(请输入范围:1);scanf(%d,&num);oddtotal=Oddtotal(num);total=Total(num);printf(奇数之和为:%dn,oddtotal);printf(总和为:%d,total);int Oddtotal(int endNum)/奇数之和int i=1,sum=0;for(i;i=endNum;i+)if(i%2=0)sum+=i;return sum;int Total(int endNum)/总和int i=1,sum=0;for(i;i=90)return A; if(score=80)return B; if(score=70)return C; if(score=60)return D; return E; 其它参考资料:(程序代码、及运行结果拷贝附后) 实验日期: 指导教师:实验四 函数实验目的1、掌握C语言函数定义及调用的规则。2、理解参数传递的过程。实验环境 硬件: 软件:实验内容1编写一个将华氏温度转换为摄氏温度的程序,转换公式为C(5/9)(F-32)。要求:要求将转换公式C(5/9)(F-32)的功能用一个子函数来实现,并在主函数中对其进行函数调用。 给出华氏温度的测试数据,写出相应的摄氏温度运行结果。分析结果是否正确,并分析产生错误的原因是什么?并对程序进行修改。2、编写程序,通过函数max和min调用实现从键盘输入三个整数,分别输出最大、最小的数。3、用一个函数实现求近似值,并在主函数调用它输出近似值。4、用递归函数调用,求1+2+3+100的值。实验过程及总结体会其它参考资料:(程序代码、及运行结果拷贝附后) 实验日期: 指导教师:实验五 数组实验目的1、掌握数组定义、初始化及基本用法;2、掌握字符数组的使用;3、掌握与数组有关的算法(例如排序算法);4、掌握二维数组的定义、赋值和输入输出的方法。实验环境 硬件: 软件:实验内容1、一个含10个整数元素的数组,试找出其中的最大、最小元素及其下标,并分别输出最大、最小元素值及其下标值。2、定义一个二维数组存储三位学生的考试成绩,每位学生有两科考试的成绩,编写程序分别取出二维数组里的元素值,经过累加之后计算并输出每位学生的总成绩。3、输入两个字符串,比较这两个字符串是否相同,并输出比较的结果。(提示:可以调用系统库函数strcmp进行比较)4、对1题中的一维数组用选择法进行排序并输出。实验过程及总结体会1.#include #include int main() int i; void Compare(int a); int a10; for(int i=0;i10;i+) scanf(%d,&ai); Compare(a); getchar(); scanf(%d,i); void Compare(int a) int i,j; int max=0,min=0; int maxIndex,minIndex; for(i=0;i10;i+) if(maxai) max=ai; maxIndex=i; else min=ai; minIndex=i; printf(最大值是:%dn,max); printf(最大值索引是:%dn,maxIndex); printf(最小值是:%dn,min); printf(最小值索引是:%dn,minIndex); 2.#include #include int main() int i,j; int studentScore32; int sum3; for(i=0;i3;i+) for(j=0;j2;j+) if(j=0) printf(请输入第%d名学生第一门课的成绩:n,i+1); scanf(%d,&studentScoreij); if(j=1) printf(请输入第%d名学生34第二门课的成绩:n,i+1); scanf(%d,&studentScoreij); for(i=0;i3;i+) sumi=0; for(j=0;j2;j+) sumi+=studentScoreij; printf(第%d名学生成绩为%dn,i+1,sumi); scanf(%d,i); 3.#include #include #include int main() char str110,str210; int i; int Compare(char str1,char str2); printf(请输入第一个字符串(长度为10):); gets(str1); printf(请输入第二个字符串(长度为10):); gets(str2); Compare(str1,str2); scanf(%d,i); int Compare(char str1,char str2) int i; i=strcmp(str1,str2); if(i0) printf(第一个字符大于第二个字符,i); if(i0) printf(第一个字符小于第二个字符,i); if(i=0) printf(第一个字符等于第二个字符,i); 4.#include #include int main() int i; void xu(int a); int a10; for(int i=0;i10;i+) scanf(%d,&ai); xu(a); for(i=0;i10;i+) printf(排序后:); printf(%dn,ai); scanf(%d,i); void xu(int a) int i,j,max,t; for(i=0;i=10;i+) max=i; for(int j=i+1;jamax) max=j; if(max!=i) t=amax; amax=ai; ai=t; 其它参考资料:(程序代码、及运行结果拷贝附后) 实验日期: 指导教师:实验六 指针实验目的1、熟悉指针的正确用法。2、了解指针参数的特殊性。实验环境 硬件: 软件:实验内容1、定义两个子函数swap1和swap2,目的是实现两个整数的数值交换,其中swap1的两个形参采用值传递,swap2的两个形参采用地址传递,在主函数中分别调用这两个子函数,其输出结果如下所示: 初始值 :x=1,y=2 调用swap1后的结果:x=1 y=2 调用swap2后的结果:x=2 y=12、定义一个函数,其返回1+2+n的和,int n是参数,在主函数中通过一个指针调用它,并输出1加至n的和。3、用指向整型的指针指向一个整型的一维数组,通过指针找出最大、最小元素的值,并输出。实验过程及总结体会1.2.#include stdio.hint func(int n)if( 1 = n)return 1;elsereturn func(n-1)*n; void main()int n; printf(the n = ); scanf(%d,&n); printf(n); printf(%d!阶层值是: %d,n,func(n); 3.#include stdio.h#define SIZE 5void main()int max=0,min=0;int j;int arrSIZE;int *p;p = &arr0;printf(output the %d data:n,SIZE);for(j=0; jSIZE; j+)scanf(%d,&arrj);min = max = *p;for(j=1; jSIZE; j+)if(max *(p+1)min = *(p+1); printf(n);pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论