您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页C语言电子版实验报告

C语言电子版实验报告

来源:华佗小知识


C语言程序设计 课程实验报告

系 (院): 信息工程学院 班 级: 网络1201 学 号: 姓 名: 完成日期: 2013年2-6月 指导教师:

二○一三年六月

C语言程序设计实验内容安排

实验一、了解编程环境

主要内容:基于Visual C++6.0对C语言的兼容,了解Visual C++6.0--Win32 Console Application 的编程步骤,通过简单编程了解printf()、scanf()、getch()/getchar()的基本用途,了解基本编程规范。

实验二、顺序结构

主要内容:学会在程序中运用基本类型数据和表达式;重点掌握赋值语句和格式I/O语句在程序开发中的运用。

实验三、条件结构

主要内容:熟悉if语句和switch语句的语法规则及应用;学会编写分支结构的C程序。

实验四、循环结构

主要内容:训练循环设计技巧,重点训练for循环、while循环和do-while循环的构造技术,进一步加深对有关经典算法的理解,能灵活运用循环结构编写高质量的C程序。

实验五、数组

主要内容:掌握数值型数组和字符型数组各自的编程特点,积累有关经典算法,能在程序中灵活使用数组技术。

实验六、函数

主要内容:熟悉模块化设计方法在C语言中的实现,能进行正确的函数调用,并能实现函数嵌套调用,进一步积累程序调试经验,增强编写大型程序的能力。

实验七、指针

主要内容:练习指针变量、指向一维数组的指针变量、指向二维数组的指针变量在程序中的运用,练习编写返回指针值的函数,掌握指针在函数通信中的运用,能合理运用指针技术编写更为高效、紧凑的C程序。

实验八、结构

主要内容:学会在程序中运用结构变量和结构数组,掌握指向结构体的指针变量的定义和使用方法,掌握动态存储分配函数,熟练掌握链表操作。

实验九、文件

主要内容:学会数据文件的建立、读写和关闭操作。能在程序中使用数据文件实现相关算法。

备注:

(1)实验报告总量控制在10页以内,标题黑体小四,其它五号字体、单倍行距。 (2)提交程序全部工程的压缩文件。

(3)考虑Word文档实验报告的篇幅(10以内),可挑选实验二到九中的任意4个实验写Word文档实验报告。实验结果输出界面为黑底白字的,请做反色处理。

1

实验三、条件结构

1、实验目的

熟悉if语句和switch语句的语法规则及应用;学会编写分支结构的C程序。

2、实验内容

求ax2+bx+c=0方程的解。要求能够讨论无解、无数解、一个根、两个根及两个复数根的情况。

3、设计思路

4、实现代码

#include #include void main() {

float a,b,c,delta,p,q,x1,x2;

printf(\"Please input parameters of equation(a,b,c):\"); scanf(\"%f,%f,%f\ delta=b*b-4*a*c; if (a==0) { if (b==0) { if (c==0) { printf(\"%.2fx^2+%.2fx+%.2f=0有无数解\\n\ } else { printf(\"%.2fx^2+%.2fx+%.2f=0无解\\n\ } } else { printf(\"%.2fx^2+%.2fx+%.2f=0的解为x=%.2f\\n\ }

1

} else { if (delta==0) { printf(\"%.2fx^2+%.2fx+%.2f=0的解为x=%f\\n\ } else { if (delta>0) { p=-b/(2.0*a); q=sqrt(delta)/(2.0*a); x1=p+q;x2=p-q; printf(\"%.2fx^2+%.2fx+%.2f=0的两个根:x1=%.2f,x2=%.2f\\n\ } else { p=-b/(2.0*a); q=sqrt(-delta)/(2.0*a); printf(\"%.2fx^2+%.2fx+%.2f=0的两个复数根:x1=%.2f+%.2fi,x2=%.2f-%.2fi\\n\p,q,p,q); } } } }

5、实验结果

6、实验体会

在很多情况下,需要根据某个条件是否满足来决定是否执行制定的操作任务,或者从给定的两种或多种操作选择其一。这就是选择结构要解决的问题。

2

实验四、循环结构

1、实验目的

训练循环设计技巧,重点训练for循环、while循环和do-while循环的构造技术,进一步加深对有关经典算法的理解,能灵活运用循环结构编写高质量的C程序。

2、实验内容

一个数如果恰好等于它的因子之和,这个数就称为“完数”。找出1000之内所有完数,并按下面格式输出其因子:6 its factors are 1,2,3。

3、设计思路

4、实现代码

#include void main() {

int a,c,d;

for (a=1;a<=1000;a++) { for (c=1,d=0;c3

}

}

}

} }

