《徐敏-C语言启蒙.pdf》由会员分享,可在线阅读,更多相关《徐敏-C语言启蒙.pdf(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(0 分 00秒)C 语言启蒙主讲人:徐敏(1分 32秒)目 录(入门)第 1章 数 据 类 型3第 2 章第 3 章第 4章第 5 章第 6 章第 7 章第 8 章第 9 章第 10章第 11章第 12章第 13章输入输出语句 4选择结构 5流 程 图 7循环结构(一)8循环结构(二)9函数 10数组 12字符 12字 符 串 14结构与联合14二 进 制 15硬件知识 17(进阶)第 15章第 14 章 输 出 语 句输入语句 2019第 16章第 17章第 18章第 19章第 20章第 21章第 22章第 23章第 24 章第 25章第 26章数据类型与表达式更多的运算符 21选择的嵌套
2、23多路分支 24循环的嵌套25函数的嵌套27多维数组 29结构的嵌套31枚举 32指针基础 32位 运 算 3420(高级)第 27章 指 针 与 一 维 数 组 36第 28章 文 件 37第 29章 预 处 理 39第 30章 自 定 义 类 型 4 0第 31章 指针与二维数组4 1第 32章 指针与字符串 4 2第 33章 指 针 与 函 数 4 3第 34 章 指针与结构4 5第 35章 双重指针与数组4 6第 36章 链 表 理 论 4 8第 37章 链 表 实 践 4 9第 38章 变量生存期50第 39章 常 用 算 法 51第 4 0章 难题讲解 52附录:ASCH码表59
3、华科电脑学校二级C语言专用教材(3 分 53秒)入门(入门)第 1章 数 据 类 型C 语言的用途计算机“语言”的责任是让人与计算机可以通话,下指令。C 语言是目前世界上流行最广的可以给计算机“下指令”的语言之一。目前我们学的几乎所有软件,如:Word,Excel,QQ,Photoshop,W indows,千千静听,电影播放器,VB,VFP。游戏有:魔兽世界,魔兽争霸,劲舞团,征途,跑跑卡丁车都由C 语言的身影。(6 分 32秒)软件公司开发软件首选C,主要是因为 C 语言设计的软件速度快,代码精简,占电脑资源少。但是它有个明显缺点:难学。造成C 程序员资源稀少,工资高,直接导致软件成本上升
4、。(7 分 32秒)两种人适合学习C 语言,一种是将来要通过软件设计赚钱的人,像上面所说的软件和游戏的开发,或者是单片机开发等;另一种是对计算机本身非常有兴趣,将来要往黑客,人工智能,汇编语言等分支发展的人。软件与参考书(8 分 50秒)建议安装:一、操作系统:Windows XP二、开发工具:Visual Stdio 6.0英文版,简称VS6.0,安装时包含有VB6、VC6、VFP6等软件,可以选择安装。三、补丁:VS6sp6四、随机帮助:MSDN(Microsoft Devel oper Network微软开发者网络)五、助手:Visual Assist(V C助手),可以加快编写程序的效
5、率,减少出错概率参考书籍:潭浩强的 C 程序设计,清华大学出版社一个简单的程序(12 分 26 秒)incl ude /*使用别人的程序*/main()/*程序入口点*/*起点*/int a=l+2;/*叫计算机执行的指令*/*终点*/标识符(17分 16秒)标识符就像给刚出生的小孩取名字一样,给刚定义的变量或函数取名字。合法的标识符:由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。大写字母和小写字母被认为是两个不同的字符,因此TEACHER、teacher和 Teacher是三个不同的变量名。(18分 4 0秒)题目讲解:以下选项中哪个是正确的标识符:A、void B、_asb3
6、 C、abc.c D、2c关键字(20分 13秒)关键字属标识符的子集,有些标识符已经被系统使用,称 之 为“关键字”。因此,程序员在写程序时就不能取与关键字相同的名字。如:void,whil e,#define常量(21分 09秒)定义:其值不能被改变的量。如:50-2 2.382 t “hel l o”都是常量。还有一种特殊常量:#define MAX 5这种常量的用法,将 在“宏定义”一章中讲解。变量(22分 07秒)定义:其值可以被改变的量。如 a a3max给变量取名时要符合标识符的规定。整数:整型常量(22分 4 8秒)整数分十进制,八进制,十六进制,它的明显标志是:没有小数点。八
7、进制和十六进制将在“二进制”一课中讲解。(23分 30秒)计算机中各整数类型的取值范围:short:短 整 型(-32768-32767)int:整 型(-214 74 8364 8 214 74 8364 7)l ong:长 整 型(-214 74 8364 8 214 74 8364 7)unsigned int(short,l ong):无符号整型(0上面的范围乘以2 再 加 1)(26分 00秒)题目讲解:以下选项中正确的整型常量是(是空格):A、12.B、-20 C、1,000 D、4 口5口6第3页华科电脑学校二级C语言专用教材实 数(浮点数):实型常量(27分 28秒)浮点数,顾
8、名思议,就是有个小数点可以左右浮动的数,在数学上又叫“实数”。浮点数分小数和指数部分,它的明显标志是:有小数点。合法的小数部分:0.329.329 3.-.2+.2(28分 32秒)指数部分:在早期的计算机中,想把指数部分写在数字的右上角相当的困难,因此编程语言一般都用e和 E表示指数部分。如:0.329*102在计算机中表示为.329e+2,0.8*10-8表示为O.8e-8。(30分 11秒)计算机中各浮点类型的取值范围:浮点型:fl oat(-3.4 e-383.4 e38)双精度浮点型:doubl e(-1.7e-3081.7e308)长浮点型:l ong doubl e(-1.7e-
9、3081.7e308)(31分 4 5秒)题目讲解:以下选项中正确的实型常量是:A、0 B、3.D14 15 C、0.329*102 D、.871其它复杂类型(32分 31秒)枚举型enum结构struct联合union自定义类型typedef另外还有字符与字符串类型将在后面的课程中讲解。运算符(33分 10秒)+-*/%(取余)都叫运算符,C 语言中运算符有几十种,并且有不同的优先级与结合性。在本课只需要认识这些类似数学上的运算符和优先级,结合性的概念将在后面讲解。表达式(34 分 36秒)表达式由变量、常量、运算符组成。如:S=3.14*(r*r)它符合数学上的运算次序,先括号,再乘除,再
10、加减。作业1、以下选项中哪个是正确的标识符:A、_void B、asb*3 C、f.n D、2c2、以下选项中正确的整型常量是:A、12.B、.2 C、1口2口3 D、03、以下选项中正确的实型常量是:A、0 B、2.O71828 C.329E+2 D、-871第 2 章输入输出语句使用VC6(5 分 32秒)建立程序流程:(1)在菜单中选择:Fil e/New会弹出一个窗口。在窗口中选择Projects标签,选择 Win32 Consol eAppl ication选项。点击Location文本框右边的按钮,选择你要在哪个文件夹中创建文件,再 在 ProjectName文本框填入你的项目名,
11、单击OK。(2)再一次在菜单中选择:Fil e/New会弹出同样的窗口,在窗口中选择Fil es标签,选择C+SourceFil e选项。点击Location文本框右边的按钮,选择你要在哪个文件夹中创建文件,再在Fil e文本框填入你的文件名(文件名后面一定要加.c)。再单击OKo运行程序:点击感叹号,或按Qrl+F5键,再按OK按钮,程序就会运行。输出(14 分 50秒)printf的作用是按格式在显示器上显示字符。(18分 53秒)程 序 1printf的使用printf函数双引号中包括三种字符:(1)以开头的格式控制字符(2)以 开头的转义字符(3)普通字符输入(28分 18秒)scan
12、f的作用是按格式从键盘接收字符。(28分 4 4 秒)程序2scanf的使用(31分 37秒)使用scanf时,变量前的&号非常第4页华科电脑学校二级C 语言专用教材重要,这是它与printf的一个明显区别。(33分32秒)执行到scanf时,程序会停在那里不动等待键盘输入,待用户按下回车后,程序才会继续往下执行,而printf不会。(35分25秒)程序3计算两数之和(38分05秒)在程序3中,scanf在不修改代码的前提下,就可以实现许多数学运算。(38分34秒)程序4分别输入两个整数给两个整型变量a,b,交换a与b的值,再输出(4 5分30秒)等号的作用是将右边的数值装进左边的变量。X a
13、=b执行以后,b的值并不会消失,它们是复制的关系。(49分48秒)继续程序4排查错误小经验(52分10秒)总结d和n作业由用户输入一个梯型中上底,下底,高的数值,由电脑算出它的面积,输出在屏幕上。(注意:数学计算一般使用浮点型数据)第3章 选 择 结 构关系运算符(00分15秒)小于大于等于=小于等于=不等于!=逻辑运算符(02分03秒)非:!与:&或:II(04分01秒)题目讲解:假设 x=l,y=2,xl=3,yl=4,那么 xy|xly)&x l、=、,关系:=b)&(xy)可化简为 ab&xy(a=b)|(x=y)可化简为 a=b|x=y(!a)|(ab)可化简为!a|abif 语句(
14、26分 35秒)格式:if(表达式)(若干语句(27分 07秒)程 序 1用户输入2 个数,按从大到小的顺序将它输出(35分 08秒)变化一:格式:if(表达式)一条语句;注意:if(ab)a+;b+;相当于if(ab)(a+;)b+;而不是if(ab)(a+;b+;(37分 56秒)变 化 二(二选一):格式:if(表达式)若干语句el se(若干语句(38分 4 8秒)变化三:格式:if(表达式)一条语句;el se 一条语句;(39分 08秒)程序2用户输入2 个数,按从大到小的顺序将它输出的第二种解法单目运算符和双目运算符(4 4 分 15秒)目前学过的运算符中,+、-!都为单目运算符
15、。其实减号运算符也可作单目运算符,它加在表达式(表达式可包括常量、变量)左边,表示取它的相反数。双目运算符的两边必须都要有表达式(4 5分 11秒)程序3输入一个整数,打印出它是奇数还是偶数(学习的使用)程序调试技巧(51分 25秒)程序调试:F9:设置断点F5:运行至断点F10:单步执行F11:单步执行至函数内部(60分 25秒)在 V C中书写程序时如果不小心拼错了某个关键字或漏了什么标点标号等等,这叫语法错误。这时按感叹号时在编辑器的下面会报错,查找错误的方式就是在报错栏中找到带error的行,第 6 页华科电脑学校二级C语言专用教材再双击它,代码栏就会出现一个蓝色箭头指向错误行,再在错
16、误行的附近查找语法错误并修正它。作业上机改错题:输入两个数,求出它们之中最小的数输出#incl ude stdio.hmain()(int a,b;/*不*nd*字 字/scanf(%d%d”,&a,&b);if(ab)/*fou nd*,本/printf(最小的数为d,a);)el se(printf(最小的数为d”,b);)第 4章 流 程 图解题思路(算法)(01分 20秒)问题一:将变量a 与 b 中的值互换解题思路:1、设一个临时变量c2、将 a 的值赋给c3、将 b 的值赋给a4、将 c 的值赋给b(02分 57秒)问题二:计 算 1+2+3+4+5的和。解题思路:1、计 算 1+
17、2的和等于32、计算3+3的和等于63、计算6+4 的和等于104、计 算 10+5的和等于15顺序结构流程图(04 分 4 5秒)讲解流程图问题二学习流程图得先学会看,再尝试跟书上画的一模一样,最后自己画。(08分 22秒)程 序 1 内附带debug窗口无意关闭如何处理程 序 1计 算 1+2+3+4+5的和选择结构流程图(15分 19秒)问题:判断一个数能否同时被3 和5 整除(18分 38秒)不一定一个图框要对应一行代码,也可以直接写文字思路。画图时尽量不要交叉流程图为了美观,有时图框可以画成并排的,而程序不可能并排执行,在流程图转化为程序时要注意这点。(见 PPT演示)(21分 32
18、秒)(PPT演示)流程图上下排列(23分 4 1秒)(PPT演示)画流程图的顺序第7页华科电脑学校二级C语言专用教材(25分 50秒)程序2判断一个数能否同时被3 和 5 整除作业画流程图并写程序:输入一个学生的成绩,判断该成 绩 在 6 0 分以上就显示“及格”,否则显示“不及格”。第 5 章 循 环 结 构(一)需求:用计算机计算从1加 到 10的和前面先讲了程序1 (12分 57秒)一种笨方法:解题思路:1、定义2 个变量:计数器,总和,并初始化为02、计数器加1 (1)3、总和=总和+计数器4、计数器加1 (2)5、总和=总和+计数器6、.7、计数器加1 (10)8、总和=总和+计数器
19、9、输出总和55(01分 53秒)程 序 1计算 1+2+3+-+9+10(14分 21秒)累加器一般初始化为0,请同学们想想累乘器可否初始化为0?goto语句(15分 26秒)格式:got o标号;标号格式:标识符:语句;规律:goto语句通常配合if 语句使用,否则容易构成死循环(15分 55秒)程序2计算 1+2+3+-+9+10 的 goto 解法(29分 05秒)讲解流程图while语句(34分 55秒)格式:while(条件表达式)(若干语句(35分 20秒)程序3计算 1+2+3+-+99+10 的 while 解法(44分 16秒)讲解流程图第8页华科电脑学校二级C 语言专用教
20、材(4 7分3 5秒)错误讲解:p r i n t f放在循环体内和外的差别do wh i l e 语句(5 2分3 5秒)格式:若干语句 wh i l e(条件表达式);(5 3分3 9秒)程序4打印出0到2 0 1 0年之间所有的闰年注意:(6 9分1 0秒)所有的循环语句都是条件满足才执行循环体(7 0分1 9秒)於wh i l e语句至少会执行一次循环体,wh i l e则有可能一次都不执行。作业1、写出计算1+2+3+9 9+1 0 0的do wh i l e解法。2、求 1 0!第6章 循 环 结 构(二)死循环(0 0分5 5秒)插入和/*/两种注释符的区别。(2 9分4 0秒)
21、这里用了倒序讲解,所以在2 9分钟才开始讲死循环的内容软死机:CPU占用1 0 0%,双核占5 0%,机器明显变慢。出现软死机其实就是死循环。如wh i l e(l);就是个死循环语句,请不要用在歪门邪道处。硬死机:鼠标、键盘、显示器无响应。大部分的死循环是忘记改变循环变量的值造成的。进化(0 3分0 0秒)程 序1将1到1 0显示在屏幕上(0 3分0 1秒)(1)使用g o t o语句(0 9分1 5秒)(2)使用wh i l e语句(1 4分4 8秒)(3)使用f o r语句(2 0分3 5秒)规律:f o r循环一般用在循环次数确定的循环中,而wh i l e一般用在循环次数不确定的循环
22、中。f o r语句(2 2分3 5秒)规律:将wh i l e的初始化、递增都组装成一条语句,就成了 f o r格式:f o r(循环变量赋初值;条件表达式;循环变量增值)(若干语句f o r循环执行流程(2 2 分 5 3 秒)f o r(n=0;n 1 0 0;n+)(循环体相当于n=0;w h i l e(n 1 0 0)(循环体n+;c on t i n u e 和 b r e a k 语句(3 7分4 6秒)c on t i n u e可结束本次循环,但不跳出循环,b r e a k语句可直接跳出本层循环。第9 页华科电脑学校二级C语言专用教材(3 8分1 2秒)程序2用c on t
23、 i n u e求1至!|1 0 0的偶数之和(5 0分2 0秒)讲解流程图(5 0分1 0秒)题目讲解:判断一个数n是否为素数(5 6分5 0秒)先讲标记法程序(6 3分3 7秒)才正式讲解素数判定程序解题思路:(脑中所想)(5 5分2 8秒)假设这个数是n,要判断n是否素数,必须用n除以2到n-1,有任意一个除断即不是素数,全部除不断就是素数。(6 2分2 3秒)2到n-1可以用一个f or循环解决,在f or循环中如果n除以任意一个数除断,就要立刻跳出循环。(6 2分4 7秒)在循环中要使用一个变量作为标志,如果是用b r e a k跳出循环的,就将这个标志置0,如果是自然退出循环的,标
24、志就置lo当循环结束后,查看标志为0就输出“不是素数”,为1就输出“是素数”。(7 2分5 0秒)写在纸上的草稿:定义i,n,j三个变量输入nj置1(默认是素数)循环i=2到n-1如果n+i可以除断把标志位j置0跳出循环判断j的值如果是0就输出“不是素数”如果是1就输出“是素数”。(6 3分3 7秒)程序3素数判定(7 4分1 2秒)规律:一般循环中的b r e a k或c on t i n u e语句都使用i f语句判断后执行。f or循环的变化(7 4分3 5秒)f or语句中两个分号之间可以没有表达式,比如:f or(;i 1 0 0;i+).是一种常用写法。如果写成f or(;);就成
25、了死循环。这表示,f or循环中的所有表达式,它可以根据实际需要进行增减,有些人就喜欢放在循环体中判断循环条件,再用b r e a k来跳出循环。作业100 50 10 1建+于+屋、求 =1 k=l k=K2、画出素数判定的流程图。第7章 函 数库函数(0 2分4 0秒)我们平时使用的p r i n l f和s c a n f都是库函数,除此之外还有常用的求平方根函数s q r t,做游戏用的r a n d等等也是库函数。使用库函数时要使用#i n c l u d e宏命令来包含有库函数的文件。(0 4分1 7秒)程 序1求2的平方根(0 9分2 0秒)“随机”表示没有规律,随机函数就第10
26、页华科电脑学校二级C语言专用教材表示一种没有规律的函数,这种函数可以模拟很多现实的事务,比如洗扑克牌,摸奖,很 多MP3播放器的随机播放模式等等。要在C语言中使用随机函数,需要调用s r a nd和r a nd这两个函数。s r a nd是随机种子,r a nd表示在03 2 7 6 7之间产生一个随机整数。程序2(1 0分4 2秒)先讲解随机函数程序r a nd(2 3分2 6秒)讲解正式程序猜硬币函数的作用(3 2分3 2秒)1、减少重复代码的编写。2、将一个大项目按功能分解成函数,让多个程序员分别设计。也就是分工合作,增加效率。自定义函数(3 5分1 4秒)程序3简单的自定义函数带自定义
27、函数时需使用FU调试(44分3 4秒)自定义函数的格式:返回值的类型函数名(类 型 名 形 式 参 数1,类型名形式参数2,)(若干语句r e t u r n表达式;(5 2分2 8秒)程序41 00 6 00 3 5 0Yn+之+八求 n=w=5 00 w=3 00 的和注意:(62分43秒)函数形参的定义与普通变量定义不同的是:同时定义2个普通变量可以用i nt a,b;而函数形参只能用i nt a,i nt b(63分41秒)父函数在调用子函数后,会在调用点等待子函数返回,子函数永远不返回,父函数就永远不会往下执行。(6 5分28秒)不能调用m a i n函数函数声明(66分20秒)如果
28、子函数在父函数之后定义,就要对子函数先进行“声明”,否则父函数会认不到子函数。函数声明的格式就是自定义函数的首部加上分号。(70分0 4秒)如果函数返回值为整型,不需要声明也可编译通过,但是不提倡使用这种方式。数据传递(71分28秒)父函数调用子函数时,通 过“实际参数”将数据传给子函数的“形式参数”。父函数将数据传给子函数加工时,子函数不会改变父函数中的数据,它加工的只是实际参数的副本。(72分57秒)子函数通过r e t u r n将加工好的数据传回父函数,这时子函数中所有的数据寿终正寝。(75分25秒)父子函数中如果有变量重名,这两个变量之间不会互相影响d o u b l e f u n
29、(d o u b l e m,d o u b l e n)f u n函数/用 的内存区II-n的内存区,I个I.I.II.复利;1复制m j i n函数:6的内存区:/*将实参复制到形参*/:1 d2的内存区,;(75分4 2秒)程序5父子函数变量重名示例函数返回值(8 0分0 7秒)格式:r e t u r n表达式;或r e t u r n(表达式);表达式最后的运算结果要与函数定义时的类型相同。如上面的代码,f u n定义为d o u b l e类型,r e t u r nm中的m也必须是d o u b l e类型。每个函数只能通过r e t u r n返回一个值。(8 2分1 5秒)如
30、果函数头部没有返回类型标识,默认返回类型为i nt函数中无论有多少个r e t u r n,只有一个r e t u r n会第1 1页若干语句r e t u r n m;ma i n()/复:制复制c|p u b l ed=f u n(d l,d 2)华科电脑学校二级C语言专用教材执行,re t u rn 一旦执行,函数马上就会跳出,后面的代码不再执行。(8 4分3 0秒)无返回值的函数:无返回值的函数,类型定义为v o i d。函数体中若没有re t u rn语句,或是有单独一个re t u rn;后面不带表达式,均符合v o i d函数的条件。这时的re t u rn功能有点类似b re
31、a k语句。(8 6分4 3秒)无返回值函数也称“功能函数”,主函数不需要它返回什么结果,只需要它做完某件事。(8 6分5 2秒)程序6无返回值的函数总结(9 1分04秒)函数的定义、声明、调用、形式参数、实际参数。作业不要看例题,独立完成程序4的代码。第8章 数 组一维数组(03分0 5秒)数组的作用:如果你有一组类似的数据,一个个起名字麻烦也没意义,用个数组保存它们,用起来省事又方便。(04分2 7秒)定义:类型名数组名 常量表达式;如:i n t a 8;它定义了一个有8个元素的数组,下标从0-7(0 7 分 3 8 秒)初始化:i n t a 8=0,l,2,3,4,5,6,7 ;8个
32、元素分别初始化成0,1,2,3 4 5,6,7也可以:i n t a 8=3 ;它只把a 0 初始化成3,后面的a l到a 7 系统默认初始化为0(1 0分5 6秒)程 序1求任意5个数中的最大数(27分42秒)一般在数组前面有类型说明符的,如d o u b le a 5 就 是“定义”数组。反之,前面没有类型说明符的,如n=a 5、a 5=n就是使用数组。定义数组时,方括号里只允许使用常量,不允许出现变量。如:i n t n=5;i n t a n;这是非法的数组定义。(3 1分5 2秒)数组在使用时就不允许使用a 8=0)这样的方式来给数组赋值,只有使用循环来给数组元素一个一个地赋值。(3
33、4分0 9秒)定义数组时,方括号中可以是空的,如:i n t a =1,2,3);这时电脑会自动计算出a数组有3个元素,会把这行代码翻译成i n t a 3=1,2,3 ;再执行。这种数组一定要用花括号初始化,比如i n t a ;这是非法的定义。(3 5分3 8秒)程序2将数组中的值按逆序重新存放。例如,原来顺序为5、8、9、4、6,调整以后为 6、4、9、8、5。(5 0分2 5秒)数据调换不了的奇怪错误作业技巧:一旦有循环的题目,一定要在纸上打草稿1、求某数列的前40个数:1,1,2,3,5,8,1 3,2 1 第9章 字 符字符常量(00分0 0秒)尔和9都是字符常量注意:9,和9有很
34、大区别单引号的空格口也是一个字符常量,但不能写成连续两个单引号”字符变量(0 2分0 5秒)c h a r c;/*定义一个字符变量*/(0 3分1 1秒)字符变量在内存中占一个字节,它只能存放A S C I I (美国信息交换标准代码)码。标准的A S C I I码只有1 2 7个字符(见附录1),电子设备统一了标准,各种电报机,打印机,电脑就可参照标准大规模生产,还可以通过A S C I I码交换数据。(1 1分44秒)我们在用键盘输入数据时,电脑会 从A S C I I对照表中读取相应的A S C I I码装入内存,而不是真实的字符。同理,想要显示信息在屏幕上时,也要使用参照表将ASCH
35、码转换成字符,第12页华科电脑学校二级C语言专用教材再显示在屏幕上。(66分 20秒)大家看到,在 ASCII码表中,每个字符都有序号,要记住我们常用的字符对应的序号也不难,方法如下:对应的整数为4 8-57对应的整数为65-90a,z 对应的整数为97122大写字母与小写字母的差值为32,于是得出小写字母减32的值刚好是对应的大写字母。字符类型的输入输出(18 分 04 秒)printf 和 scanf格式控制符为c如:char c;scanf(c”,&c);printf(c,c);(21 分 22 秒)putchar 和 getchar如:char c;c=getchar();putcha
36、r(c);无论是字符还是字符串常量,引号在屏幕上输入输出都不会显示。在编程时一定要加上,以区分其它类型的常量。字符运算(25分 08秒)X C 语言规定,所有的字符运算都是转成ASCH码的整数运算。如:B-A 相当于 66-65=1匕+1 相当于 97+l=98=b9+9相当于 57+57=114=T(30分 50秒)既然字符型数据和整型数据可这么方便的转换,那么字符型数据也经常使用d 输出,用来得到字符的ASCH码序号。(32分 36秒)不可以对字符串进行类似的运算,如“b-“a”是错误的,字符串运算必须通过函数,将在后面介绍(33分 25秒)程 序 1字符运算用 scanf输入字符(4 9
37、分 35秒)每个c 只接收一个字符scanf(c%c%c”,&a,&b,&c);如果输入uvwxyz(回车)系统会自动一个一个地截取,使 a=U,b=V,c=W(50分 56秒)在字符型变量上使用列宽控制时,第一个变量只会读取第一个字符,第二个变量会跳跃列宽后再读取一个字符scanf(“3c%3c”,&c I,&c2);如果输入abcde(回车)cl 为 a,c2 为 d(52分 37秒)空格和回车都作为字符scanf(c%c%c”,&a,&b,&c);如果输入xDyDz系统会自动使a=,x5,b=,ET,c=,y 最右边的两个字符被丢弃如果输入x(回车)yza、c 与前面相同,但是b 会赋于
38、一个回车。也就是ASCII 码的 10o(55分 4 8秒)题目讲解:有以下程序#incl ude main()char cl,c2,c3,c4,c5,c6;scanf(u%c%c%c%cn,&c 1 ,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c l);putchar(c2);pri ntf(%c%cn u,c5,c6);)程序运行后,若从键盘输入(从 第 1列开始)123(回车)4 5678(回车)则输出结果是A、1267 B、1256 C、1278 D、124 5参考答案:D作业用电脑实践“用 scanf输入字符”这一小节的程序。第13
39、页华科电脑学校二级C语言专用教材第 10章 字 符 串字符串(00分 00秒)在 C 语言中,没有字符串型数据,只能用字符数组和字符指针来处理字符串。如:char ca10=h,e,T,T,o,0;或char ca 10=hel l o;或char ca 10=hel l o;(04 分 36秒)都表示ca这个字符串中有10个字符(包括0)。后面多出的元素自动补0。但是运算中 出 现 ca=sl ring!”;这样的赋值语句是不合法的,后期赋值只能使用循环轮循数组元素,一个一个写入。或者用字符串处理函数进行赋值。字符串的输入输出(10 分 20 秒)printf 和 scanf格式控制符为%s
40、/*s为 string的意思*/与字符型数据处理不同的是,用s 后面的变量一定是数组名。如:char ca 10=hel l o;prinl f(%sn,ca);(12分 31秒)printf中可以在s 前面加数字和正负号:printf(8s”,ca);系统会自动在左边补空格,输出结果为:hel l o加负号printf(-8s”,ca);系统会自动在右边补空格,输出结果为:hel l o口口(16分 05秒)scanf在 s 前面加数字,意义完全不同,也不能加正负号:scanf(%3s”,ca);输入:abcde(回车)电脑会自动截取前面3 个字符对ca赋值,ca的值为“abc”。(17 分
41、 00 秒)puts 和 gets格式:puts(字符数组名);gets(字符数组名);如:char ca10;gets(ca);puts(ca);注意:gets可以接收空格和TAB键,scanf不可以。字符串处理函数(18分 21秒)strcpy(sl,s2):复 制(目标串,源串)strcat(sl,s2):连 接(目标串,源串)intstrl en:求 长 度(字符串),返回长度int strcmp(sl,s2):比 较(串 1,串 2),返回值0,表示 sl s2;=0,表示 sl=s2;0 表示 sl s2(24 分 54 秒)程 序 1使用字符串处理函数提示:字符串的比较实际上是比
42、较它们的ASCH码作业用户输入若干个大写字母,将这些大写字母转换成小写字母输出。第 11章 结 构 与 联 合结构的作用(02分 4 8秒)处理大量的数据,除了使用数组外,还有一个方法,就是使用结构。以前我们只学过int,doubl e,char等几种类型,学了结构以后,程序员就可以定义自己的类型。(0 4 分 10秒)从二维表格理解结构(见 Excel演示)结构类型的定义(06分 50秒)定义格式:struct结构名(成员表列 变量名表列;(14 分 51秒)这里用了倒序讲解。技巧:“结构名”和“变量名表列”可省略,初学者在使用结构时,一般可省略后面的变量名表列,以便于理解。第14页华科电脑
43、学校二级C 语言专用教材/*姓名*/*性别*/*年龄*/(07分 15秒)如:struct student(char name20;char sex3;int age;);上面定义了一个结构student,中间是此结构的3个成员变量。记住,它们不可以赋初值,目前只是个躯壳。(16分 10秒)那么什么时候才能给里面的成员赋值呢?那就是定义此结构类型的变量。结构在定义时,后面的分号不可少。结构变量(20分 30秒)定义格式:struct结构名变量名;如:struct student stu;此处的stu就是一个student类型的变量。和数组一样,它也可以在定义的时候初始化,但是格式有些不同:st
44、ruct student stu=“张三,男”,23;(24 分 05秒)注意:结构变量初始化,必须根据成员变量的类型逐个赋初值,而数组中所有的元素都是赋同样类型的值。使用结构变量(25分4 3秒)结构变量不能直接引用,必须使用 号对结构中的成员变量进行操作,如:stu.age=18;/*赋值*/printf(%d”,stu.age);/*打印*/成员变量像普通变量一样可进行数学运算。(28分 4 0秒)程 序 1学生结构联合(35分 50秒)在“我的电脑-文件夹选项”中有两种按钮,圆形的是单选按钮,方形的是多选按钮。结构就类似于多选按钮,你可以同时使用其中多个成员变量。联合就相当于单选按钮,
45、无论何时,你只能使用其中一个成员变量,并且只有最后一次设置的成员变量有效。(38分 37秒)联合的定义格式与结构差不多,只是前面的struct改成union。除此之外,联合还有以下特点:只能对联合的第一个成员进行初始化。如:union un(int i;doubl e d;unl=10;(4 1分 27秒)联合变量的地址和它的各成员都是同一地址,因为它是“联合”。联合与结构之间可以嵌套定义(4 5分 29秒)程序2网友在互通QQ的时候,通常不是给号码就是给昵称,如何用联合来表达?作业有 3 个学生结构变量,从中找出年龄最大的那个学生,并打印出这个学生的姓名、性别、年龄。第 12章 二 进 制位
46、(bit)(01分 12秒)在计算机内部,开关导通时,表示1;断开表示0。这样,电压不稳时计算机还能照样工作。一个通断开关叫做一个“位二字 节(byte)(05分 00秒)计算机内部经常把8 个位作为一组,用来表示许多我们平时生活中用到的东西。如:00000000表示事物为假,11111111表示为真(非 0即为真)00000000 表示数字 0,00000011 表示 38 个位可以表示不同的组合情况,比如音乐音符,颜色,这样就实现了多媒体。全世界统一把8 个位叫做一个“字节”,我们平时所说的硬盘容量、内存大小、U 盘大小,都是以字节为单位。网络却经常使用位为单位,所以我们平时的上网速度要除
47、以8(加上衰耗,实际上要除以10),才是下载速度。二进制与整数第 15页华科电脑学校二级C语言专用教材(1 2 分 4 2 秒)人类平时使用的数字都是逢十进一,叫十进制。在计算机中是逢二进一,叫二进制。(1 4 分 1 0 秒)二进制表示成八进制和十六进制更加方便。八进制是逢八进一,用 0到 7表示。十六进制是逢十六进一,大于9的数字用字母A到 F表示。用八进制和十六进制表示二进制的原因是:3个位刚好是八进制的一位数,4个位刚好是十六进制的一位数。黑客和病毒工作者就经常工作在十六进制数上。(2 0分 3 5 秒)十、二、八、十六进制的前2 0个数字转换对照表十进制二进制八进制十六进制00001
48、1112102231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F16100002 01017100012 11118100102 21219100112 313注:标黑体字的为关键数,关键数后面的数字,可从此关键数开始推导(2 9 分 4 4 秒)XI个八进制位刚好是3个二进制位(3 2 分 2 3 秒)XI个十六进制位刚好是4个二进制位。(3 3 分 3 4 秒)XI个字节刚好是2个十六进制位如:11111111刚好是F F(3 6 分 00秒
49、)娱乐:用二进制表示颜色C语言中的八进制和十六进制(4 1 分 04 秒)程 序 1输入和输出十、八、十六进制从程序中可以看出:整数前加个0,表示8 进制常量,如:06 3整数前加个O x,表 示 16 进制常量,如:0 x 3 F(4 7 分 0 6 秒)注意:C语言中没有二进制的输入输出,用库函数it o a也只能将十进制转换成二进制,二进制转十进制没有对应的库函数。(4 8 分 17 秒)八进制和十六进制整数没有负数。各类型所占内存(4 8 分 3 1秒)类型字节类型字节c har1f l o at4s ho r t2d o u bl e8in t4l o n g d o u bl e8
50、l o n g4指针4整型前加u n s ig n e d,所占字节数保持不变用s ize o f 可以计算出所有类型所占的字节数,在后面的章节中演示同学们可以自己计算出各整型数据的数据表示范围浮点数据类型因为在后面调出几位用来做指数部分,计算方法较复杂,本书作为入门丛书,不对此内容深入讲解。进制转换(5 4 分 10秒)书写格式:(数字)进制如:(111)2 (10)8 (F F)16(5 5 分 17 秒)十进制转二进制:用“除 2取余法”(2 0)10=(7)2被 除 数 除 数(商)余 数 读取顺序2 2 0|0 A2 10|02 ,12 02 1|1-6 注意:要除到商为o为止第16