C语言基础入门,编程的第一步
C语言基础
学语言:逻辑,基本算法,基本数据结构
学c基础不是目的,就个开端
没有最好的语言,只有最合适的
C语言简介
- 计算机:(电脑)
- 电脑执行需要运行程序,执行程序都是由程序员进行编写。
- 人与计算机交互:机器码:
- 二进制数:计算机识别的最基础的语言。0 1码
- 纸带:交互能力太差
- 利用计算机语言:B语言–》unix(操作系统)
- 一定的编程语法
- 缺点B语言:可读性,可维护性太差 - C语言之父(unix):
- 肯.汤普逊和丹尼斯.里奇
- 自己写了C语言–
程序结构
- 基本结构- 预处理指令,函数,变量,语句&表达式,注释
- 注释:- 单行注释://注释内容- 多行注释:/*注释内容*/- 注释的用途:1.表明函数或者代码用意 2.版本说名等有用信息
- 打印函数:结果的输出
- 库/包- #include <stdio.h> 面粉- 提供基础的接口(基础应用)
- 主函数(main函数)- 注意;每一个C语言工程中有且只能有一个main()函数- main函数是我们程序的入口
- C语言中有严格的大小写区分
- int数据类型
#include <stdio.h> //预处理,帮助你加载已有包/库
#include <stdlib.h> int main()
{// 注释:注释在程序执行是不参加工作 帮你标注你的代码//第一个c语言程序/*多行注释qwerdf*/printf("Hello world!\n");//打印函数。return 0;
}
- c语言各个令牌的组成,令牌可以是关键字,标识符,常量,变量。字符串或者一个符号
- 分号的意义:
- 意义重大。每一行代码的结束,都是由分号结果,如果每一行代码末尾没有分号,程序会报错
#代码规范
- 意义重大。每一行代码的结束,都是由分号结果,如果每一行代码末尾没有分号,程序会报错
- 错落有致
- 函数体内定义变量时,要将定义过程函数体中最顶端。
C语言标识符
- 概念:
- 标识符是用来标识变量,函数,或者其他的自定义项目名称。一个标识符以字符A-Z或者a-z或下划线开始,然后跟零个或者多个字母,下划线数字(0-9)
- 注意标识符不能以除字符下划线以外的的字符作为开头,不能以数字开头,否则程序会把他认为是一个数据,不是一个标识符。
- 注意:在进行函数命名或者变量命名或文件命名时不要以数字作为开头
数据类型
序号 | 数据类型 | 描述 |
---|---|---|
1 | 基本数据类型 | 算术数据类型(整数类型和浮点类型) |
2 | 枚举数据类型 | 常用来被定义程序中只能赋予其一定的离散整数型的数值 |
3 | void数据类型 | 缺省型 |
4 | 派生数据类型 | 指针 |
整数类型:
整形(关键字) | 字节数(bytes) | 范围值 |
---|---|---|
short | 2字节 | -3万~3万 |
long | 4字节 | -215次方-215 |
int | 2字节(32位操作系统)/4字(64位操作系统) | 。。 |
char(带符号) | 1字节 | -128~127/ 0~255 |
unsigned char(无符号类型) | 1 | 0-255 |
unsigned int(无符号类型) | 2字节/4字节 | |
unsigned long(无符号类型) | 4字节 | |
unsigned short(无符号类型) | 2字节 | 0~4294967295 |
浮点型
类型 | 存储大小 | 精度 | 整数位个数 | 小数位个数 |
---|---|---|---|---|
float(单精度浮点) | 4字节 | 小数据点后6位 | 8位 | 23位 |
double(双精度浮点) | 8字节 | 小数点后15位 | 11位 | 52位 |
long double | 16字节 | 小数点后19位 |
#include <stdio.h>//预处理 加入库/包
#include <float.h>int main()
{//主函数,程序运行的入口,花括号中的内容为函数体//声明变量——变量的声明/定义要放在函数体的最顶端float i;printf("float max size = %d\n",sizeof(float));//输出float类型的最大字节数printf("float max value = %E\n",FLT_MAX);//%E 以指数形式输出单,双精度实数。printf("float min value = %E\n",FLT_MIN);printf("float 精度:%d\n",FLT_DIG);//输出float数据类型 %fprintf("float %f",i);
}
注意:
- float:
- 数据类型当小数点后第七位有数据值时符合四舍五入的原则讲数据整合到第六位进行输出。- 如果float后只是一个整数时,输出结果会讲其精度进行补全
缺省型void
概念:void是指没有确定的或者可指向的值
一般有以下三种情况
1. 函数返回为空。C语言中各个函数都拥有返回值,如果说不具有返回回值时,函数名使用void进行修饰。 2. 函数的参数为空,c语言当中各函数接收任何参数,你就可以在函数的参数列表中写入void 3. 指针指向void:执行的类型为void* 表达的时对象的地址,而不是类型。***内存管理
二进制数据
二进制数据:
概念:
最基本的机器语言是二进制码。—》机器是不是由一堆电路和电子元器件。
二进制码机器是如何识别的?机器对于输入输出(信号):电信号(逻辑电平)—》有电/没电 0 1
二进制对比十进制:(短除法)
二进制 十进制 0 0 1 1 10 2 100 4 1000 8 1100 12 1 0010 18 二进制到十进制:
二进制数 十进制数 10000 16 11100 1x4+1x23+1x22+0x21+0x2^0 28 计算机都是按位运算存储的。
变量
- 变量其实就是程序员在编码过程中器起的一个名字,名字的作用就是帮助程序员进行识别和使用。
- 定义内存,并且给内存进行命名
- 变量:
- 1.数据类型
- 2.变量名
- 注意:变量名的命名规则
- 1.符合标识符的规则:变量不能以数据开头和除下划线,字母这样的
- 2.不能使用已有关键字。错误例子:char int;//会报错
- 3.尽量不要和已有函数名重复。
- 注意:变量名的命名规则
- char i; i = 10;
- 变量的使用:
- 1.变量的声明-注意变量在不声明是无法使用,也就说变量想要使用必须进行声明。
- 2.变量的定义,也可以叫变量的初始化。
- C语言是一种编译型语言,面向过程开发的,编译型就是指程序只有全部的代码都正确才会输出结果,
- 在变量声明时,其实就是将变量和某一个内存相关连,而没有经过初始化的变量也就是说你这个变量表示的内存没有经过初始化,然后会将内存中原有的指直接输出,这个输出得结果时不一定的。
//引入头文件/包
#include <stdio.h>int main() //主函数
{//1.变量的声明 数据类型(空格)变量名;(最后以分号结尾)int i;//整数数据类类型 i;short a;//char b;//整数类型中的字符型数据 b;float c;//单精度浮点型数据int d;//做一个定义int j;//j只做声明不做定义直接将其输出//我们的 i ,a ,b ,c其实在计算眼中就是在给内存起名字,方便于直观进行内存的数据存放和管理//变量在声明时就可给它一个初始值,将其定义/*多行注释注意大家在编码时要以分号结尾*///2.变量的定义,实际实在给变量进行赋值i = 10;a = 233;b = 'L';//字符的写法都是由char 类型定义 字符的表示方法就是英文状态下单引号中写。切记char 只是单字符c = 80.233;//变量在使用前必须声明。可以不进行定义但是必须进行声明d = 100;printf("i = %d\n",i);//%d针对整型数据输出的printf("a = %d\n",a);//printf("b = %c\n",b);//%c是单个字符输出使用使用的printf("c = %f\n",c);//%f是输出浮点数时使用printf("j = %d\n",j);//j直接输出没有经过定义}
赋值操作
i = 10;//正确的读法为:将10赋给变量i//注意在赋值操作中一般分为左值和右值。切记左值不能为 常量
常量
- 概念:常量就是指固定值,在程序的执行期间这个值时不会改边的,又称为字面量
- 常量可以时10进制,可以是八进制,可以是16进制, 0x开头的就代表时16进制,0开头的代表为8进制,不带前缀的就是默认的10进制数
- 整数常量
212 //十进制数
215U //U代表无法号整数-unsigned
21L //代表的长整数
0x001// 16进制数
020// 8进制数
- 浮点数常量
10.2 //浮点数产量
字符常量
转义字符 \ 含义 ’ ’ " " \t 制表符:多个空格 \n 换行符 \r 回车 \v 垂直制表符 字符串
- 概念:在C语言中由字符数组组成的称为字符串
- ‘a’ —> 字符a
- “hello world” —>就是由多个字符构成的。
- 注意:字符串使用双引号包含的。
如何定义常量
#define 常量名 常量值
- 注意:经过#define操作之后 变量名 就代表了一个常量,在之后的程序中不可以将这个变量名作为左值进行赋值操作。 不能#define的末尾添加分号
- 左值就是在赋值操作时(a=b)中的a的位置就是左值
//常量举例#include <stdio.h>
//常量的定义方法#define value 20 //注意没有分号 value 现在是一个常量
//赋值时常量不能为左值int main()
{int a;a = value;printf("a = %d \n",a);
}
运算符
算术运算符
a = 10 ,b = 2
运算符 | 描述 | 实例 |
---|---|---|
+ | 加法 | a+b 12 |
- | 减法 | a-b 8 |
* | 乘法 | a*b 20 |
/ | 取整除法 | a/b 5 |
% | 取余/取模除法 | a%b 0 |
++ | 自增 | ++b 前加 b++后加 |
– | 自减 | –b 前减b-- 后减 |
a+=2 运行过程为a = a+2;
关系运算符
//放到将条件语句的时候给大家讲
运算符 | 描述 | 实例 |
---|---|---|
== | 是否相等:判断左值与右值的数值是否相同 | |
> | 是否大于 | |
< | 是否小于 | |
>= | 是否大于等于 | |
<= | 是否小于等于 | |
!= | 是否不等于 |
逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
&& | 逻辑与:A条件&&B条件,当两个都为真是结果为真,有一个条件为假时即为假AB都为真,A&&B 结果为1 ,否则A&&B,有一个假的或者都是假的结果为0 | A&&B |
|| | 逻辑或:A || B,只有一个为真即为真,都为假才为假 | A||B |
!(英文状态下的!) | 逻辑非:!(A&&B(假)) 就变成真的了,非真条件为假,非假条件为真 | !A |
#include <stdio.h>#define value 100int main()
{//主函数int i;int j;i = 10;if(i==value && i < value)//逻辑与都为真才为真 //if的条件判断就两种真或者假, 布尔值(bool)0 / 1{//执行内容printf("条件满足\n");}j = (i==value && i<value);printf("逻辑与结果为:%d\n",j);
}
#include <stdio.h>#define value 100int main()
{int i = 10;if(i>value||i<value)//这个条件中有一个为真{printf("条件满足\n");}printf("程序结束\n");
}
位运算符
运算符 | 描述 | 例子 |
---|---|---|
& | 与 | |
| | 或 | |
^ | 异或 | |
>> | 右移 | |
<< | 左移 |
赋值运算符
判断
概念:判断结构要求程序指定一个或者多个测试条件,以及通过条件之后要执行的内容(内容是必须要有的,不可为空)
if(条件)中的条件结果为0 和非0。结果为0时代表条件为假,否则条件为真
if(条件) {满足条件的执行内容}#include <stdio.h> //基础头文件的引入#define Value 18 //这是的作用是什吗? ----》常量的定义int main() {//主函数int i;//变量的声明i = 18;//变量的定义,赋值操作if(i == Value)// i是否和value相等{//条件通过之后执行的内容printf("1. i和value值相等\n");}//判断体之外的语句。不受判断体的影响cprintf("2. 程序结束\n"); }
规则:如果条件满足时的执行语句只有一行代码时,可以不需要加大括号将执行内容包裹起来。如果执行内容时多行时,必须使用花括号将其包裹起来
#include <stdio.h>#define value 100int main() {int i;i = 10;//代码格式if(i == value)printf("1.i和value 相等\n");if(i >= value)printf("2.i大于等于value\n");printf("这是插入的语句\n");if(i<=value)printf("3.i小于等于value\n");if(i != value)printf("4.i不等于value\n");printf("2.程序结束\n");}
语句 | 描述 |
---|---|
if 语句 | if(条件) |
if … else语句 | if(条件1)else(除了条件1不满足其他的都满足) |
if的嵌套式语句 | if(条件1) else if(条件2) |
switch语句 | switch(条件) case…break…default…break |
A?B:C | 三元运算符,B,C都是执行语句。A是条件语句,A满住时执行B,不满足执行C |
#include <stdio.h>int main()
{int age;age = 40;if(age<18)//if 。。else 条件只有两个{printf("1.年纪为%d岁不可以谈恋爱,要多学习\n",age);}else if(age>=18 && age<=25)//如何实现 10<a<20{printf("2.年纪为%d岁,正是大好年华\n",age);}else if(age>25 && age<35){printf("3.年纪为%d岁,爱情事业双丰收\n",age);}
}
#include <stdio.h>int main()
{int money;money = 30;printf("我有%d块钱,能吃:\n",money);switch(money)//money是结果 //条件{case 10://case value 注意只有条件和value 相等时才会执行printf("吃一碗面条\n");//切记需要在每一个case的执行内容中加入一个break;break;//帮助你跳出执行体 打破case 30:printf("面条加啤酒\n");break;case 40:printf("面条加啤酒加一盘小菜\n");break;case 50:printf("面条加啤酒加一盘小菜加两鸡蛋\n");break;default: //以上条件都不满足时。执行 elseprintf("以上都不满足\n");break;}printf("程序结束\n");
}
- 注意1:switch(条件) { case 结果1 break … default …break} 只有当条件和结果相等时才执行内容。
- 注意2:break;跳出当前内容也就是直接到最近的一个花括号尾部。打破。。
三元运算符
#include <stdio.h>
int main()
{int number;number = 11;number%2==0?printf("偶数"):printf("奇数");
}
课堂小练习:
eg:用三元运算符和if…else 。写出两个数值比较大小,
循环
概念:比如我们要执行一个语句多次,一般情况下都会使用循环来实现。
循环类型 描述 for 给定的条件为真的时候就执行循环语句,他在循环前先判断条件是否符合 while 多次执行语句代码。简化循环变量 do while 循环语句至少会执行一次,然后根据while()括号中的条件来判断是否继续执行循环语句 循环嵌套 循环套循环,列子见day03_07 for(a;b;c)
a代表的结果值,
b代表的条件
c代表的步进值。
注意:在for循环中a,c可以不写在for语句中,b必须在
#include <stdio.h>int main() {int i;i = 0;for(;条件;)//for循环中失去了结束条件,这个for循环会一直执行下去,形成死循环{i+=2;printf("进入循环1\n");printf("进入循环2\n");}printf("i = %d\n",i); }
while():
括号中为循环条件,满足条件进行循环
在括号中写入非0的常量是构成死循环。
#include <stdio.h>int main() {int i;i = 0;while(i==0)//括号中就是循环条件,条件为真进入循环,假跳出循环{printf("进入循环-----1\n");printf("进入循环--2\n");i = 1;} }
do…while…
#include <stdio.h>int main() {int i;i = 3;do{printf("执行\n");//至少会执行一次i--;//}while(i>1);//括号中就是循环条件printf("结束\n"); }
循环的控制语句
控制语句 描述 break 语句 终止循环。直接结束循环 continue 语句 结束本次循环,进行下一次循环 goto 语句 将控制转移到被标记的语句, #include <stdio.h>int main() {int i;for(i=0;i<10;i++){if(i%2==0)//i为偶数时{continue;}printf("i = %d\n",i);} }
#include <stdio.h>int main() {int i;for(i=0;i<10;i++){printf("i = %d\n",i);//break;} }
#include <stdio.h>int main () {int i;for(i = 0;i<10;i++){if(i == 5){goto end;//跳转点}printf("i=%d\n",i);}end://标记点printf("end i = %d\n",i); }
#include <stdio.h>int main () {int i,j;end:printf("结束\n");for(i = 0;i<3;i++){for(j = 0;j<10;j++){if(j == 5){goto end;}printf("j = %d ",j);//%d只是表示输出一个整型数据。\n换行}printf("\n");}}
- 注意:break,continue只能打破一层循环而goto语句可以打破多次循环
- 构建无限循环(死循环的方法)
- for(;
C语言基础入门,编程的第一步相关推荐
- 初二上册计算机编程入门先学什么,8年级以上学生必读,这项AP课程带你零基础入门编程!...
原标题:8年级以上学生必读,这项AP课程带你零基础入门编程! 导读 作为全北美通行的预科课程,AP考试的分数不仅能够换取大学学分,还能对申请有超级重要的加分作用.对于中国学生而言,AP计算机科学(以下 ...
- R语言基础入门(全)
R 是门语言,也是个环境.个人认为R有点像matlab. R自带多种统计学及数字分析功能.R的功能也可以通过安装包(Packages,用户撰写的功能)增强,个人感觉这个就是插件.因为S的血缘,R比其他 ...
- 【学习笔记】山东大学生物信息学——Perl 语言基础入门+高级
文章目录 8.3 Perl 语言基础入门 8.3.1 第一个 Perl 8.3.2 Perl 的基本规则 8.3.3 字符串常用函数 8.3.4 数组常用函数 8.4 Perl 语言基础高级 8.4. ...
- c语言用if语句abc输出最大值,C语言基础入门选择结构-if语句(78页)-原创力文档...
C语言基础入门选择结构-if语句_电脑基础知识_IT/计算机_专业资料.第9单元选择结构-if语句<程序设计基础>北京八维研修学院第1节选择结构导入?... <程序设计基础> ...
- 编程的第一步都要使能时钟吗_在您的第一份编程工作中要做的11件事
编程的第一步都要使能时钟吗 Firsts are exciting but can also be overwhelming. When I started my first programming ...
- CUDA C/C++ 从入门到入土 第一步——让你的CUDA跑起来
CUDA C/C++ 从入门到入土 第一步--让你的CUDA跑起来 目录: 一. windows10+visual studio2019配置cuda记录 二. linux配置cuda代码记录 三. T ...
- Python3 入门100例,从入门到精通第一步
Python3 入门100例,从入门到精通第一步 原题地址:http://www.runoob.com/python/python-100-examples.html 来源于github开源项目
- C语言基础入门学习笔记
前言 我是一个初中生,过完暑假就是一个高一的学生了.在这个暑假里,我学习了韦东山老师和唐佐林老师的课程,所以我写下这个笔记来记录自己的成长历程. C语言基础入门学习笔记 格式 #include < ...
- php语言入门,php语言基础入门
php语言基础入门 导语:PHP语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.下面是PHP语言基础人们知识,欢迎参考! 1. 代码嵌在内 2.输出函数ech ...
- JAVA基础入门编程题练习(一)
JAVA基础入门编程题练习(一) 1.设计一个学生类Student和它的一个子类Undergraduate.要求如下: (1) Student类有name和age属性,一个包含两个参数的构造方法,用于 ...
最新文章
- SAP PM 入门系列11 - 一个维护通知单只能创建一个维护订单?
- 一文了解结构体字节对齐
- 如何在Django1.6结合Python3.3版本中使用MySql
- DPDK+Pktgen 高速发包测试
- 【机器学习】逻辑回归模型
- php安装zendDebug
- HLSL bytecode to GLSL编译器的第一步
- 连续子序列最大和2种方法
- 开源,想说爱你不容易
- 如何在Firefox中播放MID文件?
- GB 50007-2011《建筑地基基础设计规范》高清电子版
- Word中搜狗输入法不管用了怎么办?
- 通用css样式模板,
- mwt是什么意思网络用语_skr、xswl、zsqg…这些网络用语你知道是什么意思吗?
- JAVA前端修改密码,Java Web版SVN 配置管理工具 2.0 (远道建立仓库,修改密码,设置权限,支持apache等)...
- 人工神经网络——径向基函数(RBF)神经网络
- 网工学习 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 RMON
- oeasy教您玩转linux 010211 牛说 cowsay
- csr_matrix详细解读
- C语言常用的math函数
热门文章
- 初二上册计算机编程入门先学什么,8年级以上学生必读,这项AP课程带你零基础入门编程!...
- for(;