版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE3C语言程序设计模块一认识C语言能力标准:能力标准:了解C语言的作用;熟悉C程序结构;掌握TC知识点:C语言是人和计算机交流的一种工具;C语言程序的执行过程。1.C语言的发展C一种计算机语言,诞生于1972年,是由美国电话电报公司贝尔实验室的Dennis.MRitchieC语言诞生至今已30ALGOL(1960)-CPL(1963年—1970年C(1972年)的演变过程。人机交流解释编译方式。用C语言进行人和计算机交编译:编程首先人将和计算机交流的内容按要求,用C语言写成任务,如要计算机计算#include #include main(){float k=5;m=1;for(j=1;j<=k;j++)m=m*j;printf(“%f!=%f\n”,k,m);}上述用C语言表示的任务,称为程序.所谓程序指由一系指令组成,完成某个具体功能的指令集合。编译计算机本身是一堆零件,它只知道高低电平,对应到二进制就是“0”和“1"这两个符和“1机器语言程序编译.连接为了方便程序的编写,专业人员已经将许多常用的功能写成了固定的程序,并已进行编接.执行经过上述三步之后生成的机器语言程序TurboC目标程序把目标程序交并把执行的结果输出在输出设备上,供人来阅读,从而实现人机交流.编程.c编译.obj连接.exe执行件扩展名是.c。obj。exe.编程.c编译.obj连接.exe执行键盘输入输出结果图图1.1人机交流的过程语言程序的基本结构下面通过几个C语言程序的实例,介绍C语言程序的基本构成和书写格式。【例1-1】已知圆的半径,请编程求圆的面积./*/*求圆的面积*/#include main(){float r=5.365;s=3.14*r*r;/*r,s*//*给半径赋值*//*计算面积*/printf(“s=%f\n”,s); 输出面积*/}【例1-2】请编程求两个整数中的大数。/*/*求两个整数中的大数#include <stdio.h>main(){int num1,num2,m;/*num1,num2m*/scanf(“%d%d”,&num1,&num2); /*输入两个整数*/m=max(num1,num2); /*调用max函数求大数存入m变量printf(“max=%d\n”,m); /*输出大数*/}/*用户设计的函数max*/intmax(intx,inty){if(x>y)return x; /*比较返回大数*/elsereturn y;}结合以上示例,可见C语言程序由以下几部分组成:C每个函数完成相对独立的功能,函数是C语言程序的基本模块单元。main和max是函数名,x,y是函数max的形式参数;一个C语言程序总是从main函数执行结束,程序执行即结束;C语言程序的开头部分一般是编译预处理命令(命令)语句。语言程序的书写格式C语言的语句以分号“长语句也可分在多行书写;,者一个水平制表符;4.注释由“/*”开始,由“*/”结束;{”括起来;。人机交流过程的演示(TC集成调试环境的使用)TurboC是美国Borland公司的产品,Borland1987TurboC1.0TurboC20则是该公司1989,TurboC2。0com(数据、代码、堆栈处在同一64K内存中)文件,还可对数学协处理器(8087/80287/80387TurboC0C5。1 TurboC2.0基本配置要求TurboC2.0可运行于IBM—PCXT,ATIBM兼容机。此时要求DOS2.0448K的RAM,可在任何彩、单色80也可进行浮点仿真,这将加快程序的执行。TurboC2.0的启动DOSTurboC。0安装完毕,将在C盘根目录下建立一个TC,TC下还建立了LIB和INCLUDE,LIB子目录中存放库文件,INCLUDETurboC。0TC子目录下键入TC并回车即可进入TurboC2.0.TurboC。0窗口介绍TurboC2.01.2TC其中顶上一行为TurboC2.0考行。这四个窗口构成了TurboC2.0的主屏幕,以后的编程、编译、调试以及运行都将在这个主屏C语言程序的编辑编辑一个新文件如果要输入或编辑一个新的C语言程序,应该先选File菜单,然后选择子菜单new,编辑窗口被清主菜单编辑区信息窗口参考行图1.2TC工作窗口空,光标定位在左上角LineColNONAM。CInsertFile菜单的子菜单Save,1.3c”不可省略。一旦用新的文件C”被改为新的文件名。编辑一个已存在的文件如果要重新编辑一个已经存在的文件,应选择File菜单下的子菜单Load,这时会弹出一个类似于图1.3的对话框,当用户输入要打开的文件名和路径后,即打开了此文件,这时用户就可对其进行重新编辑并保存.编辑窗口这时会显示打开的文件名。重命名一个文件如果要对正在编辑的文件重命名,请选择File菜单下的子菜单Writeto。3.5。5 C语言程序的编译和连接.在TurboC进行编译、也可以将编译和连接合起来作;4图1.3图1.4行,也可以一次对多个文件模块的程序进行编译、连接和运行。1.对单文件程序的编译和连接编译选择CompileComplieto译后,目标文件将保存在当前工作目录或配置文件TCCONFIG.TC所指定的输出目录中.连接有了目标文件后,还不能直接运行,还要将目标文件与系统提供的库函数和包含文件等连接成一个可执行文件(扩展名为。exe)才,能运行这个.exe文件.选择Compile菜单的子菜单LinkEXEfilTCCONFIGTC成一个可执行文件。应注意的是,必须是在编译没有错误的情况下才能进行连接。一次完成编译和连接选择Compile菜单下的子菜单MakeEXEfie即可一次完成编译和连接,从而在当前工作目录或者配置文件TCCONFIG.TC所指定的输出目录中生成一个目标文件和一个可执行文件.实现菜单的功能。如进行存盘操作,需要选择菜单的子菜单F2键,相当于进行了上面的选择。对多个程序文件进行编译和连接TurboC提供了多个程序文件进行编译和项目文件中包含这些文件,然后将该项目文件交付编译和连接,就可以得到可执行文件了。具体步骤如下:1)在TurboC.pr。4SaveWriteopr,以表示建立的是项目文件。3)建立项目。选择Projec菜单的子菜单Projectnae输入刚建立的项目文件名。CompileMakeEXEMakeEXEProject中指定了项目文件,则系统优先编译该项目文件,而不是编译编辑窗口中的文件。应特别注意,在处理完一个多程序文件的编译和连接后,应及时将清空,否则就会在编译连接时仍然把项目文件当做编译对象,而不是编译编辑窗口中的源文件。5编译和连接过程中的显示信息图1.5(1)15所示,窗口最上方的Compiling一行表示编译的主文件是HELLO.C;第二行正在编译的是正在编辑的文件HELLO。C;接下来表示220,警告0个,错误1个;下面一行表示占用的存储空间为299KB成功(Success)或者有错误(Errors),请用户按任意键继续。需要解释的是,只有编译没有错误时,才可以进行连接,否则仍需要进行编辑,再编译。连接过程中出现的信息如图1.6,,0,才表示连接成功,并且最下面也有文字提示Success.图1.65。6 C语言程序的运行.下几种方法:TC的集成环境中运行6PAGEPAGE21选择Run菜单下的子菜单Run,即可运行程序。DOS环境下运行在DOS提示符下,输入可执行文件的文件名和路径,即可运行程序。WINDOWS环境下运行(1)选择WINDOWS(2).5.7 TC集成环境中查看运行结果在TC集成环境中有一个用户屏幕Screen),换到用户屏幕,选择Run菜单下的子菜单UserScreen,或用快捷键Alt+F5屏幕按任意键即可进入编辑窗口。语言学习要求;勤于思考,多查阅资料;多进行实践;具有团队协作精神;分组学习。实验一TC集成调试环境的初识实验目的TC集成调试环境;TCC语言程序的过程;C语言程序的组成及书写格式。7。2实验要求普通微机;TC集成调试环境.7.3实验内容及步骤TC集成调试环境的熟悉启动TC集成调试环境;熟悉各菜单项;1。3熟悉各功能键;1.4熟悉编辑窗口各部分的意义;1。5退出TC集成环境。1。1】程序并记录相关信息2。1输入【例1.1】程序,输入时省略注释部分.源程序:2。2用program1.c文件名保存文件在自己的目录下。23编译program1c源程序文生成program1obj目标文该步可能需要反复进行编译提示信息: 修改情况记录:错误原因分析:连接程序,生成可执行文件。exe(2。3和。4两步可能需要反复进行连接提示信息: 修改情况记录:错误原因分析:信息.
执运)program1。exe运行结果:2。6修改【例1。1】程序,求半径为6.2圆的面积,重复2.1~2.5步骤,并记录每一步相关1.2】程序并记录相关信息program2。c2.。5!,并调试该程序,记录每一步相关信息.7.4思考题C语言程序调试的步骤。为什么程序修改后需要重新进行编译、连接和运行?TC为什么称为集成调试环境?课后练习(要求所有程序必须上机运行通过)模仿讲议中C.模仿讲议中C语言程序,编写程序求两个整数中的小数。上机运行下列程序,并记录输出结果。#include #include main(){printf(“Hello C program world!\n”);printf(“I am an university student}3题的程序,编程输出下列图形。**** *******4题的程序,编程输出下列图形(可选做)** ** **********C?其程序的基本单位是什么?补充阅读9。1计算机语言的发展过程第一代语言-———机器语言(低级语言)机器语言是由0、1组成的机器指令集合,是面向机器的语言.要使计算机按人的意图工作,就必须使计算机懂得人的意图,接收人向它发出的命令和信息。人要和机器交换信息就要解决一个“语言”的问题。计算机并不懂人类的语言(无论是中文或英文),例如,我们要写y=2x+30和11,01让计算机执行各种不同的操作。01,所以,通常称之为机器语言.但是,对于使用计算机的人来说,这是十分难懂的语,,,,人们研究了一种汇编语言。第二代语言-—--汇编语言(低级语言)汇编语言也叫符号语言,它是把用二进制数表示的指令,用一些符号来表示,例如,用表示操作的英文缩写来代替汇编语言指令代码。下面是一段汇编语言代码。LDAA取出AADDBA和B相加STAC存入CPRINTC打印CSTOP停止就叫汇编语言。像LDAADD记符用汇编语言编写的程序,称为汇编语言程序。.,汇编后产生的机器代码称为目标程序。翻译可由人手工完成,也可用计算机.汇编过程如图1。7所示。汇编程序(事先放入计算机)汇编程序(事先放入计算机)汇编语言机器指令(输入)源程序(汇编)目标程序(执行)结果输出图1.7汇编过程汇编语言使程序设计工作前进了一大步,但是仍然存在很多缺点:第一,不便于我们求解问题过程的描述,如一个数学公式,汇编语言的表达式与人们的习惯表达形式差距很大;第它仍然是面向.第三代语言--——算法语言(高级语言)算法语言是更接近人的自然语言和数学表达式的一种语言,由表达不同意义的“关键字"和“表达式”按照一定的语法语义规则组成、完全不依赖机器的指令系统。这样的高级语言为人们提供了很大的方便,,,BASICALGOLCOBOLC等都是高级语言。计算机不能直接理,,一种叫解释方式,另一种叫编译方式。源程序输入计算机,编译程序就把源程序整个翻译成用机器指令表示的目标程序,然后执行该目标程18所示。编译程序(事先放入计算机)编译程序(事先放入计算机)高级语言机器指令(输入)源程序(汇编)目标程序(执行)结果输出图1.8编译过程,翻译,译出一句立即执行,即边解释边执行。其过程如图19所示。C语言采用的是编译方式.地使用高级语言编写程序进行各种科学计算和事务处理,并且由于采用编译(解释)程序代替人工翻目前,世界上已有100多种高级语言,比较流行的有几十种之多,比如:Translator的缩写,1954.COBOL(CommonBusinessLanguage的缩写).PASCAL语言是最早出现的结构化语言,适用于计算机教学。PL/1.Ada适用于大型软件工程。C适用于编写系统软件。BASIC语言是一种简单会话式语言,在世界上应用最广泛。第四代语言——--非过程化语言(高生产率语言)非过程化语言就是目前比较流行的面向对象语言,该语言只需要编程人员对问题进行描述。比如C++/VisualC++,JAVA语言等。解释程序(事先放入计算机)解释程序(事先放入计算机)高级语言计算机执行(输入)源程序(解释并执行)结果输出图1.9解释过程目前也出现了智能化语言,主要用于人工智能等领域。比较有代表性的有LISP语言和PROLOG语言。9。2C语言的特点C语言是一种出现比较晚的高级语言,它吸取了早期高级语言的长处,克服了某些不足,形成了自己的风格和特点。总的来说,C语言是一种简洁、功能强大、可移植性好的结构化程序设计语言。C语言具有如下特点:C语言简洁、紧凑;C;C语言具有丰富的数据类型;C;C语言可以直接对硬件进行操作;虽然C语言具有灵活简炼的特点,但在有些方面也存在不足,了解其不足有助于使用,避免出现错误。其不足简单概括如下:运算符多,难于记忆;C在许多情况下不做检查,对类型要求不够严格;C判定越界,这样容易造成数据存储方面的混乱。总之,C语言有诱人的优点,也有值得注意的不足,使用时应特别加以注意。模块二C语言程序设计入门能力标准:能力标准:1.2.知识点:1.2.3.能编写、分析基本的C语言程序;熟练掌握程序的多种调试方法。基本数据类型;各种运算符及表达式;三种基本的程序结构。案例一一个经典C语言入门程序—helloworld。c教学目的:C语言程序结构;printf函数输出字符串的功能;clrscr函数的功能与使用;熟悉用编译预处理命令#include命令包含头文件。/*Helloworld!*/#include main(){printf(“Helloworld!\n”);}Cmainmain/*Helloworld!*/#include main(){printf(“Helloworld!\n”);}一、案例分析“/*Helloworld!*/”行是一个注释行,用来说明该段程序的功能。一般如果在程序的开头,.“#include〈stdio。h#include”是编译预处理命令,其作用是将一个C语言源程序文件的全部内容包含到当前这段程序中stdio.h>include#include#include命令行应放在程序的开头位置,故有时也把被包含的文件称为头文件。h”作为扩展名(后缀,如stdih,“。”或其它的扩展名。,系统先到存放C库函数头文件文件,若找不到,再按标准方式查找。一般地,如果是调用库函数而用#include命令来包含相关的头(通常存放在当前目录中则用双引号。stdioh文件是C语言的标准输入输出头文件printf函数、scanf函数、getchar函数、putchar函数.[函数返回类型]{函数体;}函数名([形式参数定义])/*函数的首部*//*函数的实现部分*/”为止是主函数main(首部,main是一个特殊的函数,它的首部标准格式是[in]mai([intargc,int*arg[,“in”说明main函数的返回值是整型maiintargc,int*argv]是main函数的形式(”是函数定义不可缺少的部分。在目前我们的使用中只需要使用main函数最简单的定义形式,即“main[函数返回类型]{函数体;}函数名([形式参数定义])/*函数的首部*//*函数的实现部分*/本例中的mainprintfHelloworl!\”Helloworld二、C语言函数简介C,,用户自定义函数需要编程者自己编写。比如我们前面见过的printf.任何一个函数都需要先定义,然后被调用。函数的定义同上述main函数的定义,函数的调用格式如下:函数名(实际参数)对于库函数printf,其定义包含在stdio.h头文件中,因此我们要使用它时,需要用#include命令把stdio。h文件包含到当前的程序中,然后才能调用printf函数.printf函数的一种调用格式如下:printf(“字符串")world!,显world!.”字符的作用是换行,即下一个printf字符串123studen三、显示学生管理系统的主菜单在未讲到C,.****student management ****student management system**********InputstudentrecordsOutputstudentrecordsInsertanewstudentDeleteastudentmenu********FindastudentonnameornumberSortonscoreSavetofileImportfile0.ExitPleaseinputyourchoice(0~8):*************************************************根据上述要求,我们需要编程输出这样的菜单,通过我们已学的知识,可以写一个主函数,函数体就是用printf输出每一行即可.程序如下:/*/*学生管理系统输出主菜程序*/#include<stdio.h>main(){printf(“****student management systemprintf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*InputstudentrecordsOutputstudentrecordsInsertanewstudentDeleteastudentmenu****\n”);*\n”);*\n”);*\n”);*\n”);FindastudentonnameornumberSortonscoreSavetofileImportfile0.ExitPleaseinputyourchoice(0~8):*\n”);*\n”);*\n”);*\n”);*\n”);*\n”);printf(“*******************************************\n”);}通过这个实例我们可以看到,在实际应用中,要输出系统菜单,主要是调用printf函数,一行一行输出字符串。四、clrscr函数如果在TC,,可以看到显示器上连续重复显示主菜单,主菜单总是显示在屏幕的上方。为此我们需要在主菜单显示前,先擦除原来的clrscr函数,它的定义在conio.h头文件中,因此将前述的程序作如下修改如下():斜体部分是新增加的语句行include<conih”行是将clrscr函数的定义文件包含进当前clrsc(行是通过调用库函数clrscr,也不需要返回值。五、实验二printfclrscr函数实验目的进一步熟悉TCCC掌握用printfclrscr/*/*学生管理系统输出主菜程序*/#include<stdio.h>#include<conio.h>main(){clrscr();printf(“****student management systemprintf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*printf(“*InputstudentrecordsOutputstudentrecordsInsertanewstudentDeleteastudentmenu****\n”);*\n”);*\n”);*\n”);*\n”);FindastudentonnameornumberSortonscoreSavetofileImportfile0.ExitPleaseinputyourchoice(0~8):*\n”);*\n”);*\n”);*\n”);*\n”);*\n”);printf(“*******************************************\n”);}实验内容及步骤1.调试“Helloworld!"程序,并做以下记录。程序:编译结果: 修改记录:运行结果:2。连续运行三次上述程序,记录输出结果。运行结果:如果去除print“Helloworl!\n\n2.1.1程序:编译结: 修改记录:输出结果:输出结果:6。调试添加clrscr函数后的“显示学生管理系统主菜单"程序,连续运行三次,记录结果并与5运行结果比较,分析输出结果不同的原因。输出结果:7。编程输出下图.**** ******程序:编译结果:修改记录:输出结果:5。3思考题(1)clrscr函数有没有将屏幕全部擦干净?为什么有时屏幕的下部擦不干净?六、习题编程输出下列图形。8888888888888888(a)8888888888888888(b)8888888888(c)88888888(d)请编程输出下列表头。********常州轻工职业技术学院学生成绩表********学号姓名班级语文数学英语政治计算机总分名次学号姓名班级语文数学英语政治计算机总分名次案例二求任意两个数之和(差、积、商)教学目的:掌握整型和实型变量的定义;掌握整型和实型变量的数据范围;掌握用scanf掌握用printfC数整型实型,在程序编写上有所区别整型:/*/*求两个整数的和*/#include<stdio.h>#include<conio.h>main(){intnum1,num2,sum;clrscr();sum=0;/*定义三个整型变量*//*清除屏幕*//*和的初值置为0*/printf(“Pleaseinputtwointegers:”);显示提示字符scanf(“%d”,&num1); /*输入第一个整数*/scanf(“%d”,&num2); /*输入第二个整数*/sum=num1+num2; /*求两个整数的和,并存入变量sum中printf(“num1andnum2is:%d\n”,sum); /*输出和值*/}一、案例分析上述程序的功能是通过键盘输入两个整数,数。“intnum1,num2,sum;”行根据注释可知是定义了三个整型的变量。变量就是如同数学中用到的、y等,可以改变它们的值,在C,且第一个符号不能是数字。如“_sum,num,score"等都是合.123,-7,34.6,—0.76等都是常量,前两个称为整型常量,后两个称为实型常量。整型变量的定义C语言中整型变量又分为基本整型int、短整型shortint或shor、长(longintlong)(unsignedunsignedshortint/unsignedunsignedlongint/unsigned如:intnum1,num2,sum; 表示定义了三个基本的整型变量;shorta;或者shortint;表示定义了短整型变量a;longint;或者long;表示定义了长整型变量c;unsingedint表示定义了基本的无符号整型变量各种整型变量在不同的计算机机型中存放的数的范围不同,也即表示数所用的字节数不同,见表2-1.表2-1 整型变量所占用字节数和数的范围数据类型数据类型int所占字节数(二进制位数)2(16)数的范围-32768~32767即shortint/short2(16)(215-1)-3276~32767即—21(15—1)longint/long4(32)—2147483648~2147483647即—231~(231—1)unsignedint2(16)0~65535即(0~216-1)unsignedshortint/unsignedshort2(16)0~65535即(0~216—1)unsignedlongint/unsignedlong4(32)04294967295即0(232-)“sum=0;”行是给存放和值的变量赋初值0。“print(“Pleaseinputtwointegers:”;Pleaseinputtwointegers”,以提示用户输入两个整数。num1中。scanf函数scanf,scanf义包含在stdioh.scanf函数调用格式scanf(格式串,地址列表)scanf式串是由“%”开始,其后跟不同的类型格式符。具体格式符见表2—2.表2-2 scanf函数的格式符格式符格式符d,iuoX,xcs说明fe输入有符号十进制整数输入无符号十进制整数输入无符号十六进制整数(大小写作用相同)输入单个字符输入实数,可以是小数形式及指数形式与f作用相同,可以互换“&num这个地址就是变量num1在内存中分配的存储单元的首地址“scanf,&numscan(&num1行的作用等待用户从键盘给变量num2输入值。上述两条语句也可合并为一条语句scanf%d%d"&num,&num;<tab〉进行分隔。sum=num1+num”行是求num1和num2并把和存入变量sum中。andnum2is:sum的值这里我们见到了printf函数的第二种调用形式:printf(“控制字符串”,输出项列表)格式串printf,printf2—3。表2-3 printf函数的格式符格式符格式符d,iu说明以带符号的十进制形式输出整数(正数不输出符号)以无符号十进制形式输出整数ooX,xcsfE,eG,g以八进制无符号形式输出整数(不输出前导符0)(不输出前导符0x则在输出十六进制数的a—f时以小写形式输出;用X时则以大写字母输出以字符形式输出,只输出一个字符输出字符串以小数形式输出单、双精度型数,隐含输出6位小数以指数“e"或“E”形式输出实数(如1。2e+02或1。2E+02)选用%f或%e格式中输出宽度较短的一种格式,0,用G数形式输出时,则指数以大写表示普通字符串在printf原样显示。如andis:%d,sumnum1andnum2inum1andnum2idnum1andnum2is,然后输出sum%d表示输出整型数据项。8.案例运行结果回车62回车输出结果:num1andnum2is:96二、应用举例上述案例是求两个整型数据的和,如果要求的是两个实数的和,应如何编写程序呢?【例2-1】请编程求两个实数的和.分析C实数的和,同样也需要事先定义实型变量,然后再求和。其编程方法同求整数和一样,只是现在的对象是实数。实型变量的定义Cfloa(doubl。float;表示定义了单精度类型变量;表示定义了双精度类型变量型数据占用的存储字节数和表示的数的范围是不同的。其中float4个字节(32个二进制位),。4e—38~3。4e+38,但只能提供7位有效数字;double型占8个字节64个二进制位1.7—3017e+30,可提供16位有效数字。intfloat;printf%d%f。/*求两个实数的和/*求两个实数的和*/#include<stdio.h>#include<conio.h>main(){float f_num1,f_num2,f_sum;/*定义三个实型变量*/clrscr(); /*清除屏幕*/f_sum=0; /*和的初值置为printf(“Pleaseinputtwo显示提示字符scanf(“%f”,&f_num1); /*输入第一个实数*/scanf(“%f”,&f_num2); /*输入第二个实数*/f_sum=f_num1+f_num2; /*求两个实数的和,并存入变量f_sum中printf(“f_num1andf_num2is:%f\n”,f_sum); /*输出和值*/}【例2-2】请编程求两个实数的差。本例只需要将例2—1程序中语句“f_sum=f_num1+f_num2;"中的“+”改为“—"即可。【例2—3】请编程求两个实数的商及积。本例同例2-2,修改一下运算符即可。【例2—4】请编程求两个整数的商。根据前面的例题,我们自然可以很轻松地将案例程序中的“+"改为“/”即可。程序如下:/*/*求两个整数的商*/#include<stdio.h>#include<conio.h>main(){intnum1,num2,sum;clrscr();sum=0;/*定义三个整型变量*//*清除屏幕*//*和的初值置为0*/printf(“Pleaseinputtwointegers:”);显示提示字符scanf(“%d”,&num1); /*输入第一个整数*/scanf(“%d”,&num2); /*输入第二个整数*/sum=num1/num2; /*求两个整数的商,并存入变量sum中printf(“num1dividenum2is:%d\n”,sum); /*输出商值*/}运行上述程序,如果输入:16回车4回车则输出结果为:num1dividenum2is:4如果输入:16回车5回车则输出结果:num1dividenum2is:3结果分析:C语言规定两个整数相除的结果还是整数,所以16除5的结果是3。三、小结.C.C语言的变量有类型之分,而且分得比较细,要根据需要选择不同的类型。printfscanf这两个库函数,定义了多种格式,需要针对不同的对象选择不同的格式符。四、实验三求两个数和、差、积、商4。1实验目的掌握整型、实型变量的定义方法;printfscanf%d%f熟悉实型、整型变量所表示数的范围。实验内容及步骤程序:编译结: 修改记:输入数据: 运行结果:2-1程序:编译结果: 修改记录:输入数据: 运行结果:2-22-3编译结果: 修改记录:输入数据: 运行结:2-4,记录结果,并分析为什么结果不精确编译结果: 修改记录:输入数: 运行结果:5.编程求两个整数的并调试。程序:编译结果: 修改记录输入数据1:12和18输出结果:输入数据2:56和87输出结果:输入数据3:32765和3245输出结果:4。3思考题:请验证2.5?把所有printffe的功能区别。如果把printf()五、习题(所有程序必须上机调试通过).根据商品原价和折扣率,编程计算商品的实际售价。=(-32)*5/9案例三求多个不同类型数的和(平均值等)教学目的:;进一步熟悉整型和实型变量的定义。后两位,第三位进行四舍五入。程序如下:/*/*求两个整数的平均值*/#include<stdio.h>#include<conio.h>main(){intnum1,num2;floatave;clrscr();ave=0;/*定义两个整型变量*//*清除屏幕*//*平均值变量的初值置为0*/printf(“Pleaseinputtwointegers:”);显示提示字符*/scanf(“%d%%d”,&num1,&num2); /*输入两个整*/ave=(num1+num2)/2.0; /*求平均值,并存入变量ave中*/ave=(int)((ave*100+0.5))/100.0; 对平均值进行四舍五入精确到小数点后两printf(“average is:%f\n”,ave); /*输出平均值*/}一、案例分析根据实际需要,定义了两个整型变量,用于存放两个整数值,一个单精度变量ave,用于存放两个整数的平均值。ave=(num1+num2)/。”行是计算两个整数的平均值,先计算num1+num2的和,和值仍为整数,然后计算num1+num22.02,将计算的平均值赋给变量ave.混合类型数据运算的类型转换规则当不同类型的数据进行混合运算时,需要先把不同类型的数据转换成统一的类型,然后再进行运算。高低doublefloatlongunsignedintchar,short图2.1高低doublefloatlongunsignedintchar,short图2.1标准类型数据转换规则22PAGEPAGE41图中横向向左的箭头表示必定发生的转换,如短整型数据必须先转换成整型0”表达式中,先进行的“num1+num2”运算,不需要进行类型转换,在进行“(num1+num2)/2.0”double型,2.0double型,然后进行运算,结doubleave,ave变量是float,准,因此先将double类结果的转换为float类型,再赋给变量ave。ave(int(ave*100+5))/10100倍,然后加05,目的是进行四舍五入,第三步是对ave*100+05取整,取整操作是用C(int)进行转换,即(int)((ave*100+0。5),实现取整运算,舍去小数部分,最后是将前面运算得到的整数缩小100倍,保留两位小数。本案例的其余部分同前。二、应用举例【例3-1】假设银行定期存款的年利率rate为2。25%,并已知存款期限为n年,存款本金为capital元,试编程计算n年后可得到的本利之和deposit。(保留小数点后两位)分析:本例存款额的计算公式为deposit=capital(1+rate)n。pow函数:math.hpow(x,y)xy,xy次幂其调用形式为pow(x,y),返回值为double型.(1+rate)n计算,调用pow(1+rate,n)程序如下:本例中与其它程序有一个重要的区别是多了“#include〈math。h>”行,其作用是把math.h头文件包含进行来,目的是在程序中需要调用pow函数,来计算(1+rate)n值。/*/*计算整存整取的本利*/#include<stdio.h>#include<math.h>#include<conio.h>main(){intn; /*nfloatrate,capital,deposit;clrscr(); /*清除屏幕rate=0.0225;printf(“Pleaseinputcapitalandyears:”);/*显示提示字符*/scanf(“%f%%d”,&capital,&n);/*输入存款额和年限*/deposit=capital*pow(1+rate,n);deposit=(int)((deposit*100+0.5))/100.0;printf(“deposit is:%f\n”,deposit);/*对本利进行四舍五入精确到小数点后两位*//*输出本利值*/}三、习题已知三角形的三条边a,b,c,请编程求三角形的面积(math.hsqrt函数)分析下列程序的执行结果。#include<stdio.h>#include<math.h>#include#include<stdio.h>#include<math.h>#include<conio.h>main(){inta=1,b=2,c=2;floatx=10.5,y=4.0,z;clrscr();z=(a+b)/c+aqrt((int)(y))*1.2/x+x;printf(“z=%f\n”,z);}已知一元二次方程的三个系数a,b,c,并且该方程存在实数根,请编程求实根。四、实验四不同类型数的混合运算4。1实验目的掌握整型、实型数据的混合运算;powsqrt函数;掌握四舍五入的处理方法。4。2实验内容及步骤程序:编译结果: 修改记:输入数据: 运行结果:。023。运行【例3—1】的程序,并记录相关信息。程序:编译结果: 修改记录输入数: 运行结:4。调试习题1的程序。程序:编译结果: 修改记录输入数: 运行结果:5。调试习题2的程序。程序:编译结果: 修改记录:输入数据: 运行结果:思考题.查阅附录,熟悉stdio。h,math。h两个头文件所包含的函数的定义。234.56781)案例四比较两个数的大小教学目的:掌握基本的if……else……语句格式。#include<stdio.h>#include<conio.h>main(){intnum1,num2,max;clrscr();#include<stdio.h>#include<conio.h>main(){intnum1,num2,max;clrscr();scanf(“%d%d”,&num1,&num2);if(num1>num2) /*max中max=num1;elsemax=num2;printf(“maximumis=%d\n”,max);}一、案例分析该案例中我们唯一不熟悉的语句是if……else……,其功能是首先计算表达式“num1>num2”的值,然后根据计算结果决定执行某一分支。if……else……语句的基本格式if(表达式)语句组}[else{语句组2]if……else……语句的执行过程当执行到if……else……语句时,其过程如下:if表达式;表达式0,表达式02.else部表达式0时,什么也不做;,程序接着执行if……else……语句的下一条语句。if……else……语句执行过程的图形表示称为流线,表示程序执行流向;称为判断框,它使程序出现两个分支;称为处理框;…………0计算表达式的值012……4.1if……else……语句执行图解根据if……else……语句的执行过程图解4.1可知,在一次执行if……else,只可能执行语句组1或者执行语句组2.if……else……410.表达式等.C丰富+(”等运算符,这类运算符称为算术运算符。4。1运算符的优先级当一个表达式中出现不同的运算符时,级别高的运算符先做.如算术运算“+ - * / ()”从左到右级别依次升高。运算符的结合性当一个运算对象两侧运算符的优先级相同时,这时根据运算符的结合性来合性。如3+5-85+合C语言中定义的关系运算符、<=优先级相同,前四个的优先级高于后两种。4.3。10假真".〉30,也就是真5>5的值为假5>=5非,即为真。43.2关系表达式用关系运算符连接起来的式子称为关系表达式。如5+8==7-2达式中,既有关系运算符,又有算术运算符,算术运算符优先于关系运算符,所以先进行算术运算,然.(关键是注意关系运算必须是同类型的量才能进行比较,即关系运算)括起来。本案例中if……else……语句的执行if(num1〉num2)max=num1;elsemax=num2;〉num2”的值,如果num1大于num20真0假;非0,则将num1的值赋给变量max,即执行“max=num1;"max=num”语句;不管执行“max=num1;max=num2”分支,最后都接着执行“printf(“maximumis=%fd\n"max);.……0num1>num2……0num1>num20max=num1max=num2……图图4.2案例四if……else……语句执行图解if……else,ifelse12要向后缩进一定的字符。二、应用举例【例4—1】用省略else部分的if语句改写本案例。程序如下:#include<stdio.h>#include#include<stdio.h>#include<conio.h>main(){intnum1,num2,max;clrscr();scanf(“%d%d”,&num1,&num2);max=num2;if(num1>num2) /*max中max=num1;printf(“maximumis=%fd\n”,max);}上述的改写是先假设num2,如果num1num2,即表达式“num1>num2”的值为0num1较大,num1maxnum2max不需要再赋值了。上述if4—3所示.【例4-2】请编程输入学生成绩,并且根据成绩判断其是否通过考试,如果成绩大于等于60passefailepassefaile".成绩的输入用scanfscore然后判断scoreelse并输出相应的提示字符。程序如下:…………0num1>num20max=num1……图4.3if……语句执行图解#include<stdio.h>#include#include<stdio.h>#include<conio.h>main(){floatscore;clrscr();scanf(“%f”,&score);if(score>=60) /*scoreprintf(“passed\n”);elseprintf(“failed\n”);}【例4—3】对于用if……else.#include<stdio.h>#include<conio.h>main(){intnum1,num2,max;clrscr();scanf(“%d%d”,&num1,&num2);max=(num1>num2)?num1:num2;printf(“maximumis=%d\n”,max);}条件运算符其使用形式为(表达式1?表达式(表达式,其计算10(真2算表达式;如果表达式1的值为0#include<stdio.h>#include<conio.h>main(){intnum1,num2,max;clrscr();scanf(“%d%d”,&num1,&num2);max=(num1>num2)?num1:num2;printf(“maximumis=%d\n”,max);}注:条件运算符是右结合性。三、习题如果将【例41max=num2max=num将案例改成比较两个实数的大小。。5。510,按批发价计算。设某顾客购买该商品weight千克?四、实验五基本if……else……语句实验4。1实验目的if……else……语句的功能;熟悉关系运算符及关系表达式的运算;4.2单步运行程序,TCF7键程序执行一行,在程序执行userscreen案例程序为例讲解单步调试程序的方法。输入程序,并保存;编译程序;连接;添加观察变量Alt+B打开Break/watch菜单;addwatch命令;输入变量num1;重复上述三步二次,加入变量num2max;添加了观察变量后,TC界面的下部就出现了一个watch窗口,所添加的观察变量都在watch窗口。用F7运行程序,每按一次,观察并记录watchif……else……语句所构成的分支结构程序。,userscreen,watch窗口所看到的max的值进行比较。if……else根据表达式值的不同,选择不同的分支。4。3实验内容及步骤用单运行程序的方法,执行【例.程序:编译结果:修改记录:1:3456回车第一次按F7键,num1=,num2=,max=,语句:第二次按F7键,num1=,num2=,max=,语句:第三次按F7键,num1=,num2=,max=,语句:……输入数据2:78回车-10回车第一次按F7键,num1=,num2=,max=,语句:第二次按F7键,num1=,num2=,max=,语句:第三次按F7键,num1=,num2=,max=,语句:……用单步运行程序的方法,执行【例4—2程序:编译结果:修改记录:输入数据1:68回车第一次按F7键,score=,语句:第二次按F7键,score=,语句:第三次按F7键,score=,语句:输入数据2:57回车第一次按F7键,score=,语句:第二次按F7键,score=,语句:第三次按F7键,score=,语句:……31,2,3,(自己设计记录格式。4。用同样的方法调试例4-3的程序,并做好记录。4。4思考题:两次运行程序,应如何选择数据才能保证if语句的分支分别被执行到?是不是每个变量的值都需要进行观察?为什么?单步运行程序的作用是什么?案例五100分制成绩与等级制成绩转换教学目的:掌握嵌套if……else……语句的一种格式;switch#include<stdio.h>#include<conio.h>main(){floatscore;clrscr();scanf(“%f”,&score);if(score>=90)printf(“A”);elseprintf(“#include<stdio.h>#include<conio.h>main(){floatscore;clrscr();scanf(“%f”,&score);if(score>=90)printf(“A”);elseprintf(“B”);elseprintf(“C”);elseprintf(“D”);elseprintf(“E”);}E,90分以为分为B,70~79分为分为分以下为。程序如下:一、案例分析本案例是利用if……else处理多分支,不可以出现其它的次序。if……else……语句的嵌套格式之一if(条件A){语句组1;}elseif(条件B)语句组elseC){语句组3;}……else语句组}注:if后的条件可以是任何的表达,包括前面已经涉及到的算术表达式和关系表达式.嵌套if……else……语句的执行过程A的值1后if的下一条语句;A0,则计算条件B,022后,程if的下一条语句;依次类推,直到所有条件的值都为0,则执行语句组nif语句.嵌套if……else……语句的执行过程图解…………非真)条件A0(假)1非真)条件B0(假)2非真)条件B0(假)3…………5.1嵌套if……else……语句执行图解本案例嵌套if……else……语句执行过程图解(52)…………非真)score>=900(假)printf(“A”)非真)score>=800(假)printf(“B”)非真)score>=700(假)printf(“C”)非真)score>=60……0(假)printf(“D”)printf(“E”)……5.2本案例嵌套if……else……语句执行图解案例执行过程演示如果一个学生的成绩是7575,这时对于用嵌套的if……else……语句所构成的多分支结构程序的执行如图5.3红色部分(虚体)执行的语句就是斜体所示的语句。对于分支结构程序,我们上机调试程序时需要注意选择输入数据,保证每个分支至少执行次,如9080~8970~7960~6960分以下五个数据,运行程序五次,分别输入这五个数据,以观察程序执行的代码,从而可初步确认程序基本正确。如果要比较完(即边界值这里还请大家注意,一般情况下我们的程序只能说到目前为止没有发现错误,不能说一个程序完全正确。…………非真)score>=900(假)printf(“A”)非真)score>=800(假)printf(“B”)非真)score>=700(假)printf(“C”)非真)score>=60……0(假)printf(“D”)printf(“E”)……5.375时分支选择情况#include<stdio.h>#include#include<stdio.h>#include<conio.h>main(){floatscore;clrscr();scanf(“%f”,&score);if(score>=90)printf(“A”);elseif(score>=80)printf(“B”);elseif(score>=70)printf(“C”);elseif(score>=60)printf(“D”);elseprintf(“E”);}二、用switch语句改写案例switch语句是C语言中专门用来实现多分支结构的语句.使用switch语句实现多分支结构比用嵌套的if……else……要方便灵活。switch语句格式switch(表达式{case 常量:语句组1;[brea]case 常量2:语句组case 常量3:语句组3;[break;]……case nn;[break;][default:语句组n+]}switch语句执行过程switch.C单引号“’单个字符等。根据表达式的值,从上到下依次判断表达式的值是否与case后的某个常量匹配(相同,程casebreak语句,则从入口处一直执行程序至switch止.则从defaultbreak语句或switch语句外层的“}”止.常量:指在程序的执行过程中其值不变量的量。如整型常量56,-123,实型常量5。67,-0。98,3。2e+6,字符常量’w’,'2’,’M’。格式中用“[]”括起来的部分是可选部分,根据需要进行选择。breakbreak,没有参数,其作用是结束switchswitch的下一条语句执行。#include<stdio.h>#include#include<stdio.h>#include<conio.h>main(){floatscore;clrscr();scanf(“%f”,&score);switch((int)(score)/10{case10:case9:printf(“A”);break;case8:printf(“B”);break;case7:printf(“C”);break;case6:printf(“D”);break;default:printf(“E”);}}用switch语句改写的关键是switch后表达式的确定及casescore0~10之间。常量109说明score90分以上,所以当score90分以上时,将会从case10:case9处找到Abreak语句,结束switch语句的执行。当输入其它分数时,根据计算的值找到相应case入口,输出对应符号,然后结束switch语句的执行。三、应用举例【例5—1】分别用嵌套if……else……语句和switch路程:s<500,没有折扣500<=s〈1000,5%折扣1000〈=s〈1500,10%折扣1500<=s〈2000,15%折扣s>=2000,20%折扣假设每公里每吨货物的基本运费为p,货物重量为,距离为折扣率为d,则总运费f式为:f=p*w*s*(1—d)if……else第一个条件是s第二个条件是s<1000,第三个条件是s<1500,依次递进。然后根据条件,选择折扣d,用f=p*w*s*#include<stdio.h>#include<conio.h>main(){float clrscr();#include<stdio.h>#include<conio.h>main(){float clrscr();scanf(“%f”,&p);输入基本运费;scanf(“%f”,&w);输入货物重量;scanf(“%f”,&s);if(s<500)d=0;elseif(s<1000)d=0.05;elseif(s<1500)d=0.1;elseif(s<2000)d=0.15;elsed=0.2;f=p*w*s*(1-d);printf(“weight=%f,distance=%f,fee=%f”,w,s,f);输入运输距离;}#include<stdio.h>#include<conio.h>main(){float clrscr();scanf(“%f”,&p);输入基本运费;scanf(“%f”,&w);输入货物重量;scanf(“%f”,&s);switch((int)(s)/500){case0:d=0;break;case1:case2:d=0.1;break;case3:d=0.15;break;default:d=0.2;}f=p*w*s*(1-d);printf(“weight=%f,distance=%f,fee=%f”,w,s,f);}如果用switch语句实现,关键是找到运输距离和折扣之间的关系,距离每增加500公里,折扣率增加5%,因此把距离除以500作为switch的表达式,case后的常量是从0开始的整数。程序如上。本例在运行输入数据时,必须保证输入的都是正数。四、习题分别用嵌套if……else……语句和switch.根据体重与身高,得出体指数t=体重W/(身高h)2 (w单位为kg,h单位为标准如下当t〈18时,为低体重;当18<=t〈25时,为正常体重;当25<=t<27时,为超重体重;当t>=27时,为肥胖。26,23(Lower(Middleclas),5岁、6岁孩子进大班Higherclas。请编程输入孩子年龄,输出年龄及进入的班号。输入三个整数、bc,请编程按从大到小顺序输出它们。五、实验实验六switch和嵌套if语句5。1实验目的掌握嵌套if……else……语句的使用;switch实验内容及步骤1。用单步运行程序的方法调试案例程序,准备好多组数据,保证每个分支至少执行一次。程序:编译结果:修改记录:输入数据1:第一次按F7键,score=,语句:第二次按F7键,score=,语句:第三次按F7键,score=,语句:……输入数据2:第一次按F7键,score=,语句:第二次按F7键,score=,语句:第三次按F7键,score=,语句:……2。用单步运行程序的方法调试用switch语句修改后的案例程序,准备好多组数据,保证每个case入口至少进入一次。程序:编译结果:修改记录:输入数据1:第一次按F7键,score=,语句:第二次按F7键,score=,语句:第三次按F7键,score=,语句:……输入数据2:第一次按F7键,score=,语句:第二次按F7键,score=,语句:第三次按F7键,score=,语句:……3。用单步运行程序的方法调试【例5—1】的两种程序,准备好多组数据,保证每条语句至少执行一次。自己设计记录格式。12、3,自己设计记录格式。思考题(switch和嵌套的i……els?实现多分支结构的优缺点。if……else……还可怎样嵌套?(3)什么时候需要在switch语句中使用break案例六求1~100的和教学目的:熟悉循环结构程序;掌握实现循环结构的for(;;)语句。#include<stdio.h>#include<conio.h>main(){int i,sum;clrscr();sum=0;/*存放和值的变量赋初值0*/for(i=1;i<=100;i++)sum=sum+i; /*循环体printf(“%d\n”,sum);}在日常工作或生活中,我们经常碰到需要重复进行某种操作,如求1+2+3+#include<stdio.h>#include<conio.h>main(){int i,sum;clrscr();sum=0;/*存放和值的变量赋初值0*/for(i=1;i<=100;i++)sum=sum+i; /*循环体printf(“%d\n”,sum);}一、案例分析上述程序中出现了一个新的语句for,其作用是实现某些语句按需要的次数重复运行.for语句格式fo[表达式1;表达式[表达式)重复执行的循环体语句组;for语句执行过程1;2;若表达式2真)表示循环的条件成立,则转3)20(假)表示循环条件不满足,则结束循环,转5);执行循环体语句组;计算表达式3;然后转2;结束循环,执行for.for6.1)……10(假)0(真)2for之后的语句循环体3图6.1for语句执行图解案例程序执行演示i+i=i+变量的值增加11。例设变量a6,执行a,a7,设变量b54。单个变量的运算符,因此是单目,这两个运算符前置和后置时,对于整个表达式值的影响是不同的。如:设变量ab5,b是前置,要先对变量进行自增运算,即ba--是后置,先取a的值进行表达式的运算,完了之后再使a1,4,6。平时使用时要注意自增自减运算符的前置与后置的问题,单目运算符的优先级高于双目运算符及三目运算符,双目运算符是指一个运算符的运算对象为两个,三目运算符的运算对象为三个。根据for语句的执行过程图解,可以把案例的for语句执行也用图来表示,见图6.2.for1起,然后判断i1001i=1当然满足条件,因语句,i++,3,然后判断i100,当然这次i=2i++后,i=100,再次判断i是否小于等于100,还是满足条件的再次执行“sum=sum+i;后,i=101时,判断i100了,因此退出循环,执行for1~100.,sum=sum+sum=i=1";2i=100”;循环控制是使循环的条件趋向不满足,使循环最终能结束,本例是“表达式,即i+本例循环体共执行了100次。……i=1i=10(假)0(真)i<=100for之后的语句sum=sum+ii++图6.2本案例for语句执行图解for语句注意点for,;当表达式2真,注意下面for语句的执行:for(j=0;j;j++);for(j=;;j+;二、应用举例【例6-1】编程求正整数n的阶乘n!。其中n由键盘输入。分析:在本课一开始,我们就见过了求5!的程序。其实求阶乘和求1~100需要将sum的初值改为1,〈=100改为=,将sum=sum+in值sum的类型定义为float,修改后的程序如下:【例6—2】编程求1+1/2+1/4+1/6+……+1/50的值.分析:该例同案例相似,也是求和,求的是1除以偶数的和,因此i值的改变每次是加2,并且其初值为2,到50为止,另外存放和值变量的类型是应该定义为实型。程序如下:【例【例6-1】程序#include<stdio.h>#include<conio.h>main(){int i,n;float clrscr();scanf(“%d”,&n);sum=1;/*1*/for(i=1;i<=n;i++)sum=sum*i; /*循环体printf(“%f\n”,sum);}【例6-2】程序#include<stdio.h>#include<conio.h>main(){int j;float clrscr();sum=1; /*1,这时需要注意for(j=2;j<=50;j=j+2)sum=sum+1.0/j; /*循环体printf(“%f\n”,sum);}三、习题1.编程求1000以奇数的和。2.编程求1+!+ 88888888888888888888888888888888888888888888编程打印下图(思考题)*********四、实验 实验七for语句构成的循环结构程序4。1实验目的掌握循环结构程序的调试方法;掌握实现循环结构的for4。2设置断点调试程序的方法单步执行程序的方法能有效地、一行一行地执行并检查感兴趣变量的值,但是如果程序很长,是难以逐行进行检查的.,,程序执行到断点处,如此一段一段地检查;若在某断点处发现错误,则修改程序,再次重复执行,直到得到正确的结果.这断点设置的方法是:将光标移到要设置断点的行上,用快捷键 CTRL+F8,或者是使用菜单Break/watch下的子菜单Toggle取消断点和设置断点的方法一快捷键和菜单命令也一样下面仍然通过一个例子来讲解断点的设置和调试程序的方.【例】求解一元二次方程式ax2+bx+c=0的根.#include“math.h”#include“stdio.h”#includemain(){floata,b,c,disc,p,q,x1,x2;scanf(“%f,%f,%f”,&a,&b,&c);clrscr();disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(“x1=%d,x2=%d\n”,x1,x2);}这个源程序没有语法错误,顺利通过编译和连接.运行时输入:1,2,1↙输出结果为:x1=0,x2=0这个结果显然不对。为了找出问题所在,我们通过分析决定在“p=-b/(2*a);”和“printf(“x1=%d,x2=%d\n”,x1,x2);”语句行设置断点,结果如图6。3所示,这两行以红色显示。当使用Run,.6。4disc0,根”即b=2,a=1,c=1的情况下,disc06.3断点设置结果42,6.5x1为—1,x2为—1,可见图6.4执行到第一个断点到此程序没有问题,那为什么输出结果为 0呢?剩下只有一条语句行了,问题就应重点检查“printfx1=%d,x2=%d\nx1,x2)语句行了。变量x1和x2的值确实是正确的方程根,输出时却是错误的这时经过仔细分析发现问题出在输出格式,x1和x2都是实型可printf中却用的格式输出,所以出现错误。将printf函数中的“%d”改成“%f",再次运行程序,输出结果为:x1=-1。000000,x2=-1.000000),这次输入、bc的值改为2,3,5。执行到第一,可以看到变量disc-31,当disc的值为负时,在计算平方根时会出现错误。继续运行程序,当执行到“q=sqrt(disc)(2*;"时,屏幕闪了一下(这是程序向用户屏幕输出信息,然后又切换到TC窗口而产生的图6.5执行到第二断点43PAGEPAGE50通过用户屏幕可以看到提示的出错信息:sqrt:DOMAINerror这个错误提示表示sqrt函数调用时,要求的参数是大于等于0,而本例sqrt而引起溢出错误。当然这个错误是由于输入abc不需要修改程序。一旦程序调试通过,所设置的断点就可清除。断点的设置是有所选择的,一般选择一些关键变量值的改变处,比如上例中disc调试程序之前需要做好准备工作,全面熟悉程序,做好静态分析,然后再进行动态调试。动态调试时实验内容及步骤11~1001~5程序:编译结: 修改记:第一次按F7,i= ,sum= 语句:第二次按F7键,i= ,sum= 语句第三次按F7,i= ,sum= 语句:……sum=sum+i”行设成断点。2。1~100sum=sum+i”行设成断点。编译结果: 修改记录:Run命令,i=,sum=语句:Run命令,i=,sum=语句:Run,i=,sum=语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山西省侯马市高三生物上册期末考试模拟检测卷带答案
- 2026年四川省崇州市高三历史上册期末考试检测卷(典优)附答案
- 2026年湖北省武穴市高一化学上册期末考试检测卷附答案【完整版】
- 2026年广东省南雄市高三物理下册期末考试模拟试卷(含答案)
- 2026年湖南省吉首市高三生物上册期末考试检测卷及参考答案
- 2026年吉林省延吉市高一化学上册期末考试模拟测试卷含完整答案【典优】
- 2026年云南省泸水市高一化学上册期末考试模拟试卷及参考答案(能力提升)
- 四年级数学下册 第3课时 空间与图形
- 基于果蝇模型解析中药提取物对免疫与胰岛素代谢的调控机制及网络药理学探究
- 基于机器视觉的丝瓜种子分级技术创新与应用研究
- 豆瓣酱质量通则
- 盘古开天地 公开课一等奖创新教案(2课时)
- 统编版七年级历史下册期末知识点复习提纲
- 《房地产开发与经营》全套教学课件
- DL-T5153-2014火力发电厂厂用电设计技术规程
- (高清版)DZT 0339-2020 矿床工业指标论证技术要求
- 国开《农村环境保护形成性考核册》形考1-3答案
- 《Baby》Justin-Bieber版歌词完整版打印下载打印
- 手术安全核查标准流程
- 化学品库风险告知牌
- 部编人教版一年级上册语文 第2课 iuüyw第一课时 教学课件
评论
0/150
提交评论