文稿ppt_ppt.jpg
文稿ppt_ppt.jpg

大学程序设计基础——C语言-武春岭-课件PPT

收藏

资源目录
跳过导航链接。
大学程序设计基础——C语言-武春岭-课件PPT.zip
程序设计基础——C语言-武春岭-PPT演示文稿
程序设计基础——C语言-武春岭-PPT课件文件
文稿ppt_ppt.jpg---(点击预览)
文稿ppt.ppt---(点击预览)
程序设计基础——C语言-武春岭-大学教学资料
(课件资料)《程序设计基础——C语言》-武春岭-电子教案
压缩包内文档预览:
预览图
编号:21836399    类型:共享资源    大小:16.10MB    格式:ZIP    上传时间:2019-09-06 上传人:QQ24****1780 IP属地:浙江
25
积分
关 键 词:
大学 程序设计 基础 语言 武春 课件 ppt
资源描述:
大学程序设计基础——C语言-武春岭-课件PPT,大学,程序设计,基础,语言,武春,课件,ppt
内容简介:
说 明教案是除课件之外,重要的教学资料,甚至比课件更为重要。在教学管理中,每个学校对教案的要求是相当严格的,我院也是一样,每学期结束后,都要求教师必须打印教案并上交。而备课要占用大量的时间和精力,为了让广大使用该教材的教师从繁重的书写教案中解脱出来,现将本人几年前的教案资料贡献出来,希望大家从中受益。需要指出的是,该教案是按我院3年前教学要求书写的,可能与各个学校的格式不尽相同,但大体差别应该不大,希望对大家有所帮助。 武春岭程序设计基础教案计应51、52、计控51、信管51、52、网络55授课班级: 周 学 时: 4节 开课时间: 2005-9-19 授课教师: 武春岭 部 门:计算机系信息安全教研室重庆电子工程职业学院课 题:第一章 C语言概述教学目标:通过本次讲授,使学生了解C语言产生的背景及历程,掌握C语言的基本特点。教学重点:C语言及C程序的特点。教 法:讲授法所用课时:2节授课班级:计应51、52、计控51、 网络55 信管51、52授课时间:9.19(5-6节) 9.19(7-8节) 9.20(1-2节) 9.20(7-8节) 教学过程: 活动:1 上互联网,在统一资源定位器URL(网址栏)里输入 ,进入该搜索网站,然后在google搜索中输入:C语言程序开发招聘,然后点击“google搜索”按钮,通过搜索信息看一下C语言目前是否还有实用价值,其招聘的“C开发”主要从事何种类型的开发?通过这个活动,你觉得C语言程序设计还有用吗?还值得学吗?2 本书229页是国内一流的信息安全产品集成生产厂商卫士通公司2004年的招聘启事(下载于2004年7月26日),仔细阅读该招聘启事,想一想“学C的感觉”,你觉得计算机类/信息类专业不学好C语言行吗?好好思考一下如何学习才能便于将来自己的专业扩展和就业扩展。一、C语言出现的历史背景讲述最初的汇编语言编写系统软件的局限性,引出C语言应孕而生的必然性。C语言大致历程为:ALGOL60 CPL BCPL B C 1973年K.Thompson和D.M.Ritchie用C语言改写了UNIX 90%以上,使UNIX与C相互促进,共同发展。二、C语言程序的特点在没讲C语言程序的特点之前,先看几个小小的C程序:例1 #include /*头文件包含*/void main( ) /*main函数是C语言固定的主函数,不能少*/函数体 printf(“Hello World!”); /*输出函数*/*注意花括号的配对出现*/每一个C程序都必须有main函数,否则,程序将无法运行,同学们记住,今后要编程序时,可先搭建主函数框架。例2求3个数的平均值(a=3.5、b=4.6、c=7.9)。float averager(float x,float y,float z) /*定义一个求三个平均值的函数*/x,y,z三个变量为形式参数,都为实型 float aver; aver=(x+y+z)/3 ;/*求平均*/ return(aver); /*返回到主函数的调用处*/main( ) float a,b,c,ave; /*定义几个变量为实型*/ a=3.5;b=4.6;c=7.9; /*给实际参数变量赋值*/ ave=averager(a,b,c); /*调用求平均函数averager*/ printf(“averager=%f”,ave); /*按实数输出格式%f输出ave的值*/思考:若求三个任意数的平均值怎么办?我们可以利用键盘输入函数scanf( )来实现!只要我们修改一下main函数就行了。代码如下:main( ) int a,b,c;float ave; printf(input a,b,c:); scanf(%d%d%d,&a,&b,&c); /*键盘输入函数*/ ave=average(a,b,c); printf(average=%f,ave);其中,scanf函数双引号内的“%d%d%d”是分别说明变量a、b、c按整型格式输入,“&”表示地址符号,运用输入函数输入变量值时,必须在变量前加地址符号,这样才能保证输入的值正确存入相应的变量所在内存单元。有兴趣的学习者可以在计算机上运行一下,看效果如何。自定义函数averager由编程者命名。命名时,只要符合C语言的语法要求,都是可以的,在此为了见名思义,故取名为averager。由上可总结出C语言程序的一般特点为:(1)C语言是由函数构成的,一个C源程序至少包含一个main函数;(2)一个C程序总是从main函数开始开始执行的而不论main函数在程序中的位置;(3)C语言书写格式自由,一行内可写几个语句;(4)每个语句和数据定义的最后一个语句必须有一个分号;(5)C语言本身没有输入输出语句,输入输出是由函数完成的;(6)可以用“/*”和“*/”对C程序中的任何部分作注释;说明:C程序的基本单位是函数,一个源程序由若干函数组成,但至少包括一个main函数,且main函数的位置不限。三、C程序的开发过程执行连接编译编辑键盘输入 f.c磁盘文件 f.obj f.exe 结果源程序 成功 出错见课本第6页。四、技能测试:见课本第8页。作业:P9 1.4已知三角形的三边长分别为:3、4、5,试编程求其面积。课 题:实验(熟悉Turbor C语言的编译环境)教学目标:通过本次实验使学生熟练掌握C的编译环境,学会一般程序的调试方法。教学重点:掌握C程序的编辑、调试和运行方法。教 法:试验法。授课班级:计应51、52、计控51、 网络55 信管51、52授课时间: 试验内容:一、演示实验内容1程序的编辑方法打开file菜单(按ALT+F快捷键或按F10功能键,然后通过移动光标键来选file菜单);通过光标键选择new选项,如下图:在编辑区域内,输入一个小程序,如下图所示:2保存程序打开file菜单,选择Write To选项,便出现如下情况:在上图所示的New Name对话框中,输入自己程序的保存路径及文件名,假如程序名取为P1,将其保存在D盘的MYFILE目录下,可像如下输入:回车后,将会将你所输入的程序保存到指定的路径下。3运行程序打开Run菜单,选择Run选项,或者直接用快捷方式Ctrl+F9执行。若程序无错,则会显示编译成功画面,否则会显示出错信息,可排错后再执行。4显示运行结果程序正确编译后,并不能出现运行结果,若要看运行结果,可打开Run菜单,选择User Screen选项,或者直接用快捷键ALT+F5,如下所示:结果如下:若返回程序编辑状态可,按任意键。说明:对同一个程序来讲,若修改后再保存,则用File菜单的Save选项即可,不要再用Write to项;若想再编辑调试其它程序,千万不要接着第一个程序往下输,可重新选File菜单的New选项,从而开始新程序的编辑。二、学生练习活动:1学生完成课本第9页练习1.4的程序编辑及其调试运行;2观察学生的练习过程;3根据学生练习中出现的问题逐一进行演示纠正;4学生自行消化巩固C编译器的应用。三、小结:1 熟悉C程序的编辑运行环境;2 掌握一个完整C程序的运行调试方法。课 题:第2章 数据描述教学目标:通过本次讲授,使学生了解C语言的数据类型及标识符的概念和用法。教学重点:常量和变量的理解。教 法:讲授法所用课时:2节授课班级:计应51、52、计控51、 网络55 信管51、52授课时间: 教学过程:活动:1找学生写出main()的框架、printf( )和scanf( );2评作业:求三角形的面积。3让学生讨论什么是数据?C语言的数据类型 见P11:数据类型1、标识符:标识符是给程序中的实体(变量、常量、函数、数组等)所起的一个名字。例:float x,y,z ;float为实数类型标识符,也是专用标识符。x、y、z则为一般的变量标识符。关于标识符的说明:见P12:说明:标识符必须以字母或下划线开头,由字母、数字或下划线组成的字符序列;用户不能采用C语言已有的32个关键字作为同名的用户标识符;标识符长度没限制;标识符区分大小写。关键字见课本P221。例如:1sum, PI , aa , bb43 , ch , a_53ff ,_lab 都是合法的标识符。24mm , ma , tt$a , _ch#a 均是不合法的标识符。思考:count、Count和COUNT是否为相同的标识符?main、float能否作为用户标识符?1 常量:在程序中,其值不能改变的量。例:12 , 3 ,12.3 , -2.4 , 3.14159 , a(代表字符a,为字符常量) 都是常量。说明:常量可用宏定义命令#define来定义一个常量的标识,且一旦定义后,该标识将永久性代表此常量,常量标识符一般用大写字母表示。符号常量定义的一般格式为:#define 常量标识符 数值例:#define PI 3.14 /*定义PI为3.14,即圆周率值近似值*/ main( ) int r ; float s ,l; /*变量类型定义*/ r = 2 ; /*为半径赋值为2*/ s = PI * r * r ; /*求圆面积,并且存到s所在的内存中*/ l=2*r*PI; /*求圆周长*/ printf( s=%f l=%f , s,l ) ; /*输出面积s和周长l的值*/ 运行结果:s=12.560000 l=12.5600003.变量:在程序的运行过程中其值可改变的量。变量在程序中起着“容器”的重要作用,没有变量就没有数据存储,计算机也就无法处理数据。变量的命名完全如标识符的命名规则,因为变量名本身就属于标识符的范畴。由于计算机中不同的数据类型所分配的内存单元不同,所以C变量在使用之前必须定义,有些书上也称为变量声名,否则,系统将无法为变量分配合适的内存单元。变量定义的一般方式为:类型 变量名;例:int i,j,l; float a,b,c;1)变量的初始化:变量赋初值。赋值的一般格式为:变量名=表达式;例如:x=3; a=a+1;f=3*4+2;思考:看下面程序段中的语句是否正确?#define MAX 20main( ) int a; a=3; MAX=8; 9=a; printf(这样赋值行吗?);另外,变量初始化也可与变量定义同时进行。例如:int a=3,b=4,c=5;float x=7.5;均是在变量定义的同时,进行的赋初值操作。见书上P14:画龙点睛作业:1 仔细阅读并理解讲过的内容。2 课本40页单选题1、2。小结1C语言的数据类型2标识符的概念3常量与变量课 题:第二章 基本数据类型教学目标:通过本堂讲授,使学生掌握C语言常用的数据类型及存储特征教学重点:基本数据类型的正确运用教 法:讲授法。所用课时:2节授课班级:网络45教学过程:一、 基本数据类型 我们知道数据在计算机内存中是以二进制数存在的(不清楚的可参阅有关计算机基础方面的书),我们的C语言程序在执行过程中,首先被编译成目标代码,即二进制代码或机器码,这样程序变量的值就会以二进制的形式存在于内存。由于二进制数在实际应用中很不方便,所以我们在编程时用到的数据通常以十进制、八进制等形式出现。下面将对基本数据类型一个一个进行讲解。1. 整型数据(int)整型数据在C语言中有三种表示形式,在具体应用中,往往根据需要选用。(1)整型常量十进制表示:如:123、-34、0 。八进制表示:以0开头符合八进制规则的整型常量。如:045、0611、011。十六进制表示:以0x开头符合十六进制规则的整型常量。如:0x123、0xabc、0xaf。(2)整型变量整型数据在内存中的表示范围如课本P15表2.1,要使变量成为整型,必须将其声明为整型,至此,这对我们来说已经不是难题了。例如: main( ) int a , b =7 ; a = 6; printf(%d%d,a,b); 该程序段,将变量a、b定义成整型,并给它们分别赋了初值。值的注意的是整型数据输出的格式控制符为“%d”,初学者务必记牢!活动:例: 有这样的数据定义:int a;则a=32768;行吗?2、实型数据(float或double)(1)实型常量 实型数据有两种表示形式,这与我们现实生活中所用的实数表示方法有所不同。C语言中,实型常量或常数由小数点和数字组成,你也许会认为这与我们在数学中的表示没什么两样,实际上是有区别的,C语言中,实数的小数点前允许没有数字。一般形式表示如:0.21、.12、3.141592、9999987.76660等。指数形式表示指数表示法有点类似数学中的科学记数法,只不过C语言中用e或E代替数学表示中的10。例如:1240000用C语言可表示为1.24E6。C语言的指数表示法是有规则的,一定注意在e或E之前必须有数字,在其后的指数部分必须为整数。见课本P16中间。如:123e3、-1.2E3、2e2、1.6e+2、1.9E-3 都是合法的形式,但1.23e0.7和e3都不是合法形式。(2)实型变量:分为单精度(float)和双精度(double)。见课本P15表2.1。例1 见课本P16例2-2。代码:main( ) float x , y ; /*定义单精度变量x和y*/ double c, d ; /*定义双精度变量c和d*/ x = y = 4.6; /*x、y均被赋值为4.6*/ c = 988888987.111; d = x + c ; printf(%f %f, x , d ); 运行结果:4.600000 988888991.711000分析:(1)变量x、y、c、d被赋的值必须在其表示范围内,若上面程序中,将d定义为float型就会出现溢出错误,想一下为什么?(2)不管是单精度还是双精度,其输出格式均为“%f”;(3)在C语言中,不管是单精度还是双精度实数,输出时小数点后默认保留6位小数。3、字符型数据(char)(1)字符常量:用单撇号括起来的单个字符,或转义字符。如a、E、¥、$、9、t、101、x1f都是字符常量(后3个是转义字符)。应当注意,单撇号只是字符常量的一个“标志”,并非字符常量的一部分,字符常量只能是单个字符,当输出一个字符常量时不输出单撇号。字符型数据是以ASCII码的形式存储的,关于ASCII码见书后附录P220。转义字符见课本P17。活动:(1)5与5是否相同?为什么?分析:5与5不同,5是整数,但5是字符常量,其值为53,5远远大于5。(2)a与a是否相同?为什么?分析:不相同,a是个标识符,可看作变量,其值由所赋的值决定。(2)字符变量字符变量主要是为了存储字符常量,字符常量是以ASCII码值的方式存储的。字符变量的定义方法为:char 变量名;例 2 本程序用来演示字符常量和字符变量的使用。(先写出来然后分析)代码: main( ) char ch,c; /*定义字符变量ch,c*/ch=362;/*给字符变量ch赋一个转义字符,其中362为8进制数*/c=g;不胜数/*把字符常量g给字符变量c*/printf(%cn%c,c,ch); /*n为转义字符,表示换行*/运行结果:g 说明:字符在内存中是以ASCII的值的形式存在的,所以字符型变量可与整型变量互相赋值。(写课本P18)例2-4 本程序演示字符型数据与整型数据互相赋值的情况。(先写出来后分析)代码:main( ) char c1 , c2 ; int a ; c1= a , c2 = 98 ; a = a; /*体会“=”两边的a意义有何不同?*/ printf( c1=%c c2=%c a=%d , c1 ,c2 , a) ;运行结果:c1=a c2=b a=97分析: c1 c2 a979798(a)c1 01100001c201100010a01100001(b)二、字符串字符串常量:由双引号括起的若干字符序列。如CHINA、ab$、I love chong qing !都属于字符串常量。字符串在存贮时,每一个字符元素占一个字节,但是整个串占用的空间并不等于串中字符元素的个数,而是字符元素个数加1,因为字符串有一个结束标志0要占一个字节(0是一个ASCII码为0的“空操作字符”)。如“CHINA”的存储情况如下:0ANIHC说明:C语言没有专门的字符串变量,一般用字符数组来存放。串和字符是不能混为一谈的。单个字符用单引号括起来是字符串常量,如a,但a却是一个串常量,它们所占的内存空间大小也不一样。三、小结:1 掌握基本数据类型的表示方法;2 掌握基本数据类型的数据定义和使用方法;3 记住基本数据类型在内存中的表示范围;4 了解字符串的特征及存储特性。四、作业:P40 2.1题的18;P41 2.2题的13;课 题:基本类型修饰符及输入输出函数教学目标:通过本堂讲授,使学生掌握C语言常用的输入输出函数用法教学重点:输入输出函数的正确运用教学难点:类型修饰符的用法教 法:讲授法所用课时:2节授课班级:网络45教学过程:活动提问:1. int型数据的表示范围;2float 与double类型分别占多少个字节?3. 0字符的ASCII码值是多少?4a的ASCII码值是多少?52与2是相同的常量(判断并分析)6字符串”wangling”占几个字节的单元?7说出哪些是合法的常量:3e2 e1 2.3e0.3 n 086 xhh一、基本类型修饰符基本类型前面还可以通过添加修饰符实现基本类型的“范围扩充”。类型修饰符可以改变基本类型的含义,以更加精确地适合特定环境的需要。C语言提供的修饰符如下:signed(有符号)unsigned(无符号)long(长型)short(短型)以上修饰符均可修饰int基类型,其中部分也可修饰char和double类型,关于修饰符的用法,我们只关心它与int的搭配,如需要了解其它类型与修饰符组合用法的,可参阅相关C语言书籍。具体修饰后的表示宽度见P20页表2.3类型修饰符是为了给用户提供更大范围的数据定义而提供的,我们知道基本类型int实际上指的是signed int类型,其表示范围相当小,若用到比较大的整型数据时,可考虑使用修饰符。当类型修饰符独自使用时,则认为是修饰int型的。因此,下面几种类型修饰符是等效的:见P21页上面。修 饰 符 等 效 于signed signed intunsigned unsigned intlong long intshort short int教法指引:先写出如下程序例题,然后分析其用法。例 1 本程序显示了修饰符long的正确使用。main( ) int x1,y1; long x2,y2; x1=32767;y1=32769; /*注意y1的赋值超出了其表示范围*/ x2=32767L;y2=32769L;/*数字后的L表示该数据是长整型,是合法的书写方法*/ printf(x1=%d,x2=%ldny1=%d,y2=%ld,x1,x2,y1,y2);/*n为换行符*/运行结果:x1=32767,x2=32767y1=-32767,y2=32769二、常用输入输出函数1)printf函数:格式输出函数。格式:printf ( 格式控制,输出表列 )格式控制是用双引号括起来的字符串,它包括两种信息:格式说明:由“% ”和格式字符组成,如:%d ,%f等;普通字符:即需要原样输出的字符,如 printf ( a = %d , a) ;中的划线部分就是普通字符。见书中P22页下边。输出表列可以是若干个需要输出的数据变量,也可以是表达式。例见课本P22。注意格式控制符总结:见P23中间。例:2见课本P23例2-8,对其进行解释。2)scanf函数:格式输入函数(1)格式:scanf (格式控制,地址表列)说明:格式控制的含义与printf函数的相同;地址表列是由若干个以&打头的地址项;见书P23下面。分析例2-9(P24页)三、字符数据的输入输出函数1、putchar函数:字符输出函数格式:putchar(字符变量/字符常量)功能:在显示设备上输出一个字符变量的值。2、getchar函数:字符输入函数格式:getchar()功能:从终端设备输入一个字符,一般是从键盘输入字符。见课本P25例2-10和例2-11:说明:使用字符输入输出函数时,必须用#include “stdio.h”;getchar和putchar函数每次只能处理一个字符,而且getchar函数没有参数。四、小结1printf( )的基本用法;2scanf( )的基本用法;3 putchar( ) 的基本用法;4getchar( )的 基本用法;五、作业P40 2.1 79课 题:2.4基本运算及表达式中的类型转换教学目标:通过本堂讲授,使学生掌握C语言基本算术运算符的合理用法,以及混合运算时类型转换原则教学重点:运算符的基本用法教学难点:增量运算与减量运算教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容;活动:提问1 长整型数据占几个字节?2 无符号整型数据表示的数值范围是多少?3 字符输入函数有参数吗?导入新课内容。一、算术运算符与算术表达式1算术运算符见课本P27表2.4算术运算符:+、-、*、/(整除运算符)、%(模运算符) 主要讲解/和%运算符。说明:当“ /”两边的运算量完全是整数或字符时,结果取整;模运算符“%”是一种求余运算,也叫模运算,但是切记,模运算取整数除法的余数,所以“%”不能用于实型数据的运算。见课本P27表2。4下面一段。例:7 % 3 = 4 ; 10 / 3 = 3 ;请考虑表达式:a = 8.9 % 3 ; 是否正确?例见P282-122算术表达式用算术运算符和括号将数据对象连接起来的式子,称为算术表达式。如表达式:a*d/c-2.5+a就是一个合法的算术表达式。表达式的运算按照运算符的结合性和优先级来进行。C语言规定了运算符的结合方向,即结合性。例如表达式7+9+1计算机在运算时,是先计算7+9还是先计算9+1呢?这就是一个左结合性还是右结合性的问题。算术运算的结合性是自左向右的左结合,所以应该先算7+9。结合性:左结合(自左向右结合);如果只有结合性显然不够,上面的例子属于同级运算(只有加运算),但是如7+9*2,岂能只考虑运算的结合性?这就要考虑运算符的优先级的问题了。其实在小学里我们就知道混合运算规则:先算括号里面的,然后乘除,最后算加减。C语言算术运算符的优先级与小学数学中的混合运算规则大致相同,即优先级从高到低是:优先级:见P28第二段下面。() 负号 *、/ 、% +、-优先级 高 低二、赋值运算符及赋值表达式1赋值运算格式:变量名=表达式;说明:“=”是一种运算符。2复合赋值 赋值表达式有一种变形,称为复合赋值,它简化了一定类型的赋值操作的编码。例如,x=x+10;可以改写成x+=10;操作符“+=”告诉编译程序:x被赋值为:x加10。类似的还有:-=,*=,/=,%=,它们的使用方法完全一样,如: b-=9 等价于 b=b-9 y*=x+12 等价于 y=y*(x+12) t/=3 等价于 t=t/3 a%=b+2 等价于 a=a%(b+2)活动:思考:下面的算术表达式如何转化为合法的复合赋值表达式?y=y+9*xa=a%(b*2)3自增和自减运算C包括两种其它语言一般不支持的非常实用的操作符,即增量操作符+和减量操作符-也称自增运算符和自减运算符。操作符+ +对操作数增加一个单位,操作符- -对操作数减一个单位。也就是说,x=x+1;与+ +x;一样,而x=x-1;与x- -;完全一样。增量和减量操作符都能放到操作数前面,也可放到操作数后面。P30表2.5说明:见P30表2.5下面一段。例如: x=10; y=+x;x的值先增1,变成11,然后将x的值11置给y,使y的值也为11。当写成: x=10; y=x+;例:见书P31 2-13:三、表达式中的类型转换1自动类型转换见P32中间示例:说明:见P32划线处。2强制类型转换使用强制类型转换,可以把表达式的结果硬性转换为指定类型,其一般形式为:(类型)表达式其中类型是将要转换的有效C数据类型。例如,为确保表达式x/2求值成float型,可以书写成(float) x/2。 实际上强制转换(类型)是操作符,由于它是一元单目运算,所以优先级较高,它与自增自减运算符属于同一优先等级。例 2-14 程序演示了强制类型转换的用法。代码:main( ) int a=2,b=7,c; float x=15.5,y,z; y=a/b; z=(float)a/b; /*将整型变量a转换成实型*/ c=(int)x%a; /* 变量x不转换类型可以吗?*/ printf(y=%f z=%f c=%d x=%f,y,z,c,x);运行结果:y=0.000000 z=0.285714 c=1 x=15.500000小结:1 算术运算符及算术表达式的用法;2 赋值运算及复合赋值运算;3 增量运算的用法;4 表达式中的类型转换。作业:P40:2.1题的 1014;2.2题的 68课 题:2.4关系运算、逻辑运算教学目标:通过本堂讲授,使学生掌握C语言关系运算、逻辑运算的基本规则和其运算过程教学重点:关系运算、逻辑运算在现实问题中的运用教学难点:关系运算和逻辑运算的实质意义教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1提问:将如下表达式转换为合法的复合赋值表达式:y=y%(4+x)将如下复合赋值表达式转换为一般形式:a/=b-3程序段:int a; float s=9; a=s%4;是否合法,若有错,将如何将其改正?语句:#define PI 3 main() int a; PI+; a=PI;printf(“a=%d”,a); 是否有错,若有错,错在哪里?若:int a=4;char t=0; float d=9; 则表达式:19*a-t/d的值类型是什么?2讲解,并引入今天课题一、关系运算关系运算是指数据之间的关系(比如数间的大小等),关系运算的结果要么为真,要么为假,若为真就用1表示,为假就用0表示。1关系运算符 、 =、 =、 != 优先级相同 优先级相同 高 低需要说明的是,关系运算符=是“比较等”,也就是说,两个运算量通过比较看是否相等?运算结果要么为真/1,要么为假/0,它完全不同于赋值运算符=,赋值运算是将右值赋给左部变量,赋值运算符没有比较的意思,一定要搞清楚它们的用法区别。说明:见课本:P34中间(1)-(3)例:如下面每组表达式是等价的: b=a*2 与 b7 与 a=(b7) a=bc 与 a=(bc)2关系表达式用关系运算符将两个表达式连接起来的式子叫关系表达式。关系表达式的值是1或0。试分析下面表达式的值。说明:关系表达式的值为真时用1表示,为假时用0表示。(1)若a = 3 , b = 2 , c = 1,则下列表达式的值分别为多少? (a b )= = c b + c a f = a c 分析:(ab)=c b + c a f=a c 1 =1 3 1 0 0 0 所以f=0。(2)表达式(a=3)(b=5)的值是多少?(3)表达式c!=C的值是多少?例 2-15 该程序演示关系运算符的运用。(见书P35页)main( ) int a=3,b=2; printf(%d,%d,%d,%d,%d,%d,ab,ab,a=b,a=b,a!=b);运行结果:0,0,1,1,0,1二、 逻辑运算1逻辑运算符逻辑运算表示两个数据或表达式之间的逻辑关系。可联系到现实中逻辑关系的运用。C提供的逻辑运算符有三个,它们分别是:&(逻辑与) |(逻辑或) !(逻辑非)逻辑运算的结果也只有真和假,即:1和0。它们的运用情况看表2.6。表2.6 逻辑运算的真值情况数值情况运算及结果ab!a!ba & ba | b001100011001100101110011关于逻辑运算的符的使用说明:见课本P36上面开始。(1)&是双目运算符,仅当两个操作数都为真时,其运算值才为真,否则为假;(2)|也是双目运算符,其操作数中只要有一个为真,则整个运算值为真,否则为假;(3)!是单目运算符,其运算值是取操作数的相反逻辑值。优先级及结合性说明:说明: &和|的优先级低于关系运算符,但!高于算术运算符;逻辑表达式中的逻辑量,若不是0,则认为该量为真;逻辑运算符!的结合性为“从右向左”,&和|的结合性仍是“左结合性”。逻辑运算符的优先级情况是这样的:高低 | & ! 优先级 由以上可知,下面是等效的C语言写法:(xy)&(9y & 9c)|(!d) 与 ac | !d2逻辑表达式若a = 5,b = 3试分析下面表达式的逻辑值是多少? 5 3 & 2 | 7 3 & 2 | 7 3 & 2 | 7 3 & 2 | 7 3 第四步: 1 & 2 | 7 c | bc 或 (ac)|(bc) a % b!= 0(year % 4 = 0 & year % 100 != 0) | (year % 400 = 0)若该表达式成立,则该年为闰年。特殊说明:需要提出的是,在逻辑表达式的求解过程中,并不是所有的逻辑量、运算符都被执行,只是必须执行该逻辑量才能求出整个表达式的解时,才执行该运算量或运算符。例如: 表达式1&表达式2中,若表达式1为0,则计算机不再考虑表达式2的值的情况,也就是说表达式不再执行。例:int a=5,b=9,s; s=(a-=5)&+b;计算机执行该程序段后,s=?,a=?,b=?a & b & c 只有a为非零值时,才需判断逻辑量b的值,只有a和b都为真的情况下才需考虑c的值。如果a为假,则就不用判断b和c的值了,因为这是与运算,整个表达式的值已经可以确定为假了。同样的道理,对于逻辑或,如:a|b|c 只要a为真,不需再判断b和c了,就能确定整个表达式的值为真。思考:若a=9,b=10,c=1,d=7,x=8,y=15 ,则计算机执行了语句:m=(x=ab) & (y=cb)&!c|1的值为多少?2引入本堂内容一、逗号运算符和逗号表达式逗号运算符主要用于连接表达式。例如:a=a+1,b=3*4;用逗号运算符连接起来的表达式称为逗号表达式。它的一般形式为: 表达式1,表达式2,表达式n;逗号表达式的运算过程是:先算表达式1,再算表达式2,依次算到表达式n。整个逗号表达式的值是最后一个表达式的值。逗号表达式的结合性从左向右,它的优先级是最低的。如:b=(a=4,3*4,a*2)它的运算过程是:a=4 3*4 a*2 b=a*2二、 条件运算符和条件表达式 条件运算符是C语言的唯一的三目运算符,即它需要3个数据或表达式构成条件表达式。它的一般形式为: 表达式1?表达式2:表达式3 如果表达式1成立,则表达式2的值是整个表达式的值,否则表达式3的值是整个表达式的值。如图所示: 今后要学习的if-else结构可以替换条件运算符,但是条件运算符不能替换所有的if-else结构。只有当if-else结构为两个分支情况,并且都给同一个变量赋值时才可以用条件运算符替换,关于这点,今后再慢慢体会。 例如,将a,b两个变量中大者放到变量max中,我们可以利用条件运算这样来完成:max=ab? a:b条件运算符的结合方向为从右往左。例如: a b ? a : b c ? b : c 等价于ab ? a : (b c ? b:c)例 1 该程序的功能是求三个数中的最大数。代码:main( )int a,b,c,max; scanf(%d,%d,%d,&a,&b,&c);max=a(bc?b:c)? a :(bc?b:c); printf(a=%d,b=%d,c=%d,max=%dn,a,b,c,max);执行情况:3,4,5运行结果:a=3,b=4,c=5,max=5例2 从键盘上输入学生的三门成绩,求其总成绩和平均成绩。小结1逗号运算符及逗号表达式;2条件运算符及条件表达式;3顺序程序设计的基本过程;作业P41 2.1 2.22.42.5(作业本上做)上机作业:理解验证题1P28 例:2-12 2P31 例:2-133编程理解验证题:P37 思考题。试验项目:运算符的合理用法及顺序程序设计方法试验目的:通过本次实验使学生熟练掌握各种运算符的特征及合理应用,同时掌握顺序程序设计的思想及编程方法。试验重点:仔细理解揣测程序中各语句的真正作用及运行结果的由来试验难点:C编译器的熟练运用不够施用班级:网络45试验内容:一、验证理解内容1通过调试程序,仔细分析增量运算在不同场景下的使用的不同。代码:main() int a,b,c,d,e,f; a=b=c=d=10; a+; +b; c-; -d; printf(a=%d b=%d c=%d d=%dn,a,b,c,d);/*注意输出后换行*/ e=a+;f=+b; /*认真分析e,f的结果是否相同*/ printf(a=%d b=%d e=%d f=%d,a,b,e,f);2通过调试程序,分析运算符/和%的用法特点及其区别。代码:main( ) int a,b; float c; a=5/3; c=5/3.0; b=5%3; /*注意%运算符要求操作数必须为整型*/ printf(a=%d,c=%f,b=%d,a,c,b);3试编程验证解决如下问题:若a=9,b=10,c=1,d=7,x=8,y=15 ,则计算机执行了语句:m=(x=ab) & (y=cd);后,m和y的值分别是多少?二、针对问题编程,并通过调试,达到自己程序解决问题的目的1设圆半径r=2.9 ,编程求圆周长和圆面积。2 输入一个华氏温度,输出相应的摄氏温度。二者的换算公式是:c = 5/9(F 32),其中F表示华氏温度,c表示摄氏温度。课 题:3.1程序的基本结构及if 条件程序设计教学目标:通过本堂讲授,使学生掌握程序设计的三种基本结构,同时熟练掌握if条件在编程中的运用教学重点:if条件语句的运用教学难点:if的合理嵌套运用教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1提问1)设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是( )(A) 3 (B) 0 (C) 9 (D) 122)判断char型变量c1是否为小写字母的正确表达式是( )A、a=c1=a)&(c1=z) C、98=c1 D、c1=a&c1b ? 97:65;后s的值是多少?2引入本堂内容一、三种基本程序设计结构1、顺序结构 所谓顺序结构是指程序流程自上而下,没有任何分支顺序执行的程序结构,它是最简单的一种结构。前几章所举例子全部属于顺序结构。顺序结构的流程图如下:BA a b 其中,a表示程序入口(程序开始),b表示程序出口(程序结束),A和B分别表示程序代码段。2、选择结构选择结构,又称分支结构。程序在执行的时候,根据判断条件决定程序流程走哪条路线,这种结构在今后程序设计中经常用到。选择结构的流程图如下: a P AB b 流程图中,P表示判断,其它同顺序结构流程图意义相同。3、循环结构循环结构是指程序在执行过程中,当满足某种条件时,反复执行满足条件的那部分程序段,直到条件不再满足才接着执行下面的程序段。这种情况在现实问题中经常出现。 下面流程图大致表示了循环结构: a A P 成立 b 4、三种基本结构的特点(见书中P45)从以上三种结构的流程图可以看出三种基本结构有以下共同特点:(1)程序只有一个入口;(2)程序只有一个出口;(3)程序结构内的每一部分都有机会被执行;(4)程序结构内不存在死循环。5、复合语句所谓复合语句,在C语言中是指用“”和“ ”括起来的若干个语句。复合语句又叫块语句,构成块的所有语句被逻辑地形成一体,这些语句在执行时作为一个整体,在内存中占用一片连续区域。例: main ( ) int a,b,t; printf(“Input a,b:”); scanf(“%d%d”,a,b); printf(“a=%d,b=%dn”,a,b); t=a;a=b;b=t;/*复合语句*/ printf(“a=%d,b=%d”,a,b);二、if条件语句1、 if(表达式) 语句其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。例:if ( x y ) printf ( “max= % d “ , x ) ;例1:输入两个整数,输出其中的大数。(见P46)例2:输入3个数a , b ,c , 要求按由小到大的顺序输出。分析:如果 a b 那么 a 互换 b 如果 a c 那么 a 互换 c 如果 b c 那么 b 互换 c编码:main ( ) float a , b , c , t ; printf ( “ please input a , b , c : “ ) ; scanf ( “ % f , % f , % f “ , &a ,&b , &c ) ; if ( a b) t = a ; a = b ; b = t ; if ( a c ) t = a ; a = c ; c = t ; /*复合语句实现交换*/if ( b c ) t = b ; b = c ; c = t ; /*复合语句实现交换*/ printf ( “ % f , %f , %f “ , a ,b ,c ) ;2、if - else二选一结构语句格式:是一条语句 if ( 条件 ) S1 是一条语句S2 else 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。活动:由学生自己写出如下程序。例3输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。例4:求一个数的绝对值。| x | = x x 0 -x x = 0 )划线处为输出提示信息 x = x ;else x = - x ;printf ( “ | x | = % f “ , x ) ;3、 if 语句的嵌套 格式: if ( 条件1 ) 内嵌if if ( 条件2 ) 语句1 else 语句2 else 内嵌if if (条件3 ) 语句3 else 语句4 例5:根据条件求y值。 - 1 ( x 0 ) main ( )注意C语言与数学表示的不同 int x ,y ;scanf ( “ %d “ ,&x ) ;if ( x = 0 ) if ( x 0 ) y = 1 ; else y = 0 ; else y = -1 ; 小结1程序设计的三种基本结构2If条件语句在程序设计中的用法作业P53:3.1 、3.2的1-2P55:3.3、3.4课 题:3.1程序的基本结构及if 条件程序设计教学目标:通过本堂讲授,使学生掌握switch多路选择结构教学重点:switch的灵活运用教学难点:break在switch选择结构中的应用教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1提问1)程序设计的基本结构有哪几种?2)什么叫复合语句?3)如何用if语句描述如果a大于b则将b的值放入min中?2引入本堂内容三、switch多路开关选择语句C语言格式:switch ( 表达式 ) case 常量表达式1 : 语句 1 case 常量表达式2 : 语句 2 case 常量表达式n : 语句 n default : 语句n + 1分析:其语义是:计算表达式的值, 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。例1 该程序要求输入一个数字,计算机输出一个对应的星期几的单词(输入6和7时,分别对应Saturday和Sunday。代码: main()int a;printf(input integer number: );scanf(%d,&a);switch (a) case 1:printf(Mondayn);case 2:printf(Tuesdayn);case 3:printf(Wednesdayn);case 4:printf(Thursdayn);case 5:printf(Fridayn);case 6:printf(Saturdayn);case 7:printf(Sundayn);default:printf(errorn);分析其运行结果,提出改进措施。 main( ) int a;printf(input integer number: );scanf(%d,&a);switch (a) /*switch(scanf(%d,&a) */ case 1:printf(Mondayn);break;case 2:printf(Tuesdayn); break;case 3:printf(Wednesdayn);break;case 4:printf(Thursdayn);break;case 5:printf(Fridayn);break;case 6:printf(Saturdayn);break;case 7:printf(Sundayn);break;default:printf(errorn);在使用switch语句时还应注意以下几点:(1)在case后的各常量表达式的值不能相同,否则会出现错误。(2)在case后,允许有多个语句,可以不用括起来。(3)各case和default子句的先后顺序可以变动,而不会影响程序执行结果。(4)default子句并非必须有,有时可以省略不用。程序举例例2:输入年份和月份,求该年的该月有多少天?分析:一年中,除2月外其它月份的天数是固定的,而且规律性较强:其中1、3、5、7、8、10、12七个月份为31天;4、6、9、11四个月份为30天;2月份的天数要看是平年还是闰年来定,平年2月28天,闰年2月29天。那么怎么判别平年和闰年呢?闰年的条件是符合下面条件之一 :能被4整除,但不能被100整除;能被400整除。闰年的C语言判定条件为:(year % 4 = = 0 & year % 100 ! = 0 ) | year % 400 = = 0 )编码:main ( ) int year ,month ,day ; scanf ( “ %d %d “ , &year ,&month ) ; switch ( month ) case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : day = 31 ;break ; /*分析不要break语句行吗?*/ case 4 : case 6 : case 9 : case 11 : day = 30 ; break ; case 2 : if (year%4 = = 0 &year%100 ! = 0 ) | year%400 = = 0) day = 29 ; else day = 28 ;printf ( “year = %d , month = %d , day = %d “ , year ,month ,day ) ;以上程序也可将case 2换成default ,想一下为什么?说明:switch语句执行时,只要找到满足条件的情况入口,就将一直执行下去,直至遇到break语句才终止;switch后面的条件表达式一般是一个整数表达式或字符表达式,与之对应,case后面也应是一个整数或字符。小结1Switch多路开关的应用;2注意break语句在switch语句中的应用;作业P53:3.1 、3.2P55:3.3、3.4、3.5、3.6(解释3.6)课 题:4简单的循环程序设计教学目标:通过本堂讲授,使学生掌握goto和while在循环程序设计中的应用教学重点:while 循环应用教学难点:goto构成循环的应用教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1.对switch语句进行复习;2.针对作业可能出现的问题进行提示;一、循环程序结构1、C语言构成循环的语句1)用goto语句和if语句构成循环;2)用while语句构成循环;3)用do - while 语句构成循环;4)用for语句构成循环;2goto语句构成循环格式:goto 语句标号; 标号指出程序流程转向的入口处。说明:语句标号用标识符表示。例1:求1 + 2 + 3 + + 100main ( ) int i , sum = 0 ; i = 1 ; loop : if ( i = 100 ) /*loop是标号不是变量,不需要定义*/ sum = sum + i ; i + + ; goto loop ;/*通过返回 loop标号处构成循环*/printf ( “ %d “ , sum ) ;3while语句构成循环格式:while ( 表达式 ) 循环体语句程序流程图如下: 表达式0 非0语 句 流程图表示: 计算表达式的值,当值为真(非0)时, 执行循环体语句,否则退出循环体语句。例2:求:1 + 2 + 3 + + 100main ( ) int i , sum = 0 ;/*装和的变量一般要初始化为0*/i = 1;复合语句循环体while ( i =100 )/*当满足条件i =100时,程序将不断执行下面的复合语句循环体*/ sum = sum + i ; i + + ; printf ( “ %d “ , sum ) ; 例3:统计从键盘输入一行字符的个数,输入回车结束。#include void main( )int n=0;printf(input a string:n);/*提示信息*/while(getchar()!=n) n+;/*循环条件是当输入的字符不是回车符时执行循环体语句*/printf(%d,n);/*当循环结束后,输出变量n的值*/使用while语句应注意以下几点:见课本P61。4do - while语句构成循环1)格式: do 循环体语句 while ( 表达式 ) ;2)流程图: 循环体语句 表达式 true false 流程图表示的意思是:先执行循环体语句一次, 再判别表达式的值,若为真(非0)则继续循环,否则终止循环。例4 求:1 +2+3+100main ( ) int i , sum = 0 ; i = 1 ; do 循环体语句 sum = sum + i ; i + + ; while ( i = 100 ) ;/*循环条件*/ printf ( “ % d ” , sum ) ;说明:见课本P62。小结1构成循环的结构;2goto 构成循环;3.while构成循环;4.do-while构成循环;作业P73. 4.1的1-4;43、 44、 45(提示4.5)试验项目:选择程序设计试验目的:通过本次实验使学生熟练掌握if和switch条件语句在程序设计中的应用试验重点:仔细体会程序的解题作用和合理的程序设计结构试验难点:C编译器的熟练运用不够施用班级:网络45试验内容:一、针对问题编程,并通过调试,达到程序解决问题的目的1. 编写一个程序,要求用户从终端上键入两个整数数值。检测这两个数,判定第一个数能否被第二个数整除,并在终端上显示相应的信息。2. 有3个整数a、b、c,由键盘输入,输出其中最大的数。3. 给出一百分制成绩,要求输出成绩等级A、B、C、D、E。其中:90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。4. 新世纪百货进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下: 消费金额 折扣率 P 100 0% 100 P 200 5% 200 P 500 10%500 P 1000 15%P 1000 20%编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。要求分别用if语句和switch语句来实现。课 题:for语句构成循环教学目标:通过本堂讲授,使学生掌握for语句在循环程序设计中的应用教学重点:for循环应用教学难点:for构成循环的灵活应用教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1提问1)指出运行结果:main( ) int x=3; doprintf(“%3d”,x-=2); while(!(-x);2) 指出运行结果:main()int I=0,k=0,s=0; while(k3) s+=k; +k;printf(“s=%d”,s);2引入本堂内容新内容讲授一、for 语句构成循环格式:for ( 表达式1;表达式2;表达式3) 循环体语句 即:for (循环体变量赋初值;循环条件;循环变量增值) 循环体语句for循环的执行情况如下:1.首先计算表达式1的值。2.再计算表达式2的值,若值为真(非0)则执行循环体一次, 否则跳出循环。 3.然后再计算表达式3的值,转回第2步重复执行。在整个for循环过程中,表达式1只计算一次,表达式2和表达式,3则可能计算多次。循环体可能多次执行,也可能一次都不执行。特别提示:for ( 表达式1;表达式2;表达式3) 循环体语句 例1:用for语句计算s=1+2+3+.+99+100main( ) int n,s=0;for(n=1;n3)是否为素数。分析:所谓素数,就是指除了1和它本身外再也没有其它的约数的自然数,也叫质数。要想验证一个数是否为素数,只要看它除了1和它本身外是否还有公因子,若有,则该数不是素数。若n要有公因子,则其公因子只能在2 n/2的范围内,如6的公因子有:2,3;8的公因子有:2,4;所以要看一个数n是否为素数,只需看在2 n/2中能否找到一个整数m(m能将n整除),若m存在,则n不是素数,否则n是素数。循环结构分析:循环变量初值:m = 2 循环条件:m = n/2 循环变量增值:m + +编码:main ( ) int n , m , sign = 1 ; /*sign变量作为一个信号标志,它的初值为1*/ printf (“请输入一个大于3的正整数n:”) ; scanf ( “ % d “ , &n) ; /*输入要验证的数n*/ for ( m = 2 ; m = n/2 ; m + + ) if ( n % m = = 0) sign = 0 ; /*若有因子则使信息变量sign为0*/ if ( sign = = 0 ) printf ( “%d不是素数!” , n) ; else printf( “ %d是素数!” , n) ;分析P65例7。二、循环的嵌套for语句也可与while,do-while语句相互嵌套,构成多重循环。以下形成都合法的嵌套。(见书P66)(2)dofor()while(); (1)for()while() (4)for()for() (3)while()for()例3输出1001000之间的所有奇数,要求每行输出8个数。main() int i,j,k=0; /*变量k统计输出的奇数个数,初始k为0*/ for(i=100;i=1000;i+) /*该循环提供要输出的奇数来源*/ if(i%2!=0) /*由于只输出奇数,所以首先判断i是否为奇数*/ if(k%8=0) /*若i是奇数,则还要看是否已输出了8个奇数,若是,则首先要换行*/ printf(n); printf(%d ,i); /*满足条件i%2!=0的i将被输出*/ k+; /*统计输出奇数的个数*/ 分析P67例9。小结1for循环结构的用法;2for循环使用特点;3.循环的嵌套使用;作业1P73 4.1-4.2;24.6(分析并要求做到作业本上);课 题:4.7 break和continue语句在循环中的运用教学目标:通过本堂讲授,使学生掌握break与continue语句在循环程序设计中的应用教学重点:全部教学难点:break和continue语句的应用环境教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1提问1)指出运行结果:main( ) int x , j =0 , k=0; for(x=5 ; x=1,I+)printf(“%dn”,I);3) 输出从1到100中所有的偶数,试填空完成。main( )int n=1; for( )if( ) printf(“%d”,n);2引入本堂内容新内容讲授一、break和continue语句break和continue语句都是用在循环体内部的语句,其中, break语句是终止循环而不管循环条件是否许可;而continue是结束本次循环,然后再根据循环条件决定是否进入下轮循环。下面程序段形象地表示了两条语句的功能:(1) (2) while ( ) while ( ) break ; continue ; 活动:分析下面程序的功能。例1 试分析下面程序段的功能: for ( r = 1 ; r 100 ) break ; printf ( “ %f ” , area ) ; 例2 把100 200之间不能被3整除的数输出。main ( ) int n ; for ( n = 100 ; n = 200 ; n + + ) if ( n % 3 = = 0 ) continue ; printf ( “ % 6d “ , n ) ; 例3 求100 200之间的全部素数。main ( ) int m , k , i , n = 0 ; for ( m = 101 ; m 200 ; m + + ) k = m /2 ; /*该行先不写*/ for ( i = 2 ; i = k + 1 ) printf ( “ %d “ , m ) ; n = n + 1 ; if ( n % 10 = = 0 )/*使输出的素数每10个数一行*/ printf ( “ n” ) ; 活动:分析下面程序的运行结果:main()int a,b; for(a=1,b=1;a=20) break;if(b%3= =1) b+=3; continue; b-=5;printf(“%dn”,a);小结1break在循环中的运用;2continue在循环中的运用;作业1P74 -P75课 题:第4章习题评讲教学目标:通过本堂讲授,使学生理解循环结构在程序设计中的作用,并熟练运用循环结构来解决问题教学重点:for循环的控制机制教学难点:多重循环的灵活运用教 法:讲授法所用课时:2节授课班级:网络45教学过程:一、 单项选择1、C语言中while 与do - while语句的主要区别是 ( )A)do -while的循环体至少无条件执行一次B)do -while允许从外部转到循环体内C)do -while的循环体不能是复合语句D)while的循环控制条件比do-while的循环控制条件严格2、假定a和b为int型变量,则执行以下语句后b的值为( )a = 1 ; b = 10 ;do b - = a ; a + + ; while (b - - 0 ) ;A) 9 B) 2 C) 1 D) 83、以下程序段( )x = -1 ;do x = x * x ; while ( !x ) ;A) 是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误4、下面程序的运行结果是( ) #include main ( ) int y = 10 ; do y - - ; while ( - - y ) ;printf ( “ %dn “ , y - - ) ;A) 1 B) 1 C) 8 D) 05、对for( 表达式1 ; ;表达式3 )可理解为 ( )A) for (表达式1; 0 ;表达式3 ) B)for ( 表达式1; 1 ;表达式3 )C)for(表达式1;表达式1 ; 表达式3 ) D)for ( 表达式1;表达式3;表达式3)6、若i、j均为整型变量,则以下循环( )for ( i = 0 , j = -1 ; j = 1 ; i + + , j + + )printf ( “ %d , %dn “ , i , j ) ;A)循环体只执行一次 B)循环体一次也不执行C)判断循环结束的条件不合法 D)是无限循环7、以下的for循环for ( x = 0 , y = 0 ; (y! = 123 ) & (x 3 ; j - - ) if ( j % 3 ) j - - ;- - j ; - - j ;printf ( “ %d “ , j ) ; A) 6 3 B) 7 4 C)6 2 D)7 3二、 按要求完成程序填空1、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。int n = 0 , c ;c = getchar ( ) ;while ( ) if ( ) n + + ; c = getchar ( ) ;2、下面程序的功能是用do - while语句求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印五个数。#include main ( ) int i = 1 , j = 0 ; do if ( ) printf ( “ %4d “ , i ) ; j = j + 1 ; if ( ) printf ( “ n “ ) ; i = i + 1 ; while ( i 1000) ;3、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。 #include main ( ) int i , j ;for ( i = 0 ; ; i + + ) j = i *10 + 6 ; if ( ) continue ; printf ( “ %d “ , j ) ; 三、编程练习1 编一程序求n的阶乘(n由键盘输入)。2计算1!+2!+3!+ +10!的值。3 求Sn = a+aa+aaa+ +aaa(n个a)的值,其中a是一个数字。例如:3+33+333+3333(此时n=4),n由键盘输入。4 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数。试验项目:循环结构程序设计试验目的:通过本次实验使学生熟练掌握各种循环结构在程序设计中的应用试验重点:理解循环程序的正确循环机制试验难点:对循环条件理解不够施用班级:网络45试验内容:一、while结构和dowhile 结构的循环程序练习1编一程序求n的阶乘(n由键盘输入)。2计算1!+2!+3!+ +10!的值。3 求Sn = a+aa+aaa+ +aaa(n个a)的值,其中a是一个数字。例如:3+33+333+3333(此时n=4),n由键盘输入。二、for 循环结构程序设计的练习和巩固4 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数。课 题:5章函数教学目标:通过本堂讲授,使学生掌握函数的定义及函数声明和函数调用教学重点:全部教学难点:函数声明和功能函数的实现教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1回顾前部分内容2引入本堂内容新内容讲授引入函数的概念。活动:翻到书P77,看到图5.1。简述函数的分类:见书P77页。1、函数的定义格式:函数类型 函数名(形参及其类型) 函数体变量说明;函数体 语句; 例1:写一个求n!的函数。int fac( int n ) int i , f ; f = 1 ; for( i = n ; i = 1 ; i- - ) f = f * i ; return ( f ) ;/*返回函数的值f*/ 例2:编一个求任意数的绝对值的函数。 float abs_value ( float x ) return(x=0 ? x:-x ) ; 例3 写一函数判断一个整数是否为素数(函数返回0表示不是素数,返回1是素数)。int prime ( int n) int m ; for ( m = 2 ; m = n / 2 ; m + + ) if ( n % m = = 0 ) return (0 ) ; return (1 ) ;2、函数声明及函数调用例4 编一个实现两个数交换功能的函数,并写出主函数。 main( ) int a = 3 , b = 5 ; void swap ( int , int ) ;/*函数声明*/ swap (a , b ) ;/*函数调用*/ printf( “ a = % d , b = % d n “ , a , b ) ; void swap ( int x , int y ) int temp ; temp = x , x = y , y = temp ; printf( “ x = % d , y = % d n “ , x , y ); 关于声明的说明:见书P81倒数第5行。(1)在函数声明中,形参名可以不写,但形参类型必须写;(2)在同一文件中,当函数定义写在前面主调节器函数写在后面时,可不要函数声明;例 5 输入三个数求最大者。 int max ( int x , int y ) int Max ; if (x y) Max = y ; else Max = x ; return (Max ); main( ) int a , b , c ,d ; int max ( int , int ) ; scanf ( “%d , %d ,%d ” , &a ,&b , &c ) ; d = max ( a , max (b ,c ) ); printf (“ %d “, d ); 3、函数的递归调用一个函数在它的函数体内调用它自身称为递归调用。 这种函数称为递归函数。语言允许函数的递归调用。在递归调用中, 主调函数又是被调函数。执行递归函数将反复调用其自身。 每调用一次就进入新的一层。例如有函数f如下:int f (int x) int y;z=f(y);return z;例8 用递归法计算n!用递归法计算n!可用下述公式表示: n!= 按公式可编程如下:long ff(int n) long f;if(n0) printf(n b ? a : b ; return ( c ) ;main ( ) int a = 8 ; printf ( “%d ” , max ( a , b ) ;程序运行后结果:8小结1局部变量的作用域;2全局变量的作用域;作业P95: 5.3、5.4试验项目:函数的定义方法及其调用试验目的:通过本次实验,使学生熟练掌握简单的函数定义及其正确的调用试验重点:功能函数的编写及正确调用试验难点:功能函数的构建施用班级:信安041、042、043试验内容:功能函数的编写及其调用1已知三角形的三边长,编一实现求三角形面积的功能函数。说明:用海伦公式来求面积,但要注意输入的三边长要符合构成三角形的条件。海伦公式为: S= (其中:s=(a+b+c)/2)#include math.hfloat area(int a,int b,int c) float s,ss; s=(a+b+c)/2; ss=sqrt(s*(s-a)*(s-b)*(s-c); return(ss);main() int a,b,c; float S; printf(Input a b c:); scanf(%d%d%d,&a,&b,&c); if(a+bc & a+cb & b+ca) S=area(a,b,c);printf(S=%f,S); else printf(data is wrong!); 2写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。int prime(int m) int i,sign=1; for(i=2;i=m/2;i+) if(m%i=0) sign=0;break; return(sign);main()int n,s; printf(nInput a date:n); scanf(%d,&n); s=prime(n); if(s=0) printf(%d is not a prime!,n); else printf(%d is a prime!,n);3编写函数,求1!+2!+3!+ +K!的和。long fac(int n) long s=1; int i; for(i=1;i=n;i+) s=s*i; return(s);main()int k,j; double sum=0; printf(nInput a data: ) ; scanf(%d,&k); for(j=1;j=k;j+) sum=sum+fac(j); printf(nsum=%f,sum);课 题:6.2 一维数组的定义和使用教学目标:通过本堂讲授,使学生掌握一维数组的定义、赋值及运用方法,同时能灵活运用数组的知识解决实际问题教学重点:数组的灵活运用教学难点:数组的元素恰当引用教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1回顾前部分内容2引入本堂内容新内容讲授引出数组的概念。1、定义格式: 类型标识符 数组名 元素个数 ;例:定义一个具有5个整数型元素的数组:int a 5 ; 类型标识 数组名 元素个数 看到书P97页上面几行:说明内容思考: 想一想下面数组的定义是否正确? 1) int b ( 7 ) ; 2) int n ;scanf ( “ % d “ , &n ) ;int an ; 3) #define MAX 500main ( ) int aa MAX ; 注意:数组元素的下标是从0开始的,而不是从1开始的,因此,若有定义:char cc 6 ; 则数组cc的元素为:cc0, cc1 , cc2 , cc3 , cc4 , cc5 。考虑为什么没有cc6?2、数组的初始化(1)定义数组的同时给数组赋初值 如:int b10 = 0,1,2,3,4,5,6,7,8,9 ;(2)可对部分元素赋初值,此时,未赋值元素将自动初始化为0 如:int b10 = 0,1,2,3,4 ;(3)若对全部元素赋初值,则可省略数组下标 如:int b = 1,2,3,4,5 ;相当于int b5 = 1,2,3,4,5 ;3、数组元素的使用C语言规定只能逐个引用数组元素,而不能一次引用整个数组。例:int a8 = 0,1,2,3,4,5,6,7 ; a0 = a5 +a7 + a2*3 ;思考:请考虑下面求具有8个元素的数组元素的和的方法是否正确? int a8 = 0,1,2,3,4,5,6,7 , s = 0 ; s + = a8 ;例1 通过键盘给有7个元素的数组a赋值,然后显示该数组内容。main ( ) int a7 , i ; printf (“ 请给数组元素赋值:” ) ; for ( i = 0 ; i 7 ; i + + ) scanf ( “%d” , &ai ) ; for ( i = 0 ; i 7 ; i + + ) printf (“%dt” , ai );例2 求具有10个元素的数组的最大值。代码:void main( ) int i,max,a10;printf(input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);max=a0;for(i=1;imax) max=ai;printf(maxmum=%dn,max);例6-3 用起泡法(冒泡法)对10个数排序。起泡法的基本思想是:将相邻两个数a0与a1比较,按由小到大将这两个数排好序,再依次拿a1与a2、a2与a3,直到最后两个数比较排好序。此时,最大数已换到最后一个位置,这算是完成了第一轮比较。经过若干轮比较后,较小的数依次“浮上”前面位置,较大的数依次“沉底”到后面位置,就像水泡上浮似的,所以称为“起泡法”或“冒泡法”。算法分析:先以数组b6 = 10 , 8 , 5 , 7 ,3 ,1 为例:第一轮比较如下:10 8 8 8 8 88 10 5 5 5 55 5 10 7 7 77 7 7 10 3 33 3 3 3 10 11 1 1 1 1 10比较次数:1 2 3 4 5 可以分析出6个数的数组第一轮共比较6 1 = 5次,可使最大数“沉底”,由此可推出第二轮比较6-2=4次,可使次大数下沉到预定位置。经过实际比较可知:6个数的数组共需6-1轮排序,才能达到要求。一般地,若是n个元素的数组要进行n-1轮排序,而在第j轮中要比较n-j次,一定要想清楚为什么?这是解此题的关键所在。相信大家通过多次试比,一定能得出这个结论的!编码:main ( ) int a10 ; int i , j,t,temp ; printf(“请输入10个数:”) ; for ( i = 0 ; i9 ; i + +) scanf (“%d” ,&ai ) ; for ( j = 1 ; j=9; j+ ) t = 10-j ; /*本轮要比较的次数*/ for ( i = 0; i ai+1 ) temp = ai ; ai = ai+1 ; ai+1 = temp ; for ( i = 0 ; i=9 ; i+ ) printf (“%dt” , ai ) ;活动:见书P100,例6-4,进行分析讲解。小结1一维数组的定义、赋值、元素引用;2一维数组的实际应用;作业P117: 13 6.2:1;P120:6.46.5课 题:6.3 二维数组的定义和使用教学目标:通过本次学习,使学生灵活掌握二维数组的概念及其用法教学重点:二维数组的具体运用教学难点:二维数组的存储特征教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1回顾前部分内容2引入本堂内容新内容讲授引出数组的概念。1 二维数组的定义一般格式:类型说明符 数组名常量表达式1常量表达式2;其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如: int a34; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有34个,即: a00,a01,a02,a03a10,a11,a12,a13a20,a21,a22,a23画出其内存单元的情形。2二维数组的初始化1)按行分段赋值可写为: int a53= 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 ; 2)按行连续赋值可写为:int a53= 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 ;3)可以只对部分元素赋初值,未赋初值的元素自动取0值。例如: int a33=1,2,3; 是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为: 1 0 0 2 0 0 3 0 0 int a 33=0,1,0,0,2,3; 赋值后的元素值为 0 1 0 0 0 2 3 0 0 4)如对全部元素赋初值,则第一维的长度可以不给出。例如: int a33=1,2,3,4,5,6,7,8,9; 可以写为: int a3=1,2,3,4,5,6,7,8,9;3.应用举例例1 一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科综合平均成绩。 姓名 MathCDBASE张扬807592王洋616571李三596370赵明858790周密767785可设一个二维数组a53存放五个人三门课的成绩。再设一个一维数组v3存放所求得各分科平均成绩,设变量l为全组各科综合总平均成绩。编程如下:void main() int i,j,s=0,l,v3,a53; printf(input scoren);for(i=0;i3;i+) for(j=0;jy) flag=1;else if (xy) flag=-1; else flag=0;return(flag);main()int a10,b10,I,n=0,m=0,k=0; printf(“Enter array a:n”); for(I=0;I10;I+) scanf(“%d”,&aI); printf(“Enter array b:n”); for(I=0;I10;I+)scanf(“%d”,&bI);for(I=0;IbI:%d timesn”,n);printf(“aI=bI:%d timesn”,m);printf(“aIk) printf(“array of a is larger than bn”); else if (nk) printf( array of b is larger than an”); else printf(“a is largeas bn”);2、数组名作为函数参数例2有一个一维数组score,内放10个学生成绩,求平均成绩。float average(float array10) int I; float aver,sum=array0; for(I=1;I10;I+)sum=sum+arrayI;aver=sum/10;return(aver);main()float score10,aver; int I; printf(“input 10 scores:n”); for(I=0;I10;I+) scanf(“%f”,&scoreI); printf(“n”); aver=average(score); printf(“average is:%f”,aver);活动:思考:如果求任意个数的平均值的功能函数如何实现?(先分析书中例题,再思考解决该题方案)翻到书P107,分析例6-8。小结1数组元素作为函数参数;2数组名作为函数参数;作业P117 P119试验项目:函数的定义方法及其调用试验目的:通过本次实验,使学生深入理解数组在实际问题中的应用试验重点:数据元素的正确引用试验难点:数组作为函数参数施用班级:网络45试验内容:数组的一般应用1 从键盘输入若干整数(个数应少于50个),其值在0到4的范围内,用-1作为输入结束的标志。统计每个整数的个数。试编程序完成。2 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,2。要求改为2,4,5,6,8。3已有一个排好序的数组,由键盘输入一个数,要求按原来的排序规律将其插入到数组中。课 题:6.5 字符数组教学目标:通过本次学习,使学生掌握字符数组的应用教学重点:字符数组的应用教学难点:字符数组的存储教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1回顾前部分内容2引入本堂内容新内容讲授引出字符数组的知识点。1、数组数组的定义和初始化字符数组的定义与初始化形式与前面介绍的数值数组相同。1)字符数组的定义例如: char c10; char c510;2)字符数组的初始化 char c10=c,o,p,r,o,g,r,a,m;9个字符分别赋给了c0至c8,由于c9没有得到赋值,所以由系统自动赋予0值。 char c=c,o,m,p,u,t,e,r;这时C数组的长度自动定为8。字符串在语言中没有专门的字符串变量, 通常用一个字符数组来存放一个字符串。在前面介绍字符串常量时,已说明字符串总是以0作为串的结束符。因此当把一个字符串存入一个数组时, 也把结束符0存入数组,并以此作为该字符串是否结束的标志。 有了0标志后,就不必再用字符数组的长度来判断字符串的长度了。 语言允许用字符串的方式对数组作初始化赋值。例如: char c=C program; char c=C program;活动1翻到书P109页,看例6-9,理解字符数组的使用。例6-9 本程序演示了二维字符数组的使用。main( ) int i,j;char a5=B,A,S,I,C,d,B,A,S,E;for(i=0;i=1;i+) for(j=0;j=4;j+)printf(%c,aij);printf(n);2分析如下两个例子1)main()char c=BASICndBASE;printf(%sn,c); 注意在本例的printf函数中,使用的格式字符串为“%s”, 表示输出的是一个字符串。而在输出表列中给出数组名即可。 不能写为: printf(%s,c);2 该程序实现通过键盘输入一个字符串,然后输出(由输入输出函数实现)。main() char st15; printf(input string:n);scanf(%s,st);printf(%sn,st); 分析:若运行时输入: this is a book,则运行结果如何?实际运行结果:this。2 字符串常用函数1)字符串输出函数puts 格式: puts (字符数组名) 功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。例6-11 该程序展示了puts函数的用法。#includestdio.hmain() char c=BASICndBASE;puts(c);puts函数完全可以由printf函数取代。 当需要按一定格式输出时,通常使用printf函数。2)字符串输入函数gets 格式: gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。 例6-12 该程序演示了字符串输入输出函数的用法。#includestdio.hmain() char st15;printf(input string:n);gets(st); puts(st);3)字符串连接函数strcat格式: strcat (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“0”。本函数返回值是字符数组1的首地址。例 6-13 本程序演示了strcat的用法。#includestring.hmain() char st130=My name is ;char st210;printf(input your name:n);gets(st2);strcat(st1,st2); puts(st1); 本程序把初始化赋值的字符数组与动态赋值的字符串连接起来。 要注意的是,字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。4)字符串拷贝函数strcpy 格式: strcpy (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“0”也一同拷贝。说明:字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。(P112看例6-14)活动1翻到书P113页,分析字符串比较函数与测试字符串长度的函数。2解释P114,例:6-17。小结1字符数组的定义;2字符数组的赋值及应用;作业P117 P119P120 6.7、6 .8试验项目:字符数组的应用试验目的:通过本次实验,使学生掌握字符数组在实际问题中的应用试验重点:字符元素的相关功能实现试验难点:字符函数的恰当运用施用班级:网络45试验内容:一、任务1写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。2编一程序,将两个字符串连接起来,不要用strcat函数实现。3写一函数,使给定的一个二维数组(32)转置,即行列互换。二、要求1正确输入程序代码2通过程序编译、连接、运行,分析程序的运行状况3修正或改进作业上的原程序代码课 题:7.1指针的的概念及其变量定义和引用授课目的:通过本次学习,使学生掌握指针就是地址的概念,以及指针变量的定义方法,同时,掌握指针变量的引用授课重点:指针的概念及指针变量的引用授课难点:指针的概念教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1回顾前部分内容2引入本堂内容新内容讲授引出指针的概念。指针是C语言中的一个重要概念,也是比较难掌握的一个概念.正确而熟练地掌握了指针的概念和指针的使用,就能设计出复杂的数据结构和高效的程序。每一个学习C语言的人必须深入掌握指针的概念和使用方法,否则,就等于没有掌握C的精华。一、指针的概念 1010H 1012H程序中的变量在程序编译时,系统都会根据其定义时的类型给它分配合适的内存单元。34.5Xyacef例如:int a=3;1014H1016H1017Hfloat c=4.5;char e=X,f=y;它们在内存中的情况如右图所示:要访问内存中的变量,在程序中是通过变量名来引用变量的值的。例如:printf(”%d”,a);实际上,在编译时,系统将每一个变量名对应一个地址,在内存中不再出现变量名而只有地址。程序中若引用变量a,系统找到其对应的地址1010H,然后从该项地址单元所标示的内存中取出值。 又如:scanf(”%d”,&b);实质上该函数的功能是将输入的值存储到变量b所在的地址单元。因此,由变量的地址找到相应的内存单元可以取出相应的值,这种方式叫“直接访问”方式。还有一种“间接访问”方式,就是把一个变量的地址放在另一个变量中,如下图所示:34Papb101010122002ab101010122004上图以物理的角度(实际存储情况)来表示的,下面从逻辑上来表示: pa a pb b43一个地址变量指向一个普通的变量,在C语言中用“指针”来表示指向关系。所谓指针,就是地址。变量的指针就是变量的地址。存放地址的变量就是指针变量。二、指针变量的定义及引用1指针变量的定义格式:基类型 *指针变量名说明:基类型是该指针变量指向的变量的类型。例:int *p;float *point1;char *point2;思考:如何使一个指针变量指向一个普通类型的变量?例:int *p ; p I3&Iint I=3 ;p=&I ; 注意:指针变量前的“*”,表示该变量的类型为指针型变量。2指针变量的引用定义了一个指针变量以后就可以对该变量进行各种操作。例1:int *p;printf(”%o”,p);例2:int *p,a;p=&a;scanf(” %d”,p);printf(“%d”,*p); /*注意此时的“*”与指针变量定义时的“*”不同*/例3: int *p,a;p=&a;*p=5; 说明:指针变量只能存放地址,不能将一个数值赋给一个指针变量。例:int *p;p=100;例:通过指针变量访问整型变量(分析下面程序段)。main( ) int a,b; int *p2,*p2; a=50;b=10; p1=&a; p2=&b; printf(”%d,%dn”,a,b); printf(”%d,%dn”,*p1,*p2);3.&与*运算的说明:(见P184下面数第7行)(1)&:取地址运算符;(2)*:指针运算符;说明:&和*两个运算符的优先级相同,但按自右而左方向结合。分析以下是什么意思?int a,b;int *p1,*p2;p1=&a;p2=&b;&*p1;p2=&*p1;*&a;(*p1)+;例:分析下面程序。main() int *p1,*p2,*p,a,b; scanf(”%d,%d”,&a,&b); p1=&a;p2=&b; if(ab) p=p1;p1=p2;p2=p; printf(”a=%d,b=%dn”,a,b); printf(”max=%d,min=%dn”,*p1,*p2);小结1. 指针的概念2. 指针变量的定义及赋值引用作业P137 7.1: 1-6课 题:7.4-7.5指针变量作为函数参数及数组的指针教学目标:通过本次学习,使学生掌握指针变量作为函数参数的用法,同时掌握数组的指针教学重点:指针变量作为函数参数及数组的指针教学难点:指针变量作为函数参数教 法:讲授法所用课时:2节授课班级:网络45教学过程:复习上堂内容活动:1回顾前部分内容2引入本堂内容函数的参数不仅可以是整型、实型、字符型数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中,它与其它类型的变量作函数参数的使用差不多,读者先分析一下下面的小程序,相信对指针变量作函数参数就有所理解了。新内容讲授引出指针变量作函数参数的知识点。1、 指针变量作为函数参数例分析下面程序的运行结果。main( ) void sub(int *px ,int *py); /*函数声明*/ int x,y; sub(&x,&y); /*调用sub函数,实参为变量x和y的地址*/ printf(“%d,%dn”,x,y); void sub(int *px,int *py) *px=10; /*给px所指向的变量赋值为10*/ *py=20; /*给py所指向的变量赋值为20*/ 图7-8 题中变量在内存中的情况例2对输入的两个数按由大到小的顺序输出(用函数实现)。Swap(int *p1,int *p2) /*该函数实现两数交换功能*/
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学程序设计基础——C语言-武春岭-课件PPT
链接地址:https://www.renrendoc.com/p-21836399.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!