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

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

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

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

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

语言程序设计实验指导书

 

C语言程序设计

实验指导书

专业:

____________班级:

_______________组序:

_____________

 

学号:

______________姓名:

_______________

 

中国矿业大学管理学院

200年月

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

 

实验项目如下表:

 

序号

实验项目名称

计划学时

计划每组人数

实验属性

开出要求

内容提要

1

实验一熟悉TurboC的上机过程

2

1

验证

必选

2

实验二数据类型、运算符和表达式

2

1

设计

必选

3

实验三顺序程序设计

2

1

设计

必选

4

实验四逻辑运算和判断选取控制

2

1

设计

必选

5

实验五循环控制

2

1

设计

必选

6

实验六数组

4

1

设计

必选

7

实验七函数

4

1

设计

必选

8

实验八编译预处理

1

1

设计

必选

9

实验九指针

4

1

设计

必选

10

实验十结构体和共用体

4

1

设计

必选

11

实验十一位运算

1

1

设计

必选

12

实验十二文件

4

1

设计

必选

合计

 

实验一熟悉TurboC的上机过程

一、实验目的:

1.熟悉TurboC2.0的软件环境,掌握使用TC进行编辑、编译、连接和运行的方法。

2.通过运行简单的C程序,掌握C源程序的特点。

二、实验内容:

1.运行TurboC2.0程序,进入C程序设计环境。

2.选择工作目录

工作目录即用户文件所在的目录,是程序当前的工作目录。

工作目录的改变使用菜单命令File/ChangeDir命令,然后输入已经存在的目录作为新的当前工作目录。

File/Directory菜单命令显示当前目录下的文件列表。

3.建立工作环境

建立工作环境的作用是告诉TC包含文件、库文件存放的位置,以及输出文件存于何处。

使用菜单命令Options/Directories进行设置,按回车键,在弹出的窗口内设置新的文件路径。

目标文件目录(Outputdirectory)存放输出的.obj、.exe文件,可建立一个新目录来存放输出文件。

Pickfilename:

Pick文件名,它保存了用户退出系统时曾经编辑的文件相关信息(文件名,光标位置

 

等等),以便使用File/Pick菜单命令把最近加载到编辑器的8个文件列出来(称为Pick表),然后可以选择这8个文件中的任一个进行编辑。

此时Pick表可以自动恢复上次退出系统的编辑状态,继续程序的开发。

在编辑状态下,用Alt+F6可以在Pick表中的文件进行跳转操作,而不必退出系统。

如果没有指定Pick文件名,可以新建立或使用系统的默认Pick文件Tcpick.tcp。

可以具有多个pick文件,但当前的环境只能使用其中一个。

4.保存环境设置

将上面设置的环境保存到一个配置文件中,默认名字为Tcconfig.tc,以便启动TurboC时去加载已保存的环境设置。

5.编辑源文件

使用File/Load菜单命令,加载已经存在的C源文件。

建立新文件用Fiel/New命令。

请输入任一C源程序,Insert键可以在插入和改写状态之间切换。

使用Tab键进行缩进。

编辑完毕,用File/Save或F2保存编辑结果到新文件中。

6.编译、连接

(1)单文件源程序的编译、连接

源程序先经过编译,生成目标文件(.obj文件),然后将目标文件进行连接,生成可执行文件(.exe)。

方法一:

CompiletoOBJ:

将源程序编译成.obj文件。

LinkEXEfile:

将目标文件及库文件连接在一起,生成.EXE文件。

方法二:

MakeEXEfile:

直接由源文件,经过编译、连接,然后生成可执行文件。

如果编译、连接中发生错误,在Message窗口中显示出错信息,修改错误后,可重新编译、连接。

(2)多文件源程序的编译、连接

可以用长的源程序分割成几个文件,分别编译然后生成可执行文件。

此时使用Project菜单。

步骤:

第一步:

有三个文件f1.c、f2.c、f3.c组成一个完整的C程序,分别建立三个文件,将f1.c、f2.c、f3.c三个文件保存到同一个文件夹中(如d:

\tc\project\)。

f1.c:

#include"stdio.h"

externa,b;

externmax(intx,inty);

main()

{

inte=1,f=2;

printf("%d\n",max(a,b));

printf("%d\n",max(e,f));

}

f2.c:

inta=3,b=4;

f3.c:

intmax(intx,inty)

{

returnx>y?

x:

y;}

第二步:

构造Project文件,在编辑状态下,编辑一个扩展名为.prj的文件,文件的内容为:

f1

f2

f3

使用Project/Projectname菜单命令,按回车,输入Project文件名,例如:

wang.prj。

使用菜单命令File/Changedir将当前的工作目录设为d:

