标准C语言day02

标准C语言day02

复习
1、常用的Linux命令
ls、cd、pwd clear touch cp mv rm cat/more/head/tail mkdir rmdir chmod
find grep ifconfig ping whoami man sudo
ftp telnet ssh tar
2、vim文本编辑器
vi是系统自带的文本编辑器,vim是它的增强版本。
三大模式:正常、插入、行底
切换方法:i Esc :
正常模式下的操作:
光标移动:gg、G、nG、vim file.c +n
删除代码:x、nx、dw/de、dd、ndd、d$、d^、dG、d1G
配合p/P可以达到移动代码的效果
复制代码:yy、nyy、p/P粘贴
替换代码:r、cw、R
撤销操作:u、U、Ctrl+r
进入插入模式:i、I、a、A、o、O
插入模式:
jj、Ctrl+c
Ctrl+x、Ctrl+z、Ctrl+i、Ctrl+p
行底模式:
set nonu
set nu
%s/old/new
>n n行代码向右缩进
<n n行代码向左缩进
/key 查询,n向下,N向上搜索
!cmd 执行命令
3、C语言介绍
贝尔实验室、肯.汤普逊、丹尼斯.里奇、C、UNIX、Minix、GNU Linux、gcc
C89、C99、C11
4、C代码变成可以执行程序的过程
预处理:查看宏函数的替换结果,检查宏函数
gcc -E
编译:理解C代码底层工作原理,i++/++i的区别,函数重载的原理。
gcc -S
汇编:生成代码库,静态库、共享库
gcc -c
链接:多文件编程的基础。
gcc a.o b.o c.o …
5、gcc编译器及常用参数
-Wall
-Werror
-E -S -c -I -l -o -D -std
6、C语言文件类型
.h .h.gch
.i .s .o .a .so
存储空间的单位:
Bit 比特 一个二进制位,只能存储0或1
Byte 字节 八个二进制位
KB 1024字节
MB 1024KB
GB 1024MB
TB 1024GB
PB 1024TB

一、数据类型
为什么对数据进行分类:节约存储空间,提高运行速度。

整型:
    signed
        signed char         1       -128~127
        signed short        2       -32678~32767
        signed int          4       正负20亿
        signed long         4/8     正负20亿/9开头19位整数
        signed long long    8       9开头19位整数
        注意:signed 不加就代码
    unsigned:
        unsigned char       1       0~255
        unsigned short      2       0~65535
        unsigned int        4       0~40亿
        unsigned long       4/8     0~40亿/1开头20位整数
        unsigned long long  8       1开头20位整数
        注意:由于定义无符数据时比较麻烦,标准库把这些无符类型重新定义成了以下类型
            需要包含头文件 stdint.h
            uint8_t、uint16_t、uint32_t、uint64_t
            int8_t、int16_t、int32_t、int64_t

浮点:
    float           4
    double          8
    long double     12/16
    注意:采用科学计算法,二进制与真实数据之间需要翻译,因此计算整数要比整型要慢。
    小数点后六位有效。
    
模拟:
    char 字符其实就是符号或图案,在内存中存储的是整数,需要显示时会根据ASCII表中的对应关系显示出相应的符号或图案。
        '\0' 0 特殊字符,字符串的结束标志。
        '0' 48 
        'A' 65
        'a' 97
    bool 布尔 先有了C语言之后才有 bool 类型,所有C语言不可能有真正布尔类型,stdbool.h头文件对布尔类型做的模拟。
        bool true false
可以使用sizeof计算类型的字节数。

在这里插入图片描述
二、变量与常量
什么是变量:程序运行期间数值可以变化的叫变量,相当于存储数据的盒子。
定义:类型 变量名;
int num;
取名规则:
1、由字母、数字、下划线组成
2、不能以数字开头
3、不能与关键字重名,能默写。
4、见名知义(功能、类型、范围)
printf scanf bool
注意:变量的默认值是随机,为了安全要给初始化,一般初始化为0。
使用:
赋值:num = 10;
参与运算:num * 100;
变量的输入、输出:
int printf(const char *format, …);
功能:输出数据
format:双引号包含的格式信息(提示信息+占位符)
…:变量列表
返回值:输出字符个数
int scanf(const char *format, …);
功能:输入数据
format:双引号包含的格式信息(占位符)
…:变量地址列表
返回值:成功输入变量的个数
注意:scanf需要的是变量类型和变量地址,变量地址=&变量名

练习1:定义各类型的变量并初始化,使用printf显示。
练习2:定义各类型的变量并初始化为0,使用scanf输入,printf显示。

类型占位符:C语言通过占位方式来传递变量的类型。
%hhu %hu %u %lu %llu
%hhd %hd %d %ld %lld
%f %lf %LF

什么是常量:程序运行期间数值不能变化的叫常量
100 默认int
100l long
100ll long long
100u unsigned int
100lu unsigned long
100llu unsigned long long
3.14 默认double类型
3.14f float
3.14l long double
三、格式化输入输出
%nd 显示n个字符宽度,不够则补空格,右对齐
%-nd 显示n个字符宽度,不够则补空格,左对齐
%0nd 显示n个字符宽度,不够则补0
%n.mf 显示n个字符宽度(小数点算一位),不够则补空格,m表示小数点后的位数(四舍五入)
%g 不显示小数点后多余的0

四、运算符
自变运算符:++/-- 使变量的值自动加1或减1
前自变:立即有效
后自变:下一条语句才有效
注意:不要一行代码中多次使用自变运算符;
算术运算符:+ - * / %
整数/整数结果没有小数点。
/ % 除数不能为零,否则会产生浮点数例外,核心转储。
关系运算符:> < >= <= == !=
比较的结果是 0 或 1 比较结果还能继续参与运算。
10 < n < 100 结果永远为真,与数学中的运算规则不同。
逻辑运算符:&& || !
会先把运算对象转换逻辑值,0转换成假,非0转换为真。
A && B 一假即假
A || B 一真即真
!A 求反
&& || 具有短路特性,当左边的值可以确定表达式结果,右边不同计算。
三目运算符:运算对象有三个部分
A?B:C; 判断A的值如果为真执行B,如果为假执行C。
该语句不能使用流程控制语句,因为它必须要有运算结果。
赋值运算符:+= *= /= …
a += b; a = a+b;
a = b; a = ab;
位运算符:& | ~ ^ >> <<

五、类型转换
自动类型转换:
只有相同类型的数据才能进行运算,不同类型数据转换成相同类型再进行云计算。
转换规则(以不丢失数据为基础,适当牺牲一些空间):
1、字少的向字节多的转。
2、有符号向无符号转。
3、整型向浮点型转。
强制类型转换:
(类型)数据 有丢失数据的风险,慎重使用。

六、分支语句
if(表达式)//单分支
{
表达式值为真,执行此处代码。
}
if(表达式)//双分支
{
表达式值为真,执行此处代码。
}
else
{
表达式值为假,执行此处代码。
}
if(表达式1)//多分支
{
表达式1值为真,执行此处代码。
}
else if(表达式2)
{
表达式2值为真,执行此处代码。
}
else
{
表达式1和2都为假,执行此处代码。
}

作业:
1、输入三个整数,从大到小显示。
2、输入一个年份,判断是闰年还是平年。
3、输入一个年份和月份,判断该月有多少天。
4、输入一个3位整数,判断是否是水仙花数。
    abc == a*a*a+b*b*b+c*c*c
5、输入一个成绩,判定级别。
    [100,90] A
    (90,80]  B
    (80,70]  C
    (70,60]  D
    (60,0]   E
    other    输入的成绩有误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值