《程序设计基础》实验指导书.docx
- 文档编号:17296815
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:25
- 大小:30.63KB
《程序设计基础》实验指导书.docx
《《程序设计基础》实验指导书.docx》由会员分享,可在线阅读,更多相关《《程序设计基础》实验指导书.docx(25页珍藏版)》请在冰点文库上搜索。
《程序设计基础》实验指导书
《程序设计基础》精品课程系列教材
《程序设计基础实验》
实验指导书
《程序设计基础》教学组编
2006年1月
前言
程序设计基础实验课程是高等院校本科计算机及其相关专业的一门实践性很强的基础实践课。
通过实验操作使学生巩固、理解、加深程序设计基础的基本理论原理、基本知识和基本技能,培养学生分析处理实际问题的能力和创新意识,增强实践能力,提高动手操作能力,提高学生的综合应用素质。
本实验课的目的培养学生理论联系实际,通过实验课程学习程序设计的思想和方法,理解计算机程序的执行过程,掌握用计算机解决问题的方法和基本的程序设计技术。
一、实验训练的培养目标
通过由浅入深、循序渐进、精讲多练,培养学生对学习计算机的兴趣,使学生全面了解C语言的特点,熟练掌握C语言程序设计的基本方法和编程技巧。
通过本课程的学习,使学生不但掌握高级编程语言的知识、编程技术和基本算法,更重要的是掌握程序设计的思想和方法,具备利用计算机求解实际问题的基本能力,能灵活应用高级语言进行程序设计。
通过学习,学生应达到下列要求:
1.掌握C语言中的数据类型、运算符、输入、输出、条件执行、循环、函数等重要组成部分的概念及基本编程方法;
2.熟悉C语言编程环境,熟练地利用集成开发环境编写较为复杂的程序;
3.掌握基本的程序设计过程和技巧,基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
二、实验课的要求
1.要求学生掌握在TORBOC集成开发环境或WIN-TC下编写标准C程序的方法,掌握所用开发环境的菜单功能;
2.要求学生学会用条件语句和循环语句编写程序,掌握C语言的数组、指针、结构体等复杂数据类型的使用方法,函数的定义与调用方法及文件的使用方法,文件的读写操作,并掌握一些常用算法;
3.每次实验前,写好实验预习报告,完成实验后,认真分析实验数据,完成实验报告;
4.每个实验规定的学时内上交所编写程序,并当堂由实验指导教师给出成绩,最后记入总成绩;
5.实验课结束后或实验课当堂,把实验源程序上传到程序设计基础服务器上,以备查。
本教材中的实验项目与我校所使用的精品课程教材相配套,本着“宽”、“新”、“用”、“精”的特点,因材施教,贯彻少而精的原则,把实验教学的注意力引导到创新应用上来,逐步培养学生独立设计实验的能力。
编者
2006.1
目录
实验一C语言上机环境介绍1
实验二数据类型、运算符和表达式4
实验三程序流程控制与输入输出7
实验四函数及数组的其应用10
实验五指针的应用12
实验六结构体与文件的应用13
实验一C语言上机环境介绍
【实验目的】使学生了解TurboC(或WIN-TC)的特点;熟悉TurboC(或WIN-TC)的开发环境,学会开发环境的使用;了解C或C++程序设计的一般过程;学习用TurboC(或WIN-TC)编写标准的C或C++程序;掌握单文件程序及多文件程序的编写与运行过程,学会建立工程,编译运行程序,学会查找和排除错误的方法。
【实验要求】
1.了解TurboC(或WIN-TC)的特点。
2.熟悉TurboC(或WIN-TC)的开发环境,学会开发环境的使用,了解C或C++程序设计的一般过程。
3.学习用TurboC(或WIN-TC)编写标准的C或C++程序。
4.掌握单文件程序及多文件程序的编写与运行过程,学会建立工程,编译运行程序,学会查找和排除错误的方法。
【重点与难点】重点是TurboC(或WIN-TC)的开发环境,学会开发环境的使用;难点是查找和排除错误。
【实验类型】验证性
【实验时数】4学时
【实验设备】计算机
【参考资料】1.http:
//210.45.137.157:
99/online_book/sy_book/sy_book_sy1.htm
2.C程序设计题解与上机指导(第三版)
【实验原理与内容】
使用TurboC(或WIN-TC)建立以下C程序,编译、连接并运行,然后记录运行结果。
建议在硬盘(如E盘)上建立一个文件夹,将C程序存储在其中。
实验内容为:
任选
(1)1、2、3或4;
(2)5,6。
1、单文件编辑,设文件名为sy1-1.c。
#include
voidmain()
{
printf("HelloWorld!
\n");
printf("Thisisacprogram.\n");
}
运行结果:
2、单文件编辑,在文件中有两个函数。
设文件名为sy1-2.c。
#include
voidmain()
{intadd(int,int);
inta,b,c;
a=5;b=7;
c=add(a,b);
printf("a+b=%d\n",c);
}
intadd(intx,inty)
{
returnx+y;
}
运行结果:
注意:
以下3、4供学生选做。
3、多文件编辑,使用包含文件。
设文件名为sy1-3.h和sy1-3.c。
首先创建一个头文件,“文件”—“新建”—选择“文件”标签—C++HeadFile,在“文件”框内输入文件名:
sy1-3.h,其内容如下:
#include
voidprnstr(char*s)
{
prinf("我是个%s\n",s);
}
编译此文件。
然后建立sy1-3.c文件。
内容如下:
#include"sy1-3.h"
{
printf("欢迎您使用C语言!
\n");
prnstr("大学生");
printf("我喜欢C语言!
\n");
}
编译此文件、连接、运行,并记录结果。
运行结果:
4、多文件编辑,设文件名为sy1-4.c和sy1-41.c。
sy1-4.c文件的内容:
include
voidmain()
{
intadd(int,int);
inta,b,c;
a=5;
b=7;
c=add(a,b);
printf("a+b=%d",c);
}
sy1-41.c文件的内容
intadd(intx,inty)
{
returnx+y;
}
5.参照本章例题,编写一个C程序,输出以下信息:
************************************************
Verygood!
************************************************
6.编写一个C程序,输入a、b、c3个值,输出其中最大值。
请编译上述文件,并连接、运行(具体步骤请参考《C程序设计题解与上机指导(第三版)》谭浩强编著)。
运行结果:
注意:
在输入以上程序时,可故意漏打或打错几个字符,然后进行编译,仔细分析编译信息窗口,识别所显示的错误,逐个修改,直到不出现错误。
5、运行自己编写的程序(此程序源文件需要在实验结束后上传到网上,文件名为sy1-5.c)
输入a、b、c三个整数,输出其中最大者。
仿照教材上的例题编写程序或者自己编写新的程序进行练习。
五、实验指导:
演示操作过程
注意:
在WIN-TC运行环境下,如果想看到屏幕输出结果,请在程序(main()函数)最后加上一个getch();语句,用以暂停观看屏幕,以看到输出结果。
main()函数需要包含两个头文件:
#include"stdio.h"#include"conio.h"
即:
当双击桌面Win-TC后,会出现以下信息:
#include"stdio.h"
#include"conio.h"
main()
{printf("Hello,world\n");
getch();
}
在自己编写程序时,需要作以下修改:
#include"stdio.h"
#include"conio.h"/*以上2行请不要删除*/
main()
{printf("Hello,world\n");/*需要删除这行,写上自己程序代码*/
getch();/*这行也不不要删除,并将其作为main()函数的最后一个语句*/
}
输入程序源代码后,需要点击“文件”->“文件另存为...”,选择存储位置(如E:
),按要求命名,保存。
调试成功后,上传源文件。
【注意事项】
学生上机时要严格遵守实验规章制度,若实验设备出现故障,应及时向实验指导教师反映,不要私自拆卸实验设备。
实验二数据类型、运算符和表达式
【实验目的】使学生掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法;掌握C语言基本数据类型及存储特性;掌握C语言运算符及运算符优先级,不同类型数据之间赋值的规律;学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用;进一步熟悉C程序的编辑、编译、连接和运行的过程。
【实验要求】
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2.掌握C语言基本数据类型及存储特性
3.掌握C语言运算符及运算符优先级,不同类型数据之间赋值的规律。
4.学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
【重点与难点】重点是C语言的三种基本数据类型(整型、浮点型、字符型)的特点以及它们之间的相互联系,算术表达式、赋值表达式和逗号表达式;难点是C语言的三种基本数据类型(整型、浮点型、字符型)的定义和用法。
【实验类型】验证性
【实验时数】4学时
【实验设备】计算机
【参考资料】1.http:
//210.45.137.157:
99/online_book/sy_book/sy_book_sy2.htm
2.C程序设计题解与上机指导(第三版)
【实验原理与内容】
实验内容为:
任选
(1)1、2、3、4、5;
(2)1,4,6
1、输入并运行下面的程序
#include
voidmain()
{
charc1,c2;
c1='a';
c2='b';
printf("%c%c\n",c1,c2);
}
(1)运行此程序。
(2)再此基础上增加一个语句:
printf("%d%d\n",c1,c2);
再运行,并分析结果。
(3)再将第4行改为:
intc1,c2;
再使之运行,并观察结果。
(4)再将第5、6行改为:
c1=a;/*不用单撇号*/
c2=b;
再使之运行,分析其运行结果。
(5)再将第5、6行改为:
c1="a";/*用双撇号*/
c2="b";
再使之运行,分析其运行结果。
(6)再将第5、6行改为:
c1=300;/*用大于255的整数*/
c2=400;
再使之运行,分析其运行结果。
2、输入并运行以下程序
#include
voidmain()
{
charc1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c%c",c4,c5);
}
在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
3、输入并运行下面的程序
#include
voidmain()
{inta,b;
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf("%d,%d\n",a,b);
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,b);
c=a=e;
d=b=f;
printf("%d,%d\n",a,b);
printf("%u,%u\n",c,d);}
请对照程序和运行结果分析:
(1)将一个负整数赋给一个无符号的变量,会得到什么结果。
(2)将一个大于32767的长整数赋给整型变量,会得到什么结果。
(3)将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。
同学们可以改变程序中各变量的值,以便比较。
例如:
a=65580,b=-40000,e=65535,f=65580。
4、输入以下程序
#include
voidmain()
{inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);}
(1)运行程序,注意i、j、m、n各变量的值,分别作以下改动并运行。
(2)将第6、7行改为:
m=i++;
n=++j;
再运行。
(3)将程序改为:
#include
voidmain()
{inti,j;
i=8;
j=10;
printf("%d,%d",i++,j++);
}
(4)在(3)的基础上,将printf语句改为:
printf("%d,%d",++i,++j);
(5)再将printf语句改为:
printf("%d,%d,%d,%d",i,j,i++,j++);
(6)将程序改为:
#include
voidmain()
{
inti,j,m=0,n=0;
i=8;
j=10;
m+=i++;n-=--j;
printf("i=%d,j=%d,m=%d,n=%d",i,j,m,n);
}
5、按要求编写程序并上机运行
已知两个电阻分别为10欧姆和20欧姆,求并联后电阻的值。
(文件名:
sy2_1.c)
提示:
1/R=1/R1+1/R2
6、将“China”译成密码,密码规律十:
用原来的字母后面第4个字母代替原来的字母。
例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。
因此,“China”应译为“Glmre”。
编一程序,用赋初值的方法使c1、c2、c3、c4、c5这5个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。
【注意事项】
学生上机时要严格遵守实验规章制度,若实验设备出现故障,应及时向实验指导教师反映,不要私自拆卸实验设备。
实验三程序流程控制与输入输出
【实验目的】使学生掌握C语言顺序结构;掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符;使学生掌握用while语句,do-while语句和for语句实现循环的方法;掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等);进一步学习调试程序的技巧。
【实验要求】
1.掌握C语言顺序结构;
2.掌握各种类型数据的输入输出的方法;
3.正确使用各种格式转换符。
4.掌握用while语句,do-while语句和for语句实现循环的方法。
5.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
【重点与难点】重点是printf()和scanf()函数的用法,while、do-while、for语句的用法。
难点是各种格式转换符的使用;根据问题选择合适的循环语句。
【实验类型】验证性
【实验时数】6学时
【实验设备】计算机
【参考资料】1.http:
//210.45.137.157:
99/online_book/sy_book/sy_book_sy3.htm
2.C程序设计题解与上机指导(第三版)
【实验原理与内容】
实验内容为:
任选
(1)1、2;
(2)3,4,5
一、顺序结构与输入输出
1、掌握各种格式转换符的正确使用方法
(1)输入程序
#include"stdio.h"
#include"conio.h"
voidmain()
{
inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsignedintp,q;
a=61;b=62;
c1='a';c2='b';
d=3.56;e=-6.87;
f=3157.890121;g=0.123456789;
m=50000;n=-60000;
p=32768;q=40000;
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);
printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);
getch();
}
(2)运行此程序并分析结果。
(3)在此基础上,修改程序的第13-18行:
a=61;b=62;
c1='a';c2='b';
f=3157.890121;g=0.123456789;
d=f;e=g;
p=a=m=50000;q=b=n=-60000;
运行程序,分析结果。
(4)改用scanf函数输入数据而不用赋值语句(即:
在(3)的基础上将13-17行换为下面的scanf函数语句),scanf函数如下:
scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);
输入的数据如下:
61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000↙
请分析运行结果(说明:
lf和ld格式符分别用于输入double型和long型数据)。
(5)在(4)的基础上将printf语句改为:
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);
printf("f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n",f,g,m,n,p,q);
运行程序。
输入的数据如下:
61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000↙
请分析运行结果。
(6)将p、q改用%o格式符输出。
(7)将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。
2、按要求编写程序(实验结束后,需要将
(1)、
(2)的源代码在教学网站上上传,并将源程序写在实验报告上)
(1)编写程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
(文件名:
sy3_1.c)
(2)由键盘输入底和高,求三角形的面积。
(文件名:
sy3_2.c)
(3)输入两个数为两个变量赋值,然后将两个变量的值互相交换。
(选做题)
(4)求平面上任意两点之间的距离。
(选做题)
提示:
点(x1,y1)到点(x2,y2)的距离公式为:
3.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。
要得到以下的输出格式和结果,写出程序(包括定义变量类型和设计输出)。
a=└┘3└┘└┘b=└┘4└┘└┘c=└┘5
x=1.200000,y=2.400000,z=3.600000
x+y=└┘3.60└┘└┘y+z=-1.20└┘└┘z+x=-2.40
u=└┘51274└┘└┘n=128765
c1=’a’└┘or└┘97(ASCII)
c2=’b’└┘or└┘98(ASCII)
4.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’.问在键盘上如何输入?
#include
voidmain()
{inta,b;
floatx,y;
charc1,c2;
scanf(a=%d└┘b=%d”,&a,&b);
scanf(“└┘%f└┘%e”,&x,&y);
scanf(“└┘%c└┘%c”,&c1,&c2);
}
5.输入一个华氏温度,要求输出摄氏温度.公式为c=5(F-32)/9,取2位小数.
二、循环结构与输入输出
编程序并上机调试运行(从七个题目中选择三个做)。
1、输入两个正整数m和n,求它们的最大公约数和最小公倍数。
(源文件文件名:
sy5_1.c)
在运行时,输入的值m>n,观察结果是否正确。
再输入时,使m 2、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 (源文件文件名: sy5_2.c) 在得到正确结果后,请修改程 序使之能分别统计大小写字母、空格、数字和其它字符的个数。 3、用for语句求1到100中是3的倍数的数的和。 (源文件文件名: sy5_3.c) 4、从键盘输入整数,分别计算所输入的正整数的和、负整数的和。 当输入0时,结束输入并输出计算结果。 (源文件文件名: sy5_4.c) 5、输出1! +2! +3! +……+20! 之和。 (源文件文件名: sy5_5.c) 6、输出数列2/1,3/2,5/3,8/5,13/8,21/13……的前20项之和。 (源文件文件名: sy5_6.c) 7、输出菱形图案: * *** ***** **
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础 程序设计 基础 实验 指导书