\tc\project\。

用菜单命令File/Writeto将project文件保存,文件路径为d:

\tc\project\wang.prj。

第三步:

构造EXE文件,按F9键即将三个文件编译、连接成一个EXE文件,文件名为wang.exe。

如果编译、连接出现错误,则必须进行修正,然后再编译。

7.运行程序

如果编译、连接完全正确,则可以用Run命令运行程序。

Run/Run命令将完成编译、连接、运行任务。

如果可以确认源程序无错误,可以直接使用该命令。

程序运行完毕后,仍回到TC环境,用Run/Userscreen查看程序的输出结果,看完后按任意键回到TC环境。

附:

一、TC的热键

F1:

提供当前位置的帮助信息F2:

编辑器里的文件存盘F3:

加载文件

F4:

程序运行到光标所在行F5:

放大/缩小活动窗口F6:

开关活动窗口

F7:

在调试模式下运行程序,跟踪进函数内部

F8:

在调试模式下运行程序,跳过函数调用(单步执行)

F9:

执行make,建立EXE文件F10:

菜单与活动窗口之间切换

Alt+F6:

在pick表中的文件间切换

Alt+主菜单命令的首字符(F、E、R、C、P、O、D、B),执行菜单命令

Esc:

退出菜单

二、

编辑状态栏

Linen:

光标所在行号

Coln:

光标所在列号

Insert:

插入/改写状态,用Insert键转换

Indent:

自动缩进,用Ctrl+OI转换

Tab:

表明能否插入Tab键,用Ctrl+QT切换

三、编辑命令:

在编辑状态下,按F1键盘可以查看编辑命令,包括:

光标移动命令、插入删除命令、块命令、其它命令。

四、菜单

1.文件菜单:

Load:

加载文件;Pick:

最近装进编辑窗口的8个文件列成一个表,让用户选择其一。

New:

建立新文件;Save:

存盘

Writeto:

将编辑窗口的内容写入新文件中,如果文件存在,在覆盖旧文件。

Directory:

显示目录及文件列表

ChangeDir:

改变当前目录

OSShell:

暂时退出TurboC,转到DOS提示符下,输入EXIT返回TurboC。

Quit:

退出

2.运行菜单:

Run/run:

运行程序,可以用Options/Argument传递参数。

编译连接时将Debug/SourceDebugging开关置为None或Standalone,则产生的可执行代码将不包含调试信息,不能进行程序的调试,但可执行文件的字节数减少。

一般在程序调试之前,将Debug/SourceDebugging开关置为On。

ProgramReset:

终止当前调试。

GotoCursor:

程序运行到光标所在的行停止。

Traceinto:

单步执行,但可以跟踪到调试器可访问的函数内部

StepOver:

单步执行,不进入函数内部

3.Option菜单:

可选择编译器任选项(如存储模式、编辑时任选项、诊断及连接时任选项)等等

4.Debug菜单:

检查、改变变量的值,查找函数。

选择程序编译时是否在执行代码中插入调试信息

5.Break/Watch:

增加、删除、编辑监视表达式,设置、清除、执行至断点。

实验二数据类型、运算符和表达式

一、实验目的:

1.掌握C语言数据类型,熟悉如何定义整型、字符型、实型变量,以及对它们赋值的方法,了解以上数据类型输出时所使用的格式转换符号。

2.学会使用C的有关运算符,以及包含这些运算符号的表达式,特别是自加(++)和自减(——)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容:

1.输入以下程序,并编译、运行,分析运行结果:

main()

{charc1,c2;

c1=97;c2=98;

printf(″%c%c″,c1,c2);

}

在此基础上:

(1)加一个printf语句,并运行之。

printf(″%d,%d″,c1,c2);

(2)再将第二行改为:

intc1,c2;

再运行程序。

(3)再将第三行改为:

c1=300;c2=400;

再运行,并分析结果。

2.输入并运行以下程序:

main()

{inti,j,m,n;

i=8;j=10;

m=++i;n=j++;

printf(″%d,%d,%d,%d″,i,j,m,n);

}

分别作以下改动并运行:

(1)将第四行改为:

m=i++;n=++j;

(2)程序改为:

main()

{inti,j;

i=8;j=10;

printf(″%d,%d″,i++,j++);

}

(3)在

(2)的基础上,将printf语句改为:

printf(″%d,%d″,++i,++j);

(4)再将printf语句改为:

printf(″%d,%d,%d,%d″,i,j,i++,j++);

(5)程序改为:

main()

{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);

}

3.先判断以下程序的输出结果,在运行验证。

(1)

main()

