c语言day4

 一、输入输出函数

1、输出函数

可以取man手册查看printf函数的原型

man 3 printf

函数原型: int printf(const char *format, ...);

printf("格式符",输出表象); ---->一个格式符对应一个输出表象

"":可以放格式符,转义字符(\n···),字符串(直接输出) 

 

2、输出函数

函数原型: int scanf(const char *format, ...);

scanf("格式符",变量的地址); ---->有几个格式符就要跟几个变量的地址,scanf()的""内一般不放\n &a; ----->取变量的地址 scanf输入结束时,直接按回车 

scanf是一个严格控制格式的函数: 双引号内写了什么,用户终端输入就输入什么

(1)scanf函数获取数据的特点

scanf在获取多个数据时,以空格、tab键和回车作为数据分隔的标志

回车在每一个格式符都获取到数据后,回车作为scanf结束的标志,如果有格式符没有获取到数据,回车作为数据分隔的标志。

(2)scanf吸收垃圾字符的问题

在使用scanf获取字符类型数据时,存在需要吸收垃圾字符的问题

因为空格、tab键和回车都是一个字符,会被%c获取到

(3) 字符类型的输出函数

    char c1 = 'h';
    putchar(c1);  //输出h字符
    putchar(10);  //10是\n的ascii码值,输出换行
    putchar('\n');  //输出字符'\n',就是换行

(4)字符类型的输入函数

    char c1;
    c1 = getchar();
    putchar(c1);  //输出h字符
    putchar(10);  //10是\n的ascii码值,输出换行

二、运算符

1、算数运算符

格式:a#b (#表示运算符) 

+、-、*                                             和数学中的运算完全一致

/                                                        如果a和b都是整形,结果为除法取整数部分的结果只要a和b                                                             中有一个是浮点型,结果为带小数的整除结果(除数不能为0)

%                                                      a和b必须都是整数(除数不能为0)

2、自增自减运算符

++i、i++、--i、i--

++i:获取到的是i自增1后的值,i本身发生改变

i++:获取到的是i自增前的值,i本身也发生了改变

--i:获取到的是i自减1后的值,i本身发生改变

i--:获取到的是i自减前的值,i本身发生改变

(如果运算符在前面就获取运算后的结果,如果运算符在后面就获取运算前的结果。)

3、赋值运算符

a=b; --->将b的值赋值给a

a+=2; --->a=a+2;

a-=2; --->a=a-2;

a*=2; --->a=a*2;

a/=2; --->a=a/2;

a%=2; --->a=a%2;

·····

4、关系运算符

关系运算的结果是一个固定的值,真值/假值,1/0

计算机中非0为真,0为假

0.1(真值)

a>b

a<b

a>=b

a<=b

a!=b    判断a和b不相等

a==b   判断a和b相等,一个=是赋值,两个==是判断

5、条件运算符

是C语言中的唯一一个三目运算符

表达式1?表达式2:表达式3

逻辑: 如果表达式1成立,执行表达式2,否则执行表达式3

    int i=9,j=4;
    printf("%d\n",i<j?i++:++j);  //5  ++j执行
    printf("%d\n",j==i?j++:--i); //8  --i执行
    printf("%d\n",--i?i>j:j);    //1 ,--i是7 真值表达式成立,执行i>j
    printf("i=%d\n",i);  //7
    printf("j=%d\n",j);  //5

6、逻辑运算符 

逻辑运算的结果是真值/假值, 1/0

&&(逻辑与)

表达式1&&表达式2

两个表达式同时为真,结果为真

||(逻辑或)

表达式1||表达式2

只要有一个表达式为真,结果为真

!(逻辑非)

!表达式

非真即假,非假即真

逻辑运算存在逻辑短路现象:

逻辑与运算时,如果运算符左侧的表达式结果为0,右侧的表达式不会执行

逻辑或运算时,如果运算符左侧的表达式结果为1,右侧的表达式不会执行 

 7、逗号运算符

格式: (表达式1,表达式2,表达式3,表达式4,····表达式n)

执行逻辑: 逗号运算符的每一个表达式都会执行,取最右侧表达式的结果

8、sizeof()运算符

sizeof说是C中的一个关键字也可以,sizeof的使用类似于函数调用的格式

格式: sizeof(数据); --->数据可以是数据类型也可以是变量名也可以是常量

功能: 求()内内容所占的内存大小,以字节为单位

9、位运算符

对二进制位进行运算,bit位如果没有特殊说明,默认从最右侧一位开始是第0位

右移n位,表示除2^n

左移n位,表示乘2^n

>>(右移运算符)

a>>n

a向右移动n个bit位,高位补符号位

<<(左移运算符)

a<<n

a向左移动n个bit位,低位补符号位

^(异或)

a^b

a和b按位异或

(同0异1)

~(取反)

~a

每一个bit位按位取反

&(按位与)

a&b

两个bit位有一个0结果为0

两个都为1结果为1

|(按位或)

a|b

两个bit位只要有一个为1结果为1

两个都是0结果为0

位运算进场用来执行对某一位置0和置1的操作

eg:已知一个数a,想要给a的第13个bit置0,给a的第5个bit置1,要求操作不能修改其他bit位的值

a&=~(0x1a|=(0x1

按位与运算可以实现对bit位置0的操作

按位或运算可以实现对bit位置1的操作

10、运算符优先级

单算移关与,异或逻条赋

如果不想记优先级顺序,加括号

后缀自增和后缀自减的优先级更高

 

作业:

1、已知变量a,给a的第6个bit位置0,给a的第4个bit位置1,给a的第5个bit位取反(异或)。

 

2、 终端输入学生成绩,判断成绩等级[100,90]A,(90,80]B,(80,70]C,(70,60]D,(60,0]不及格,需要对成绩合理性进行判断,如果成绩大于100或者小于0成绩不合理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值