C语言小菜

注释:ctrl+/

编译:gcc 编译的文件名称

默认生成一个a.out的文件

执行:./a.out

gcc 文件名 -o 生成新文件的名称

计算机的存储单位:

位(bit)、字节(byte)

1字节 = 8 位

1KB=1024byte

1MB=1024KB

1GB=1024MB

1TB=1024GB

数据类型:

int 整型 :整数 4个字节

short 短整型:整数 2个字节

float 单精度浮点型 :小数 4个字节

double:双精度浮点型 :小数 8个字节

char 字符型:用单引号引起来的字母或者是符号或者数字都是一个字符 1个字节

' ':单引号 'a':字符a '1':字符1 '#':字符井号

" ":双引号 字符串 "hello world "

变量:

概念:在程序运行当中会发生变化的量

定义格式:存储类型(一般省略不写 默认取值auto) 数据类型 变量名;

例:int a=10;定义了一个名字叫a的整型变量并且赋值为10

char b='0';

标识符:

命名规则:

  1. 由数字 字母 下划线组成
  2. 不能以数字开头
  3. 不能和关键字重名
  4. 见名知义

练习:x y sum a100 01a 78b* _A7b_3x (abc)

输入输出语句:

输出:printf();

功能:向终端输出内容

参数(写在小括号内的):第一个参数的位置必须是一个字符串

格式:

%d int 整型

%f float 单精度浮点型

%lf double 双精度浮点型

%c char 字符型

%s 字符串类型

%p 地址

%f---》%0.2f:保留两位小数 %.2f

输入语句:scanf();

功能:从终端输入内容;

参数(写在小括号内的):第一个参数的位置必须是一个字符串

注意:scanf中不要使用\n 或者特殊符号 ,/

返回值:正确输入字符的个数 -- int %d

运算符:

算数运算符 逻辑运算符 位运算符 关系运算符 赋值运算符 三目运算符

算数运算符 :+ - * / % ++ --

/ :除法 整数相除 向下取整(丢弃小数位)

9/2=4

9.0/2=4.5

%:取模 (取余)

10%3=1

10%2=0

++:在自身的基础上加一

int a=1;

a++;--->a=a+1;

输出:a=2

a++;

输出:a=3

++会出现的几种情况:输入语句中 赋值语句中 单独成句

输入语句中:

注意:

++在前:前置++ 先+1 后进行输出或者赋值

++在后:后置++ 先进行输出或者赋值 后+1

赋值语句中

单独成句:

单独成句时都会发生数值的变化

--:同理

【练习】:

1. 以下程序输出结果是

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 6

int b = a++; //b=6 a=7

int c = a + b; //c =13

int d = (b++) +c; // b=7 6+13=d

printf("d = %d\n",d);

return 0;

} [单选题] *

A. d = 17

B. d = 19

C. d = 21

  1. . d = 22

答案:B

2. 以下程序输出结果是

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 10;

int b =++a; //b=11 a=11

int c = a + (b++); //a=11 b=11--->12 c=22

int d = b+c; //d =12+22=34

printf("%d\n",d);

return 0;

} [单选题] *

A. d = 31

B. d = 32

C. d = 33

D. d = 34

答案:D

逻辑运算符: && (逻辑与) ||(逻辑或) !(逻辑非 取反)

&& (逻辑与) :全真则真 一假则假

真假用数字0和1表示:1---真 0----假

10>x>0-----> x>0&&x<10 x=2---》真

x=20 -----》假

||(逻辑或):一真则真 全假则假

a>10||a<5 a=4----》真

!(逻辑非 取反):非真即假 非假即真

2<5---->真

!(2<5)----->假

练习:

1.100>1&&'a'>'b' ----》0

2.100>1||'a'>'b'----》1

  1. !(100>1)----》0

截断法则:

逻辑或运算中:如果前面的表达式为真,则后面的表达式就不会执行

逻辑与运算中:如果前面的表达式为假,则后面的表达式就不会执行

或真不执行 假执行

与假不执行 真执行

【例1】:

#include <stdio.h>

int main()

{

int a=5,b=6,c=7,d=8,m=2,n=2;

(m=a<b)||(n=c>d);----->m=a<b=1

printf("%d %d",m,n);//m=1, n=2

}

例2:

#include <stdio.h>

int main()

{

int a=5,b=6,c=7,d=8,m=2,n=2;

(m=a>b)&&(n=c>d);

printf("%d %d",m,n);//m=0 n=2

}

例3:

int a = 5, b = 6, c = 7, d = 8, m = 2, n = 2,t=10;

(m = a > b) || (n = c < d)||(t=11);

printf("%d %d %d", m, n,t);//m=0 n=1 t=10

位运算符 : &(位与) |(位或) ^(异或) ~(取反) <<(左移) >>(右移)

&(位与) :全1则1 有0则0

|(位或):全0则0 有1则1

^(异或):不同为1 相同为0

~(取反):按位取反 0---》1 1---》0

原码 反码 补码

原码

反码

补码

正数

二进制数本身

二进制数本身

二进制数本身

负数

二进制数本身

除符号位按位取得到

反码的基础上+1

-5----》101

原码:10000000 00000000 00000000 00000101

反码:11111111 11111111 11111111 11111010

补码:11111111 11111111 11111111 11111011

最左边的位置(最高位):符号位 正数:0 负数:1

&(位与):

int a=5;

int b=-2;

int c=a&b;

5:

原码 反码 补码:00000000 00000000 00000000 00000101

-2:---》10

原码:10000000 00000000 00000000 00000010

反码:11111111 11111111 11111111 11111101

补码:11111111 11111111 11111111 11111110

00000000 00000000 00000000 00000101

a&b:00000000 00000000 00000000 00000100----》4

例:

int a=-3;

int b=-2;

int c=a&b;

-2:补码:11111111 11111111 11111111 11111110

-3:

原码:10000000 00000000 0000000 00000011

反码:11111111 11111111 11111111 11111100

补码:11111111 11111111 11111111 11111101

a&b:11111111 11111111 11111111 11111100

反码:11111111 11111111 11111111 11111011

原码:10000000 00000000 0000000 00000100----》-4

11.6作业:

1.

int a = 6
int b = a++;  //  b=6 a=7
int c = a--;   // c=7  a=6
--c;//c=6
int d = (b++) +c; //d=12    b=7
a=? 6  b=? 7 c=? 6 d=?12

  1. 9&-2结果

#include <stdio.h>
int main()
{
int a=0,b=0,c=0,d=0,m=0,n=0;
(m=!a)&&(n=10>d)||(d=10);
printf("%d  %d   %d",m,n,d);
}

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值