printf(\"\\b \\n\");

5、实验结果

6、实验体会

在日常生活或是程序所处理的问题中常常遇到需要重复处理的问题。要处理这种问题,最原始的方法是分别编写若干个相同或相似的语句或程序段进行处理。这种方法虽然可以实现要求,但是显然是不可取的,因为工作量大、程序冗长、重复、难以阅读和维护。实际上,几乎每一种计算机高级语言都提供了循环控制,用来处理需要进行的重复操作。

4

实验五、数组

1、实验目的

掌握数值型数组和字符型数组各自的编程特点,积累有关经典算法,能在程序中灵活使用数组技术。

2、实验内容

统计一篇文章(3行文字)中,英文大、小写字母、数字、空格及其他字符的个数。

3、设计思路

4、实现代码

#include void main() {

char artical[3][80];

int i,j,daxie=0,xiaoxie=0,shuzi=0,kongge=0,qita=0; for (i=0;i<=2;i++) { printf(\"请输入第%d行文字:\\n\ gets (artical[i]); }

for (i=0;i<=2;i++) { for (j=0;j<=79&&artical[i][j]!='\\0';j++) { if (artical[i][j]>=65&&artical[i][j]<=90) { daxie++; } else { if (artical[i][j]>=97&&artical[i][j]<=122) { xiaoxie++; } else { if (artical[i][j]>=48&&artical[i][j]<=57)

5

}

{ shuzi++; } else { if (artical[i][j]==32) { kongge++; } else { qita++; } } } } } }

printf(\"大写字母有%d个,\\n\printf(\"小写字母有%d个,\\n\printf(\"数字有%d个,\\n\printf(\"空格有%d个,\\n\printf(\"其他字符有%d个。\\n\

5、实验结果

6、实验体会

数组是一组有序数据的集合。数组中的每一个元素都属于同一个数据类型。通过实验验证,将数组和循环相结合,可以有效地处理大批量的数据,大大提高了工作效率,十分方便。

6

实验六、指针

1、实验目的

练习指针变量、指向一维数组的指针变量、指向二维数组的指针变量在程序中的运用,练习编写返回指针值的函数,掌握指针在函数通信中的运用,能合理运用指针技术编写更为高效、紧凑的C程序。

2、实验内容

统计一个班4个学生,5门课程的情况。①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。

3、设计思路

main 函数

d1pingjun 函数

search1 函数

search2 函数

average 函数

4、实现代码

#include #define N 4 #define M 6

double d1pingjun(float *a,int n); void search1(float *s,int i);

7

void search2(float *s,int i); double average(float *a,int i); void main() {

float a[N][M]; double pj; int i,j;

printf(\"请输入4个学生的学号以及5门成绩:\\n\"); for (i=0;i<4;i++) { for (j=0;j<6;j++) { scanf(\"%f\ } }

pj=d1pingjun(*a,N);

printf(\"第一门平均分是%.2lf分\\n\ printf(\"满足要求二的学生成绩:\\n\"); for (i=0;iprintf(\"满足要求三的学生成绩:\\n\"); for (i=0;idouble d1pingjun(float *a,int n) {

double average,sum; float *p; p=a+1; sum=0;

for (;p<=a+(N*M-1);p=p+6) { sum=sum+(*p); }

average=sum/n; return average; }

void search1(float *s,int i) {

int j,count; double ave; float *se; se=s;

for (j=1,count=0;j8

} }

if (count>=2) { ave=average(s,i); se=s+M*i; printf(\"No.%.0lf \ for (j=1;jvoid search2(float *s,int i) {

int j,flag=0; double ave; float *se; se=s;

ave=average(s,i); for (j=1;jif (flag==0||ave>90) { se=s+M*i; printf(\"No.%.0lf \ for (j=1;jdouble average(float *a,int i) {

double sum,ave; int j,n=M-1; float *p; sum=0;

for (j=1;j9

}

p=a+M*i+j; sum=sum+(*p); }

ave=sum/n; return ave;

5、实验结果

6、实验体会

指针是C语言中的一个重要概念,也是C语言的一个重要特色。正确而灵活地使用它可以程序更加的简洁、紧凑、高效。指针的概念比较复杂,使用也比较灵活,需要多思考、多比较、多上机,在实践中掌握它。

10

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务