您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 实验大纲(参考答案)
实验一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()函数的目标代码等等,而形成的。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。(4)可执行程序:目标程序与库函数连接,形成的完整的可在操作系统下独立执行的程序称为可执行程序。可执行程序的扩展名为“.exe”(在dos/windows操作系统下)6)描述当开始运行例1-2后的过程(即运行后屏幕出现什么,敲下啥啥键后,出现什么….)答:程序运行中,首先在屏幕上显示:“pleaseinputvalueofx::”,此时程序暂停运行,等待用户输入,用户输入一个小数,例如3.3后,再输入回车键,程序才继续运行,并在显示器上输出程序的最后计算结果。实验二printf函数【目的与要求】掌握格式输出函数printf()及格式符【内容与过程】1.运行课本P70-74的各printf()函数语句,查看输出结果,体会printf()函数中控制字符串中的普通字符、格式字符的用法,以及格式字符和输出表列的对应。【实验报告】1.什么是printf()函数中控制字符串中的普通字符?其用法是怎样的?‘\n’是普通字符吗?是原样输出吗?答:在格式控制字符串内、除%、格式字符和修饰符外的其它字符都属于普通字符,具体包括空白字符、转义字符和可打印字符;用法是原样输出或转义输出;‘\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,b);”中,各参数的含义,及参数间的对应关系;答:第一个参数“%d\t%o\n”规定了输出格式及部分输出内容;第二和第三个参数a,b的值是另一部分输出内容;格式符%d对应于第二个参数a,把变量a中存储的值以带符号十进制整数的形式输出;格式符%o对应于第三个参数b,把变量b中存储的值以八进制整数的形式输出;“\t”是输出制表符,即跳到下一个制表符区(制表符区以八个半角字符为一个区,认为屏幕每行有十个区);“\n”是输出回车换行符,即跳到下一行起始位置。5.“inta=-1;printf(“%d\t%o\n”,a,a);”输出显示是?答:对int变量分配两个字节的编译系统,输出是:-1177777对int型变量分配四个字节的编译系统,输出是:-137777777777实验三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.比较一下,printf()与scanf()中的格式字符串和输出(入)表列在用法上有什么不同之处?为什么一般不建议在输入格式符中使用普通字符?答:不同之处有:1)printf()中的输出表列可以是常量、变量或者表达式,而scanf()中的输入表列必须是变量地址。2)printf()的格式字符中的普通字符是原样输出显示的;scanf()中的普通字符则不会显示在屏幕上、而必须由用户原样输入。不建议在输入格式符中使用普通字符的原因,就是因为无法保证用户会知道具体有哪些普通字符是必须输入的。4.P83的课后题4答:(1)输出:c1=a,c2=b因为输出格式符是%c,意味着输出结果是字符,即ASCII码表中整数97、98对应的字符a和bc1=97,c2=98因为输出格式符是%d,意味着输出结果是整数(2)输出:c1=,c2=ASCII码表中整数197、198对应的字符是和c1=-59,c2=-58char类型变量占据8个二进制位空间,此时十进制数197和198的二进制存储的最高位即符号位为1,当以%d(即带符号十进制数)输出时,会被输出为负数(3)输出:c1=,c2=c1=197,c2=198int类型变量占据16个二进制位的空间,此时197和198的最高位,即符号位为0,所以不会被输出为负数。5.P83的课后题5答:对应于scanf(),在键盘上输入:a=3b=7对应于scanf(),在键盘上输入:8.571.82对应于scanf(),在键盘上输入:Aa6.P83的课后题7注意面积、体积等应定义为double类型,半径、高等应定义为float型,并使用相应的输入输出格式符;圆周率PI应定义为常量(#definePI3.14159,后面没有语句结束标志“;”),常量定义放在函数前面(不能放在函数里面),紧跟#includestdio.h。7.P83的课后题8答:(1)二者皆可。(2)用printf函数,用%d格式符输出(3)不是完全无条件等价的。在以下情况不等价:当变量被赋整数值超过128,此时,char型变量和int型变量的%d输出不同,不等价。(原因:char变量中的最高位会是1,输出负数;相同的数存储在int型变量中最高位是0,输出仍为正数。具体参看第4题。)8.运行以下语句,输出结果是?为什么?Unsignedprice=-1;printf(“%d,%u,%c”,price,price,price);答:输出结果是:-1,65535,(空格)解释:unsignedprice=-1;,则内存中price占据两字节单元,存储内容是1111111111111111;对这个存储内容,以%d输出,是把其看作带符号数,则遵循减一取反后二进制数换算成十进制数后带负号,输出-1;同样的存储内容,以%u输出,是把其看作无符号数,则遵循直接二进制数换算成十进制数,输出65535;同样的存储内容,以%c输出,其中一种编译(由具体的编译平台决定)是取其低八位,转换成十进制数是255,在ASCII码表中找255对应的字符,是空格实验四单步运行、变量观察、算术运算、关系运算、逻辑运算、真假值和选择语句的的执行顺序【目的与要求】掌握单步运行和变量观察这两种程序调试方法【内容与过程】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行(x=5,y=1,age=18)、P94第1-2行的算式(x=5,y=1,age=18)也放入,同上。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.if的几种形式和使用方法,理解分支语句的语句执行顺序2.switch语句的语法形式和使用方法,理解其执行顺序3.各例题和课后题【实验报告】1.单步运行课本P88的例4.3,运行两次,第一次如课本输入“3,7,1”,单步执行,语句执行顺序是?;第二次输入“1,3,7”,单步执行,语句执行顺序是?答:输入“3,7,1”,语句执行顺序是2-3-5-6-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26;输入“1,3,7”,语句
本文标题:实验大纲(参考答案)
链接地址:https://www.777doc.com/doc-2459924 .html