程序设计技术实验报告.docx

上传人:b****6 文档编号:7319262 上传时间:2023-01-22 格式:DOCX 页数:16 大小:193.11KB
下载 相关 举报
程序设计技术实验报告.docx_第1页
第1页 / 共16页
程序设计技术实验报告.docx_第2页
第2页 / 共16页
程序设计技术实验报告.docx_第3页
第3页 / 共16页
程序设计技术实验报告.docx_第4页
第4页 / 共16页
程序设计技术实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

程序设计技术实验报告.docx

《程序设计技术实验报告.docx》由会员分享,可在线阅读,更多相关《程序设计技术实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

程序设计技术实验报告.docx

程序设计技术实验报告

本科实验报告

 

课程名称:

程序设计技术B

实验项目:

实验地点:

明相校区软件学院机房

专业班级:

软件1416学号:

2014005970

学生姓名:

李凯

指导教师:

曹棣

2014年月日

实验名称

实验一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);

}

实验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(max

if(min>s[i])min=s[i];

sum+=s[i];

}

score=(sum-max-min)/8;

printf("score=%.4f",score);

}

实验2.2

#include

intmax(intx,inty)

{

intz;

if(x>y)

z=x;

else

z=y;

returnz;

}

voidmain(main)

{

inta,b,c;

printf("a,b=");

scanf("%d,%d",&a,&b);

c=max(a,b);

printf("max=%d\n",c);

}

实验4.1

#include

voidmain()

{

intx=2,a=7,y=4;

printf("%d\n",x+a%3*(x+y)%2/4);

}

遇到的问题和解决方法

 

存在漏掉字符的问题,还有输出字符时数字与数字间逗号与空格

的使用。

通过返回去检查,问老师问同学,在书上细心寻找,解决了问题。

 

心得体会

 

在编写程序时一定要细心仔细,不能马虎,一丁点疏漏就会导致程序的错误,多熟悉书上的知识,多编写多练习,熟能生巧,才能减少程序的错误。

 

实验名称

实验三简单程序、分支程序和循环程序设计

实验四数组应用程序设计

实验目的和要求

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

voidmain()

{

inth=3;

floatr=1.5,a=3.14,c,s,v;

printf("c=%f",2*a*r);

printf("s=%f",a*r*r);

printf("v=%f",s*h);

}

 

 

实验5

#include

#include

voidmain()

{

floata,t,b;

ints;

s=1,a=0,b=t=1.0;

do

{

s=-s;

a+=t;

b+=2;

t=s/b;

}

while("t=%d",fabs(t)<1e-6);

a*=4;

printf("a=%4f/n",a);

}

 

实验8

#include

voidmain()

{

chars[256],prior='';

inti,count=0;

printf("输入一个英文句子:

\n");

gets(s);

for(i=0;s[i]!

='\0';i++)

{

if(prior==''&&(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'))

{

count++;

printf("\n");

}

if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')

printf("%c",s[i]);

prior=s[i];

}

printf("\n单词数为:

%d\n",count);

}

 

 

遇到的问题和解决方法

在编写完语句后少了或多了分号,对循环语句应用的不熟练。

通过仔细回头检查和看书解决了问题。

 

心得体会

主要还是细心,并且熟悉书上的内容。

 

实验名称

实验五指针应用程序设计

实验六函数应用程序设计

实验目的和要求

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()

{

chars[255],prrior='',*p;

printf("输入一行英文:

\n");

gets(s);

for(p=s;*p!

='\0';p++)

{

if(prrior==''&&*p>='a'&&*p<='z')

*p-=32;

prrior=*p;

}

puts(s);

}

 

实验4

#include

voidmain()

{

charstr[81],*p,*q;

printf("输入一个人字符串:

\n");

gets(str);

for(q=str;*q!

='\0';q++);

for(p=str,q--;(p

if(p

printf("字符串:

%s不是回文串!

\n",str);

else

printf("字符串:

%s是回文串!

\n",str);

}

实验6

#include

intfac1();

intfac2();

voidmain()

{

inti;

for(i=0;i<3;i++)

printf("%5d",fac1());

printf("\n");

for(i=0;i<3;i++)

printf("%5d",fac2());

printf("\n");

}

intfac1()

{

staticintx=1;

x*=5;

return(x);

}

intfac2()

{

inty=1;

y*=5;

return(y);

}

 

 

遇到的问题和解决方法

 

在对指针变量运用的时候还是不熟练,对有些定义不熟悉。

通过问同学和仔细看书解决了问题。

 

心得体会

 

要熟悉书上的定义,对每一个知识点运用的时候更加熟练。

 

实验名称

实验七结构体应用程序设计

实验八文件操作程序设计

实验目的和要求

1.理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义;

2.掌握结构体变量和结构体数组的初始化方法;

3.掌握结构体变量和结构体成员的引用方法;

4.理解文件、文件类型、文件类型指针,熟悉文件的操作过程。

5.掌握文件打开、关闭和文件读写等文件操作函数的手机用。

实验内容

1.输入并运行第7章例7-1中的程序。

理解结构体类型、变量和结构体成员。

2.编写一个程序实现如下功能:

定义一个点的结构数据类型,实现下列功能:

⑴输入点的坐标值。

⑵求两个点中点坐标。

⑶求两点间距离。

3.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

4.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。

主要仪器设备

台式或笔记本计算机

实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页)

 

#include

structcomplex

{

floatreal;

floatimag;

};

intmain(void)

{

structcomplexx,y,s,p;

scanf("%f,%f",&x.real,&x.imag);

scanf("%f,%f",&y.real,&y.imag);

s.real=x.real+y.real;

s.imag=x.imag+y.imag;

p.real=x.real*y.real-x.imag*y.imag;

p.imag=x.real*y.imag+x.imag*y.real;

printf("俩复数的和为:

%f+%fi\n",s.real,s.imag);

printf("俩复数的积为:

%f+%fi\n",p.real,p.imag);

}

 

 

2

#include

#include

#include

structPOINT

{

doublex,y;

};

intmain()

{

structPOINTpoint1,point2,pointmid;

floatlenl;

printf("输入点1坐标(用逗号隔开横纵坐标):

");

scanf("%lf,%lf",&point1.x,&point1.y);

printf("输入点2坐标(用逗号隔开横纵坐标):

");

scanf("%lf,%lf",&point2.x,&point2.y);

pointmid.x=(point1.x+point2.x)/2;

pointmid.y=(point1.y+point2.y)/2;

lenl=sqrt((point1.x-point2.x)*(point1.x-point2.x)+(point1.y-point2.y)*(point1.y-point2.y));

printf("中点坐标(%.lf,%.lf),两点距离%lf\n",pointmid.x,pointmid.y,lenl);

return0;

}

 

4

#include

#include

intmain()

{

FILE*fa;

chars1[256],s2[81],t;

inti,j;

fa=fopen("e:

\\a.txt","r");

fgets(s1,80,fa);

fclose(fa);

fa=fopen("e:

\\b.txt","r");

fgets(s2,80,fa);

puts(s1);

puts(s2);

strcat(s1,s2);

for(i=0;j

for(j=j+1;j

if(s1[i]>s1[j])

{

t=s1[i];

s1[i]=s1[j];

s1[j]=t;

}

fa=fopen("e:

\\c.txt","w");

fputs(s1,fa);

fclose(fa);

puts(s1);

return0;

}

 

遇到的问题和解决方法

 

结构体理解不够深通过问老师和查阅资料解决。

 

心得体会

 

要多向别人学习,不会就要问。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1