目录
前言
随着计算机专业越来越受欢迎,越来越多的人开始学习计算机,在这里我主要记录我学习计算机编程语言的过程,希望对大家有所帮助。
一、C语言是什么?
C语言是每个学计算机所必备的一门编程语言,它基本上是其他编程语言的基础,学习完C语言可以很快的上手其他编程语言,至于它的起源这里就不赘述了。
二、学习步骤
1.环境的搭建
常见的C语言编译器:GCC,Turbo,visual stdio,VScode,VC++等
在这里介绍怎么搭建Visual Studio的C语言环境
- 安装Visual Stdio(下载安装时间较长)
- 下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/
- 安装步骤:
- 选择Community中的免费下载,下载完后打开文件
- 点击继续
- 初学选择使用C++的桌面开发和通用Windows平台开发(其他的内存够可以都选上)
- 安装详细信息不用动
- 安装位置(能放C盘最好,内存不够就放D盘)
- 选择下载时安装
4.使用方法:
- 点击创建新项目
- 选择空项目
- 勾选将解决方案和项目放在同一个目录中
- 右键源文件,点击添加新建项
- 选择C++文件(名称改成.c)
- 点击添加
- 在中间写入代码(运行代码按绿色的小图标)
2.C语言的基础知识
-
二进制、八进制、十进制和十六进制的相互转换
- 二进制(B) 基本符号:0,1 规则是逢二进一
- 八进制(O) 基本符号:0~7 规则是逢八进一
- 十进制(D) 基本符号:0~9 规则是逢十进一
- 十六进制(H) 基本符号:0~9,A,B,C,D,E,F 规则是逢十六进一
二进制
- 转换为八进制
三位一看(从右向左,不够三位补零)
eg:(001 011 011 010)B = (1332)O
1 3 3 2
- 转换为十进制
从右向左依次将每位上的数字乘以该位上的位权(第一位的位权为2^0)
eg:(1011101)B = (93)D
1*2^0+0*2^1+1*2^2+1*2^3+1*2^4+0*2^5+1*2^6 = 93
- 转换为十六进制
四位一看(从右向左,不够四位补零)
eg:(0010 1101 0110)B = (2D6)H
2 D 6
八进制
- 转换为二进制
先将八进制转换为十进制,再转换为二进制
- 转换为十进制
从右向左依次将每位上的数字乘以该位上的位权(第一位的位权为8^0)
eg:(14.2)O = (12.25)D
4*8^0+1*8^1+2*8^-1 = 12.25
- 转换为十六进制
先将八进制转换为十进制,再转换为十六进制
十进制
- 转换为二进制
整数除二取余直到商为0结束,倒着读
小数乘二取整直到小数部分为零或达到所需精度,正着读
eg:
(17.125)D = (10001.001)B (0.125)D = (0.001)B
2 |17 (1 0.125
2 |8 (0 x 2
2 |4 (0 0.250 (0
2 |2 (0 x 2
2|1 (1 0.500 (0
0 x 2
1.000 (1
- 转换为八进制
整数除八取余直到商为0结束,倒着读
小数乘八取整直到小数部分为零或达到所需精度,正着读
eg:
(14.25)D = (16.2)O
8|14 0.25
8|1 (6 x 8
0 (1 2.00
- 转换为十六进制
整数除十六取余直到商为0结束,倒着读
小数乘十六取整直到小数部分为零或达到所需精度,正着读
eg:
(17.5)D = (11.8)H
16|17 0.50
16|1 (1 x 16
0 (1 8.00
十六进制
- 转换为其它进制
先将十六进制转换为十进制,再转换为其它进制
-
C语言的主要书写格式
#include <stdio.h>
int main(){
//定义
//输入
//处理
//输出
return 0;
}
- 定义部分
字符集(可以在程序中使用的字符)
- ASCII字符集,包括英文字母、数字和特殊字符
- 英文字母:a~z、A~Z(区别大小写)
- 数字:0~9
- 特殊字符: (空格)!#%^&*-_+=~<>/\|.,?'"()[]{}(使用时用的是英文符号)
标识符(标识程序中的各种成分和命名一些实体)
- 常见的关键字
数据类型 所占字节数 整型:int 占四个字节 短整型:short 占两个字节 长整型:long 占四个字节 更长的整型:long long 占八个字节 单精度浮点型:float 占四个字节 双精度浮点型:double 占八个字节 字符型:char 占一个字节 有符号型:signed 占四个字节 无符号型:unsigned 占四个字节 计算数据类型所占字节:
printf("数据类型的大小为:%zd\n", sizeof(/*数据类型*/));// %d叫做占位符
if,else,swich,case,default,for,while,do,break,continue,extern,static,auto,register,struct,union,typedef
- 预定义标识符
编译预处理命令 define
头文件包含 include
标准函数 printf、scanf、sin、pow、sqrt等
- 用户自定义标识符
命名规则:1.标识符必须由字母、数字、下划线组成(不能含特殊字符)
2.不能以数字开头
3.标识符区分大小写(通常小写为变量,大写为常量)
4.长度任意,但一般有效长度为8个字符
5.见名知义(建议使用小驼峰命名规则,eg:stuName),但不能与关键字、预定义标识符(如标准函数)同名(尽量不以下划线开头,因系统内部标识符以下划线开头)6.标识符必须先定义,后使用
常量(在程序运行过程中,数值不能改变的量)
- 字面常量(直接常量):从字面就可以看出是什么类型的常量
- 整型常量:
1)十进制整型常量
2)八进制整型常量(以数字0开头作为标志,eg:015)
3)十六进制整型常量(以数字0和字母x开头为标志,eg:0x10)
- 使用const修改的常属性(定义数组时,数组的长度必须是常量)
const double PI = 3.14; int f[const常属性] = {};
- 标识符常量:使用#define 标识符名称 数值
- 枚举常量(将数据进行罗列)
enum 枚举的总类型名{ 枚举的数据 };
- 实型常量:
1)十进制小数形式:由数字和小数点组成(必须有小数点)
2)指数形式:由数字和e/E组成(e前和e后必定有数字,e前不能加空格,e后的数必定是整数)
- 字符型常量:
1)可见字符:屏幕上显示的符号
字符:用单引号引起来的一个字符('A')
字符串:用双引号引起来的一串字符("abc")
2)转义字符: 屏幕上无法显示的ASCII码字符
转义字符 含义 转义字符 含义 \n 换行 \t 水平制表符 \a 警告响铃 \v 垂直制表符 \' 单引号字符 \b 退格符 \" 双引号字符 \f 换页符 \\ 反斜杠字符 \r 回车符 \? 问号字符 \0 空字符 \ddd 三位八进制 \xhh 两位十六进制
变量(在程序运行过程中,数值可随用户自定义要求改变)
表示:数据类型 名称 = 值;(这里的"="是赋值操作符,数学中的等于是用"=="表示)
声明变量并进行初始化
- 全局变量(整个项目中任意调用)
- 局部变量(只能在某一函数或一定的作用域调用,作用域:变量所能够使用的作用范围)
定义变量
//数据类型 名称 = 值; int num = 1;
-
注释的使用
- 第一种//
//->指的是此行注释,此行写任何东西,程序不会执行
- 第二种/**/
/*->在**之间的任何东西,程序不会执行*/ /* 初学C语言 常量 变量 */ //以上几行都不会执行
注释快捷键:ctrl+K ctrl+C
取消注释快捷键:ctrl+K ctrl+U
-
数据的输出和输入
数据的输出控制
//输出的时候要引用头文件#include <stdio.h>
格式输出函数printf("",);
双引号里可加普通字符、转义字符、格式控制字符
逗号只有在需要输出特定格式的字符才加,且要写出对谁进行输出
- 基本格式字符
%d/i 在屏幕上打印十进制数据(有符号,正数不打印符号) %f 在屏幕上打印单精度浮点型数据 %lf 在屏幕上打印双精度浮点型数据 %c 在屏幕上打印字符数据 %o 在屏幕上打印八进制数据 %#o 在屏幕上原样打印八进制数据 %x/X 在屏幕上打印十六进制数据 %#x/X 在屏幕上原样打印十六进制数据 %u 在屏幕上打印无符号十进制数据 %p 在屏幕上打印地址形式的数据 %s 在屏幕上打印字符串至结尾为"\0" %e/E 在屏幕上打印指数形式的数据 %g/G 在屏幕上打印数(根据给定的值和精度,自动选择f和e中较紧凑的一种格式,不输出无意义的0) 注意:默认对齐格式为向右看齐
- 附加格式字符:用来对输出格式做进一步描述
m(域宽):用于控制输出数据所占宽度
m>实际位数 输出时向右对齐,左补空格
m<=实际位数 按实际位数输出
int a = 123; printf("%6d", a);
n(附加域宽):
1)用于指定实型数据小数部分位数
n>实际小数位数 输出时用0补齐
n<实际小数位数 输出时将多余小数位4舍5入
n=实际小数位数 原样输出
2)用于字符串数据,表示从字符串中截取的字符数(输出数据时左对齐,系统默认右对齐)
double a = 1.234; //小数点后加数字n=2为小数点后保留n=2位小数 printf("%.2lf",a);
字符数据的输出
字符输出函数putchar(表达式);
作用:向显示器等输出字符
说明:表达式必须是字符表达式或整型表达式(0~255)
数据的输入控制
//输入的时候要引用头文件#include <stdio.h>
格式输入函数scanf("",&);
双引号里可加格式控制字符串、转义字符
逗号后加地址列表(只能用取地址符&+变量名构成)
使用方法和printf()函数基本相同(一般不使用转义字符)
字符数据的输入
字符输出函数getchar();
作用:从输入设备得到字符
说明:该函数为无参函数,函数值为从输入设备输入的字符