{inti=3,j=2,a,b,c,d;

d=(i*3,j=10);

a=(--i==j++)?

--i:

++j;

b=i++;

c=j;

printf(″%d,%d,%d,%d\n″,a,b,c,d);

}

(2)

main()

{inta=110,b=017;

printf(″%x,%d\n″,a++,++b);

}

(3)

main()

{

inta=-1;b=36,c;

c=(++a>0)&&!

(b--<=0);

printf(″%d,%d,%d\n″,a,b,c);

}

4.补充完整以下程序,将从键盘输入的任意大写字母转换为小写字母,将小写字母转换为大写字母。

main()

{charc;

scanf(″%c″,&c);

.......

printf(″%c″,c);

}

实验三顺序程序设计

一、实验目的:

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

2.掌握数据的输入输出方法,能正确使用各种格式转换符。

二、实验内容:

1.输入以下程序:

#include"stdio.h"

main()

{

inti;

charj;

for(i=1;i<10;i++)

{

scanf("%c",&j);

printf("%c",j);

}

}

(1)运行程序,输入a↙b↙c↙d↙e↙f↙g↙h↙i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

(2)在scanf语句后面加上语句:

getchar();

运行程序,输入a↙b↙c↙d↙e↙f↙g↙h↙i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

(4)在源程序的基础上,将scanf语句的%c前面加一空格,即改为:

scanf("└┘%c",&j);

运行程序,输入└┘a↙└┘b↙└┘c↙└┘d↙└┘e↙└┘f↙└┘g↙└┘h↙└┘i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

运行程序,输入└┘a└┘b└┘c└┘d└┘e└┘f└┘g└┘h└┘i↙

观察程序的执行结果,是否能够输出字母a,b,c,d,e,f,g,h,i。

为什么?

2.做教材上的习题3.6

3.编制一程序,用getchar函数输入字符,然后用putchar函数输出字符,同时要求输出字符的ASCII码。

分别考虑用int和char型变量来接收键盘输入的字符,两者是否等价?

 

实验四逻辑运算和判断选取控制

一、目的要求

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”);

2.学会正确使用逻辑运算符和逻辑表达式;

3.熟练掌握if语句和switch语句

二、实验内容

先编程序,解以下问题,然后上机调试运行程序。

1.编写一程序,从键盘输入字符,判别输入字符是数字、大写字母还是小写字母,输出判别结果。

2.给出一个不多于5位的正整数,要求:

(1)求出它是几位数;

(2)分别打印出每一位数字;

(3)按逆序打印出各位数字。

3.任意输入5个字母,如果输入的不是字母,程序应能提示重新输入,然后按照字母的ASCII码值从小到大的顺序输出。

4.有一函数,

,用scanf函数输入任意x的值,求y的值。

实验五循环控制

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。

2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编写程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小共倍数。

2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

3.输出九九表。

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

2

4

6

8

10

12

14

16

18

3

6

9

12

15

18

21

24

27

4

8

12

16

20

24

28

32

36

5

10

15

20

25

30

35

40

45

6

12

18

24

30

36

42

48

54

7

14

21

28

35

42

49

56

63

8

16

24

32

40

48

56

64

72

9

18

27

36

45

54

63

72

81

 

4.求输入的十个整数中正数的个数及其平均值。

5.两个乒乓球队进行比赛,各出三人。

甲队为A、B、C3人,乙队为X、Y、Z3人。

已抽签决定比赛名单。

有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编写找出3对赛手的名单。

(提示:

用循环和判断实现)

实验六数组

一、目的要求

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

2.掌握字符数组和字符串函数的使用;

3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编写程序并上机调试运行。

1.编写一程序,从键盘输入任意两个字符串,然后将两个字符串连接起来,不要使用strcat函数。

2.编写一程序,从键盘输入任意两个字符串s1和s2,然后比较字符串的大小(字符串比较是从左到右逐位比较),如果s1>s2,输出1;s1=s2,输出0;s1

3.编写一程序,输入一字符串到数组中,然后将该数组中小写字母转换为大写字母,并复制到另一字符数组中。

(复制时,‘\0’也要复制过去)

4.编写程序,把键盘输入的字符串中的数字字符删除,然后现实该字符串。

实验七函数

一、目的要求

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

2.掌握函数实参与形参的对应关系,以及“值传递”的方式;

3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。

二、实验内容

编写程序,并上机运行之。

1.输入一行字符串,然后写一函数输出该行字符串中最长的单词。

例如Iamastudent中最长的单词为student。

2.写一函数,使输入的一个字符串反序存放,使用“传址”调用方式。

3.写几个函数。

(1)输入10个职工的姓名和职工号;

(2)将职工号由小到大排序,姓名顺序也随之调整;(3)要求输入一个职工号,用折半查找法找出该职工的姓名。

