补第四章printf()、scanf()笔记
关于printf()、scanf()返回值问题:
(1)printf()函数返回值,他返回的是打印字符的个数,是其打印输出功能的附带用途。具体应用如下
(2)scanf()函数返回成功读取的项数。如果没有读取任何项,且需要读取一个数字而用户却输入一个非数值字符串,scanf()便返回0。
第六章
while语句
(1)while循环通用形式:
while(expression)
statement
statement可以是以分号结尾的语句,也可以是用花括号括起来的复合语句。
expression部分可以使用任何表达式,如果其为非零则一直执行statement。
(2)使用while语句时,只有在测试条件后面的单独语句(简单语句或复合语句)才是循环部分。如果使用复合语句应加花括号。否则会出现死循环的情况。
关系运算符
(1)关系运算符可用于比较字符,但是不能用来比较字符串。
(2)比较浮点数时尽量选择<和>,因为浮点数的舍入误差会将原本逻辑上相等的两个数看做不相等。
(3) 对于C语言而言,关系表达式为真时求值为1,关系表达式为假求值为0,但是C语言会将所有非零数字视为真。
(4)关系运算符的结合律也是从左往右
,运算符的优先级如下:
其他一些运算符
类似于+=、-=、/=之类的调整如下:
a+=2 等价于a=a+2
a-=2 等价于a=a-2
for循环
(1)基本形式:for (initialize;test;update)
statement
第一个表达式是初始化,在for循环时开始时执行一次,第二个表达式是测试条件(即判断表达式),第三个表达式是执行更新,三个表达式之间用分号隔开。三个表达式可以省略一个或多个,但是不能省略表达式之间的分号。
(2)第一个表达式可以不是给变量赋值,也可以使用printf()。
逗号运算符
(1)逗号运算符的顺序从左往右求值。
(2)逗号表达式的值是右侧项的值,例如
a=(200,300);其结果为a=300。
(3)类似于printf()、scanf()中的逗号为分隔符,不是逗号运算符。
do while循环
(1)for 、 while 两个循环称做入口条件循环 ,即先判断再执行,而do while循环被称作出口条件循环 ,即先执行再判断 。
(2)其通用形式:
do
statement
while (expression);
do while 循环是以分号结尾的。
嵌套循环
嵌套循环指在一个循环内包含着另一个循环,嵌套循环常用于按行和列显示数据,一个循环处理一行的的所有列,另一个循环处理所有行。
第七章
If 语句
(1)if语句被称为分支语句或i选择语句,它相当于一个交叉点,程序用来选择执行两个分支中的一条。
(2)其基本形式是
if (expression)
statement
通常情况下expression是关系表达式,根据其的真假来决定是否执行statement。
(3)即使if语句由复合语句构成,但整个if语句仍被视为一条语句。
if else语句
(1)如果在if 和else之间执行多条语句,则必须将这多条语句用花括号括起来,因为if和else之间只允许有一条语句。其结构如下:
(2)关于if和else的配对,如果没有花括号则else与离他最近的if配对,如果存在花括号则与花括号外最近的if配对。
(3)在使用if else语句时也可在else语句中继续使用if语句构成多层嵌套语句。基本结构如下:
(4)在使用语句时为了提高代码的可读性,尽量使用花括号将同一语句括起来。
getchar()和putchar()
(1)getchar()函数不带有任何参数,ch =getchar();等价于scanf("%c",&ch);
(2)putchar()函数打印他的参数,putchar(ch);等价于printf("%c",ch);
(3)因为这两个函数只处理字符,所以不需要转换说明,因此比通用的printf()和scanf()函数更快更简洁。
ctype.h
(1) ctype.h头文件中包含了专门处理字符的函数,具体如下:
(2)字符映射函数不会修改原始的参数,这些函数只会返回已修改的值
字符映射函数如下:
逻辑运算符
(1)优先级级的问题
!的优先级比圆括号的优先级低,但是比乘法运算符的优先级高,与递增运算符的的优先级相同。
&&的优先级比||的优先级高但是两者的优先级都比关系运算符的优先级低,比赋值运算符的优先级高。
条件运算符: ?:
(1)一般形式为:expression1?expression2: expression3
(2)其基本含义为如果expression1 为真,则选择expression2 反之则选择expression3。
continue和break
(1)continue语句用来跳过一次迭代中剩余的部分,直接返回上一级函数’。
(2)break语句用来终止循环直接跳入到下一环节。具体区别如下:
switch语句
(1)相比与多重if else语句,运用switch语句可以更加简洁的写出多种情况下的语句选择,其一般结构如下:
(2)而break语句的存在则可以让程序有选择的终止switch语句的输出,直接跳入下一过程:
goto
goto 同break、continue一样同为跳转语句,但是在C语言中应避免使用。