您好,欢迎来到赴品旅游。
搜索
您的当前位置:首页C语言运行环境

C语言运行环境

来源:赴品旅游
实验一 C语言运行情况

一、实验目的

1.了解TC情况的组成。 2.学习TC情况的使用要领。

3.了解C语言步伐从编辑、编译、连接到运行并得到运行结果的历程。

二、实验内容

1.了解TC情况的组成。

开机后进入WINDOWS系统的\"资源治理器\",找到TC情况所在的文件夹。一般情况下,TC情况都安装在名为\"TC\"的子目录下,具体存于硬盘的哪个分区请询问实验室治理员。查察在TC目录下的以字母TC开头的文件,是否包罗了TC.EXE、TCC.EXE、TLINK.EXE、TCCONFIG.TC等文件;查察INCLUDE、LIB两个子目录下的文件。温习这些文件的作用。 2.进入、退出和定制TC情况。

运行TC目录下的TC.EXE文件,就可进入TC情况。

在WINDOWS情况下运行文件的要领是用鼠标双击要运行的文件名,或在桌面上双击快捷图标;在DOS情况下进入到TC子目录,用命令方法运行TC.EXE步伐。进入TC情况后屏幕上显示出TC情况的主画面。 退出TC情况,可在\"FILE\"菜单下选择\"QIUT\"菜单项,或用热键,盘算机返回到操纵系统的控制下。

在步伐开发的历程中,有时需要返回到操纵系统界面下视察步伐的运行情况,但是又要保存运行的TC情况,操纵要领是:选择\"File\"菜单下的\"OS shell\"菜单项返到DOS操纵 系统界面,用\"EXIT\"命令可重新进入TC情况;用+<空格>键返到WINDOWS界面,TC情况缩小为屏幕下方任务条上的一图标,用鼠标单击该图标重新进入TC情况。注意此时是返到操纵系统,TC情况没有真正退出,如果此时再次运行TC.EXE文件,适才是返到WINDOWS情况时,会重新打开一个TC窗口,返到DOS情况时会给出一个错误提示:\"Program too big to fit in memory\这是因为DOS操纵系统只治理0K的内存,放不下两个TC情况。

WINDOWS操纵系统对TC情况是作为一个窗口进行治理的,因此WINDOWS窗口的一些属性也是有效的。从TC情况返回WINDOWS系统时会出现一个快捷菜单(在任务条的TC图标上单击鼠标右键也可以出现快捷菜单),选择\"属性\"菜单项,屏幕出现一个名为\"TC属性\"的窗口,在该窗口里选择\"屏幕\"一页,在\"用法\"一项里选中\"屏幕\"单选钮,单击\"应用\"按钮,封闭\"TC属性\"的窗口,TC情况以WINDOWS窗口形式出现。在窗口上方出现东西条,可以对窗口进行定制,注意\"全屏幕\"和\"中文\"两个东西钮的作用。

TC情况下的\"Options\"菜单下可对TC情况进行设置,初学者要了解\"Directories\"的作用,一般不要改变系统的其它设置。关于\"Directories\"各项的作用和设置参阅本书关于TC情况的介绍,学会改变输出文件的目录。

3.运行演示步伐

在TC目录下有一个名为\"BGIDEMO.C\"的源步伐,这本是为TC图形函数提供的演示步伐,运行这个演示步伐。在\"File\"菜单下选\"Load\"项,在屏幕出现的\"Load File Name\"窗口里输入\"BGIDEMO.C\",该步伐被装入编辑窗口,按键,步伐被编译、连接并运行。注意运行此步伐需要图形库文件,一般被装在TC目录下,没有这个图形库文件就不 能运行图形演示步伐。 4.编写自己的第一个步伐

按键盘键,激活编辑窗口,录入如下C源步伐: main( )