从主函数中输入要查找的职工号,输出该职工姓名。

解释:

折半查找法是先将数据排序,例如有7个数据:

1,3,4,7,10,25,30已经排序,要查找25在序列中的位置。

将序列折半,中间位置为4,中间数为7,如果25等于该中间数则停止,否则继续。

序列分为:

1,3,4和10,25,30。

25比4大,显然25不在序列1,3,4中;对序列10,25,30重新按照折半法查找,中间数为25,已经查找结束。

4.写一个判断素数的函数,在主函数中输入一个整数,输出是否素数的信息。

实验八编译预处理

一、实验目的:

1.掌握宏定义的方法;

2.掌握文件包含处理方法;

3.掌握条件编译的方法;

二、实验内容:

1.定义一个带参数的宏,使两个参数的值交换。

定义另一个带参数的宏,它计算两个参数的最小值。

写出程序,输入两个数作为使用宏时的实参,输出已交换后的两个值,并求出最大值。

2.用条件编译的方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如’a’变成’b’,…,‘z’变成’a’。

其它字符不变)。

用#define命令来控制是否要译成密码。

例如:

#defineCHANGE1

则输出密码。

如果

#defineCHANGE0

则不译成密码。

按原码输出。

使用条件编译的方法来处理。

3.下面有一程序,请将源程序分为三部分,再进行编译处理。

f1.h:

#include"stdio.h"

#include"string.h"

intmore(char,char);

intmin(int,int);

intstrcmp1(charstr1[],charstr2[]);

f2.c:

main()

{

chara1[]="china";

chara2[]="chinee";

inta;

a=strcmp1(a1,a2);

if(a==1)

printf("str1isgreaterthanstr2\n");

elseif(a==-1)

printf("str1islessthanstr2\n");

elseprintf("str1isequaltostr2\n");

}

f3.c:

intmore(charx,chary)

{

intz;

z=(x>y)?

1:

(x==y)?

0:

-1;

returnz;

}

intmin(intx,inty)

{

intz;

z=(x

x:

y;

returnz;

}

intstrcmp1(charstr1[],charstr2[])

{

charlen,i;

intk;

len=min(strlen(str1),strlen(str2));

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

{

k=more(str1[i],str2[i]);

if(k==-1)

break;

if(k==1)

break;

}

returnk;

}

实验九指针

一、实验目的:

1.掌握指针的概念,会定义和使用指针变量;

2.学会使用数组的指针和指向数组的指针变量;

3.学会使用字符串的指针和指向字符串的指针变量;

4.学会使用指向函数的指针变量;

5.了解指向指针的指针的概念及其使用方法。

二、实验内容:

编写程序,并上机运行之(要求使用指针处理)。

1.编制一函数实现任意3*3阶矩阵的转置,函数的参数用指针形式。

在主函数中输入矩阵元素。

2.从键盘输入任意两个字符串s1和s2,然后用函数实现比较字符串的大小(字符串比较是从左到右逐位比较),如果s1>s2,函数返回1;s1=s2,函数返回0;s1

函数的参数采用指针形式。

3.用指向指针的指针的方法对5个字符串排序并输出。

提示:

用二维数组存放5个字符串,设计一个指针数组或二维指针,指向该字符串数组,用strcmp()函数比较字符串的大小。

4.编写一函数,将一个含n个字符的字符串从其第m个字符开始的k个字符复制到另一字符串中。

函数的原型为copystr(char*str1,char*str2,intm,intk)。

5.自行编写一程序,体会使用指向函数的指针的使用方法。

实验十结构体和共用体

一、目的要求:

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

2.掌握结构体类型数组的概念和应用;

3.掌握链表的概念,初步学会对链表进行操作;

4.掌握公用体的概念与使用。

二、实验内容:

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生的数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括姓名、学号、三门课的成绩、平均分数)。

要求用一个input函数输入成绩;用average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据在主函数中输出。

2.建立一个链表,每个结点包括:

学号、姓名、性别、年龄。

输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删除。

3.已有a,b两个链表,每个链表中等结点包括学号、成绩。

要求把两个链表合并,按学号升序排列。

4.输入和运行以下程序:

#include"stdio.h"

uniondata

{inti[2];

floata;

longb;

charj[4];

};

main()

{

uniondatau;

scanf("%d,%d",&u.i[0],&u.i[1]);

printf("%d,%d,%f,%ld,%c,%c,%c,%c",

u.i[0],u.i[1],u.a,u.b,u.j[0],u.j[1],u.j[2],u.j[3]);

}

输入两个整数10000,20000给u.

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

当前位置:首页 > 医药卫生 > 基础医学

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

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