程序设计语言实验指导书.docx

上传人:b****4 文档编号:4069967 上传时间:2023-05-06 格式:DOCX 页数:20 大小:54.31KB
下载 相关 举报
程序设计语言实验指导书.docx_第1页
第1页 / 共20页
程序设计语言实验指导书.docx_第2页
第2页 / 共20页
程序设计语言实验指导书.docx_第3页
第3页 / 共20页
程序设计语言实验指导书.docx_第4页
第4页 / 共20页
程序设计语言实验指导书.docx_第5页
第5页 / 共20页
程序设计语言实验指导书.docx_第6页
第6页 / 共20页
程序设计语言实验指导书.docx_第7页
第7页 / 共20页
程序设计语言实验指导书.docx_第8页
第8页 / 共20页
程序设计语言实验指导书.docx_第9页
第9页 / 共20页
程序设计语言实验指导书.docx_第10页
第10页 / 共20页
程序设计语言实验指导书.docx_第11页
第11页 / 共20页
程序设计语言实验指导书.docx_第12页
第12页 / 共20页
程序设计语言实验指导书.docx_第13页
第13页 / 共20页
程序设计语言实验指导书.docx_第14页
第14页 / 共20页
程序设计语言实验指导书.docx_第15页
第15页 / 共20页
程序设计语言实验指导书.docx_第16页
第16页 / 共20页
程序设计语言实验指导书.docx_第17页
第17页 / 共20页
程序设计语言实验指导书.docx_第18页
第18页 / 共20页
程序设计语言实验指导书.docx_第19页
第19页 / 共20页
程序设计语言实验指导书.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

程序设计语言实验指导书.docx

《程序设计语言实验指导书.docx》由会员分享,可在线阅读,更多相关《程序设计语言实验指导书.docx(20页珍藏版)》请在冰点文库上搜索。

程序设计语言实验指导书.docx

程序设计语言实验指导书

 

《程序设计语言C》实验指导书

 

适用专业:

计算机科学与技术

软件工程

 

上海应用技术学院

2009-2-20

目录

实验一顺序结构程序设计1

实验二分支结构程序设计2

实验三循环结构程序设计一3

实验四

(1)循环结构程序设计二4

实验四

(2)循环结构程序设计三5

实验五数组6

实验六数组和字符串7

实验七函数8

实验八函数9

实验九指针10

实验十结构体11

实验十一文件12

实验十二综合13

实验一顺序结构程序设计

实验目的:

1.掌握C语言程序结构。

2.掌握变量的定义和使用。

3.掌握输入输出函数的使用。

4.掌握赋值语句的使用。

内容:

1.从键盘输入两个数,计算两个数的和,然后输出。

A=123

B=456

SUM=A+B=123+456=579

注意:

带下划线的内容表示是从键盘输入的,实际上机时并不显示下划线,其余的内容是程序输出的。

2.从键盘输入一个华氏温度,请转换成摄氏温度后输出。

请输入一个华氏温度:

12.34

和华氏温度12.34度相对应的摄氏温度为-10.92度

 

3.电路图如下所示,从键盘输入5个电阻的电阻值,计算并输出总的电阻值。

请输入r1、r2、r3、r4和r5(使用空格分隔):

1.12.23.34.45.5

总电阻R=0.89欧姆

实验二分支结构程序设计

实验目的:

1.掌握逻辑表达式的使用方法。

2.掌握if和switch语句的使用方法。

3.掌握一些简单的算法。

内容:

1.有下列函数,写一段程序,输入x的值,输出y的值

x(x<1)

y=2x-1(1<=x<10)

3x-11(x>=10)

X=40

Y=109

X=10

Y=19

X=5

Y=9

X=1

Y=1

X=-3

Y=-3

 

2.输入一个不超过6位的正整数,输出该数的最高位和最低位,如果该数是一位数,则输出该数。

然后再输出该数是几位数。

程序需要对输入的数进行合法性检查,对小于0和大于6位的数要有提示。

X=1234567

Error

N>6

X=-2

Error

X<0

X=2

2

N=1

X=123

1,3

N=3

3.输入一个0到100的百分制成绩,转换成五级制A、B、C、D和E。

