C语言第一章:C语言基础

来源:互联网 发布:淘宝电商卖家怎么做 编辑:程序博客网 时间:2024/06/06 03:11

C语言学习总体认知:
1)、常量和基础知识
2)、标示符(注意命名的规范)
3)、变量
4)、表达式
5)、输入输出函数
6)、C语言语句
7)、C语言基本结构(顺序结构、分支结构、循环结构)
8)、数组+字符串函数
9)、函数
10)、宏定义
11)、结构体和枚举类型
12)、文件的简单操作

第一节 对C语言的基础认识
1、C语言编写的程序为源程序,又称为编译单位。
2、程序:一组计算机能够识别和 执行的指令(机器语言)
3、计算机语言的发展:机器语言 –→ 汇编语言—→高级语言
4、C语言中的几个重要的标准:C83是ANSI第一个C语言标准草案,C89是ANSI在1989年公布的一个完整的C语言标准。C11是2011年ANSI最新制定的标准。
5、C语言执行的过程:源程序.c–→编译(生成.obj文件)—→链接(生成可执行文件.out),在这个过程中注意.c和.obj文件是无法运行的,只有.exe文件才可以运行。
6、读程序从main()函数入口,每个C程序中有且只有一个main函数。
7、计算机的数据在内存中是以二进制的形式保存的,数据存放的位置就是它的地址。Bit表示的就是二进制的位数是指0或者1,注意区分byte是指字节,一个字节表示八位。所有的数(整数、实数)类型在计算机中的存储方式是补码(为了简化计算机中减法的运算)。
8、一个程序可以没有输入,但是一定要有输出。
9、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
10、在函数中不可以再定义函数
11、c语言中的函数
1)程序由函数组成
2)一个程序只有一个主函数(主函数由系统调用)
3)没有主函数,这个程序不具备运行能力
4)主函数必须按照它的固定的函数
5)函数只有调用才执行,但是主函数必须执行

第二节 常量及数据类型

这里写图片描述

3、字符型到时 ” 单引号括起来的
4、字符串常量:字符串常量是以“”括起来的,而且系统会自动的加上一个字符串标志)(’\0’);

5、C语言数据类型
这里写图片描述

第一节、变量的概述
变量 :变量名和变量类型构成 ;
分类:全局变量和局部变量
a、 变量的定义和使用
变量的使用:用在数值经常改变的地方
1)、定义一个变量
2)、变量的初始化
3)、使用变量
如何定义一个变量:变量的类型 变量名 int num; num=20;//变量名是num
b、 int a;//局部变量初始化时,a默认是0;但是在局
全局变量的初始化时,a的值不确定;
c、 初始化的方法:
1)、完全初始化
int num1=0,num2=1;
2)、部分初始化
int num3=0,num4;//num4的值不确定,可能是一个垃圾数据
3)、先定义,后初始化
int count;
count=20;
4)使用一个变量初始化另外一个变量

int num6=number;//用number的值给num6进行初始化
5)、给变量连续初始化
int num9=num10=num11=30;//连续初始化他们的值都是相同的
3、 变量的使用,就是取值和赋值
int v1=10; int b=34; v1=b;printf(“%d\n”,v1);//输出的结果是:34
4、 关于变量使用的注意点:
等号的左侧绝对不能写常量 45=12;//错误,45不是标识符

2、标示符命名规范
命名原则:
1、只能由字母、数字、下划线或者美元符号$组成。
2、不能以数字开头
3、不能与关键字重名
4、严格区分大小写

3、驼峰规则(一个变量名由多个字母组成,第一个单词字母全小写 ,后面的单词第一个字母大写;或者所有单词的首字母都大写也是驼峰命名法)

为什么使用规范的命名?
答:良好的规范可以提高代码的可读性,容易理解。避免出现名称歧义。
规范的内容:
1)、一个有意义的名称。
2)、使用驼峰命名法 userName
标识符的规范:
1)、命名要望文知意,便于记忆;
2)、长度要适当,大多数ASCII编译程序最多允许31个字符;
3)、建议使用”驼峰命名法”;
4)、尽量避免出现数字编号;
5)、多个文件之间共同使用范围限定符; 如db_name db_pass

