太原理工大学c语言实验报告.docx
- 文档编号:9598046
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:17
- 大小:61.75KB
太原理工大学c语言实验报告.docx
《太原理工大学c语言实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工大学c语言实验报告.docx(17页珍藏版)》请在冰点文库上搜索。
太原理工大学c语言实验报告
本科实验报告
课程名称:
程序设计技术B
实验项目:
实验地点:
明向校区软件学院机房
专业班级:
学号:
学生姓名:
指导教师:
呼克佑
2014年12月日
实验名称
实验一C语言的运行环境和运行过程
实验二C语言运算符和表达式
实验目的和要求
1.学会安装C语言编译系统,如:
TurboC、Win-TC、VisualC++等;
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的程序代码和运行结果)(可分栏或加页)
1-1#include
voidmain()
{floata,b,sum,average;
scanf("%f,%f",&a,&b);
sum=a+b;average=(a+b)/2;
printf("sum=%f,average=%f\n",sum,average);
}运行结果-输入2,4得sum=6,average=3
1-2#include
voidmain()
{floats[10],max,min,sum,score;inti;
for(i=0;i<10;i++)
scanf("%f",&s[i]);
max=min=sum=s[0];
for(i=1;i<10;i++)
{if(maxs[i])min=s[i];sum+=s[i];}
score=(sum-max-min)/8;printf("score=%.4f",score);
}运算结果-输入12345678910得score=5.5
2-2
#include
voidmain(void)
{intvalue1,value2,sum;value1=30;value2=45;sum=value1+value2;
printf("sum=%d\n",sum);}
运算结果-sum=75
2-3
#include
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
returnz;}
voidmain(void)
{inta,b,c;printf("a,b=");scanf("%d,%d",&a,&b);
c=max(a,b);printf("max=%d\n",c);
}运算结果-输入a,b=15,35max=35
4
(1)
#include
voidmain()
{inta,x,y,m;a=7;x=2;y=4;
m=x+a%3*(x+y)%2/4;
printf("m=%d\n",m);
}运算结果-m=2
4
(2)
#include
voidmain()
{floata,b,x,y,m;
a=2;b=3;x=3.5;y=2.5;
m=(float)(a+b)/2+(int)x%(int)y;
printf("m=%f\n",m);
}运算结果-m=3.5
5
(1)
#include
voidmain()
{inta=10;a+=a;
printf("%d\n",a);
}运算结果-20
5
(2)
#include
voidmain()
{inta=10;a-=2;printf("a=%d\n",a);
}运算结果-a=8
5(3)
#include
voidmain()
{inta=10;a*=2+3;
printf("a=%d\n",a);
}运算结果-a=50
5(4)
#include
voidmain()
{inta=10;a/=a+a;
printf("a=%d\n",a);
}运算结果-a=0因为定义a为整型a=0.5时取a=0
5(5)#include
voidmain()
{inta=10,n=5;a%=(n%=2);
printf("a=%d\n",a);
}运算结果-a=0
5(6)#include
voidmain()
{inta=10;a+=a-=a*=a;printf("a=%d\n",a);
}运算结果-a=0
遇到的问题和解决方法
(1)输入有误
在输入过程中如果在格式说明中含有普通字符,输入数据时,这些普通字符不会显示到屏幕上,
而是要求将这些字符也原样输入。
(2)类型搭配不对
存在%则不可用float,double型而用int型。
(3)a+=a-=a*=a结果为0
从右往左运算a的值随运算的进行而变化
心得体会
输入程序过程中要仔细,前后形势要对应。
实验名称
实验三简单程序、分支程序和循环程序设计
实验四数组应用程序设计
实验目的和要求
1.理解C语言程序的基本结构和实现基本结构的语句;
2.熟练应用赋值、输入和输出语句;
3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;
4.熟练掌握if语句、switch语句、while语句、do—while语句和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,80~89为B,70~79分为C,60~69分为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的程序代码和运行结果)(可分栏或加页)
3#include
#definePI3.1415926
voidmain()
{doubler=1.5,h=3.0,c,s,v;c=2*PI*r;s=PI*r*r;v=PI*r*r*h;
printf("c=%f,s=%f,v=%f\n",c,s,v);
}运算结果-c=9.424778,s=7.068583,v=21.205750
4#include
#include
voidmain()
{doublePI=0,s=0,i=1;intn=1;
while(fabs(n/i)>=1e-6)
{s=s+n/i;i=i+2;n=-n;}
PI=4*s;printf("PI=%f\n",PI);
}输出结果-PI=3.141591
6#include
intmain()
{inti,j,n;printf("输入一个大于6的偶数");scanf("%d",&n);for(i=2;i {for(j=2;j*j<=i;j++)if(i%j==0)break;if(j*j<=i)continue; for(j=2;j*j<=n-i;j++)if((n-i)%j==0)break;if(j*j<=n-i)continue;break;} printf("%d=%d+%d\n",n,i,n-i);return1; }输出结果-输入12输出12=5+7 8#include voidmain() {chars[256],prior='';inti,count=0;printf("输入一个英文句子-");gets(s); for(i=0;s[i]! ='\0';i++) {if(prior==''&&(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')count++; prior=s[i];} printf("count=%d\n",count); }输出结果-输入Happynewyear,langtimenosee.输出count=7 遇到的问题和解决方法 1不知如何使用PI-运用#include PI=3.1415926先提前定义。 2如何应用fabs(t)-应用前需用#include(math.h)。 心得体会 数学公式定义要提前定义 实验名称 实验五指针应用程序设计 实验六函数应用程序设计 实验目的和要求 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的程序代码和运行结果)(可分栏或加页) 3.#include voidmain() {char*p,*q,s[256];printf("输入一个英文句子\n");gets(s);q=s; while(*q! ='\0')q++; for(p=s+1;p<=q;p++) if(*(p-1)==''&&(*p>='a'||*p<='z')*p=*p-32; else*p=*p;} *s=*s-32; for(p=s;p printf("\n"); }输出结果-输入happynewyear输出HappyNewYear 4.#include voidmain() {char*p,*q,s[81];inti;q=s;gets(s); while(*q! ='\0')q++; for(p=s,q=q-1;p<=q;p++,q--) {if(*p! =*q) {i=1;break;} elsei=0;} if(i==0)printf("Yes\n"); elseprintf("No\n"); }输出结果-输入123321输出Yes 5. (1)#include intinput(ints[],intn); voidmain() {inti,s[81],n; printf("number=");scanf("%d",&n);printf("input="); for(i=0;i s[i]=input(s,n);printf("\n"); } intinput(ints[],intn) {inti; for(i=0;i returns[i]; }输出结果-输入5再输入12345输出12345 (2)#include intsort(ints[],intn); voidmain() {inti,s[256],n; printf("number=");scanf("%d",&n);printf("input="); for(i=0;i s[i]=sort(s,n);printf("\n"); } intsort(ints[],intn) {inti,j,t; for(i=1;i for(j=0;j if(s[j]>=s[j+1]) {t=s[j];s[j]=s[j+1];s[j+1]=t;} for(i=0;i returns[i]; } (3)#include intsort(ints[],intn); intsearch(ints[],intm,intn); voidmain() {inti,s[256],n,m; printf("number=");scanf("%d",&n);printf("input%dnumbers=",n); for(i=0;i s[i]=sort(s,n);printf("\n");printf("inputonenumber="); scanf("%d",&m);s[i]=search(s,m,n);printf("\n"); } intsort(ints[],intn) { inti,j,t; for(i=1;i for(j=0;j if(s[j]>=s[j+1]) {t=s[j];s[j]=s[j+1];s[j+1]=t;} for(i=0;i returns[i]; XX文库-让每个人平等地提升自我} intsearch(ints[],intm,intn) {inti,t; for(i=n-1;i>=0;i--) XX文库-让每个人平等地提升自我{if(m XX文库-让每个人平等地提升自我for(i=0;i<=n;i++) {if(s[i]>m&&s[i-1] elseif(m elseif(m>s[n])s[n]=m; }for(i=0;i<=n;i++)printf("%4d",s[i]); returns[i]; }输出结果-输入5后输入1119235921输出1119212359再输入25输出111921232559。 遇到的问题和解决方法 1出现奇怪数字 解决方法-仔细检查,尤其是表示范围的地方,注意等于是否可取。 心得体会 1输入过程中要仔细,尤其是范围的取舍。 实验名称 实验七结构体应用程序设计 实验八文件操作程序设计 实验目的和要求 1.理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义; 2.掌握结构体变量和结构体数组的初始化方法; 3.掌握结构体变量和结构体成员的引用方法; 4.理解文件、文件类型、文件类型指针,熟悉文件的操作过程。 5.掌握文件打开、关闭和文件读写等文件操作函数的手机用。 实验内容 1.输入并运行第7章例7-1中的程序。 理解结构体类型、变量和结构体成员。 2.编写一个程序实现如下功能: 定义一个点的结构数据类型,实现下列功能: ⑴输入点的坐标值。 ⑵求两个点中点坐标。 ⑶求两点间距离。 3.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。 4.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。 主要仪器设备 台式或笔记本计算机 实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页) 2 (1)#include voidmain() structspot {intx;inty;}; {structspotsp[4];inti; printf("输入四个坐标点: \n"); for(i=0;i<4;i++)scanf("%d%d",&sp[i].x,&sp[i].y); printf("spot\t\t\tx\ty\n"); for(i=0;i<4;i++)printf("sp[%d]\t\t\t%d\t%d\n",i,sp[i].x,sp[i].y); }输出结果-输入12回车23回车34回车45回车输出 spotxy sp[0]12 sp[1]23 sp[2]34 sp[3]45 (2)#include voidmain() structspot {intx;inty;}; {structspotsp[4];inti,x,y; printf("输入两个坐标点: \n"); for(i=0;i<2;i++)scanf("%d%d",&sp[i].x,&sp[i].y); printf("spot\t\t\tx\ty\n"); for(i=0;i<2;i++)printf("sp[%d]\t\t\t%d\t%d\n",i,sp[i].x,sp[i].y); x=(sp[0].x+sp[1].x)/2;y=(sp[0].y+sp[1].y)/2; printf("mid\t\t\t%d\t%d\n",x,y); }输出结果-输入24回车输入46回车输出 spotxy sp[0]24 sp[1]46 mid35 (3)#include #include voidmain() structspot {intx;inty;}; {structspotsp[4];inti,x,y;floatlon; printf("输入两个坐标点: \n"); for(i=0;i<2;i++)scanf("%d%d",&sp[i].x,&sp[i].y); printf("spot\t\t\tx\ty\n"); for(i=0;i<2;i++) printf("sp[%d]\t\t\t%d\t%d\n",i,sp[i].x,sp[i].y); lon=sqrt((sp[0].x-sp[1].x)*(sp[0].x-sp[1].x)+(sp[0].y-sp[1].y)*(sp[0].y-sp[1].y)); printf("lon=%f",lon); }输出结果-输入24回车输入46回车输出 spotxy sp[0]24 sp[1]46 lon=2.828427 3#include #include structstudent {intno;charname[11];floatmat;floateng;floatcha;floatare;}; voidmain() {structstudenta[5];inti; FILE*fp; for(i=0;i<5;i++) {printf("\n输入第%d位学生学号: "i); scanf("%d",&a[i].no); printf("\n输入第%d位学生的姓名: "i); scanf("%s",&a[i].name); printf("\n输入第%d位学生数学成绩: ",i); scanf("%f",&a[i].mat); printf("\n输入第%d位学生语文成绩: ",i); scanf("%f",&a[i].cha); printf("\n输入第%d位学生英语成绩: ",i); scanf("%f",&a[i].eng); a[i].ave=a[i].mat+a[i].cha+a[i].eng; printf("第%d位学生的平均成绩为: %f",i,a[i].ave); } fp=fopen("stud","r"); for(i=1;i<5;i++) if(fwrite(&a[i],sizeof(structstudent),1,fp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原 理工大学 语言 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)