C语言程序设计课程板书.doc

上传人:仙*** 文档编号:81250153 上传时间:2022-04-26 格式:DOC 页数:85 大小:579.09KB
返回 下载 相关 举报
C语言程序设计课程板书.doc_第1页
第1页 / 共85页
C语言程序设计课程板书.doc_第2页
第2页 / 共85页
C语言程序设计课程板书.doc_第3页
第3页 / 共85页
点击查看更多>>
资源描述
1. 第一章:设计语言的讲解2. 第一章:程序的算法与结构设计。3. 第二章:C程序的设计初步了解。4. 第二章:C程序的格式的讲解。5. 第二章:C程序格式的几个考点讲解。6. 2.2标识符、常量、变量 一7. 2.2标识符、常量、变量 二8. 2.2标识符、常量、变量 三9. 2.2标识符、常量、变量 考点讲解10. 2.3整型常量 11. 2.3整型变量12. 2.3整型数据的分类13. 2.4实型常量14. 2.4实型变量15. 2.5算术表达式、运算符优先级及强制类型转换16. 2.6赋值表达式17. 2.7复合表达式与赋值中的强制类型转换18. 2.7 +和 的讲解19. 2.7 逗号表达式与实例讲解20. 课后习题的讲解21. 课后习题的讲解22. 课后习题的讲解23. 第二章的总体回顾24. 3.2输出语句的讲解 一25. 3.2输出语句的讲解 二26. 3.2输出语句的讲解 三27. 3.2输出语句考点例题讲解。28. 3.3输入语句的讲解 一29. 3.3输入语句的讲解 二30. 3.3输入语句考点例题讲解。31. 3.4复合语句与空语句32. 3.5程序设计33. 课后习题讲解34. 课后习题讲解35. 课后习题讲解36. 第三章总体回顾37. 4.1关系运算38. 4.1逻辑运算39. 4.2 IF语句40. 4.2 IF语句41. 4.2 IF语句的嵌套42. 4.2 IF语句的嵌套43. 4.2 IF语句的几个考试例题44. 4.3条件表达式45. 4.4 switch语句46. 4.4 switch语句与BREAK47. 4.4switch语句的几个考试例题48. 课后习题49. 课后习题50. 课后习题51. 第四章的总体回顾52. 5.1while语句53. 5.1while的几个习题54. 5.2do while55. 5.3 FOR语句56. 5.3 FOR语句57. 5.4 for的嵌套58. 5.4FOR的嵌套59. 5.4素数的判定60. FOR语句的实例61. FOR语句的实例62. FOR语句的实例63. 5.5 break与continue64. 5.5 break与continue65. 5.6程序的举例66. 例年考题讲解67. 例年考题讲解(上机题)68. 例年考题讲解(上机题)69. 课后习题70. 课后习题71. 课后习题72. 6.1字符常量73. 6.1字符串常量与字符变量74. 6.3字符的输入与输出75. 6.3字符与其它数据类型混合的输入与输出76. 6.4程序举例77. 课后习题讲解78. 课后习题讲解79. 课后习题讲解80. 课后习题讲解81. 第六章的总体回顾82. 7.1库函数83. 7.2函数的应用与说明84. 7.2函数的定义与使用85. 7.2return的应用86. 7.3函数的调用87. 7.3函数的调用88. 7.4函数的说明与调用函数的数据传递89. 7.6程序举例90. 7.6程序举例91. 例年考题讲解92. 例年考题讲解(上机)93. 例年考题讲解(上机)94. 课后习题95. 课后习题96. 课后习题97. 第七章总体回顾98. 8.1变量的地址与指针99. 8.2指针变量的定义100. 8.2指针变量的定义101. 8.3给指针变量赋值102. 8.3给指针变量赋值103. 8.4指针变量的操作104. 8.4指针变量的操作105. 8.4指针变量的表示106. 8.4指针变量所指向的数据的增减107. 8.4指针的移动108. 8.4指针的移动109. 8.5指针在函数调用中的应用110. 8.5指针在函数调用中的应用111. 例年考题讲解112. 例年考题讲解113. 例年考题讲解(上机)114. 例年考题讲解(上机)115. 课后习题分析116. 课后习题分析117. 课后习题分析118. 第八章总体回顾119. 第八章总体回顾120. 9.1数组的初步了解121. 9.1一维数组的定义122. 9.1一维数组的引用与始化123. 9.1一维数组的使用124. 一维数组的实例125. 9.2一维数组和指针126. 9.2一维数组和指针127. 9.2通过指针引用一维数组128. 9.3一维数组在函数调用中的应用129. 9.3一维数组在函数调用中的应用130. 9.3一维数组在函数调用中的应用131. 9.4应用举例132. 9.4应用举例133. 9.4应用举例134. 9.5二维数组的定义135. 9.5二维数组的引用136. 9.5二维数组的初始化137. 9.5二维数组通过FOR语句初始化138. 9.6二维数组元素的地址表示 139. 9.6二维数组元素的地址表示140. 9.6通过指针来引用数组元素141. 9.6指针数组与数组指针142. 9.7二维数组在函数调用中的应用143. 9.7二维数组在函数调用中的应用144. 9.7二维数组在函数调用中的应用145. 9.8应用举例146. 9.8应用举例147. 9.8应用举例148. 例年考题讲解149. 例年考题讲解150. 例年考题讲解(上机)151. 例年考题讲解(上机)152. 例年考题讲解(上机)153. 例年考题讲解(上机)154. 课后习题155. 课后习题156. 课后习题157. 第九章总体回顾158. 第九章总体回顾159. 10.1字符与一维数组160. 10.1字符串与一维数组161. 10.2指针指向一个字符串162. 10.3字符串的输入和输出163. 10.4字符串数组164. 10.5几个用于字符处理的函数与程序举例165. 例年考题讲解166. 例年考题讲解(上机)167. 课后习题168. 课后习题169. 课后习题170. 第十章总体回顾171. 11.1对函数的进一步讨论172. 课后习题的讲解173. 课后习题的讲解174. 12.1局部变量与全局变量175. 12.2静态变量176. 课后习题177. 课后习题178. 13.1宏179. 例年考题180. 14.1.结构的初步认识181. 14.2结构体的定义182. 14.2结构体的初始183. 14.2结构体成员的引用184. 14.3共用体与结构体的区分185. 例年考题讲解186. 15章位运算187. 16章文章188. 上机题思路分析189. 上机题思路分析190. 上机题思路分析第一章 程序设计基本概念1.1程序和程序设计程序:连续执行的一条条指令的集合称为“程序”。对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1的代码构成的二进制指令或数据。由于这种形式的指令是面向机器的,因此也被称为“机器语言”。所以所有由高级语言编写的程序都要经过编译,编译成二进制代码。这种具有翻译功能的软件称为编译程序。语言有很多种,我们现在要谈论的就是C语言。为什么计算机会能进行各种各样的操作,就是由不同的指令来实现的。而不是只有C语言才可以实现这样的功能。还有其它很多语言。但是我们一般说C语言是其它语言的母语。会了C语言其它的语言在学习的过程就会感到轻松一些。1.1.2程序设计1.确定数据结构2.确定算法3.编码4.在计算机上调试程序5.整理并写出文档资料1.2算法定义:是指为了解决某个特定的问题而采取的确定且有限的步骤。1. 有穷性2. 确定性3. 可行性4. 有零个或多个输入5. 有一个或多个输出1.3结构化程序设计和模块化结构结构化程序由三种基本结构组成1. 顺序结构语句1语句22. 选择结构判断表达式子不满足语句1语句23. 循环结构判断表达式不满足满足循环体循环体判断表达式满足不满足12)计算机能直接执行的程序是(B)。A)源程序 B)目标程序 C)汇编程序 D)可执行程序13)以下叙述中正确的是( D )A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整第二章 :C程序设计的初步知识21 C语言程序的构成和格式#include Main()double a,b,area; a=1.2,b=3.6; /*将矩形的两条边长分别赋给a和b变量*/area=a*b;printf(“a=%f,b=%f,area=%fn”,a,b,area);/*输出矩形的两条边长和面积*/#include :每当写一个程序时,第一条语句永远是这个语句,因为一个程序可以没有输入但必须要有输出,而这个语句就是控制输入输出的。所以任何一个程序都必须由这个语句开始。Main():是一个程序的主函数。一个程序是由多个函数组成的,而任何一个程序都要有一个主函数,有且只有一个。任何程序都是由主函数开始执行的。:它们两个必须要成对出现,它们中的语句是主函数体。包括定义部分和执行部分。它们中的语句,每一条必须由;结束。;是C语句的一个组成部分而不是一个结束标识。/*/:注释符一定要成对出现,不允许嵌套。两个符号间的语句不被执行。例年真题:#includemain()Int a;A=5; /*给A变量赋值5A+=3; 再赋值后再加3*/Printf(“%d”,a);(11)以下叙述中正确的是( C)。A)C程序的基本组成单位是语句 B)C程序中的每一行只能写一条语句二级C语言程序设计试卷)C)简单C语句必须以分号结束 D)C语句必须在一行内写完(11)以下叙述中正确的是( C )A)C程序中的注释只能出现在程序的开始位置和语句的后面 B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中第二课:C语言的基础知识2.2标识符,常量和变量2.2.1标识符:定义:由字母,数字和下划线组成,并且第一个字符必须为字母或下划线的。这样的组成就是标识符。下列合法的是:elsewhat #$123 34a a34 a_b a-b Ifa=3 A=4注意:在C中大写字母与小字字母被认为是两个不同的字符。分类:关键字:在C中已经定义好了的,不能用作它用的。如if double int等等。预定义标识符:如printfscanf用户标识符:用户根据自己的需求来定义的。(12)以下选项中,能用作用户标识符的是( C )A)voidB)8_8C)_0_D)unsigned(11)以下选项中合法的标识符是( C )A) 1-1 B)11 C)-11 D)1(12)以下选项中不合法的标识符是 ( C ) A)print B)FOR C)&aD)_002.2.2常量:定义:是指在程序的执行的过程中,其值不会被改变的量。分类:整型常量:没有小数的常量如:3 9 1234等等都是。实型常量:有小数点的常量如:3.9 3.0 3.字符常量:由单个字符组成的量如:a b 3字符串常量:至少由一个字符组成的量如:“a” “abc” “ beijing”符号常量:符号常量的值到底是多少,这是由在来定义符号常量时来决定的?2*pi(13)以下选项中,能用作数据常量的是 ( D )A)o115 B) 0118 C)1.5e1.5D) 115L(13)以下选项中不能作为C语言合法常量的是( A)。A)cd B)0.1e+6 C)a D)011(13)以下选项中不属于字符常量的是 ( B ) A)C B)C C)xCC0 D)0722.3整型常量与实型常量整型常量的几个表示方法十进制数:八进制数:以0开头的数字,由0-7组成。下列合法的八进制数是A,0 B,028 C,-077 D,01.0十六进制数:以0X开头,由0-9和A-F组成。A,oxff B,0xabc C,0x11 D,0x19实型常量123.4小数形式:123.4指数形式:1.234e2 1.字母e和E之前必须要有数字2.字母e和E之后的数字必须是整数3.字母e和数字之间不能有空格。A,2.607E-1 0.8103E 2 -77.77 456E-2 0.1e+6 1.23E1.22.2.4变量:1.定义:在程序的运行过程中其值可以被改变的量,就叫变量。2.原则:变量必须先定义后使用。变量定义的过程就是给变量开辟存储单元的过程。3.分类:整型变量:用关键字int来表示.short int 短整型long int 长整型 在内存中占4个字节如123Lunsigned 无符号如有-200U这就是错的。变量的定义:inta 这是定义了一个整型变量a.实型变量:用关键字 double或float来表示。float 单精度在内存中占4个字节double 双精度在内存中占8个字节。2.2.5算术表达式一、基本的算术运算符+ - * / % 这些是双目运算符(就是指操作对象有两个)注意:除%外,其它的运算符的运算对象可以是整型也可以是实型。%的操作对象只能是整型。如10%3=1 10.7%3 10%4.5 x%3=0+ -也可以做为单目运算。-5.4 +4.9说明:1.如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。如1.0/2.0=0.5 1/2=02.如果双目运算符两边运算数的类型不一致,则系统会自动进行类型转换,使两边的类型一致后,再进行运算。1.0/2=0.53.所有的单精度数据,在运算过程中都以双精度进行运算。二、优先级()+ - * / % + -由高低 如(5+1)/2=?2.5.3强制类型转换表达式格式:(类型名) (表达式)例:(int)3.234=3(double)10%3=?(14)表达式:4-(9)%2的值是( B )A)0B)3C)4D)5(14)设变量已正确定义并赋值,以下正确的表达式是 ( C )A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,+yD)x=25%5.02.6赋值表达式格式:变量名=表达式注:1.不可以颠倒(左边必须是变量名,右边必须是C语言中合法的表达式)2.功能就是先求出右边表达式的值,然后把此值赋值给赋值号左边的变量。确切的说是把数据存入以该变量为标识的存储单元中去。a=4 , a=73.结合性的优先级仅高于逗号表达式。顺序是自右向左的。如a=2+7/34.=是一个赋值号,不是一个等号。5.x=y。变量的值也是可以传递和赋值的。它的意思就是将变量Y中的值赋值到X中去。同样N=N+1也成立6.赋值运算符的左侧只能是变量,不能是常量或表达式a+b=c这就是违法的7。赋值号的右边也可以是一个赋值表达式。如a=b=7+1;补充;表达式与语句的区别,表达式后面加一个分号就是语句。2.6.2复合赋值表达式例:a+=3-a=a+3 同理可得a*=3 /= -=a+=a-=a+a a的初值是9a+=a-=18a+=(a=a-18)a+=(a=-9)a+=a-18(15)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )A)-20B)-10C)0D)10(14)设有定义:int x=2;,以下表达式中,值不为6的是 ( D )A) x*=x+1 x=x*(x+1)B) x+,2*xC)x*=(1+x)D)2*x,x+=2(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 (A)A)x=y=5;B)x=n%2.5;C)x+n=ID)x=5=4+1;2.7 +和的讲解+:自身加1-:自身减1如i=3 i+_I=i+1 i=4单目3+I I+当+在前,先自身加1,然后再干别人让干的事情 。当+在后,先别人让干的事情然后再干 自身加1。int i=3;int a;a=i+; a=3a=+I;a=4第三课:输入和输出语句3.2输出语句的讲解一、printf函数的一般调用形式格式:printf(格式控制,输出项1,输出项2,.);在printf函数的最后面写上;号就是输出语句。1,给输出项白提供输出格式说明格式说明符:作用:就是使数据按格式说明符的要求进行输出。组成:由%号和紧跟在其后的格式描述符组成。int-%dfloat或double-%f或e%char-%c2.提供原样输出的文字或字符在“” 中除了格式说明符之外的内容要全部原样输出。各个输出项之间要用逗号隔开。输出项可以是任意合法的常量,变量或表达式。printf中常用的格式说明在格式说明符中,每一个格式说明符都必须以%号开头由相应的类型标识字母结束。但在他们之间可以有其它的一个内容:%c:输出一个字符%d:输出一个十进制的数据%o:以八进制格式输出。%X:以十六进制输出%U:无符号十进制输出%f:以带小数点的数字输出%e:以指数形式输出%s:输出一个字符串。%:输出一个%号%4d:输出的数据长度是4个长度,当原来的长度大于4个时会自动突破。小于4个时会填充空格。%x.yf: x代表数制的宽度(包括小数点)。Y代表小数点后面的小数位数。注意事项:1.输出比较自由一些,输出有的各个数之到底是什么,取决于格式说明符之间的内容。2.格式说明符要与输出项一一对应。3.输出语句中还可以有n r t a4.尽量不要在输出语句中改变输出变量的值。5.输出的数据中如果存在变量,一定要定义过的。习题讲解(13)阅读以下程序#includemain() int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %fn”,case,printF);该程序编译时产生错误,其出错原因是( A ) A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(16)有以下程序#includemain() int a=1,b=0; printf(“%d,”,b=a+b);printf(“%dn”,a=2*b);程序运行后的输出结果是 ( D )A)0,0B)1,0C)3,2D)1,2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是 ( A)A)123.141593B)123.141593C)12,3.141593D)12 3.141593#include main()double a=123.456;printf(%6.2f,a);输入语句格式:scanf(格式控制,输入项1,输入项2,.);例如:想通过键盘输入3个数分别给变量a,b,c。并且他们分别为整型,浮点型,双精度型。输入语句为scanf(%d%f%lf,&k,&a,&y);说明:1.格式说明符与输出语句一样。2.在格式串中,必须含有与输入项一一对应的格式转换说明符。3.在VC6.0的环境下,要收输入的DOUBLE型数据的格式说明符一定要用%lf,否则数据不能正确的输入4.由于输入是一个字符流,所以当输入的数据少于输入项时,程序会等待用户输入,直到满足要求。当输入的数据多于输入项时,多余的数据会自动作废。例题:int x;x=11/3;int y=5;printf(%d,%dn,x,y); 结果是:%d,%33.5若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c);C)scanf(“ %D%D%D” ,&a,%b,%c); D)scanf(“ %d%d%d”,&a,&b,&c);3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是( A)A)10 B)10.0,22.0,33.0 C)10.0 D)10 2222 22.0 33.0 33 33scanf(“ %f %f %f” ,&a,&b,&c);复合语句:多个语句被括起来,当成一条语句来执行。空语句:最后的表示只有一个;程序举例:1。编写一个程序,从键盘上输入两个数字,让后让他们互换一下。#includemain()int a,b;printf(请输入两个数字:);scanf(%2d%3d,&a,&b);printf(qian:%d%d,a,b);int c;c=a,a=b,b=c;printf(后:%d%d,a,b);2。编写程序,对一个double型数据进行四舍五入运算。要求保留两位有效小树。123.45671234567*100=12345.6712345.67+0.5=12346.17(int)(12346.17)=1234612346/100=123.463。编写程序,使从键盘中输入的三位数倒着输出。选择题 3.1若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是( C )A)a=b=c=d=100;B)d+; C)c+b;D)d=(c=22)-(b+);3.2以下选项中不是C语句的是( C )A)int i; i+; printf(“%dn”,i); B); C)a=5,c=10D) ; 3.3以下合法的C语言赋值语句是( D )A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)-i;3.4以下程序的输出结果是( C )A)0 B)1 C)3 D)不确定的值 main( ) int x=10, y=3;printf(“%dn”,y=x/y); 3.5若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c);C)scanf(“ %D%D%D” ,&a,%b,%c); D)scanf(“ %d%d%d”,&a,&b,&c);3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是( B)A)10B)10.0,22.0,33.0 C)10.0 D)10 2222 22.0 33.0 33 33scanf(“ %f %f %f” ,&a,&b,&c);3.7若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( C )A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t;C)a=t;t=b;b=a; D)t=b;b=a;a=t;3.8若变量已正确定义,以下程序段的输出结果是( D )A)输出格式说明与输出项不区配,输出无定值B)5.17C)5.168D)5.169X=5.16894;Printf(“ %fn”,(int)(x*1000+0.5)/(float)1000);3.9若有以下程序段,c3中的值是( A )A)0B)1/2 C)0.5 D)1int c1=1,c2=2,c3;c3=c1/c2;3.10 若有以下程序段,其输出结果是( B )A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3); printf(“ %d,%d,%dn”,a,b,c);填空题3.21若有以下定义,请写出以下程序段中输出语句执行后的输出结果。(1)-200,2500(2)i=-200,j=500(3)i=-200回车 j=2500int i=-200,j=2500;printf(“ (1) %d %d”,i,j);printf(“ (2) i=%d,j=%dn” ,i,j);printf(“ (3) i=%dn j=%dn”,i,j);3.22变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时scanf(“ %d”,&I); scanf(“ %d”,&j); scanf(“ %d” ,&k);当执行第一个输入语句,从键盘输入:12.3 表示Enter键则变量i、j、k的值分别是_12_、_0_、_0_。3.23复合语句在语法上被认为是 一条语名。空语句的形式是;3.24 C语句的最后用;结束。3.25以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_、_、_。intk; float a; double x;scanf(“ %d%f%lf”,&k,&a,&x);pirntf(“ k=%d,a=%f,x=%fn”,k,a,x);编程题和改错题3.29以下程序多处有错。要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。maindouble a,b,c,s,v;printf(input a,b,c:n);scanf(“%d%d%d”,a,b,c);s=a*b; /*计算长方形面积*/v=a*b*c; /*计算长方体体积*/printf(“%d %d %d”,a,b,c);printf(“s=%fn”,s,”v=%dn”,v);当程序执行时,屏幕的显示和要求输入形式如下:input a,b,c:2.0 2.0 3.0 此处的2.0 2.0 3.0是用户输入的数据a=2.000000,b=2.000000,c=3.000000 此处是要求的输出形式s=4.000000,v=12.0000003.30编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。3.31编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。3.32编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出结果。3.33编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c, 把c中原来的值给 a。第四课:C语言的程序结构4-1节、关系运算与逻辑运算一、简介关系表达式与逻辑表达式的运算结果都会得到一个逻辑值。就是“真”、“假”在C语言中0表示“假”,非0(无论是负数还是正数都是真,更多时候用1来代替)表示“真”。二、几个简单的关系运算符 = = !=注意:1,由两个字符组成的运算符,中间不能有空格2,它们都是双目运算符,具有自左至右的结合性。3,上面的6个运算符中,前4个的优先级要比后2个的优先级要高。先计算,后判断,最后进行赋值运算。三、几个简单的逻辑运算符& 与一假则假| 或一真则真!非非假则真,非真则假1&2=10&6=0int a=4 ,b=7;a&7=1int x=0,y=7;x+&y+ ?x= 1 y= 7+x&y+ ?x=1 y=8同样放在|中也是一样的。4-2、4-3节、if语句一、定义:只有两种结果。要么执行这条语句,要么执行那条语句。if(条件表达式)上述条件成立执行的句子else上述条件不成立执行的句子如:if(成绩60)显示及格else显示不及格二、分类 1.不含有else的语句if(表达式)语句if(ab)t=a;a=b;b=t;2.含有else语句if(条件)语句1;else语句2;语句3;注:1.没有分号2.控制的是与if或者else紧临的“一条”语句。if(a=90) printf(a);elseif(a=80) printf(b);elseif(a=70) printf(c);elseif(a=60) printf(d);else printf(e);4-5、节7)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 ( C)A)if(ab) c=a,a=b,b=c;B)if(ab) c=a,a=b,b=c;C)if(ab) c=a;a=b;b=c;D)if(ab) c=a;a=b;b=c;(18)有以下程序应该选( B)#include main()int x;scanf(“%d”,&x);if(x=3 ; elseif(x!=10)printf(“%dn”,x);程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数(19)有以下程序 ( C)#includeMain()int a=1,b=2,c=3,d=0;if(a= =1 &b+= =2)if(b!=2 | c-!=3)printf(“%d,%d,%dn”,a,b,c);else printf(“%d,%d,%dn”,a,b,c);else printf(“%d,%d,%dn”,a,b,c);程序运行后的输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,14-6节、条件表达式是C语言中唯一的一个三目运算。格式 :表达式1?表达式2:表达式3当1成立(非零时)时,表达 式的值就是2的值,否则就是3的值。如:1.12?4:52.printf(%d,x3?(x3?a:b):b4-7节、switch语句(一)switch(表达式)case常量表达 式1:语句1case常量表达 式2:语句2case常量表达 式3:语句3case常量表达 式4:语句4case常量表达 式5:语句5。case常量表达 式N:语句N4-8节、switch语句(二)switch(A/10)case 10:printf(A);case 9:printf(A);case 8;printf(b);case 7;printf(c);case 6;printf(d);default :printf(e);4-9节-4-15节、选择题4.1下列运算符中优先级最高的运算符是( A)A)!B)% C)-= D)&4.2下列运算符中优先级最低的运算符是 ( A)A)| B)!= C) =y=z,应使用的C语言表达式是 ( A)A) (x=y)&(y=z) B) (x=y)AND (y=z)C) (x=y=z) D) (x=y)&(y=z)4.4设 a、b和c都是int 型变量,且a =3,b=4, c=5;则以下的表达式中,值为0的表达式是 ( D)A) a&b B)a=b C)a|b+c&b-c D)!(ab)&!c|1)4.5以下程序的输出结果是:( C)A) 0 B)1 C)2 D)3main() int a=2,b=-1,c=2;if (ab)if (b0)c=0;else c+=1;printf(“%dn”,c);4.6以下程序的输出结果是:( A)A) 1 B) 2 C) 3 D) 4main() int w=4,x=3,y=2,z=1;printf(“%dn”,(wx?w:zy?z:x);4.7若执行以下程序时从键盘上输入3和4,则输出结果是( B)A)14 B)16 C)18 D)20main() int a, b,s;scanf(“%d%d”,&a,&b);s=a;if (ab) s=b;s*=s;printf(“%dn”,s);4.9运行以下程序后,输出( D)A)# B)&C)#& D)有语法错误不能通过编译main() int k=-3;if (k=0) printf(“*n”);else printf(“&n”);4.10若a和b均是正整数型变量,以下正确的switch语句是 ( A)A) switch ( pow(a,2)+pow(b,2) (注:调用求幂的数学函数) case 1: case 3: y=a+b; break ;case 0: case 5: y=a-b;B) switch (a*a+b*b); case 3:case 1: y=a+b; break ;case 0: y=b-a; break;C) switch ()a default : x=a+b;case 10 : y=a-b;break;case 11 : y=a*d; break;D) switch(a+b) case 10: x=a+b; break;case11: y=a-b; break; 二、 填空题4.11 C语言中用非0 表示逻辑值“真”,用0 表示逻辑值“假”。4.12 C语言中的关系运算符按优先级别是(!= =) _!= 、= 4.13 C语言中的逻辑运算符按优先级别是(| & !)4.14 C语言中的关系运算符和逻辑运算符的优先级别是(= &)4.15 C语言中逻辑运算符! 的优先级高于算术运算符。4.16将下列数学式改写成C语言的关系表达式或逻辑表达式A) a=b|a4|x-4A) a=b或 a44.17请写出以下程序的输出结果1 。main() int a=100;if (a100) printf(“%dn”,a100);else printf(“%dn”,a=100);4.18请写出与以下表达式等价的表达式A) X0) B) !04.19当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为3、2、2 if (ac)b=a;a=c;c=b;4.20若变量巳正确定义,以下语句段的输出结果是 *# x=0,y=2,z=3;switch(x) case 0: switch (y=2) case 1: printf(“*”); break;case 2: printf(“%”); break;case 1: switch(z) case 1: printf(“$”);case 2: printf(“*”);break;default: printf(“#”);三、编程题4.21请将以下语句改写成switch语句。if ( a30) m=1;else if (a40) m=2;else if (a50) m=3;else if (a60) m=4;else m=5;4.22编写程序,输入一位学生的生日(年:y0、月:m0、日:d0); 并输入当前的日期(年: y1、月:m1、日:d1); 输出该生的实足年龄。4.23编写程序,输入一个整数,打印出它是奇数还是偶数。4.24编写程序,输入 a、b、c三个数,打印出最大者。4.25有一函数:x (-5x0)y= x-1 (x=0)x+1 (0x10)编写一程序,要求输入x的值,输出y的值。分别用 (1)不嵌套的if语句(2)嵌套的if语句 (3)if-else语句 (4)switch语句第五课:循环结构5-1、5-2节、while语句一、格式 :while(表达式)循环体注:1:2:3:一条 while(a3)1 a+=s;2s=a;31.100int i=1,sum=0;while(i101)sum=sum+i+;printf(%d,sum);丛1开始加到哪个数时他们的和将超过1000?int i=1,sum=0;while(sum1000)sum+=i;999 +42=1041i+;42 43printf(%d,-i);5-3节、do-while语句do while()格式:do循环体while(表达式)1 2 3 5 8 13doa3=a1+a2;a1=a2;a2=a3;while(a3=1000);1:12:;5-4节、for语句(1)for语句和for语句构成的循环结构一、格式:for(表达式1;表达式2;表达式3)循环体相当于while语句的表达式1;while(表达式2)循环体;表达式3;k=0for(;k=10;)printf(*);k+;int k=0;while(k10)printf(*);k+;注:1:表达式可以省略,但分号不可以。2:表达式可以是任意有效的C语言表达式课后习题部分,笔记不再提供,请大家看教程第六课、字符型数据6-1节、字符型常量格式:a A 要求:1,单引号中的大写字母和小写字母代表不同的字符常量。2.单引号中的空格也是一个字符常量,但不能是两个连续的单引号3字符常量只能用单引号括起来,不能用双引号。转义字符n代表回车代表一个单引号 代表一个”代表一个双引号注意:1 转义字符常量,如141只代表一个字符2 反斜线后的8进制数可以不用0开头。如1中所讲的141就是一个8进制数。01413 反斜线后的16进制数只可以用x开头,不可以用X开头。字符串常量格式:由双引号括起来的一串字符。同时也要知道“A”和A是不一样的。“A” A ACSII码A 65 a 97a-A= 326.2节、字符变量格式:char a=s6.3字符的输入和输出Printf和scanf函数输出和输入字符对于字符型数据的格式说明符是%cChar c=a;Printf(“%c”,c);Char a,b,c,d;Scanf(“%c%c%c”,&a, &b, &c);6-3节、程序举例写出26个大写字母和他们的ASCII代码要求每行输出两组数据。#include Main()Char ch; int I;For(i=0;i26:i+)Ch=i+65;If(i%2= =0)Printf(“n”);Printf(“c=%c,ASCII=%d”,ch,ch);在上面的程序中有对于字符的输入与输出,在C语言中也有另外的输入输出字符的语句。输入:变量名=getchar()输出:putchar(变量名)第七章 函数7-1节、库函数1.调用C语言标准库函数时要求的include命令行Include命令行必须以#开头,系统提供的头文件以.h作为文件的后缀,文件名用一对双引号或一对尖括号(需要注意include命令行不是C语句,因此不能在最后加分号)2.标准库函数的调用函数名(参数表)如:putchar(ch)(1) 出现在表达式中的 -ch=getchar()(2) 做为单独的语句完成某种操作。-printf(“*”);7.2函数的定义和返回值由于C语言中的定义的函数不能完成用户所有的要求,所以用户可以为自己定义函数实现相应的功能。7.2.1函数定义的语法1:格式:函数返回值的类型名函数名(类型名 形式参数1,类型名 形式参数2)说明部分语句部分2:函数名和形式参数都是用户命名的标识符。在同一个程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可,可以与其他函数中的变量同名。3:C语言规定,不能在函数的内部定义函数。4:若在函数的首部省略了函数返回值的类型名,则说明该函数的返回值是int类型5:除了返回值类型为int类型的函数外,函数必须先定义后调用。6:当没有函数返回值,则必须把函数定义成void类型。例:编写求两个双精度数之和的函数。 double add(double a, double b )double s;s=a+b;return s;7-2节、函数的返回值函数的值通过return语句返回,return表达式;此表达式的值必须与函数首部所说明的类型一致,若类型不一致,则以函数值的类型为准。需要注意的是,无论函数体中有多少个return语句,只能执行一次。函数体内可以没有return语句,这时也必须定义函数为 viod类型。7-3节、函数的调用7.3.1函数的两种调用方式格式为:函数名(实在参数表)当实参的个数多于一个时,各实参用逗号隔开。实参的个数必须与调用函数中形参的个数相周,类型一一对应匹配。如没有形参,则形式为 函数名() 注意后面的小括号不能丢。如题:#includedouble add(double ,double);main()double m,n,z;scanf(“%lf %lf”,m,n);z=add(m,n);printf(“%lf”,z); double add(double a, double b )double s;s=a+b;return s;73.2函数调用时的语法要求1.调用函数时,函数名必须与所调用的函数名字完全一致。2.实参的个数必须与形参的个数一致。3.C语言中规定,函数必须先定义后使用。4.C语言中,函数可以直接或间接的自己调用自己。称为递归调用fac(n)=fac(n-1)*n7-4节、函数的说明在C语言中凡是未在调用前定义的函数,C编译程序都默认函数的返回值为int 型。对于返回值是其它类型的,若把函数的定义放
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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