3、注释
1、为什么写注释?
答:良好的代码注释可以提高代码的可读性
2、注释是对代码的解释说明,是写给程序员看的,方便程序员的之间交流。

3、常用的用法:1、解释说明 2、做函数的说明 3、做思路的分析
4、特点:注释不参与编译,编译器直接跳过
5、什么是注释?
答:程序中添加的辅助内容(帮助我们理解代码,挡边程序员之间的交流)

6、注释的分类:
单行注释// 多行注释 /**/ 文档注释
快捷键:command+?/
7、注释的使用:
单行注释是两个//。但是遇到换行注释就失效了。
多行注释是/*/,如果只写一个/ ,没有结束*/,后面的就会被全部注释,允许回车
8、单行注释可以嵌套多行注释,但是必须在同一行,所以没有意义
9、多行注释不允许嵌套多行注释,因为多行注释的结束符只允许要一个

第二节、变量的作用域
根据范围可以分为:局部变量和全局变量
a、 局部变量也成为内部变量
1)、局部变量
a、函数内部或者代码块内部定义的变量
代码块{
嵌套代码块{

}
}
main是主函数他所定义也是局部变量
在代码块的内部。可以定义和外部同名的变量,因为出了代码块,局部变量就不存在 。
局部变量作用域:从局部变量定义位置开始,到它所在代码的结束符“}”结束
注意:在代码块内部,可以定义和块外部同名的变量名。但是外部的变量的值就会被覆盖,不起作用。

2)、全局变量
在函数外部定义的变量是局部变量

3、标识符分为关键字、预定义标识符、用户标识符。
关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。
预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。

第三节 printf函数和scanf函数
1、print()函数的使用
1、 printf()函数是一个C语言的标准的输出库函数
2、 使用printf()函数时,尽量包含一个头文件“stdio.h” (如果不包含就会出现警告)
3、 printf();函数的使用格式:printf(“格式控制字符”,变量列表);
4、 格式控制符
a、%d 输出的格式是一个整数
b、%f输出的是一个浮点型的数据(默认输出是6位,不够的补零,用长度打印时,默认是四舍五入)
%m.nf打印:m表示总的位数 如果n小数点大于m的长度,就会先显示n,前面的不会变
n表示小数的个数
c、%c 输出的是一个字符型的数据
d、%s输出一个字符串
e、%o输出了八进制数
f、%x把一个数以十六进制输出
g、%p输出地址
5、%f输出的精度问题
i、注意:%f打印出来后,float精度小数点后6位,有效数字7位 。以下注意的无效数字
ii、注意:%f打印出来后,double精度小数点后6位,有效数字15位 。以下注意的无效数字
5、 printf函数使用的注意事项
1、%md m是一个数字,它可以是整数也可以是负数
M>0 在左边填空格
M<0 负数 在右边填空格
2、%0md 当不够就补领
2、scanf函数(阻塞式函数)
1、scanf函数原型包含在标准输入输出头文件“stdio.h”,用于接收键盘输入的内容。
2、格式: scanf(“格式控制字符”, 变量的地址);
scanf()函数不允许出现scanf(“%2.3f”,&x);
3、 注意事项
a、接收单个数值,在输入的时间输入多个空格,回车都是会被忽略的
b、scanf遇到换行的时间是遇到回车的时间,
c、输入的两个值使用空格隔开
d、关于*号的使用
d1、%*d 跳过一个整数 可以使用它去忽略一个字符,用于年月日的输入
d、 scanf()函数的‘\n‘问题:尽量不要使用’\n’,如果使用了 如何去做?
!)、输入值后,随便输入一个内容
!!)、输入的时间输入\n,比如 22\n
!!!)、在输入的时间可以进行原样输入,就不会出错
*%d 就要原样输入

