学习C语言(4)

整理今天的学习内容

1.scanf 函数

用于读取用户的键盘输入 

键盘--标准输入--→程序--标准输出--→屏幕

(1)scanf ()的参数是格式字符串和用户输入的变量

变量前面必须加上运算符(指针变量除外),因为scanf ()传递的是地址不是值,即将变量的地址,指向用户输入的值

(2)scanf ()处理数值占位符时,会自动过滤空白字符,包括空格,制表符,换行符等

(3)scanf ()处理用户输入的原理:用户的输入先放入缓存,等待按下回车键后,按照占位符对缓存进行解读

(4)scanf ()的返回值是一个整数,表示成功读取的变量个数

如果没有读取任何项,或者匹配失败,则返回0;

Ctrl+z 为提前输入结束 

                                  

如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量 EOF(-1) EOF为end of file 文件结束标志

在VS环境中需要按三次 Ctrl+z才能结束输入

(5)占位符

与printf()基本相似

%[ ]   在方括号中指定一组匹配的字符,(如%[0~9]),遇到不在集合中的字符,匹配将会停止

占位符除了%c以外,都会自动忽略起首的空白字符,%c不忽略空白字符,总是返回当前第一个字符

可以在%c的c前加一个空格(% c),表示跳过0或多个空白字符

%s不能简单等同于字符串,它是从当前第一个非空白字符开始读起,直到遇到空白字符为止,所以%s不会包含空白字符,不适合用来读取可能包含空格的字符串

可以多个%s一起使用

 

 scanf()遇到%s占位符,会在字符串变量末尾储存一个空字符\0

 scanf()将字符串读入字符数组时,不会检测字符串是否超过了数组长度,容易出错,所以为了防止这种情况,应该在使用%s时指定读入字符串的最长长度,即写成%[m]s 

 

(6)赋值忽略符(用于用户输入可能不符合预定格式时)

如果格式不正确,会解析失败

 

使用赋值忽略符 * 加在任何占位符的百分号后面

  

2.if语句 

实现分支结构:if   swich            实现循环结构:for         while      do while

(1)  语法:if(表达式) 

表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行

C语言中,0为假,非0表示真

(2)if...else...语句

语法形式:if(表达式)

                     语句1

                  else

                     语句2

(3)分支中包含多条语句

默认在if 和else中都只控制一条语句,如果需要同时控制两条语句,要使用{ }将代码括起来        

(4)嵌套if

if嵌套在else子句中

如:要求输入一个整数,判断输入的整数是0,还是正数或者负数

 

if嵌套在if语句中

如: 输入一个整数,如果是正数,再判断是奇数还是偶数,如果不是正数则输出:非正数

(5)悬空else问题

如果有多个if和else,else总是和最接近的if匹配

3.关系操作符 

(1)关系操作符是关系表达式中使用的运算符,有:>   <   >=   <=   ==   !=

(2)为了及时改正把==写成=的错误,可以将变量写在等号的右边

如:if(3==x)

(3)多个关系运算符不宜连用(a<b<c)

这个表达式不会报错,但由于关系运算符是从左到右计算,所以实际执行的是:(a<b)<c,a<b返回0或1,所以最终是0或1与变量c进行比较,应该改为:a<b &&b<c

4.条件操作符

条件操作符也叫三目操作符,接受三个操作数

形式:exp1 ?exp2 :exp3

计算逻辑:如果exp1为真,exp2计算,计算的结果是整个表达式的结果;如果exp1为假,exp3计算,计算的结果是整个表达式的结果

5.逻辑操作符

(1)! :逻辑取反运算符(改变单个表达式的真假)

(2)&& :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)

(3)|| :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)

(4)短路

 对于&&操作符来说,左边操作数的结果是0的时候,右边操作数就不再执⾏

|| 操作符的左操作数的结果不为0时,就⽆需执⾏右操作数
 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值