程序中首先需要对输入的数进行合法性检查,对小于0和大于100的数要有提示,然后转换部分使用switch语句实现。

分数=120

分数大于100,非法!

分数=-5

分数小于0,非法!

分数=85

等级=B

实验三循环结构程序设计一

实验目的:

1.掌握循环结构的使用方法。

2.掌握while和for语句的使用方法。

3.掌握程序单步调试的方法。

4.掌握一些简单的算法。

内容:

1.公式的计算

x=N!

2.输入最多10个整数,找出最大值、最小值,并计算平均值。

N=5

n1=1

n2=3

n3=5

n4=7

n5=9

Max=9

Min=1

Avg=5

3.输入一个不超过6位的正整数,分别输出该数的每一位,并用逗号分隔,如果该数是一位数,则输出该数。

然后再输出该数是几位数。

程序需要对输入的数进行合法性检查,对小于0和大于6位的数要有提示。

X=1234567

Error

N>6

X=-2

Error

X<0

X=2

2

N=1

X=123

1,2,3

N=3

实验四

(1)循环结构程序设计二

实验目的:

1.掌握单重循环和多重循环结构的使用方法。

2.掌握程序单步调试的方法。

3.掌握一些简单的算法。

内容:

1.输入N,计算公式

的值。

N=5

sum=(1+2)+(2+3)

   +(3+4)+(4+5)

   +(5+6)

   =35

2.输入一个正整数n(1≤n≤200),输出所有的整数对,其相乘的积等于n。

N=300

Error

N=20

1*20=20

2*10=20

4*5=20

N=0

Error

 

3.编程打印数字金字塔。

N=5

......1

.....121

....12321

...1234321

..123454321

N=3

....1

...121

..12321

实验四

(2)循环结构程序设计三

实验目的:

1.掌握单重循环和多重循环结构的使用方法。

2.掌握程序单步调试的方法。

3.掌握一些简单的算法。

内容:

1.输入N,计算公式

的值,其中N>0。

N=4

sum=1

   +2+3

   +3+4+5

   +4+5+6+7

   =40

2.每个大于1的数的立方都可以表示成一连续奇数之和,试证实2到10的数都满足这样的规律。

2(3)=83+5=8

3(3)=277+9+11=27

4(3)=641+3+5+7+9+11+13+15=64

5(3)=12521+23+25+27+29=125

 

3.用牛顿迭代法求下面方程在1.5附近的根:

2x3-4x2+3x-6=0

xn=1.5

x=nnn.nnn

y=f(nnn.nnn)=nnn

实验五数组

实验目的:

1.掌握一维数组和二维数组的定义、赋值和输入输出的使用方法。

2.掌握与数组有关的算法。

内容:

1.输入n及n个整数(n<20),然后按奇数升序、偶数降序排列输出。

N=6

n1=1

n2=90

n3=85

n4=2

n5=10

n6=18

odd=185

Even=9018102

 

2.输入一个日期,计算该天是该年的第几天。

Year=2007

Month=1

Day=15

Thedayis15thdayofYear2007.

 

3.依次输入某个班级n个学生的数学、物理和化学课程的成绩,计算平均成绩后输出成绩列表,同时还要输出每个学生的平均成绩是否高于班级的平均成绩。

N=4

S1=608090

S2=707887

S3=956689

S4=678990

NoMATPHYCHMAVGY/N

160809077

270788778

395668983Y

467899082Y

实验六数组和字符串

实验目的:

1.掌握一维数组、二维数组和字符数组的定义、赋值和输入输出的使用方法。

2.掌握与数组有关的算法。

内容:

1.输入S1和S2两个字符串,将长的字符串拼接在短的字符串后面并输出,如果长度相等,S1接在S2后面。

假设两个字符串的长度相加不超过80。

(不能使用strcat等函数)

S1=abcdef

S2=1234

LengthofS1=6

LengthofS2=4

S2+S1=1234abcdef

S1=abc

S2=123456

LengthofS1=3

LengthofS2=6

S1+S2=abc123456

2.输入两个日期,计算两日期的天数差,并显示两日期的顺序。

