目录
printf函数
scanf函数
switch语句
条件的表示及逻辑运算
Do-while循环
for语句与for循环
for语句的变形
C语言中循环的嵌套
-
printf函数
1)printf(格式控制字符串,输出项表)
2)其中的输出项表是若干个要输出的数据项(可以是常量、变量或表达式),
3)而格式控制字符串则用于规定输出项的输出格式。
4)格式控制字符串中字符分几类:
1.格式说明
由“%”和格式说明字符组成,如%d%f等,用于规定与之对应的数据项的输出格式。
2.普通字符
是格式说明以外的字符,普通字符将原样输出。
如“a=”“,”“x=”“\n”等都是普通字符。\n是换行的意思
3.“d”格式符
d或i:用于输入有符号十进制整数:
%d或%i:按实际位数输出有符号十进制整数。
%ld或%li:按实际位数输出有符号十进制长整数。
%md、%mhd、%mld:按指定位数输出有符号十进制整数
4.”f“格式符
用于以十进制小数形式输出实数。
包括以下几种用法:
1.%f
用于输出float型或double型的数据。
整数部分按实际长度输出,并固定输出六位小数。
2.%m.nf
其中的m、n均为正整数。m指定输出实数的总位数,n指定小数位数。
-
scanf函数
1)scanf函数也称格式输入函数,用于从键盘输入数据并存入到指定的变量中。
2)scanf(格式控制字符串,变量地址表)
例如:scanf("%d%d,&a,&b");
格式控制字符串 用于规定变量的输入格式。
变量地址表 是若干个存储数据的变量的地址。
(说明:该函数之所以用变量地址做参数,是由c语言中参数的单向传递规则决定。)
3)常用格式说明字符
1.d或i格式符
用于输入有符号十进制整数
2.f格式符
用于以十进制小数形式输入实数。
包括以下用法;
%f | 用于输入float型实数 |
%lf | 用于输入double型实数 |
s格式符 | 用于输入字符串(需要借助字符数组) |
4)格式说明符:
%d | 数字 |
%c | 字母 |
%u | 无符号十进制整数 |
%o | 无符号八进制整数 |
%x | 无符号十六进制整数 |
%e | 以十进制指数形式输入 |
-
switch语句
1)switch语句的一般形式
1.switch语句是专门用于实现多分支选择结构的语句
(不过switch语句的功能相对较弱,因此有些分支选择结构仍然需要用if语句)
2)switch(控制表达式)
{case常量表达式1:语句序列1
case常量表达式2:语句序列2
…….
default:语句序列n+1}
3)switch语句的功能
1.首先求出控制表达式的值,然后依次与每个case之后的常量表达式的值相比较。
2.若二者相等,则执行相应case之后的语句序列;直到遇到break语跳出switch语句体,或者switch语句体结束为止。
3.如果没有与之相等的常量表达式,并有default标号, 则执行default标号之后的语句序列,直至switch语句体结束为止。
4.switch语句中的控制表达式和case之后的常量表达式只能是整型或字符型表达式
5.default位置不影响控制表达式和case之后的常量表达式的匹配
4)switch语句的嵌套
switch语句是专门用于实现多分支选择结构的语句
程序分析:改程序编译时,会提示case score>=90这种格式存在语法错误。
这是由于C语言规定,case之后的表达式不能出现变量名,而只能是常量表达式。
而且只能对switch之后的控制表达式与case之后的常量表达式进行相等判断。
这也是switch语句功能相对较弱的原因所在。
解决的方法,就是通过一种变换将101个分数映射为少量的几个整数。
比如,可以用score整除10将101个分数转化为0~10的11个整数
然后就可以使得每个整数对应一个case分支.
程序分析:在该程序中,利用score整除10实现了101个分数到11个整数的变换
但是如果score是一个实型变量,只需利用强制类型转换,将实型数据转化为整型数据即可。
可以发现,当变量取值为少量的整数或字符时,尤其适合使用switch语句实现选择结构。
当变量取值为一组区间时,若可以变换为少量的整数或字符,则仍然适合使用switch语句实现选择结构;
否则,只适合使用if语句实现选择结构
-
条件的表示及逻辑运算
1)关系运算符
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
逻辑值的表示
关系表达式的运算结果是逻辑值,
即为真或者为假,整数1代表真,整数0代表假。
a>b>c先求a>b,结果为真:1;再求1>c,结果为假
2)逻辑表达式
要构成逻辑表达式,需要使用逻辑运算符。
C语言中有三种逻辑运算符
逻辑与&& | 只有a、b均为真,a&&b的结果才为真 |
逻辑或|| | 只要a、b至少一个为真,a||b就为真 |
逻辑非! | 若a为真,则!a为假;若a为假,则!a为真 |
3)逻辑运算符的优先级
逻辑非的优先级最高,逻辑与次之,逻辑或最低。
4)逻辑表达式
用逻辑运算符将运算量连接而成的表达式,成为逻辑表达式
例如:数学中的0<x<10应表示为x>0&&x<10。因为包含了两个条件
5)逻辑运算的“短路”
在对逻辑表达式“表达式1&&表达式2”求值时,若表达式1的值为0,则整个表达式的值必为0;因此不必再对表达式2进行求值
在对逻辑表达式“表达式1||表达式2”求值时,若表达式1的值为1,则整个表达式的值必为1;因此不必再对表达式2进行求值
例子
-
Do-while循环
1)Do-while语句其一般形式为:
Do{
语句}
while(表达式(判断真或假))
do之后的语句就是要反复执行的部分,称为循环体
while之后的表达式是循环的条件。通常是关系表达式或逻辑表达式
2)do-while语句的功能:
do-while语句执行流程
首先执行一次循环体,然后判断表达式的值是真是假;
若表达式的值为真,则返回继续执行循环体。
若表达式的值为假,就结束循环,转而执行循环体之后的语句。
所以do-while循环的循环体至少循环一次。
-
for语句与for循环
1)for语句的执行流程
for(表达式1;表达式2;表达式3)
循环体只能是语法意义上的单条语句。若需要多条语句,则必须用花括号括起来构成一条复合语句
2)执行流程:
首先执行表达式1
然后判断表达式2的值是否为真
若为真,则执行一次循环体,在执行表达式3,然后转向第二步
若为假,则结束循环,转向循环体之后的语句执行。
需要注意,表达式3是在循环体之后执行的
通过分析可以发现
表达式1一般用于给循环变量赋初值
表达式2则是循环的条件
表达式3一般用于递变循环变量的值
3)for循环与while循环的互换
如果“循环变量赋初值、循环条件、循环变量递变”这三部分不复杂的话,用for循环。
相互平行的循环的执行顺序
如果同一个程序中的两个循环,互不包含于对方的循环体中,则称之为互相平行的循环
两个平行的循环执行时,只有当地一个循环全部完成之后,在会开始第二个循环的执行
-
for语句的变形
1)for循环的特点
for循环的一个显著特点就是灵活多变,主要表演为for语句的各种变形。
一方面,for语句中的表达式1、表达式3均可以是逗号表达式。
另一方面,for语句的表达式1、表达式2、表达式3、均可以缺省。
2)for语句的变形之一
for语句中的赋初值部分或递变部分,需要使用多个表达式完成,那么可以将这多个表达式构成一个逗号表达式。
由于for语句中的表达式1、表达式3均可以是逗号表达式。
因此,既可以将循环之前的语句,移入到表达式1中、
也可以将循环体的语句,移入到表达式3中
3)for语句变形之二
在for语句中,若不需要赋初值部分或递变的部分,则相应的表达式可以缺省
即for语句中的表达式1、表达式3均可以缺省。
甚至于作为循环条件的表达式2也可以缺省。
-
C语言中循环的嵌套
1)循环的嵌套
如果在一个循环的循环体中,包含了另外的循环结构,则称之为嵌套的循环。也叫多重循环。
在多重循环中,最常用的是双重循环。
2)双重循环示例
在分析双重性循环的执行流程时,可以首先将外循环的循环体看作一个整体,并展开外循环
然后再逐步展开内层循环。
总结
如果你读到了这里,非常感谢你能看完的文章,谢谢!!!!
如果你觉得你有些想法和我一样,想和我一起提升自己可以关注私信我,与我一起进步,一起共同努力!!!!!
更多推荐
【C语言】基础知识梳理总结(超详细!!!!
发布评论