整数是以补码的形式转化为二进制代码存储在计算机中的 实数是以IEE54标准转化为二进制代码存储在计算机中的 具体可参见末尾的穿插在课堂中的零散知识笔记—浮点数的存错所带来的问题 字符的本质实际也是与整数的存储方式相同 11.代码规范化 代码的可读性更强[容易让自己和别人更清楚的看懂程序] 使程序更不容易出错 12.什么是字节 字节就是存储数据的单位,并且是硬件所能访间的最小单位 宁节=8位 IK=1024字节 M=1024k 1G=1024M 13.不同类型数据之间相互贼值的问题 暂不考虑 int1=45 longj=102345; 1=J printf(gld%d\"i,j) floatx=6.6 doubley=8.8 printf(%f%1f\n,x,y) 14.什么是ASCII ASCI不是一个值,而是一种规定, ASCT规定了不同的字符是使用哪个整数值去表示 它规定 A.-65 B--66 a-97 15.字符的存储[字符本质上与整数的存储方式相同] 2>基本的输入和输出函数的用法 rinf(一将变量的内容输出到显示器上【重点】 四种用法 1.printf("字符串" 2.printf("输出控制符",输出参数); 3.printf(″输出控制符1输出控制符2。。。",输出参数1,翰出参巍2,。 输出控制符和输出参数的个数必须一一对应 4.printf("输出控制符非输出控制符,输出参数) 输出控制符包含如下 d int ld longint %c char f float %1f double %x(或者%后者%#)int或1ngint或shortint %o 同上 %6S 符串 为什么需要输出控制符 1.01组成的代码可以表示数据也可以表示指令 2.如果01组成的代码表示的是数据的话,那么同样 的01代码组合以不同的输出格式输出就会有不 同的输出绪果 scanf【通过键盘将数据输入到变量中】 两种用法 用法一:scanf("输入控制符",输入参数) 功能:将从键盘输入的字符转化为输入控制符所规定格式的数据 ,然后存入以输入参数的值为地址的变量中 用法二:scanf("非输入控制符输入控制符",输入参数 功能:将从键盘输入的字符转化为输入控制符所规定格式的数据 ,然后存入以输入参数的值为地址的变量中 非输入控制符必须原样输入 如何使用scan编写出高质量代码 1.使用scanf之前最好先使用printf提示用户以什么样的 方式来输入 2.scan中尽量不要使用非输入控制符,尤其是不要用n 3.应该编写代码对用户的非法输入做适当的处理【非重点】 charch hile((ch=getcharo)1=,n') continue; 3>运算符 算术运算符 /(除)%(取余数 关系运算符 ≥=赋值 附录的一些璜碎的运算符知识 自增自减三目运算符逗号表达式 4>流程控制【是我们学习C语言的第一个重点,要求所有的知识全部掌握】 1.什么是流程控制 程序代码执行的顺序 2.流程控制的分类 顺序 选择 定义 某些代码可能执行,也可能不执行,有选择的执行某些代码 分类 if 1.i最简单的用法 格式: if(表达式) 语句 功能 如果表达式为真,执行语句 如果表达式为假,语句不执行 2.if的范围问题 if(表达式) 语句A; 语句B 解释:if默认只能控制语句A的执行或不执行 if无法控制语句B的执行或不执行 或者讲:语句B一定会执行 2. if(表达式) 语句A 语句B; 此时i可以控制语句A和语句B 由此可见:if默认只能掉制一个语句的执行或不执行 如果想控制多个语句的执行或不执行 就必须把这些语句用括起来 3.if.e1se.的用法 A.i.e1seif,,else.的用法 格式: f( A 1seif(2) B elseif(3) else D 5.C语言对真假的处理 非零是真 零就是假 真用1表示 假用零表示 6.if举例一求分数的等级 7.if的常见问题解析 1>.空语句的问题 if(3>2) 等价于 if(3>2) /这是一个空语句 2> if(表达式1) A e⊥se B 是正确的 if(表达式1); se B 是错误的 if(表达式1) A elseif(表达式2) B elseif(表达式3) C else 即便表达式1和2都成立,也只会执行A语句 if(表达式1) A: elseif(表达式2) B elseif(表达式3) C: 这样写语法不会出错,但逻辑上有漏洞 if(表达式1) A: elseif(表达式2) B elseif(表达式3) C: else(表达式4)//行 这样写是不对的,正确的写法是: 要么去掉7行的(表达式4) 要么在7行的else后面加if 6》 if(表达式1) A: elseif(表达式2) B elseif(表达式1) else(表达式4); 这样写语法不会出错,但逻辑上是错误的 else(表达式4); 等价于 se (表达式4 把电梯程序看懂就OK了 循环 定义: 某些代码会被重复执行 分类 for 1.格式: for(1;2;3) 语句A; 2.执行的流程【重点】 单个for循环的使用 多个for循环的嵌套使用 for(1;2;3)/1 for(4;5;6)//2 A;//3 B;//4 整体是两个语句,123是第一个语句 4是第二个语句 2 for(1;2;3) for(4;5;6) A: 整体是一个语句 for(7;8;9) for(1;2;3 A B for(4;5;6) C 整体是一个语句 3.范围问题 4.举例: 1+2+3+,,,,+100 1+1/2+1/3+..+1/100 【本程序对初学者而言很重要,具体细节可参见我录制的相关视频】 while 1.执行顺序 格式: while(表达式) 语句; 2.与for的相互比较 for和while可以相互转换 for(1;2;3 等价于 while(2) A: whi1e和for可以相互转化 但for的逻辑性更强,更不容易出错,推荐多使用for 3.举例 从键盘输入一个数字,如果该数字是回文数, 则返回yes,否则返回no 问文数:正着写和倒着写都一样 比如:12112321都是回文数 4.什么时候使用while,什么时候使用for 没法说,用多了自然而然就知道了 do..while 格式 }whi1e(表达式) do.while.并不等价于for,当然也不等价于while 主要用于人机交互 一元二次方程 break和continue break break如果用于循环是用来终止循环 break如果用于switch,则是用于终止switch break不能直接用于if,除非if属于循环内部的一个子句 例子 for(i一0;i2 break;//break虽然是内部的语句, //但break终止的确是外部的fo循环 printf("嘿嘿!n";//永远不会输出 在多层循环中,break只能终止最里面包裹它的那个循环 例子 for(i for〔j=1;j4;+j break;//break只能终止距离它最近的循环 printf("同志们好!n" 在多层switch嵌套中,break只能终止距离它最近的switch 例子 intx=1,y=0,a=0,b switch(x)//第一个switch casel switch(y)//第二个switch case0: break;/终止的是第二个switch case1 b++; break b=100 break;/终止的是第个switch case2: break