假设两个日期在同一年份。

(思考:

任意给两个日期,求天数差。

)(需要考虑两个日期不再同一年份,但不考虑1700、1800等不是闰年的年份)

Date1:

2007215

Date2:

2007115

DaysbetweenDate1andDate2is31.

AndDate1>Date2.

 

3.依次输入某个班级n个学生的姓名、数学、物理和化学课程的成绩,在输入姓名时直接回车表示输入结束,计算平均成绩后按姓名的字典顺序输出成绩列表,同时还要输出每个学生的平均成绩是否高于班级的平均成绩。

(注意:

输出时,姓名的首字母大写。

S1Name=wang

Score=608090

S2=ZHANG

Score=707887

S3=Li

Score=956689

S4=yANG

Score=678990

S5=

NoNameMATPHYCHMAVGY/N

3   Li    95668983Y

1   Wang  60809077

4   Yang  67899082Y

2   Zhang 70788778

实验七函数

实验目的:

1.掌握函数定义的方法。

2.掌握函数调用、实参和形参的传递方法。

3.掌握变量作用域和变量类型的使用方法。

内容:

1.从键盘输入数行数据,每行三个正整数n1、n2和n3,三个0表示输入结束。

每输入完一行,输出n1和n2之间(包括n1和n2)能被n3整除的数的个数。

要求用一个函数实现统计整除数个数的功能,其首部为:

intaliquot(intn1,intn2,intn3)

123

0

2102

5

000

2.求组合数。

计算

其中计算C(m,n)的函数首部为:

intcmn(intm,intn)

计算阶乘的函数首部为:

intfac(intn)

并用cmn函数打印杨辉三角形。

 

3.从键盘输入最多50个整数,0表示结束。

将该批数据存入一个数组中,然后调用ReverseAndCount函数将数据在数组中的存放次序颠倒并统计出大于平均数的个数,输出结果。

ReverseAndCount函数的功能为颠倒数据存放的次序和统计大于平均数的个数,其首部为:

intReverseAndCount(intn,ints[])

如果为了程序的结构,你还可以添加其他的子程序。

如,可以编写计算数组中数据的平均值的函数,还可将ReverseAndCount函数分成两个子程序实现等。

123450

5numbersinputted.

Reverse:

54321

Count:

2

实验八函数

实验目的:

1.掌握函数调用、实参和形参的传递方法。

2.掌握变量作用域和变量类型的使用方法。

3.掌握递归子程序的编写和使用方法。

内容:

1.从键盘输入数行数据,每行最多20个正整数,每行最后用0表示行结束。

一个以0开始的行表示输入结束。

每输入完一行,输出该行数据的个数、平均值和有几个数据大于该行的平均值。

用一个函数实现数据输入的功能,其首部为:

intinput(ints[])

input的参数为输入的数据,函数返回值大于0表示该行输入的数据个数,0表示输入结束。

用一个函数实现求平均值的功能,首部为:

intAverage(intn,ints[])

Average的参数是n个数的数组,函数返回值为平均值。

用一个函数实现统计大于平均值的数据个数,首部为:

intCount(intavg,intn,ints[])

123450

532

111213140

4122

0

2.组合问题,由组合的基本性质可知:

(1)C(m,n)=C(n-m,n)

(2)C(m,n+1)=C(m,n)+C(m-1,n)

公式

(2)是一个递归公式,一直到满足C(1,n)=n为止。

当n<2*m时,可先用公式

(1)进行简化。

使用递归求C(m,n)。

 

3.用递归实现将输入小于32768的正整数按逆序输出。

实验九指针

实验目的:

1.掌握指针的概念、定义指针和使用指针的方法。

2.掌握和理解指针和数组的关系和使用方法。

3.掌握指针和字符串的关系和使用方法。

注意:

本次实验需要使用指针进行编程。

内容:

1.从键盘输入若干数据整数(零表示结束),统计出数据个数,以及最大值、最小值和平均值。

用一个函数实现数据输入的功能,其首部为:

intinput(ints[])

input的参数为输入的数据,函数返回值大于0表示该行输入的数据个数,0表示输入结束。

用一个函数实现求最大值、最小值和平均值的功能,首部为:

voidstatistics(intn,ints[],int*max,int*min,float*avg)

123450

Max=5

Min=1

Avg=3.000

2.编写函数,通过指针一个将字符串反向。

函数首部为:

voidReverseString(char*s)

abcABC123

321CBAcba

 

3.编写一个Insert(插入)函数,将一个字符串插入另一个字符串中指定位置。

函数首部为:

intInsert(char*dest,char*src,intpos)

函数的返回值为插入后的字符串长度。

dest:

abcdefg

src:

12345

pos:

3

output:

abc{12345}defg:

14

实验十结构体

实验目的:

1.掌握结构体类型变量的定义和使用。

2.掌握结构体类型数组的概念和使用方法。

3.掌握链表的概念和初步的使用方法。

内容:

1.

structCIRCLE{

floatr;

structPOINTcenter;

};

structPOINT{

floatx;

floaty;

};

现有如下定义一个点和圆的结构体:

用一个函数来实现判断某个圆是否包含坐标原点,其首部为:

intHavingOrigin(structCIRCLEc)

X:

10.2

Y:

3.3

R:

5.0

NotHavingOrigin.

Avg=3.000

返回1表示包含,0表示不包含。

主程序输入圆的参数,然后调用函数判断,并输出判断结果。

X:

1.2

Y:

3.3

R:

5.0

HavingOrigin.

Avg=3.000

每个学生有学号、姓名、语文、数学、外语和平均成绩。

建立一个最多保存五个学生成绩的结构体类型数组。

Input函数输入学生的学号、姓名和三门课的成绩,并计算平均成绩,函数首部为:

Input(intn,structSTUDENTs[])

主程序调用Input函数输入学生成绩,然后输出学生的信息。

structTstudent{

charNo[5];

charName[20];

intChinese;

intMath;

intFL;

intAverage;

};

N=3

1Zhang607080

2Wang708090

3Li305080

1Zhang60708070

2Wang  70809080

3Li    30508053

 

2.(本题使用链表)从键盘输入若干个大于0的整数,0表示输入结束。

建立一个链表,链表节点的值为输入的数,节点次序和输入次序相同。

然后复制该链表,但次序相反,并输出。

input:

246813570

output:

75318642

实验十一文件

实验目的:

1.掌握文件的定义和使用。

2.掌握文件的打开、关闭和读写等使用方法。

内容:

1.先利用Notepad在D:

\MyDoc目录中建立一个名为MyNew.txt的文本文件,在其中任意输入数行内容,然后编写一个C语言程序,读出MyNew.txt文件的内容并在屏幕上显示。

2.编写C语言程序,在D:

\MyDoc目录中建立一个名为MyText.txt的文本文件,在其中写入两行内容,你的学号和你的姓名。

在程序正确运行后,利用Notepad打开该文件查看结果。

3.编写文件复制程序。

并用Notepad查看复制结果。

如果文件打开错误等要进行提示。

SourceFile:

d:

\mydoc\mynew.txt

DestFile:

d:

\mydoc\myagain.txt

Filed:

\mydoc\mynew.txt=>d:

\mydoc\myagain.txtcopied.

实验十二综合

实验目的

1.提高综合应用流程控制语句的能力;

2.提高对复杂流程结构的程序的编写能力和调试能力;

3.掌握利用数组的组织存储数据以及一些实用的算法。

4.掌握对文件的操作。

实验内容

编写和调试一个具有能对用一维数组建立的顺序表进行各种操作的应用程序。

实验步骤

1.写程序显示如下菜单

1.插入(插入一个数据)

2.删除(删除一个数据)

3.排序(排序)

4.输出(输出表中所数据)

0.退出(退出程序)

2.用输入函数输入菜单选择的数字(0-4)对其他输入要提示错误信息流程控制结构如图1所示。

3.顺序表的数据类型自选,可以先使用基本类型,在此基础上修改使用结构体类型。

4.每个功能模块要求用函数实现。

5.在菜单中增加“写入文件”和“读取文件”选项,能将顺序表中的数据写入文件和从文件读取数据。

6.(选做)使用链表来实现。

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2