太原理工大学C语言实验报告.doc_第1页
太原理工大学C语言实验报告.doc_第2页
太原理工大学C语言实验报告.doc_第3页
太原理工大学C语言实验报告.doc_第4页
太原理工大学C语言实验报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

本科实验报告课程名称: 程序设计技术B 实验项目: 实验地点: 明相校区软件学院机房208 专业班级: 学号: 学生姓名: 指导教师: 曹棣 2014年 12 月 实验名称 实验一 C语言的运行环境和运行过程实验二 C语言运算符和表达式实验目的和要求1. 学会安装C语言编译系统,如:Turbo C、Win-TC、Visual C+等;2. 学会在上述某种编译系统中程序的编辑、编译、连接和运行;3. 通过运行简单的C程序,初步了解C源程序的特点;4. 理解C语言的数据类型,掌握各种常量的表示方法,变量的定义、初始化和赋值;5. 学会使用C语言的算术运算符以及表达式的求值过程。实验内容1. 下载并安装C,语言编译系统,设置编辑。2. 输入并运行第1章例1-1和例1-2中程序,并记录遇到的问题和解决方法。3. 输入并运行第2章例2-2和例2-3中程序,并记录遇到的问题和解决方法。4. 求下面算术表达式的值(先自己分析,再试着用程序求解,比较得到的结果是否一致)。 设x=2,a=7,y=4,求x+a%3*(x+y)%2/4; 设a=2,b=3,x=3.5,y=2.5,求(float)(a+b)/2+(int)x%(int)y;5. 写出下面表达式运算后a的值,设原来a=10。设a和n已定义成整型变量(先自己分析,再试着用程序求解,比较得到的结果是否一致)。 a+=a a-=2 a*=2+3 a/=a+a a%=(n%=2),n的值等于5; a+=a-=a*=a;主要仪器设备台式或笔记本电脑实验记录(写出实验内容中2,3,4,5的程序代码和运行结果)(可分栏或加页)2.(1)1-1(2)1-23(1)2-2(2)2-34.(1)#includevoid main()int x=2,a=7,y=4,answer;answer = x + a% 3 *(x+y)%2/4;printf(answer=%dn,answer);(2)#includevoid main()float a=2,b=3,answer;int x=3.5,y=2.5; answer=(a+b)/2+x%y;printf(answer=%fn,answer);5.#includeint main()int a=10,n;a+=a; printf(a=%dn,a);a=10;a-=2; printf(a=%dn,a); a=10; a*=2+3; printf(a=%dn,a);a=10;a/=a+a; printf(a=%dn,a);a=10,n=5; a%=(n%=2); printf(a=%dn,a);a=10;a+=a-=a*=a; printf(a=%dn,a);遇到的问题和解决方法以及心得体会1.刚刚安装VC之后由于兼容性的问题导致我输入完程序之后一点击调试就会闪退,所以上午的很大一部分时间我都在想办法让我的程序不再闪退2.2题3题在我按照书编写的时候就常常忘东忘西,不是少写这个,就是少写那个,可能是之前没有编过程序的原因,不过幸好后来稍微熟悉之后大部分的错误都可以避免了3.4题在我自己编写程序的时候,第一小问我为了简便直接把需要求的表达式复制了上去,但是一直在报错,到后来我才明白直接复制时括号的格式是输入中文的格式不能直接复制上去,所以在第二小题中我按照要求自己打上去表达式,终于迎来了今天的第一个不用改动就直接打对的程序!4.5题为了将实验报告 写得更加简洁明了,我将六个问题在同一个程序中解决。实验名称 实验三 简单程序、分支程序和循环程序设计实验四 数组应用程序设计实验目的和要求1. 理解C语言程序的基本结构和实现基本结构的语句;2. 熟练应用赋值、输入和输出语句;3. 理解并掌握关系运算符、逻辑运算符及其表达式的使用;4. 熟练掌握if语句、switch语句、while语句、dowhile语句和for语句的用法;5. 掌握数组的定义、初始化和数组元素的引用方法;6. 掌握与数组有关的算法,如:求最大(小)值,排序等;7. 理解字符数组与字符串的关系,掌握字符串的处理过程和常用字符串处理函数。实验内容1. 输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。2. 输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。3. 已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。4. 输入一百分制成绩,输出成绩等级A、B、C、D、E。90分以上为A,8089为B,7079分为C,6069分为D,60分以下为E。要求程序能处理错误的输入数据。5. 利用公式:/4=1-1/3+1/5-1/7+,求的近似值,直到最后一项的绝对值小于10-6为止。(fabs(t)表示t的绝对值,1e-6=1*10-6)。6. 在C语言允许的整数范围内验证哥德巴赫猜想,即任意大于6 的偶数都可以表示为两个素数之和,如:100=3+97。7. 有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中。8. 输入一个英文句子,统计单词的个数。主要仪器设备台式或笔记本电脑实验记录(写出实验内容中3,5,6,8的程序代码和运行结果)(可分栏或加页)1.(1)3-3 (2)3-6 2.(1)3-8(1)3-8 (2)3-10 3.#includevoid main() float r=1.5,h=3,p=3.14159,c,s,v;c=2*p*r;s=p*r*r; v=s*h;printf(圆周长=%fn 圆面积=%fn 圆柱体积=%fn,c,s,v);4.#includevoid main() int a;printf(输入一个百分制成绩:);scanf(%d,&a);if (a=90) printf(等级为An);else if (a=80) printf(等级为Bn);else if (a=70) printf(等级为Cn);else if (a=60) printf(等级为Dn);else printf(等级为En);5.#include#includevoid main () int s;double i,n,pie;i=1,n=i,pie=0,s=-1;for(i=1;fabs(i)=1e-6;n+=2) s=-s;i=s/n;pie=pie+i; pie=pie*4;printf(的近似值=%.6fn,pie);6. #include int prime(int n) int k; for(k=2;k =n/2;k+) if(n%k=0) return 0; return 1; void main() int i,k; for(i=6;i =100;i+=2) for(k=2;k =i/2;k+) if(prime(k)&prime(i-k) printf(%d = %d + %dn,i,k,i-k); break; 7. #includeint main() int a7=12,23,34,45,56,67; int i,j,x; printf(Please input x be inserted:n); scanf(%d,&x); for(i=0;i6&ai=i;j-) aj+1=aj; aj=x; printf(The new array is:n); for(i=0;i7;i+) printf(%5d,ai); printf(n); return 0;8. #includeint main()char string81; int i,num=0,word=0; char c; gets(string); for(i=0;(c=stringi)!=0;i+) if(c= )word=0; else if(word=0) word=1; num+; printf(there are%d words in this line:n,num); return 0;遇到的问题和解决方法心得体会1.输入时应该注意中英文区分。2.遇到不会的题应该及时查资料并且努力去理解,一味的想要靠自己解决的话其实会非常浪费时间实验名称 实验五 指针应用程序设计实验六 函数应用程序设计实验目的和要求1. 理解指针的概念,掌握指针变量的定义和赋值,掌握使用指针变量访问数据的方法;2. 学会使用指针处理数组中的数据,学会用指针处理字符串;3. 了解指针数组和指向指针的指针;4. 掌握C语言函数的定义、调用和声明方法,掌握函数的参数传递方式;5. 了解变量的作用域和存储类别。实验内容1. 输入并运行第5章例5-1、例5-3中的程序,观察输出结果,理解指针变量的用法。2. 输入并运行第5章例5-5中的程序,掌握使用指针变量访问数组元素的方法。3. 编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。(使用指针)4. 设计一函数,判断一个字符串是否是回文。“回文”是一种顺序读和反序读都一样的字符串,例如:“121”“abcba” “ABCCBA”。在主函数中输入字符串并输出判断结果。5. 编写一个程序,由主函数和如下函数构成。设计函数:input(),输入n个无序的整数存储在一个数组中;设计函数:sort(),用起泡法对数组中的n各数据从大到小排序;设计函数:search(),用折半查找法在已排序的n个数种查找指定的数据,若存在,返回其所处的位置,否则,将其插入适当位置使数据仍有序。在主函数中调用上述函数,验证函数的功能。6. 输入并运行第6章例6-27中的程序,根据输出结果总结局部静态变量的特点。主要仪器设备台式或笔记本电脑实验记录(写出实验内容中3,4,5的程序代码和运行结果)(可分栏或加页)15-1 5-3 2.三个例题的实验结果均为3. #include #include int main() char a1000; unsigned i,flag=1; printf(输入字符串:n); gets(a); for(i=0;i=a&ai=z) if(flag=1) ai-=32; flag=0; if(ai= ) flag=1; puts(a); return 0;4. #include stdio.h#include string.hint f(char *s) int i,j; j=strlen(s); j-; for(i=0;i=j) return 1; return 0;void main() char s80; gets(s); if(f(s)=1) printf(YESn); else printf(NOn);5. #include void input(int x,int n) int i; printf(请输入一个数组: ); for(i=0;in;i+) scanf(%d,&xi); printf(n); void sort(int x,int n) int i,j,t; for(i=1;in;i+) for(j=0;jn-i;j+) if(xjxj+1) t=xj; xj=xj+1; xj+1=t; printf(排序后的结果: ); for(i=0;in;i+) printf(%d,xi); printf(n); int search(int a,int n,int t) int top,bot,mid,i; top=0,bot=n-1; while(topt) bot=mid-1;if(amidai&i=0;i-)ai+1=ai; ai+1=t; for(i=0;in+1;i+) printf(%d,ai); printf(n); return 0; void main() int a11,i,t,m; input(a,10); printf(调用函数input后: ); for(i=0;i10;i+) printf(%d ,ai); printf(n);sort(a,10);printf(请输入要插入的数: );scanf(%d,&t);m=search(a,10,t);printf(%dn,m); 6.遇到的问题和解决方法心得体会声明变量的时候最好在一个int 或者 float后面一次性声明,若分成上下两行分别声明的话程序就有可能不承认后面的,我这次好多时间都是在一行一行的逐句检查我是否有错,有时甚至怀疑是否为程序出错,而事实证明还是我自己的错误,因此我今后一定不能抱有这种态度。实验名称 实验七 结构体应用程序设计实验八 文件操作程序设计实验目的和要求1. 理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义;2. 掌握结构体变量和结构体数组的初始化方法;3. 掌握结构体变量和结构体成员的引用方法;4. 理解文件、文件类型、文件类型指针,熟悉文件的操作过程。5. 掌握文件打开、关闭和文件读写等文件操作函数的手机用。实验内容1. 输入并运行第7章例7-1中的程序。理解结构体类型、变量和结构体成员。2. 编写一个程序实现如下功能:定义一个点的结构数据类型,实现下列功能:输入点的坐标值。求两个点中点坐标。求两点间距离。3. 有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。4. 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。主要仪器设备台式或笔记本计算机实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页)1.2.#include#includestruct point float xnum;float ynum;void main() struct point m,n,j;float k;scanf(%f,%f,&m.xnum,&m.ynum);scanf(%f,%f,&n.xnum,&n.ynum);j.xnum=(m.xnum+n.xnum)/2;j.ynum=(n.ynum+m.ynum)/2;k=sqrt(n.xnum-m.xnum)*(n.xnum-m.xnum)+(n.ynum-m.ynum)*(n.ynum-m.ynum);printf(中点坐标为:%f,%fn,j.xnum,j.ynum);printf(两点之间的距离为:%fn,k);3. #include#includestruct student int no; char name11; float math; float english; float clanguage; float average; int main()struct student stu5; int i; FILE *fp; if(fp=fopen(c:stdu.dat,wb)=NULL) printf(Cant open filen); exit(1); for(i=0;i5;i+) stui.no=i+1; printf(%dn,stui.no=i+1); printf(请输入姓名n); scanf(%s,&); printf(请输入数学成绩n ); scanf(%f,&stui.math); printf(请输入英语

温馨提示

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

评论

0/150

提交评论