IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> |2 Day01 标准C语言 -> 正文阅读

[C++知识库]|2 Day01 标准C语言

复习:

????1、C代码变成可执行程序的过程

????????预处理:查看宏函数的替换结果,检查宏函数

????????????gcc?-E

????????编译:理解C代码的底层原理,函数重载

????????????gcc?-S

????????汇编:生成代码库,静态库、共享库

????????????gcc?-c

????????链接:是多文件编程的基础

????????????gcc?a.o?b.o?c.o?...

????2、gcc编译器常用参数:

????????-E?-S?-c?-std=gnu99?-o?-I?-l?-Wall?-Werror?-D(命令行定义宏)

????

????3、C语言文件类型

????????.h?.h.gch?.c?.i?.s?.o?.a?.so

????

????4、数据类型

????????signed?char??????????1??????%hhd????-128~127

????????signed?short?????????2??????%hd?????-32768~32767

????????signed?int???????????4??????%d??????正负20亿

????????signed?long??????????4/8????%ld?????

????????signed?long?long?????8??????%lld????正负9开头的19位整数

????????unsigned?char??????????1??????%hhu????0~255

????????unsigned?short?????????2??????%hu?????0~65535

????????unsigned?int???????????4??????%u??????0~40亿

????????unsigned?long??????????4/8????%lu?????

????????unsigned?long?long?????8??????%llu????0~1开头的20位整数

????????float???????????????????4???????%f

????????double??????????????????8???????%lf

????????long?double?????????????12/16???%LF

????????小数点后6位有效

????????问:有float?x,如何判断x与零值是否相等

????????if(x?<?0.000001?&&?x?>?-0.000001)

????5、C变量名取名规则

????????1、必须由字母、数字、下划线组成

????????2、必须由字母或下划线开头

????????3、不能与32个关键词重名

????????4、见名知意

????6、变量输入输出

????????printf??提示信息+占位符+变量名列表

????????scanf???占位符+变量地址列表

????????%nd?%-nd?%0nd?%n.mf?%g

????7、运算符

????????/?%?除数不能为0?报错:浮点数例外(核心已转储)

????????==?变量尽量在右边

????????++/--?尽量不要在一行内多次使用

????????&&?||?具有短路特性

????????注意:运算符也是有优先级

????

????8、类型转换

????????自动类型转换:不同类型的数据之间需要先转换为相同的类型数据才能进行运算

????????????1、字节少的向字节多的转

????????????2、有符号的向无符号的转(字节数相同的情况下)

????????????3、整型向浮点型转

????????????注意:以不丢失数据为基础,适当地牺牲空间

????????强制类型转换:

????????????(新类型)数据

????????????注意:有丢失数据的风险,谨慎使用

---------------------------------------

跳转语句

????goto????可以在函数内任意跳转

????它可能会破坏已经设计好的分支、循环语句,因此绝大多数公司禁止使用

????但是它在驱动编程时特别适合处理异常

????标签名:?...

????????goto?标签名;

????

????练习1:要求不适用循环语句来计算N的阶乘

????????//1

????????????int?N,i?=?1,sum?=?1;

????????????printf("请输入N的值:");

????????????scanf("%d",&N);

????????loop:

????????????if(i?<=?N)

????????????{

????????????????sum?=?sum?*?i;

????????????????i++;

????????????????goto?loop;

????????????}

????????????printf("%d",sum);

????????????return?0;

????????//2

????????????int?N?=?0,sum?=?1;

????????????printf("请输入N的值:");

????????????scanf("%d",&N);

????????loop:

????????????num?*=?N;

????????????if(--N?>?1)?goto?loop;

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

????break

????????1、配合switch使用,关闭执行开关

????????2、调出当前次循环,只能跳一层

????continue

????????结束本次循环,直接进入下一次循环

????

????return

????????1、返回一个数据给函数的调用者

????????2、立即结束函数的执行

????

????练习2:不适用循环语句计算前N项斐波那契数列

