有符号数和无符号数
有符号数signed+数据类型,其中整型:分为整型、长整型、短整型 分别以signed int、signed long、signed short表示。浮点数只有有符号数。字符型 signed+char
无符号数:整型有无符号数,用来表示一些编码编号之类的东西如身份证号,房间号.无符号数unsigned+数据类型,长短整型表示同上。字符型 unsigned+char
注意:对于整型和字符型来说,有符号数和无符号数表示范围不同。因为要拿一位做符号位,所以有符号数的范围是-128~127,无符号数的范围是0~255.
运算符
跟数学中意义不同的运算符= 赋值运算符;+= a=a+b;-= ;*= ;/=;%= 同+=。
==等于 !=不等于 >大于 <小于 >=大于等于 <=小于等于 判断运算符
逗号运算符:,逗号运算符的主要功能是用来分割
++与--
++ a++;等同于 ++a; 等同于 a=a+1; 等同于 a+=1;
-- 同理
作业 1 a++和a-- 有什么区别
注意:强调程序风格。
程序结构
在c语言里面,一共有三个三种程序结构:顺序结构、选择结构(分支结构)、循环结构
顺序结构:按照实物本身特性,必须一个接一个来完成。
选择结构:到某一个节点后,会根据一次判断结果来决定之后走哪一个分支
循环结构:循环结构有一个循环体,循环体是一段代码。对于循环结构来说,关键在于根据判断的结构,来决定循环体执行多少次。
总结:对于顺序结构来说,不需判断,因为下一句指令就是你要执行的。对与循环与选择结构来说,都需要进行判断。然后根据判断结果来决定怎么办。
一段程序中简单的调试方法:在不同分支或者需要处自定打印一些数据然后根据打印内容,来分析程序的实际走向和运行情况,以此来做调试分析
if (a>b)
{
max = a;
printf("true\n"); //
}
作业// 计算1+2+3......+10
for 循环的执行步骤:
1、for循环中()中三部分可不可以省略?
标准的for循环,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量(可以引用它的值,但不应该改变它)。
选择结构详解:
c语言中选择结构一共有两种:
第一种:if else
第二种:switch case
switch()
{
case 常数1:
代码段1;
break;
case 常数2:
代码段2;
break;
....
default:
代码段n;
break;
}
注意:
1、case中必须是常数,而且必须是整型(不能是float double,可以是int和char)
2、一般来说,每个case中代码段后都必须有一个break;如果没有,结果可能会让你大吃一惊
3、case之后一般都会有default。语法上允许没有default,但建议写代码时一定要写。
switch case和 if else 对比:
1、if else合适对比条件比较复杂,但是分支比较少的情况;switch case 合适那种对比条件不复杂,但是分支数很多的情况下。
2、所有的选择结构,其实都可以用if else来实现。但是只有部分才可以用switch case 实现。
一般的做法是: 在适合使用switch case的情况下会优先使用switch case,如果不合适使用switch case,则不得不使用if else。
while循环
i= 1;
sum =0; //循环初始化
while(i<100) //循环终止条件
{
printf("i=%d.\n",i); //循环体
sum+= i; //循环控制变量,也是循环体的一部分
i+=2;
}
while循环的执行步骤:
0.首先是循环初始化。这一部分其实不属于while循环本身。
1.先判断终止条件是否满足。如果是真,则进入第二步:否则直接退出。
2.执行循环体,然后转入第一步
do while 循环
i=1;
sum =0;
do
{
printf("i=%d.\n",i);
sum+= i;
i+= 2;
}while (i<100);
do while循环的执行步骤:
0、首先是循环初始话。这一部分其实不属于do while 循环本身。
1、执行循环体(循环控制变量的增量是循环体的一部分)
2、判断终止条件。若成立则转入1;若不成立则退出
总结:不管那种循环结构,都不能缺少一些因素:
循环控制条件初始化,终止条件,循环控制变量,循环体。
不同的循环方式(for和while和do while)都有这些,只是格式不同,表现形式不同,可读性不同,看起来和设计起来难度不同