C语言学习---(三)

控制程序流:顺序、循环、分支;

注意:

scanf()函数返回值为读入元素的个数,故大于等于0;

计算机内都是用补码,正数的补码是其自身,~(数)实际就是对该数的补码取反,之后再反推回原码。总结下来,就是对原来数的补码(包括符号位)都进行了取反,!!!正整数取反是加一后的负数,负整数取反是加一后的正数!!!!

取反时符号位不变;

再编程前可以通过伪代码来表示程序的思路;

==是关系运算符,关系运算符<、<=、>、>=、==、!=;

关系运算符可以用来比较整数、浮点数、字符,不能用于比较字符串;

可以用声明在<math.h>文件中的fabs()函数来返回一个浮点数的绝对值;

设置死循环while(1) {},注意在C语言中真的概念比假的宽,测试条件一般只要非0都为真(甚至包括负数),0为假;关系表达式为真求值为1,假为0;

为了避免混淆,在使用关系运算符==比较是否相等时,将常量放在左侧;

C语言中,非零一律为真,零为假;

C99新增加了_bool类型,在头文件<stdbool.h>中,bool成为类型_bool的别名,而且把true和false分别定义为了 1和0的符号常量;包含该头文件可以与C++兼容,因为c++把bool true false定义为了关键字;若系统不支持_bool类型,可用int代替;

关系运算符优先级低于(+\-),高于=;

while循环语句:

每次循环都被称为一次迭代;

while循环执行结束在第一个分号或者花括号,故特别注意测试条件后面是空语句,只有一个分号的情况;

for循环语句:

格式for(初始化;测试;更新)  {};

在里面使用逗号运算符,可以对多个变量初始化或者 测试 更新;

注意注意,第3个更新是每次执行完下面话括号内的,也就是该次循环结束时才求值

第1个只执行最初的一次,省略第2个被视为真;

与=优先级相同的其它赋值运算符:+=、-=、*=、/=、%=;

逗号运算符标志从逗号左边往右执行;
 

do while 循环语句:

格式do{}while();

注意:

入口条件循环指循环体可能一次都不会执行,如while、for,出口条件循环循环体至少被执行一次do while;

一般入口条件循环用的多,不包含初始化和更新语句时,优先用while,否则用while;

函数pow(),只能处理正整数的幂,可以使用浮点指数,位于<math.h>库;

为啥自定义的函数调用前现需要声明函数原型而scanf()、printf()不用,因为他们的函数原型已经包括在<stdio.h>库中了;

scanf()在读到非数字字符,就会返回0;

素数指的就是没有能够整除它的约数的数(从2开始);

制表符\t是C++的转义符,相当于键盘上按下TAB键之间的距离,将光标移到最接近8的倍数的位置,使得后面的输出从此开始;

if分支语句:

格式if() {},与while很像,区别在于满足条件只会执行一次;

if()

{}

else if()

{}

else

{}

字符输入/输出 预处理宏:

getchar()不带任何参数,从输入队列返回下一个字符;

putchar()打印它的参数。均定义在<stdio.h>库;

<ctype.h>库包含一系列处理字符的函数原型,这些函数接受字符作为参数,如isalpha()函数的参数是一个字母则返回非零值(真),否则返回零(假);

逻辑运算符:

&& || !,在 <iso646.h>库中新增的备用拼写,and or not;

逻辑运算符求值顺序是从左往右,一旦存在假立即停止求值;

条件运算符:

需要3个运算对象;经常有条件表达式来代替if esle语句,使程序更为简洁  ?:

格式为expression1 ? expression2 : expression3

循环辅助语句:countinue和break:

countinue是跳过本次迭代的剩余部分,开始下一次迭代;

break是直接退出该循环,继续向下执行;

注意:

写二选一的程序考虑if语句/条件运算符;多选一用switch语句;

<ctype.h>系列的toupper()函数,用来将字符转换成大写;用于switch时,可以避免重复标签;

要实现只能选择一般用:if、if else、switch、?:

getchar()、putchar(0每次只能处理一个字符;

switch多重选择语句:

格式switch()括号内必须为整数值(包括char),case标签也一样,标签若为表达式,那边大师也只能是整型常量 不能为变量

程序根据switch()括号内的值跳转至对应case标签处,若没有break则执行完所以剩下语句,若有则重新定向。

如果switch嵌套于循环语句,则可以使用continue语句,因为该语句只能用于循环中。但是,break语句可以在循环与switch中使用。

如果需要根据浮点型的变量或表达式来选择则无法使用switch,用if;

switch只能是整型,浮点型用if,

(大脑不是一味用来记忆的,而是用来产生想法的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

amyun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值