实验指导书.docx
《实验指导书.docx》由会员分享,可在线阅读,更多相关《实验指导书.docx(10页珍藏版)》请在冰豆网上搜索。
![实验指导书.docx](https://file1.bdocx.com/fileroot1/2022-11/25/98928bae-9d23-4da6-8e2f-dbaf317df3fa/98928bae-9d23-4da6-8e2f-dbaf317df3fa1.gif)
实验指导书
《程序设计基础》
实验指导书
贾玉锋编写
适用专业:
信息管理与信息系统
电子商务
石家庄铁道学院经济管理分院商务信息系
2007年10月
前言
《程序设计基础》课程是信息管理与信息系统专业、电子商务专业的重要专业基础课程之一。
随着计算机技术的迅速发展和广泛应用,给《程序设计基础》课程的教学提出了新的更高的要求。
由于《程序设计基础》是一门实践性较强的课程,课堂教学应该与实践环节紧密结合。
本课程的目的是培养学生抽象思维的能力,掌握程序设计的方法,调试程序的技巧。
本课程的高级语言采用了C语言。
通过讲授C语言,使同学们掌握高级语言的特点和编程方法。
实验平台采用TurboC集成环境。
本实验指导书按照课程实验大纲进行编写。
希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地发现问题,并提出建议,进一步提高《程序设计基础》课程的质量。
编者
目录
第一部分TurboC集成编译环境………………………………………3
第二部分实验…………………………………………………………14
实验一上机环境初识及简单程序设计………………………………15
实验二选择结构程序设计……………………………………………16
实验三循环结构程序设计……………………………………………17
实验四数组类型程序设计……………………………………………18
实验五函数程序设计…………………………………………………19
实验六指针类型程序设计……………………………………………20
实验七结构体程序设计………………………………………………21
实验八文件类型程序设计……………………………………………22
实验的目的要求
实验内容
实验过程实验结果
总结
附录
实验一上机环境初识及简单程序设计
一.实验的目的要求
1.理解C语言的基本特征和基本知识;
2.掌握赋值语句的使用;
3.掌握基本输入/输出语句的使用;
4.熟悉上机实验环境。
5.要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二.实验内容
1.分析下面程序的执行结果,并上机验证。
(必做)
main()
{
inta=5,b=7;
floatx=67.8564,y=-789.124;
charc=‘a’;
longn=1234567;
unsignedu=65536;
printf(“%d%d\n”,a,b);
printf(“%3d%3d\n”,a,b);
printf(“%f,%f\n”,x,y);
printf(“%-10f,%-10f\n”,x,y);
printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);
printf(“%c,%d,%o,%x\n”,c,c,c,c);
printf(“%ld,%lo,%x\n”,n,n,n);
printf(“%u,%o,%x,%d\n”,u,u,u,u);
printf(“%s,%5.3s\n”,”computer”,”computer”);
}
2.假设公民的个人所得税为工资总额的5%,编程输入一个公民的工资总额,计算其应缴纳的个人所得税和其扣除所得税后的实际工资,并输出。
3.利用格式控制符输出以下图形。
*
***
*****
*******
*********
4.从键盘上输入圆的半径,圆柱的高,求圆的周长,圆球的表面积、圆球的体积、圆柱体积。
用scanf输入,用printf输出。
输出时有文字说明,取小数点后2位数字。
请编程序。
说明:
第1题必做,2,3,4三选二。
实验二选择结构程序设计
一、实验的目的要求
1.理解c语言表示逻辑量的方法(以0代表“假”,以非 0代表“真”);
2.掌握逻辑运算符和逻辑表达式,关系运算符和关系表达式的书写的意义;
3.掌握if语句的使用;
4.掌握if语句的嵌套;
5.掌握switch语句的使用。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.编制程序,根据输入的x的值,计算y的值并输出。
2.从键盘上输入三个数a,b,c,按照从小到大的顺序排序后输出。
(要求,最后数从小到大依次存放在a,b,c中)。
如:
从键盘上输入:
231245,程序处理后应该是a=12b=23c=45。
然后输出a,b,c即可。
3.企业发放的奖金根据利润提成。
利润I低于或等于10万元的,奖金可提10%;利润高于10万元的,低于20万元时,低于10万元的部分仍按10%提成,高于10万元的部分按7%提成;2000001000000时,超过100万元的部分按1%提成。
从键盘上输入当月利润I,求应发奖金总数。
要求:
(1)用if语句编程
(2)用switch语句编程。
选作:
1.有一函数:
x(x<0)
y=3x-2
(10≤x<50)
4x+1(50≤x<100)
5x(x≥100)
输入x的值,求y的值。
2.求ax2+bx+c=0方程的根。
a,b,c由键盘输入,
3. 编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。
设:
90分以上为‘A’,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’(用switch语句实现)。
实验三循环结构程序设计
一、实验的目的要求
1.理解三种循环语句的执行流程;
2.掌握while语句,do-while语句以及for语句的语法及基本应用;
3.掌握多重循环的使用;
4.掌握循环结构的编程方法;
5.进一步提高编程能力。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.输入10个数,计算它们的和,积、平方和以及和的平方。
2.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。
(选子《孙子算经》)
3.输入两个正整数m和n,求其最大公约数和最小公倍数;
4.求100以内的所有素数。
5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如:
6的因子分别是:
1,2,3,而6=1+2+3,所以6是完数。
编程输出1000之内的所有完数。
6.找2-1000中的亲密数对(如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲密数对)。
选作题:
1.验证歌德巴赫猜想(任何充分大的偶数都可由两个素数之和表示)。
将4-100中的所有偶数分别用两个素数之和表示。
输出为:
4=2+2
6=3+3
……
100=97+3
2.猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半多一个。
第二天早上又吃了剩下的一半多一个。
以后每天早上都吃了前一天剩下的一半多一个。
到第十天早上想再吃时,发现就剩下1个桃子了。
求第一天共摘了多少?
(提示:
利用递推的方法。
由第10天开始时的桃子数可以推出第九天开始时的桃子数,以此类推即可)
3.求π的近似值()
4. 编程计算cos(x)的近似值,计算公式为:
cos(x)=1-x2/2!
+x4/4!
-x6/6!
+x8/8!
-…+(-1)nx2n/(2n)!
+…
实验四数组类型程序设计
一、实验的目的要求
1.理解数组的含义和存储方式;
2.掌握数组的定义方法;
3.掌握数组的应用;
4.掌握字符数组的定义方法和应用;
5.进一步提高编程能力。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.输入一串字符,以“?
”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。
2.从键盘上输入10个数,求最大值、最小值和平均值。
3.从键盘上输入10个数,按从小到大的顺序排序输出。
4.编写程序,将字符数组s2中的全部字符拷贝到字符数组s1中。
不用strcpy函数。
拷贝时,‘\0’也要拷贝进去,‘\0’后面的字符不拷贝。
5.从键盘上输入15个数,编程实现:
首先对它按从小到大的顺序排序,然后,从键盘上再输入一个数,用折半查找法找出该数是数组中的第几个元素的值。
若该数不在数组中,则打印出“无此数”。
6.计算两个矩阵的和、积。
选作题:
1.在一个已排好序的数列中(由小到大)再插入一个数,要求仍然有序。
编程并上机运行。
提示:
编程时应考虑到插入的数的各种可能性(比原有所有的数大;比原有所有的数小;在最大数和最小数之间)。
2.编写一程序,一班级有n名学生要求按他们姓名的顺序排列(按汉语拼音的字母顺序从小到大),并按序输出。
3.从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcddcba”)。
4.编程输出一个10阶的杨辉三角形。
6.输入两个二维矩阵,求两个矩阵的和、差和积。
7.(选作)约瑟夫问题。
M个人围成一圈,从第一个人开始报数,数到n的人出圈。
再由下一个人开始报数,数到n的人出圈,……输出依次出圈人的编号。
M的值预先设定,n从键盘上输入。
实验五函数程序设计
一、实验的目的要求
1.掌握定义函数的方法;
2.掌握函数实参和形参的对应关系以及“值传递”的方法;
3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量,动态、静态变量的概念和使用方法;
5.学习对多文件程序的编译和运行。
6.进一步提高编程能力。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.Definineafunction:
digit(n,k),itwillreturnthekthdigitofnfromright.
forexample:
digit(15327,4)=5
digit(289,5)=0
2.用递归方法求n阶勒让德多项式的值,递归公式为:
1n=0
pn(x)=xn=1
((2n-1)*x-pn-1(x)-(n-1)*pn-2(x))/nn>=1
3.写几个函数:
(1)输入10个职工的姓名和职工号;
(2)按职工号从小到大排序,姓名也相应改变顺序;(3)要求输入一个职工号,用折半法找出该职工的姓名,从主函数输入要查找的职工的职工号,输出该职工的姓名。
选作题:
1.用牛顿迭代法求方程2x3-4x2+3x-6=0在区间(1,5)之间的根。
2.写一函数,输入一行字符,将此字符串中最长和单词输出
实验六指针类型程序设计
一、实验的目的要求
1.进一步理解指针的概念;
2.掌握指针变量的定义和使用方法;
3.能正确使用一维数组的指针和指向一维数组的指针变量;
4.掌握用指针作为函数参数的方法;
5.了解二维数组与指针的关系。
6.学习对多文件程序的编译和运行。
7.进一步提高编程能力。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.输入三个整数,按照从小到大的顺序输出。
(用函数和指针实现)
2.写几个函数:
(1)输入10个职工号;
(2)按职工号从小到大排序;(3)要求输入一个职工号,用折半法找出来。
(用函数和指针实现)
3.写一个函数,将一个3X3的整形矩阵转置。
选作题:
1.编写一个函数sort,使20个整数由小到大的顺序排列。
在主函数中输出排好序的数。
本程序编写函数部分要求要用指针来解决。
2.在主函数中输入10个等长的字符串。
用另一个函授数对它们排序,然后输出这10个已排好序的字符串。
实验七结构体程序设计
一、实验的目的要求
1.进一步理解结构体的概念;
2.掌握结构体的定义和结构体变量的定义和使用方法;
3.能正确使用结构体数组;
4.掌握链表的基本概念,能够编写简单的应用程序
5.进一步提高编程能力。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.一个班有10名同学,每名同学都有如下信息:
学号,姓名,三门课程的成绩。
请编写程序输入全班同学的信息,并且按第一门课程的成绩从小到大排序后输出。
2.在题1的基础上,计算每名同学三门课程的平均成绩,并按照平均成绩排序后输出。
3.在题1的基础上,每个同学添加出生日期信息,编写程序输入全班同学的信息,并且按照年龄(出生日期)排序后输出。
要求:
判断二人的大小写成函数。
并分别用选择排序和冒泡排序。
4.在题2的基础上,每名同学增加等级(grade)信息,若平均成绩高于全班平均成绩10分以上,则为”A”,高于平均成绩不超过10分,则为”B”,低于平均成绩则为”C”,计算每个同学的等级,并输出。
5.按照输入的顺序建立一个链表,每个节点包括:
学号、姓名、性别、年龄。
直到输入的学号为-1结束。
然后输出此链表。
然后从键盘上输入一个学生的学号,把此学生的节点删除后再输出链表。
(要求建立链表、删除用函数)
6.修改5题的建立链表的函数,要求按照输入的逆序建立链表。
其他不变。
7.有两个链表a,b。
每个链表中节点包括学号、成绩。
要求把两个链表合并。
(自己编程建立链表)。
8.在题7的基础上,要求合并两个链表,但是要求按学号升序。
(可以借助第三个链表)。
说明:
1,2必做;3-8题选作4道。
实验八文件类型程序设计
一、实验的目的要求
1.进一步理解文件的概念;
2.掌握文件的定义;
3.掌握文本文件和二进制文件的基本访问方法;
4.进一步提高编程能力。
要求:
上机前先编制程序并画出程序框图;独立完成实验;独立完成实验报告。
二、实验内容
1.从键盘上输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件中保存。
输入的字符以“!
”结束。
2.有5个学生,每个学生有3门课的成绩,从键盘上输入学生数据(包括学号、姓名、三门课的成绩)。
计算出每个同学的平均成绩,将学生信息存放在磁盘文件中。
3.将2题文件中的学生信息,按照平均成绩排序,把排序后的数据存放到另一个新文件中。