您好,欢迎访问三七文档
实验一C语言的运行环境、运行过程、简单的C程序设计【目的与要求】1.安装C语言编程集成工具tc++3.0,熟悉C语言上机操作的环境及C语言上机的一般过程。2.了解编辑窗口上主菜单中各功能项的含义。3.理解C语言程序的一般结构以及编辑、编译、连接、运行的操作过程。4.理解当程序运行时的输入和输出。【内容与过程】1.安装C语言编程集成工具,进入此工具界面,检查设置是否正确;2.对课本P3的例1-1,依次执行“编辑—编译—链接—运行—查看运行结果”这几个步骤①了解File菜单下功能项的作用,熟练使用New、Save、SaveAs、Exit。②了解Run菜单下功能项的作用,熟练使用Run、Compile、UserScreen。③了解Edit、Options菜单下功能项的作用3.例1-1是只有输出;接下来执行例1-2(既有输入亦有输出);4.执行例1-3,要求同时输入两个值【实验报告】1.熟悉上机环境。1)用于上机的C语言版本是什么?答:TurboC++3.02)你是如何进入当前这个C语言环境的?答:在windows操作系统中找到C:\TC\BIN\TC.exe,并双击运行。3)当输入了最简单的C源程序后,如何执行编译链接运行步骤?会产生哪些文件,这些文件被放到什么位置了?答:首先用“File-Save”存盘;再用“Compile-Compiletoobj”编译;然后用“Run-run”运行;最后用“window-userscreen”看运行的输出结果。产生了扩展名为.c、.obj和.exe的文件,存放这些文件的默认位置是C:\TC\bin4)如何设置上机环境,使得产生的文件全部放到自定义的目录下?答:用“Option—Directories—OutputDirectory”并输入专门设置来存放这些文件的具体目录路径。5)产生的文件大小是?为什么exe文件远远大于obj文件?答:.c文件大小159byte;.obj文件大小854byte;.exe文件大小27.5kbyte。由此可见exe文件的大小远远大于.obj文件。这是因为.obj文件中只有本程序的语句翻译成的目标代码,而.exe文件则是把本程序的目标代码再链接上其它代码,如本程序中调用的printf()函数的目标代码等等,而形成的。6)描述当开始运行例1-2后的过程(即运行后屏幕出现什么,敲下啥啥键后,出现什么….)答:程序运行中,首先在屏幕上显示:“pleaseinputvalueofx::”,此时程序暂停运行,等待用户输入,用户输入一个小数,例如3.3后,再输入回车键,程序才继续运行,在显示器上输出程序的最后计算结果。实验二printf函数【目的与要求】掌握格式输出函数printf()及格式符【内容与过程】1.运行课本P70-74的各printf()函数语句,查看输出结果,体会printf()函数中控制字符串中的普通字符、格式字符的用法,以及格式字符和输出表列的对应。【实验报告】1.什么是printf()函数中控制字符串中的普通字符?其用法是怎样的?‘/n’是普通字符吗?是原样输出吗?答:在格式控制字符串内、除%、格式字符和修饰符外的其它字符都属于普通字符,具体包括空白字符、转义字符和可打印字符。2.语句“printf(“hello!s=x*x=%f”,s);”中,哪些是普通字符?哪些是格式字符?哪个是输出表列?答:普通字符:hellow!s=x*x=格式字符:f输出表列:s3.解释“printf(“%-25.15f,%25.15.f\n”,a,a);”中,各参数间的对应关系答:第一个参数中的格式符%-25.15f与第二个参数a对应;第一个参数中的格式符%25.15.f与第二个参数a对应。4.解释“printf(“%d\t%o\n”,a,a);”中,各参数的含义,及参数间的对应关系;答:第一个参数“%d\t%o\n”规定了输出格式及一部分输出内容;第二和第三个参数a,a规定了另一部分输出内容;第一个参数中的格式符%d对应于第二个参数a;第一个参数中的格式符%o对应于第三个参数a。5.“inta=-1;printf(“%d\t%o\n”,a,a);”输出显示是?答:-1177777实验三scanf函数与字符输入输出函数实验三scanf函数与字符输入输出函数【目的与要求】掌握函数scanf()、getch()、getchar()、putch()、putchar()【内容与过程】1.编辑并运行课本P66的例3-5,对照课本P75的3.4.4,体会scanf()函数中控制字符串和输入项列表的用法。注意:i.“#includemath.h”和“q=sqtr(disc)/(2.0*a);”之间的联系ii.程序中scanf函数在运行时,具体的输入操作是?体会调用scanf()函数输入多个数据时,数据之间的分隔符号。iii.当Scanf函数的输入表列包含多项时,各项间可以有哪些分隔符号?iv.把scanf函数调用语句修改为“scanf(“a=%lfb=%lfc=%lf”,&a,&b,&c);”后,具体的输入操作是?体会scanf()函数调用语句中的控制字符中的普通字符的用法。2.运行课本P76-P78,3.4.4中的各个scanf函数调用语句3.运行课本P78-P82,3.4.5中的各例题4.运行P83-84,课后题4,5,7,8【实验报告】1.解释一下,课本P66的例3-5中的“%lf”是什么意思?答:输入一个长浮点型(即双精度型)的浮点数值。2.在一个scanf()函数中输入多个数据时,数据之间可以使用哪些分隔符号?答:如果在函数中没有指明,则可用空格符、回车符或制表符Tab作为数据间的分隔。3.4.比较一下,printf()与scanf()中的格式字符串和输出(入)表列在用法上有什么不同之处?为什么一般不建议在输入格式符中使用普通字符?答:不同之处有:1)printf()中的输出表列可以是常量、变量或者表达式,而scanf()中的输入表列必须是变量地址。2)printf()的格式字符中的普通字符是原样输出显示的;scanf()中的普通字符则不会显示在屏幕上、而必须由用户原样输入。不建议在输入格式符中使用普通字符的原因,就是因为无法保证用户会知道具体有哪些普通字符是必须输入的。5.完成P83的课后题4,5,7,84答:(1)输出:c1=a,c2=b因为输出格式符是%c,意味着输出结果是字符,ASCII码表中整数97、98对应的字符就是a和bc1=97,c2=98因为输出格式符是%d,意味着输出结果是整数(2)输出:c1=,c2=ASCII码表中整数197、198对应的字符是和c1=197,c2=198(3)5答:对应于scanf(),在键盘上输入:a=3b=7对应于scanf(),在键盘上输入:8.571.82对应于scanf(),在键盘上输入:Aa7略8答:(1)二者皆可。(2)用printf函数,用%d格式符输出(3)不是,当整数值超过128,对于int型,最高位的1值成为为负符号,此时会产生区别。参看第4题。实验四单步运行、变量观察、算术运算、关系运算、逻辑运算、真假值和选择语句的的执行顺序【目的与要求】掌握单步运行和变量观察这两种程序调试方法【内容与过程】1.单步运行:Run-traceinto,可以对程序逐行地执行;变量观察:window-watch,可以观察变量中的值的变化;利用这两个工具,可以进行程序调试。2.对应于P111的课后题3,输入以下程序,并通过单步执行和变量观察察看各式计算结果值:Main(){inta=3,b=4,c=5;intvalue;value=a+bc&&b==c;…….}3.把P92的第8-11行的算式也放入,查看各式结果值,体会计算过程和计算结果4.把P93第1-2行、P94第1-2行的算式也放入,同上。5.把P87例4.2,单步执行,观察语句执行顺序【实验报告】1.对应于前2、3和4,1)如果要观察各式结果值,应把哪个变量放入观察窗口?2)写出各式结果值;3)回答课后题1,2答:1)把value值放入观察窗口。2)P111的课后题3,各式结果值是01101P92的第8-11行,参照课后题3的赋值,各式结果值是0000P93第1-2行,P94第1-2行,参照课后题3的赋值,另设x=5,y=1,age=18,各式结果值是10002.对应于前5,1)若输入是”3.6,-3.2”,写出执行顺序;2)若输入是”-3.2,3.6”,写出执行顺序答:1)若输入是”3.6,-3.2”,执行顺序是2-5-6-8-9-10-12-13-14;2)若输入是”-3.2,3.6”,执行顺序是2-5-6-12-13-14实验五逻辑运算与分支判断【目的与要求】1.了解和使用关系运算符、逻辑运算符、条件运算符及运算。2.掌握if语句、嵌套if结构、条件运算符、switch语句的使用方法。【内容与过程】1.单步运行例4.1,理解分支语句的语句运行顺序2.if的几种形式和使用方法。3.练习例4.2,例4.3。4.课后题【实验报告】1.单步运行课本P71的例4-1,运行两次,第一次如课本输入“3.63.2”,单步执行;第二次输入“3.23.6”,单步执行。两次执行在语句执行顺序上有什么不一样?答:第一次执行了分支中的语句;第二次没有执行分支中的语句。2.单步运行例4-31)程序中共用到函数、和,其中是在中定义的,所以要把这个文件include进本程序中。答:程序中共用到函数scanf()、printf()和rand(),其中rand()是在stdlib.h中定义的,所以要把这个文件include进本程序中。2)如果希望每次都能够实时地看到变量magic的值,又称监视/观察magic变量,可以怎么做?答:把变量magic放入wahtch观察窗口中,并单步执行。3)程序中原if语句的条件表达式是(guess==magic),其含义是当_________时进入为真分支;若把这个条件表达式改成(guess=magic),有无语法错误?这时其含义是当_______________时进入为真分支;若改成(guess),有无语法错误?这时其含义是当________________时进入为真分支。答:程序中原if语句的条件表达式是(guess==magic),其含义是当__guss==magic为真________时进入为真分支;若把这个条件表达式改成(guess=magic),没有语法错误。这时其含义是当__guess赋值后值为非零_____________时进入为真分支;若改成(guess),没有语法错误?这时其含义是当___guess值非零_____________时进入为真分支。P112的7AFTFTy=-1X0X==0y=0y=1BFTFTy=-1X0X0y=1y=1CFTFTy=1X=0X0y=0y=-1DFTFTy=1X=0X0y=0y=-1实验六循环(一)【目的与要求】掌握while语句、do-while语句、for语句的使用方法。【内容与过程】1.输入课本P96的例5-1中的源程序代码,简化成求1到3的累加和,把变量I和sum加入观察窗口,单步运行,体会循环语句的执行(不断循环)以及观察变量I和sum的变化情况。2.输入课本P102的例5-5中的源程序代码,简化成求1到3的累加和。用单步运行的方法跟踪这个源程序的每一步运行,体会循环的过程。3.输入课本P106的例5-9中的源程序代码,简化成求1到3的累加和,注意while和do-while循环,它们的循环次数和变量变化是否完全一样?4.输入课本P113的例5-16中的源程序代码,简化成求1到3的累加和,并单步执行,体会goto语句和if语句的配合。5.体会无限循环(即死循环)【实验报告】1.对照课本P96的图5-2的流程图,说明循环控制变量、循环条件和循环表达式分别是哪个?循环控制变量的初始化语句是?循环条件测试语句是?循环控制变量更新语句是?答:循环控制变量是i、循环条件是I=100,循
本文标题:c语言实验大纲
链接地址:https://www.777doc.com/doc-2908892 .html