数组:

????什么是数组:变量的组合,是一种批量定义变量的方式

????定义:类型?数组名[数量];

????????int?arr[5]

????

????使用:数组名[下标];

????下标:从零开始?范围:0~数量-1

????初始化:类型?数组名[数量]?=?(1,2,3,4?...)

????????1、数组与普通变量一样默认是随机的,为了安全对数组进行初始化

????????2、这种初始化语法只能在定义数组时使用,并且只能逐个赋值,不能整体赋值

????????3、初始化数据过多,编译器会产生警告并丢弃

????????4、初始化数据不足,编译器会自动补0

????????5、初始化的数据可以省略,只写大括号,相当于给所有成员赋0

????????6、初始化数据时,长度可以省略,编译器会自动统计数据的个数然后告诉数组

????????数组的长度?=?sizeof(arr)/sizeof(arr?arr())

????练习3:定义一个长度为10的数组并初始化,计算出该数组的最大值、最小值、平均值

????????//??#include?<stdio.h>

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

????????{

????????????int?arr[10]?=?{1,4,7,9,3,4,6,19,3,4};

????????????int?max?=?arr[0],min?=?arr[0],sum?=?arr[0];

????????????float?avg?=?0;

????????????for(int?i?=?1;?i<10;?i++)

????????????{???

????????????????if(arr[i]?>?max)

????????????{

????????????????max?=?arr[i];

????????????}

????????????????if(arr[i]?<?min)

????????????{

????????????????min?=?arr[i];

????????????}

????????????sum?+=?arr[i];

????????????avg?=?sum/10;

????????????}???

????????????printf("max=%d?min=%d?avg=%lf\n",max,min,avg);

????????}

????练习4:定义一个长度为10的数组并初始化,进行升序排列

????????//??#include?<stdio.h>

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

????????{

????????????int?temp,arr[10]?=?{1,4,2,5,6,7,8,9,12,13};

????????????for(int?i=0;?i<9;?i++)

????????????{

????????????????for(int?j?=?i+1;?j<10;?j++)

????????????????{

????????????????????if(arr[i]?>?arr[j])

????????????????????{

????????????????????????int?temp?=?arr[i];

????????????????????????arr[i]?=?arr[j];

????????????????????????arr[j]?=?temp;

????????????????????}

????????????????}

????????????}

????????????for(int?i?=?0;?i<10;?i++)

????????????{

????????????????printf("%d",arr[i]);

????????????}

????????}

????数组越界:为了程序的运行效率是不会检查数组的下标

????????数组越界的后果:

????????????1、一切正常

????????????2、段错误

????????????3、脏数据

????练习5:定义一个长度为10的数组并初始化,找出数组中第二大的值(不允许排序)

????????//??#include?<stdio.h>

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

????????{

????????????int?arr[10]?=?{3,5,67,3,2,6,7,10,4,2};

????????????int?max?=?arr[0]?>?arr[1]?arr[0]:arr[1];

????????????int?max2?=?arr[0]?>?arr[1]?arr[1]:arr[0];

????????????for(int?i?=?2;?i<10;?i++)

????????????{???

????????????????if(arr[i]?>?max)

????????????????{

????????????????????max2?=?max;

????????????????????max?=?arr[i];

????????????????}

????????????????else?if(arr[i]?>=?max2)

????????????????{???

????????????????????max2?=?arr[i];

????????????????}

????????????}???

????????????printf("%d?%d\n",max,max2);

????????}

作业:

1、打印9*9乘法表

2、编程解决百钱百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

3、计算出100~10000之间的所有素数

4、输入一个日期(yyyy-mm-dd),计算该日期距离公元1年1月1日多了多少天??time(NULL)

5、显示以下图形(printf一次只能输出一个字符)

?????????????**********

????????????**********

???????????**********

??????????**********

?????????**********

????????**********

???????**********

??????**********

?????**********

????**********

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:16:52  更:2021-07-13 17:19:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 13:01:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码