{ printf(\"This is a C Program\\n\") printf(\"I am a student\\n\"); }

键,编译、连接、运行步伐。屏幕出现错误提示: statement missing ;in function main

通过提示,可以知道上面步伐第二行的最后漏敲一个分号,纠正后步伐运行。按+键视察输出结果。

键,步伐存入硬盘,文件名自定(如:test1)。通过资源治理器视察当前目录下名为test1的几个文件,它们的扩展名分别是什么。

改变\"Options\" 菜单下\"Directories\"项下的输出文件目录,用键把步伐再存一次并运行。在新设定的输出目录下视察名为test1的文件的存储情况。

用\"File\"菜单下的\"Write to\"项,把文件存在新设定的输出目录处,文件名仍为test1。 录入如下步伐: main( )

{ printf(\"This is another C Program\\n\"); }

键并用test1文件名生存,然后运行这个步伐。

+键,屏幕出现适才操纵过的几个文件的名字,将适才设定目录下的test1.c装入编辑器后运行它,我们视察到输出的仍是厥后键入的步伐的内容。这是因为TC编 译系统在吸收\"RUN\"命令后,对test1.c、test1.obj、test1.exe三个文件的创建时间进行比力,如果扩展名为.c的文件创建时间晚于.exe文件,它就认为源文件进行了修改,所以对源文件重新进行编译连接,如果.exe文件的时间晚于源文件的创建时间,就直接运行这个文件,不再重新编译连接。因为我们两次输入的步伐名称都是test1,新设定目录 中存放的是第一个步伐的test1.c和第二个步伐的test1.exe,就出现了现在的情况。 5.分别编译、连接、运行步伐

\"Run\"命令是将编译、连接、运行一次完成,实际完成了三件事情,下面分别进行编译、连接和运行。 用命令打开\"Compile\"菜单,并选择\"Compile to object\"命令编译该源步伐文件,然后选择\"Compile\"菜单的\"Link EXE file\"命令调用连接步伐连接成可执行文件,最后 用\"Run\"菜单的\"Run\"命令运行步伐,用\"Run\"菜单的\"User screen命令\"查察运行结果。由于编译、连接、运行是分别进行的,所以编译系统不再对相关三个文件的创建时间进行比 较,我们看到的就是编辑器里当前的步伐输出结果。 6.编写步伐,实现求整数10、20和35的平均值。

三、实验要求

1.学习TC的根本操纵,编写步伐。 2.运行步伐并记录运行结果。

3.将源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹中。

实验二 数据类型及顺序结构

一、实验目的

1.进一步熟悉TC情况的使用要领。

2.学习C语言赋值语句和根本输入输出函数的使用。 3.编写顺序结构步伐并运行。

4.了解数据类型在步伐设计语言中的意义。

二、实验内容

1.编步伐,输出如下图形: * *** ***** *******

2.编写步伐,实现下面的输特别式和结果( 体现空格): a= 5,b= 7,a-b=-2,a/b= 71% c1=COMPUTER,c2=COMP ,c3= COMP x=31.19,y= -31.2,z=31.1900 s=3.11900e+002,t= -3.12e+001

3.编写步伐,输入变量x值,输出变量y的值,并阐发输出结果。 ⑴ y = 2.4 * x - 1 / 2 ⑵ y = x % 2 / 5 - x ⑶ y = x > 10 && x < 100 ⑷ y = x >= 10 || x<= 1

⑸ y = ( x -= x * 10 , x /= 10 ) 要求变量x、y是float型。

4. 调试下列步伐,使之能正确输出3个整数之和及3个整数之积。 main( )

{ int a,b,c;

printf(\"Please enter 3 numbers:\"); scanf(\"%d,%d,%d\; ab=a+b; ac=a*c;

printf(\"a+b+c=%d\\n\; printf(\"a*b*c=%d\\n\; }

输入:40,50,60↙ 5.运行下述步伐,阐发输出结果。 main( )

{ int a=10;

long int b=10; float x=10.0; double y=10.0;

printf(\"a = %d, b = %ld, x = %f, y = %lf\\n\; printf(\"a = %ld, b = %d, x = %lf, y = %f\\n\; printf(\"x = %f, x = %e, x = %g\\n\; }

今后题的输出结果认识种种数据类型在内存的存储方法。

三、实验要求

1.温习赋值语句和输入输出函数种种格式符的使用。 2.温习数据类型和运算符的有关看法。 3.编写步伐,运行步伐并记录运行结果。

4.将源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹中。

四、选做题

输入圆半径(5)和圆心角(600),输出圆的周长、面积和扇形周长。

实验三 选择结构步伐设计

一、实验目的

1.正确使用干系表达式和逻辑表达式表达条件。 2.学习分支语句if和switch的使用要领。

3.进一步熟悉TC集成情况的使用要领,学习TC情况提供的调试东西。

二、实验内容

1.调试下列步伐,使之具有如下成果:输入a、b、c三个整数,求最小值。写出调试历程。 main()

{ int a,b,c;

scanf(\"%d%d%d\; if((a>b)&&(a>c)) if(bprintf(\"min=%d\\n\; else

printf(\"min=%d\\n\; if((aprintf(\"min=%d\\n\; }

步伐中包罗有一些错误,按下述步调进行调试。

⑴ 设置视察变量。按键,屏幕弹出\"Add watch\"窗口,在窗口中可输入要视察的变量或表达式,此处输入a,重复以上操纵并分别输入b、c,在屏幕下方的\"message\"窗口显示变量名a、b、c,且变量名的背面有提示,如a的背面是undefined symbol 'a',这是因为步伐没有运行,变量没有登记,所以TC情况不知道a是什么。

⑵ 单步执行步伐。按键,屏幕上半部\"Edit\"窗口中的步伐第一行步伐的文字配景色变为兰色,体现此语句将被执行。连续按键,兰色条一句句下移。

⑶ 通过单步执行发明步伐中的错误。当单步执行到scanf()函数一句时,屏幕自动切换到DOS窗口,期待用户的输入,假定我们输入\"1 2 3\",变量a、b、c担当后应在屏幕信息窗口显示出来,但是此时我们看到的却不是我们输入的数据。这时我们就要查抄步伐。发明在调用scanf()函数中变量名前面没有取地点运算符\"&\"。我们输入的数据没有正确存入到变量中。经纠正后再单步运行,变量a、b、c的值被正确输入。继承单步执行,步伐正确找到最小值并输出。

⑷ 通过充实测试发明步伐中的错误。虽然步伐可以运行,并不能说步伐就是正确的,因为编译系统查抄步伐没有语法错误就可运行了,但是编译系统不能发明步伐中的逻辑错误。一个步伐必须通过严格的测试,把可能存在的错误都找出来并纠正。关于如何进行步伐测试不在本书的报告范畴,此处仅对此例进行

测试的一些原则进行介绍。适才给出的输入是变量a为最小值,且a、b、c都不相等的情况,可能的公道输入另有:a为最小值且a、b、c相等,a为最小值且b、c相等,b为最小值且a、b、c互不相等,b为最小值且a、c相等,等等。严格说,在调试历程中对这些可能的情况都要进行测试,才华包管软件的质量。所以步伐的调试、测试是一项非常啰嗦的事情,也是非常重要的事情。对付初学者来说应该创建良好的习惯,在调试步伐的时候,应该尽可能考虑到步伐运行时种种可能,设计相应的用例。

我们再次运行步伐,输入为\"2,1,3\",步伐输出却是\"min=2\"。用单步执行的要领,马上发明变量a、b、c的值是不对的,原因是步伐要求输入数据的离开符是 (还允许使用回车或键。纠正输入后,步伐没有输出,照旧用单步执行的要领,监督步伐的执行历程,发明步伐中条件设计有误,经过纠正的步伐如下:

main()

{ int a,b,c;

scanf(\"%d%d%d\; if((aprintf(\"min=%d\\n\ else if((bprintf(\"min=%d\\n\; else if((cprintf(\"min=%d\\n\; else

printf(\"No find minimum\\n\"); }

上述步伐是按在三个数中仅有一个最小值时才称其为最小值进行设计的。另外,注意步伐的书写格式,一定要采取缩进格式,即差别条理(分支)的语句左起的空格差别,这样可以有效地提高步伐的可读性。

2.编写步伐,求解下列分段函数: 3.某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班(Lower class);4岁孩子进中班(Middle class);5岁、6岁孩子进大班(Higher class)。编写步伐(用switch语句),输入孩子年龄,输出年龄及进入的班号。如:输入:3,输出:age:3,enter Lower class。

三、实验要求

1.温习干系表达式、逻辑表达式和if 语句、switch语句。 2.学习步伐的调试要领。

3.编写步伐,运行步伐并记录运行结果

4.将源步伐、目标文件、可执行文件和实验陈诉存在软盘上。

四、选做题

1.自守数是其平方后尾数便是该数自身的自然数。例如: 25*25=625

76*76=5776

任意输入一个自然数,判断是否自守数并输出:如: 25 yes 25*25=625 11 no 11*11=121

2.输入月号,输出月份的英文名称。

实验四 循环结构步伐设计

一、实验目的

1.学习循环语句for、while和do-while语句的使用要领。 2.学习用循环语句实现种种算法,例如穷举法、迭代法等。 3.进一步熟悉TC集成情况的使用要领。

二、实验内容

1.下列步伐盘算SUM的值。调试该步伐,使之能正确地盘算SUM。写出调试历程。盘算公式如下:

main( )

{ int t,s,i,n;

scanf(\"%d\",&n); for(i=1;i<=n;i++) t=1/i; s=s+t;

printf(\"s=%f\\n\",s); }

在调试历程中,用单步执行的要领视察变量s和t的值的变革,找到步伐中存在的问题,加以纠正。

2.下面步伐的成果是盘算n!。 main()

{ int i,n,s=1;

printf(\"Please enter n:\"); scanf(\"%d\",&n); for(i=1;i<=n;i++) s=s*i;

printf(\"%d! = %d\",n,s); }

首次运行先输入n=4,输出结果为4!=24,这时正确的。为了查验步伐的正确性,再输入n=10,输出为10!=24320,这显然是错误的。为了找到步伐的错误,可以通过单步执行来视察变量的变革。这次我们在for循环体中增加一条输出语句,把变量s每次的运算结果显示出来。显示的结果是: s=1 s=2 s=6 s=24 s=120 s=720 s=5040 s=-25216 s=-30336 s=24320

运算历程中居然出现的负值,从显示看出s=5040是7!,再乘以8应是40320,实际却是一个负数。阐发产生这种现象的原因,把步伐纠正过来,再用n=20进行实验,阐发所得到的结果。

2.北京市体育彩票采取整数1、2、3、……、36体现36种体育运动,一张彩票可选择7种运动。编写步伐,选择一张彩票的号码,使得这张彩票的7个号码之和是105且相邻两个号码之差按顺序依次是1、2、3、4、5、6。如果第一个号码是1,则后续号码应是2、4、7、11、16、22。

3. 编写步伐实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)

1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1

三、实验要求

1.温习for、while 、do-while语句和continue、break语句。 2.在步伐调试中,要实现准备充实的测试用例。

3.编写步伐,运行步伐并记录运行结果。注意步伐的书写格式。

4.将源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹中。

四、选做题

已知2001年1月1日是星期一,编写步伐,在屏幕上输出2000年的年历。关于闰年的盘算要领:如果某年的年号能被400除尽, 或能被4除尽但不能被100除尽,则这一年就是闰年。

实验五 数组

一、实验目的

1.掌握数组的界说、赋值和输入输出的要领。

2.学习用数组实现相关的算法(如排序、求最大和最小值、对有序数组的插入等)。 2、熟悉TC集成情况的调试数组的要领。

二、实验内容

1.调试下列步伐,使之具有如下成果:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试历程。 main( )

{ int i,n,a[10],av; for(i=0;i{ printf(\"%d\; if(i%3==0)

printf(\"\\n\"); }

for(i=0;i!=n;i++) av+=a[i];

printf(\"av=%f\\n\; }

上面给出的步伐是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输特别式问题等。请使用前面实验所掌握的调试东西,判断步伐中的错误并纠正。在步伐运行历程中,可以使用+键终止步伐的运行,返回到TC情况。

2.编写步伐,任意输入10个整数的数列,先将整数凭据从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。 3.输入4×4的数组,编写步伐实现: ⑴ 求出对角线上各元素的和;

⑵ 求出对角线上行、列下标均为偶数的各元素的积; ⑶ 找出对角线上其值最大的元素和它在数组中的位置。

三、实验要求

1.温习数组的界说、引用和相关算法的步伐设计。 2.编写步伐,运行步伐并记录运行结果。

3.将源步伐、目标文件、可执行文件和实验陈诉存在软盘上。

四、选做题

1.设某班50人,写一步伐统计某一单科结果各分数段的漫衍人数,每人的结果随机输入,并要求按下面格式输出统计结果;(\"××\" 体现实际漫衍人数) 0 -- 39 ×× 40 -- 49 ×× 50 -- 59 ×× …… …… 90 -- 100 ××

2.有一个n行m列的由整数组成的矩阵,请对矩阵中的元素重新进行排列,使得同行元素中右边的元素大于左边的元素,同列元素中下边的元素大于上边的元素。

实验六 字符数据处理惩罚

一、实验目的

1.掌握C语言中字符数组和字符串处理惩罚函数的使用。 2.掌握在字符串中删除和插入字符的要领。 3.熟悉TC集成情况的调试字符串步伐的要领。

二、实验内容

1.调试下列步伐,使之具有如下成果:任意输入两个字符串(如:\"abc 123\"和\"china\"),并存放在a,b两个数组中。然后把较短的字符串放在a数组,较长的字符串放在b数组。并输出。 main()

{ char a[10],b[10]; int c,d,k;

scanf(\"%s\; scanf(\"%s\;

printf(\"a=%s,b=%s\\n\; c=strlen(a); d=strlen(b); if(c>d)

for(k=0;k{ ch=a[k];a[k]=b[k];b[k]=ch;} printf(\"a=%s\\n\; printf(\"b=%s\\n\; }

步伐中的strlen是库函数,成果是求字符串的长度,它的原型生存在头文件\"string.h\"中。调试时注意库函数的调用要领,差别的字符串输入要领,通不对误提示发明步伐中的错误。

2.编写步伐,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。以\"stop\"作为输入的最后一个字符串。

3.编写步伐,输入任意一个含有空格的字符串(至少10个字符),删除指定位置的字符后输出该字符串。如:输入\"BEIJING123\"和删除位置3,则输出:\"BEIING123\"。

三、实验要求

1.温习字符串处理惩罚函数和字符数组的使用、库函数的调用要领。 2.编写步伐,运行步伐并记录运行结果。

3.将源步伐、目标文件、可执行文件和实验陈诉存在软盘上。

四、选做题

1.编写步伐,输入字符串s1和s2以及插入位置f,在字符串s1•中的指定位置f处插入字符串s2。如:输入\"BEIJING\"、\"123\"和位置3,则输出 :\"BEI123JING123\"。

2.编写步伐,将输入的两个字符串进行归并,归并后的字符串中的字符凭据其ASCII码从小到大的顺序排序,在归并后的字符串中相同的字符只出现一次。

实验七 函数(1)

一、实验目的

1.学习C语言中函数的界说和调用要领。 2.掌握通过参数在函数间通报数据的要领。

3.熟悉TC集成情况对包罗函数调用的步伐的调试要领。

二、实验内容

1.调试下列步伐,使之具有如下成果:fun函数是一个判断整数是否为素数的函数,使用该函数求1000以内的素数平均值。写出调试历程。 #include \"math.h\" main( )

{ int a=0,k; /* a生存素数之和 */

float av; /* av生存1000以内素数的平均值 */ for(k=2;k<=1000;k++)

if(fun(k)) /* 判断k是否为素数 */ a+=k; av=a/1000;

printf(\"av=%f\\n\; }

fun(int n) /* 判断输入的整数是否为素数 */ { int i,y=0;

for(i=2;i本题调试的重点是如何判断一个数是否为素数。凭据素数的界说,一个正整数只能被1和它自己整除,这个数是素数。调试中采取TC情况提供单步执行成果时,注意热键的区别。

对付一个大型步伐,如果仅需要对步伐中的某一部分单步执行时,可设置一些断点,用\"Run\"命令执行步伐到断点处,然后再单步执行步伐。通过本例说明这样调试步伐的要领。在步伐被运行前,将屏幕光标移到fun函数的for循环一句处,按+键,该句配景色变为赤色;用\"Run\"命令运行步伐,步伐执行到此处暂停执行,配景色为淡兰色,再用单步执行下面的步伐;当不需要单步执行时,使用\"Run\"命令可以连续执行步伐,当步伐再次执行到断点处又会停下期待用户的指令。将屏幕光标移到已设断点处,再按+键,可以取消断点。

2.编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所谓水仙花数是指三位整数的列位上的数字的立方和便是该整数自己。例如:153就是一个水仙花数: 153 = 13 + 53 + 33

3.编写一个函数,对输入的整数k输出它的全部素数因子。例如:当k=126时,素数因子为:2,3,3,7。要求按如下格式输出:126 = 2 * 3 * 3 * 7。

三、实验要求

1.温习函数的界说和调用要领。

2.学习使用设置断点的要领调试步伐。 3.编写步伐,运行步伐并记录运行结果。

4.将源步伐、目标文件、可执行文件和实验陈诉存在软盘上。

四、选做题

1.任意输入一个4位自然数,调用函数输出该自然数的列位数字组成的最大数。

2.某人购买的体育彩票猜中了4个号码,这4个号码凭据从大到小的顺序组成一个数字可被11整除,将其颠倒过来也可被11整除,编写函数求切合这样条件的4个号码。关于体育彩票号码的规矩见实验四;可被11整除颠倒过来也可被11整除的正整数例如341,它可被11整除,颠倒过来143也可被11整除。

实验八 函数(2)

一、实验目的

1.掌握含多个源文件的步伐的编译、连接和调试运行的要领 2.学习递归步伐设计,掌握递归函数的编写规律。 3.熟悉TC集成情况的调试函数步伐的要领

二、实验内容

1、编写两个函数,其成果分别为:

⑴ 求N个整数的次大值和次小值

⑵ 求两个整数的最大条约数和最小公倍数

输入10个整数,调用函数求它们的次大值和次小值,及次大值和次小值的最大条约数和最小公倍数。

要求:这两个函数和主函数分属3个文件。

求最大条约数和最小公倍数的要领(以12和8为例):

辗转相除法:两数相除,若不能整除,则以除数作为被除数,余数作为除数,继承相除,直到余数为0时,当前除数就是最大条约数。而原来两个数的积除以最大条约数的商就是最小公倍数。 12 8

12%8 的余数为4 8%4 的余数为0

则 4 为最大条约数,12*8/4为最小公倍数。

相减法:两个数中的大数减小数,其差与减数再进行大数减小数,直到差与减数相等为止,此时的差或减数就是最大条约数。而原来两个数的积除以最大条约数的商就是最小公倍数。 12 8

12-8=4 8-4=4

则 4 为最大条约数,12*8/4为最小公倍数。

假定生存主函数的文件名是\"file1.c\生存求次大值和次小值函数的文件名是\"file2.c\生存求最大条约数和最小公倍数函数的文件名是\"file3.c\"。现在再编辑一个文件,它的内容如下: file1.c file2.c file3.c

生存这个文件为\"find.prj\"。这是一个项目文件,体现文件中指定的几个函数将连接为一个名为\"find.exe\"的可执行文件。我们要将项目文件名通知TC情况,按键,选择\"Project\"菜单的\"Project Name\"选项,在\"Project Name\"窗口输入项目文件名。编译系统这时将凭据项目文件指出的源文件名分别进行编译,然后把编译后的目标文件(.obj文件)连接成一个可执行文件。 2.用递归的要领求下面函数f(x)的值:

f(x,n)= (n层根号) 设 n=5,x=100

3.编写一个递归函数,实现将任意的十进制正整数转换为八进制数。

三、实验要求

1.温习递归步伐设计和多文件步伐的编写和调试要领 2.编写步伐,运行步伐并记录运行结果。

3.将源步伐、目标文件、可执行文件和实验陈诉存在软盘上。

四、选做题

1.编写一个递归函数,实现将任意的正整数按反序输出。例如,输入12345,输出321。 2.按下述递归界说编写一个盘算阿克曼函数的递归函数:

实验九 指针(1)

一、实验目的

1.掌握指针变量的界说与引用。

2.掌握指针与变量、指针与数组的干系。 3.掌握用数组指针作为函数参数的要领。 4.熟悉TC集成情况的调试指针步伐的要领。

二、实验内容

以下均用指针要领编程:

1. 调试下列步伐,使之具有如下成果:用指针法输入12个数,然后按每行4个数输出。写出调试历程。

main()

{ int j,k,a[12],*p; for(j=0;j<12;j++) scanf(\"%d\; for(j=0;j<12;j++) { printf(\"%d\; if(j%4 == 0) printf(\"\\n\"); } }

调试此步伐时将a设置为一个\"watch\",数组a所有元素的值在一行显示出来。调试时注意指针变量指向哪个目标变量。

2. 在主函数中任意输入10个数存入一个数组,然后凭据从小到大的顺序输出这10个数,要求数组中元素凭据输入时的顺序不能改变位置。

3. 自己编写一个比力两个字符串s和t巨细的函数strcomp(s,t),要求s小于t时返回-1,s便是t•时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求最小字符串。

三、实验要求

1.温习指针的界说与使用要领。

2.编写步伐,运行步伐并记录运行结果。

3.将源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹。

四、选做题

1.在主函数中任意输入9个数,调用函数求最大值和最小值,在主函数中按每行3个数的形式输出,其中最大值出现在第一行末尾,最小值出现在第3行的开头。

2.请编程读入一个字符串,并查抄其是否为回文(即正读和反读都是一样的)。例如: 读入:MADA M I M ADAM. 输出:YES 读入:ABCDBA. 输出:NO

实验十 指针(2)

一、实验目的

1.掌握C语言中函数指针的使用要领。 2.掌握C语言中指针数组的使用要领。

3.熟悉TC集成情况的调试指针步伐的要领。

二、实验内容

1.调试下列步伐,使之具有如下成果:任意输入2个数,调用两个函数分别求: ⑴ 2个数的和, ⑵ 2个数互换值。

要求用函数指针调用这两个函数,结果在主函数中输出。 main()

{ int a,b,c,(*p)();

scanf(\"%d,%d\; p=sum;

*p(a,b,c); p=swap; *p(a,b);

printf(\"sum=%d\\n\;

printf(\"a=%d,b=%d\\n\; }

sum(int a,int b,int c) { c=a+b; }

swap(int a;int b)

{ int t; t=a; a=b; b=t; }

调试步伐时注意参数通报的是数值照旧地点。

2.输入一个3位数,盘算该数列位上的数字之和,如果在[1,12]之内,则输出与和数相对应的月份的英文名称,不然输出***。

例如:输入:123 输出:1+2+3=6→ June

输入:139 输出:1+3+9=13→ *** 用指针数组记录各月份英文单词的首地点。

3.任意输入5个字符串,调用函数按从大到小顺序对字符串进行排序,在主函数中输出排序结果。

三、实验要求

1.温习函数指针和指针数组的使用要领。 2.编写步伐,运行步伐并记录运行结果。

3.将源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹中。

四、选做题

1.对数组A中的N(0例如:数组是 A=(5,3,4,7,3,5,6)

则输出为:(3, 1, 2, 5, 1, 3, 4)

2.将一个数的数码倒过来所得到的新数,叫作原数的反序数,如果一个数便是它的反序数,则称它为对称数。例如十进制数121就是一个十进制的对称数。编写步伐,采取递归算法求不凌驾1993的最大的二进制的对称数。

实验十一 结构体

一、实验目的

1.掌握C语言中结构体类型的界说和结构体变量的界说和引用。 2.掌握用结构指针通报结构数据的要领。 3.熟悉TC集成情况的调试结构步伐的要领

二、实验内容

1.设计一个生存学生情况的结构,学生情况包罗姓名、学号、年龄。输入5个学生的情况,输出学生的平均年龄和年龄最小的学生的情况。要求输入和输出分别编写的输入函数input()和输出函数output()。

2.使用结构数组输入10本书的名称和单价,调用函数凭据书名的字母顺序序进行排序,在主函数输出排序结果。

3.创建一个有5个结点的单向链表,每个结点包罗姓名、年龄和人为。编写两个函数,一个用于创建链表,另一个用来输出链表。

三、实验要求

1.温习结构体类型的界说,结构体变量、数组的界说和使用要领。 2.温习结构指针及其应用,如链表。 3.编写步伐,运行步伐并记录运行结果。

4.将源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹中。

四、选做题

1.在上述第3题的底子上,编写插入结点的函数,在指定位置插入一个新结点。 2.在上述第3题的底子上,编写删除结点的函数,在指定位置删除一个结点。

实验十二 文件

一、实验目的

1.掌握C语言中文件和文件指针的看法

2.掌握C语言中文件的打开与封闭及种种文件函数的使用要领。 3.熟悉TC集成情况的调试文件步伐的要领

二、实验内容

1.编写步伐,输入一个文本文件名,输出该文本文件中的每一个字符及其所对应的ASCII码。例如文件的内容是Beijing,则输出:B(66)e(101)i(105)j(106)i(105)n(110)g(103)。 2.编写步伐完成如下成果:

⑴ 输入5个学生的信息:学号(6位整数)、姓名(6个字符)、3门课的结果(3位整数1位小数)。盘算每个学生的平均结果(3位整数2位小数),将所有数据写入文件STU1.DAT;

⑵ 从STU1.DAT文件中读入学生数据,按平均结果从高到低排序后写入文件STU2.DAT; ⑶ 凭据输入学生的学号,在STU2.DAT文件中查找该学生,找到以后输出该学生的所有数据,如果文件中没有输入的学号,给出相应的提示信息。

3.用编辑软件创建一个名为\"d1.txt\"的文本文件存入磁盘,文件中有18个数。从磁盘上读入该文件,并用文件中的前9个数和后9个数分别作为两个3*3矩阵的元素。求这两个矩阵的和,并把结果按每行3个数据写入文本文件\"d2.txt\"。用DOS命令TYPE显示d2.txt。

三、实验要求

1.温习文件的读写要领。

2.编写步伐,运行步伐并记录运行结果。

3.源步伐、目标文件、可执行文件和实验陈诉存在办事器的指定文件夹中。

四、选做题

1.创建两个由有序的整数组成的二进制文件f1和f2,然后将它们归并为一个新的有序文件f3。 2.编写步伐,成果是从磁盘上读入一个文本文件,将文件内容显示在屏幕上,每一行的前面显示行号。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fupindai.com 版权所有 赣ICP备2024042792号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务