4、 scanf的原理
scanf运行原理:
1、当用户输入内容后,用户输入的内容会被放到scanf的输入缓冲区中。
然后,scanf函数会根据格式控制的字符要求,从输入缓冲区依次取它想要的内容。
如果,从缓冲区中取得的内容和我们的格式要求一致,则把值放到变量中,%d %c %d,如果格式不一致,输出原有的值,不修改变量的值。

5、如果scanf缓冲区还有内容,则不会提示我们在输入值

补充
1、使用printf和scanf函数时,要在最前面加上#include“stdio.h”
2、printf可以只有一个参数,也可以有两个参数。(选择题考过一次)
3、printf(“ 第一部分 ”,第二部分 );把第二部分的变量、表达式、常量以第一部分的形式展现出来!
4、printf(“a=%d,b=%d”,12, 34) 考试重点!
一定要记住是将12和34以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为:一模一样。在黑色屏幕上面显示为 a=12,b=34
printf(“a=%d,\n b=%d”,12, 34)那么输出的结果就是:a=12,
b=34
5、int x=017; 一定要弄清楚为什么是这个结果!过程很重要
printf(“%d”, x); 15
printf(“%o”, x); 17
printf(“%#o”,x); 017
printf(“%x”, x);F
printf(“%#x”,x); 0xF
6、int x=12,y=34; 注意这种题型
char z=‘a’;
printf(“%d ”,x,y); 一个格式说明,两个输出变量,后面的y不输出
printf(“%c”,z); 结果为:12a
7、一定要背诵的
格式说明 表示内容 格式说明 表示内容
%d 整型 int %c 字符 char
%ld 长整型 long int %s 字符串
%f 浮点型 float %o 八进制
%lf double %#o 带前导的八进制
%% 输出一个百分号 %x 十六进制
%5d %#x 带前导的十六进制
举例说明:
printf(“%2d”,123 ); 第二部分有三位,大于指定的两位,原样输出123
printf(“%5d”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123
printf(“%10f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为 1.250000
printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位)
printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入)
第三节 数据输入
1、scanf(“a=%d,b=%d”,&a,&b) 考试超级重点!
一定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样。
在黑色屏幕上面输入的为 a=12,b=34才可以把12和34正确给a和b 。有一点不同也不行。
2、scanf(“%d,%d”,x,y);这种写法绝对错误,scanf的第二个部分一定要是地址!
scanf(“%d,%d”,&x,&y);注意写成这样才可以!
3、特别注意指针在scanf的考察
例如: int x=2;int *p=&x;
scanf(“%d”,x); 错误 scanf(“%d”,p);正确
scanf(“%d”,&p); 错误 scanf(“%d”,*p)错误
4、指定输入的长度 (考试重点)
终端输入:1234567
scanf(“%2d%4d%d”,&x,&y,&z);x为12,y为3456,z为7
终端输入:1 234567 由于1和2中间有空格,所以只有1位给x
scanf(“%2d%4d%d”,&x,&y,&z);x为1,y为2345,z为67
5、字符和整型是近亲:
int x=97;
printf(“%d”,x); 结果为97
printf(“%c”,x); 结果为 a
6、输入时候字符和整数的区别(考试超级重点)
scanf(“%d”,&x);这个时候输入1,特别注意表示的是整数1
scanf(“%c”,&x);这个时候输入1,特别注意表示的是字符‘1’ASCII为整数49。
补充说明:
1)scanf函数的格式考察:
注意该函数的第二个部分是&a 这样的地址,不是a;
scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。
2)putchar ,getchar 函数的考查:
char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。
putchar(‘y’)把字符y输出到屏幕中。
3)如何实现两个变量x ,y中数值的互换(要求背下来)
不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。
4)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)
y=(int)(x*100+0.5)/100.0 这个保留两位,对第三位四舍五入
y=(int)(x*1000+0.5)/1000.0 这个保留三位,对第四位四舍五入
y=(int)(x*10000+0.5)/10000.0 这个保留四位,对第五位四舍五入
这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。

0 0