
- 位运算
- 输入与输出
- 控制语句
- 位运算
& 、|、 ~、 ^、 << 、>>
(1)与运算1101 0101
& 0110 0011
0100 0001
案例:将1101 0111的0~2位清零
1101 0111
& 1111 1000 (~0000 0111)
1101 0000
(2)或运算1010 0101
| 1110 1110
1110 1111
案例:将1010 0101的3~5位变成101
1010 0101
& 1100 0111
1000 0101
| 1010 1101
1010 1101
(3)取反~1010 1111 --->0101 0000
(4)异或1101 0111
^ 0101 1001
1000 1110
(5)左移
左移:高位丢弃,低位补0
(6)右移无符号数:低位丢弃,高位补0
有符号数:低位丢弃,高位补1
2、输入和输出
函数:有独立功能的模块
标准输入输出函数:scanf、printf(对变量类型没有限制)
字符的输入输出getchar、putchar
输入:从键盘拷贝的内存(通过键盘给变量赋值)
输出:从内存拷贝数据到显示屏(打印变量)
int printf(“格式控制串”,输出表);
格式控制串:原样输出的内容(可省)+格式化符
输出表:要输出的对象
整型:%d:十进制整型数
%o:八进制整型数
%x、%X:十六进制整型数
#:自动在八进制和十六进制前面加前缀
%u:无符号整型数
%hd:short类型
%ld:long类型
%lld:longlong 类型
字符:
%c:字符型
浮点型:
%f:float
%lf:double
%e:指数
%g:选择小数和指数中较短的一个
.n:保留n个小数
m:指定输出的域宽,默认是右对齐,m的值大于数据的实际长度,左边补空格,否则,原样输出
int scanf(”格式控制串”,地址表);
注意:
- scanf格式串语句中,不要加修饰语,如果要加,必须原样输入
- 在输入时如果要给多个变量赋值,在格式串中如果没有间隔,那么在键盘输入时,以空格、回车、Tab键作为一个变量的输入结束
- 全部输入结束,必须以回车作为结束符
- 如果是“%c%c”时,在输入时不能有空格、Tab键或者回车,因为空格、Tab键、回车也是字符
案例:
解决办法:1、%c%c之间加空格或者逗号(输入时必须原样输入)
2、加%*c,*代表的是抑制符
3、字符的输入和输出
int getchar();
返回值:从键盘得到的字符的ASCII码
char a;
a = getchar( );
int putchar(int c);
参数c:你要输出的字符的ASCII码值
注意:处理垃圾字符,在中间加getchar()
4、控制语句if else、switch case、 for、 while 、do…while、 goto
1、顺序结构
语句按照一定的顺序去执行
- 选择结构
(1)单分支if语句
if(表达式)
{
语句;
}
判断表达式的值是否成立,如果成立,执行语句
(2)双分支if语句
if(表达式)
{
语句1;
}
else
{
语句2;
}
判断表达式的值是否成立,如果成立,执行语句1,如果不成立,执行语句2
注意:else后面不能跟表达式
案例:输入一个年份,判断该年是平年还是闰年
(3)多分支if语句
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
………………..
else if(表达式n)
{
语句n;
}
else
{
语句n + 1;
}
从上至下,依次判断表达式的值,如果表达式成立,执行对应的语句,跳出整个if语句
案例:输入隐藏分,判断段位等级
60分以下:英勇黄铜
60 —— 70:不屈白银
70 —— 80:荣耀黄金
80 —— 90:华贵铂金
90以上:璀璨钻石
(4)嵌套if语句
if(表达式1)
{
if(表达式2)
{
语句1;
}
else
{
语句2;
}
}
else
{
if(表达式3)
{
语句3;
}
else
{
语句4;
}
}
作业:1、输入三个整数,求最大值(嵌套if语句)
2、输入年份,月份,输出该年的该月有多少天(switch case)
3、求1~10和(for、while)
4、输入年,月,日,输出该天是该年的第多少天(选做)
(5)switch语句
switch(表达式)
{
case 标号1:
语句1;
break;
case 标号2:
语句2;
break;
case 标号3:
语句3;
break;
………………………
case 标号n:
语句n;
break;
default:
语句n + 1;
break;
}
注意:(1)表达式不能为浮点型
(2)标号必须为常量
(3)当表达式的值==标号时,执行冒号之后的语句,直到switch case语句执行结束为止,或者遇到break结束
案例:
int a = 5;
switch(a)
{
case 2: printf(“2n”);
default: printf(“不存在该选项n”);
case 4:
case 1: printf(“1n”);
case 3: printf(“3n”);break;
case 0: printf(“0n”);
}
案例2:输入年份、月份,输出该年该月由多少天
- 循环结构
什么是循环?重复的做某一件事
循环的三要素:循环的初始条件、循环的终止条件、循环变量的变化方式
1、for循环
for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:循环的初始条件
表达式2:循环的终止条件
表达式3:循环变量的变化方式
执行过程:先执行表达式1的值,然后在执行表达式2的值,如果表达式2的值为真,执行循环体,否则,退出for循环,再执行表达式3的值,如此反复执行,直到表达式2的值为假时,跳出循环
案例:
思考?表达式1,2,3的值可不可以省略
(1)
(2)
(3)
注意:表达式1、表达式2、表达式3的值都是可以省略的,但是分号不能省
练习:
1、for(i = 0; i < 2 ; i++)
{
for(j = 0; j < 2; j++)
{
}
}
每一次循环 i,j的值各是多少
第一次:i = 0,j = 0;第二次:i = 0,j = 1;第三次:i = 1,j = 0;第四次:i = 1,j = 1
2、打印一下内容
*
***
*****
*******
2、while语句
while(表达式)
{
循环体;
}
判断表达式的值是否成立,如果成立,执行循环体,否则,结束循环
3、do..while语句
do
{
循环体;
}while(表达式);
break、continue
break:1、结束循环 2、跳出switch语句
continue:结束本次循环,开始下一次循环
区别:while先判断再执行,循环体至少执行0次
do…while先执行再判断,循环体至少执行1次
4、死循环
for( ; 1 ; )
{
}
while(1)
{
}
5、goto语句
无条件跳转语句,一般格式为goto 语句标号;
语句标号是按照标识符写的符号
注意:形成循环,必须要把判断条件写在语句中间,不然会死循环
goto loop;
loop:
案例:
设x和y均为int型变量,则执行以下的循环后,y值为 ( )
for(y=1,x=1;y<=50;y++)
{
if(x==10)break;
if (x%2==1)
{
x+=5;
continue;
}
x-=3;
}
A)2 B)4 C)6 D)8
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)