当前位置: 首页 > news >正文

c语言基础

  1. 程序:用程序命令编写的命令几何
  2. C语言是1972年美国的丹尼斯~里奇设计发明的
  3. C语言的优点:可移植性好,跨平台,更适合和硬件交互。
  4. C程序由一个主函数(main)和若干函数组成
  5. Main()方法是主函数,是程序执行的入口,一个c程序只能有一个main函数。
  6. #include <stdio.h> 编译预处理,输入输出函数
  7. 编程语言分为:低级语言和高级语言,低级语言又分为机器语言(0和1)和汇编语言,高级语言分为面向过程(c)和面向对象(java)。
  8. C语言执行过程:

编辑:编辑后的程序为源程序,扩展名.c

编译:对源程序进行语法检查,扩展名为.obj 生成目标程序

连接:生成可执行程序 ,扩展名.exe

运行

  1. 当全局变量和局部变量变量名相同时,优先使用局部变量。
  2. 格式控制符:

整型            %d

实型            %f

字符            %c

字符串          %s

printf(“阿玮的年龄为:%d岁",18 );

  1. 计算机的数据以二进制存储

十进制中在二进制中的10

  1. 二进制:由0和1组成,代码中以0b开头
  2. 十进制:由0~9组成,前面不加任何前缀
  3. 八进制:由0~7组成,代码中以0开头
  4. 十六进制:由0~9还有a~f组成,代码中以0x开头

【0】【1】【2】【3】【4】【5】【6】【7】【8】【9】

【a】【b】【c】【d】【e】[f]

 10  11  12  13  14  15

  1. \n  换行符
  2. 1024字节等于1kb
  3. 数据类型:
  4. 分为整数,小数,字符串

整数:fhort ,int,long, long long

Int 整数默认类型

Long 赋值以l为后缀

long long 赋值以ll为后缀

printf("%zu\n", sizeof(int));
printf("%d\n", sizeof(int));

 //sizeof 显示字节长度

可以和unsigned组合,定义无符号整数,打印时占位符用%u

    

 unsigned int ss = 4566;

     printf("%u\n", ss);

      siged定义有符号

  1. 小数:float, double

Double精确度更大,小数的默认类型

float a = 3.1415926;

printf("%.2f\n", a);

double b = 3.54657567;

printf("%.21f", b);    #这个2表示小数保留位数

小数的数据类型无法跟unsigned组合使用

  1. char 字符类型

字符类型无法使用汉字

  1. 标识符:代码中所有我们自己起的名字。比如变量名、函数名等。

命名规则:(1).由数字、字母、下划线()组成

(2). 不能以数字开头

(3) .不能是关键字

(4) .区分大小写

 14.  scanf键盘输入

 #define _CRT_SECURE_NO_WARNINGS   //输入函数

#include <stdio.h>

int main() {

      int a;

      printf("请输入一个整数:");

      scanf("%d",&a);

      printf("%d", a);

      return 0;

}  
  1. 内存占用大小的计算方式:

英文:1个字母,符号,数字占用一个字节

中文:在vs或者vc中,默认情况下,一个中文占用两个字节

结束标记:1个字节

char a[100] = "小学生";    #100占用字节

printf("%s", a);

  1. 算数运算符:+  -  *  /  %

整数计算,结果是一定是一个整数

小数计算,结果一定是一个小数

整数和小数计算,结果一定是一个小数

小数直接参与计算,结果是有可能不精确的

/ 不能除0会报错

%前后两个数必须是整数

获取余数的正负,是跟第一个数字保持一致的

不能取0

拆分公式:个位:数值 % 10

十位:数值/10 % 10

百位:数值/100 % 10

千位:数值/1000 % 10;

  1. 隐式转换:规则1:取值范围小的,和取值范围大的计算,小的会自动提升为大的,再进行运算:

double

float

long long

long

int

short

char

如:int a =23

doule b =3.14

doule c= a+b

规则2:short char 类型的数据在运算的时候,先提升为int,再进行运算

  1. 强制类型转换:int c = (int)(a + b);
  2. 自增自减运算符:++  --

++a  先加后用   a++先用后加

赋值运算符:=  +=  -=  /=  %=

关系运算符:==  !=  >  >=   <  <=

真为1,假为0

  1. 逻辑运算符:! &&  || 

&& 与(而且)同时满足

||   或  满足一个

! 非  取反

短路效果:&& 只要有一边不满足就短路

|| 只要有一边满足就短路

  1. 三元运算符:a>b? a:b

判断a是否大于b,满足表达式输出a,否则输出b

  1. 运算符优先级:

  1. if 语句:
if (money >= 1 && money <= 99) {

printf("vip1");

}

else if (money >= 100 && money <= 499) {
  1. switch语句:

作用:把所有的选择-一列举出来,根据不同的条件任选其一

#include <stdio.h>

int main() {

    int shu;

    printf("键盘录入星期数:");

    scanf("%d", &shu);

   switch (shu)

   {

   case 1 :

      printf("跑步");

      break;

   case 2  :

      printf("游泳");

      break;

   case 3:

      printf("慢走");

      break;

   case 4:

      printf("单车");

      break;

   case 5:

      printf("拳击");

      break;

   case 6:

      printf("爬山");

      break;

   case 7:

      printf("好好吃一顿");

      break;

   default:

      printf("没有这个星期");

      break;

   }

}
  1. for循环:

  1. while()循环:

出使化语句

While(条件判断语句){

循环体语句

条件控制语句

}

  1. do…….while循环:

出使化语句;

do{

循环体语句;

条件控制语句;

}while(条件判断语句);

先执行再判断。

  1. break结束整个循环,continue结束当前循环,下一轮继续执行。
  2. goto:结合标号,可以跳到代码中的任意地方。一般只用于跳出循环嵌套
  3. 数组:
  4. 数组是一种容器,可以用来存储同种数据类型的多个值。
  5. 数组的定义:数据类型 数组名[长度]

Int arr[10];

  1. 数组的出始化:

初始化:定义数组的时候,第一次给数组赋值

数据类型 数组名[长度]={数据值,数据值..}

长度省略:数据值的个数就是数组长度

double arr[ ]={2.3,3.4,56.2,23.1};

长度未省略:数据值的个数<=长度

Int arr2[7 ]={34,22,44,33};

  1. 数组元素的修改和访问:

Int num = 数组名[下标];

修改:数组名[下标]= 数据值;

  1. 数组遍历:
 #include <stdio.h>



int main() {

int arr[5] = { 23,34,45,23,33 };

for (int i = 0; i <= 4; i++) {

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

}

}
  1. 获取变量的内存地址:

 

#include <stdio.h>

int main() {

int a = 34;

printf("%p\n", &a);

}
  1. 函数:程序独立的功能

格式: 返回值类型 函数名(形参1,形参2…)

{

函数体;

return 返回值;

}

  1. 函数要定义在main()方法外。

对不需要使用返回值的函数,应定义为void类型。

Int和char类型的函数在定义时可以省略函数类型,系统默认这些函数返回值类型为Int类型。

  1. 有参函数:void 函数名(参数1,参数2...)

{

函数体;

}

调用:函数名(参数1,参数2...)

int sum(int num1,int num2)

{

int sum = num1 + num2;

return sum;

}

  返回值是为了更好的接收函数值:

  int xiaoli = sum(93, 10);

int xiaoming = sum(85, 22);

  1. 函数注意事项:

函数不调用就不执行

函数名不能重复

函数与函数之间是平级关系,不能嵌套定义

自定义函数写在main函数的下面,需要在上方申明

return下面,不能编写代码,永远执行不到,属于无效的代码

函数的返回值类型为void,表示没有返回值,return可以省略不写如果书写了return,后面不能跟具体的数据,仅表示结束函数

  1. 长用函数:

math.h:

pow()幂

sqrt()平方根

ceil()向上取整

floor()向下取整

abs()绝对值

pow 幂

double res1=pow(2,3);

printf("%lf\n",res1);

  1. time.h:

time()获取当前时间

long long res = time(NULL);  null表示获取的当前时间是否需要在其他地方进行存储。

一般来讲,不需要在其他地方进行存储的,NULL(大写)

printf("%lld\n",res);  //获取的为当前时间戳。

  1. C语言中获取 随机数: 随机数头文件<stdlib.h>

使用srand设置种子 //设置种子就是设置初始值

使用rand获取随机数

#include <stdlib.h>

int main() {

srand(2);

int num = rand();

printf("%d", num);

}
  1. 获取范围随机数:

           srand(time(NULL));

int num = rand()% 39 + 1;     //2-40

int num2 = rand()% 100 +1;    //1-101

  1. 猜数字小游戏:
#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define CRT_SECURE_NO_WARNINGS

int main() {

   srand(time(NULL));

   int number = rand() % 100 + 1;

   int chai;

   while (1) {

      printf("请输入你想猜的数:\n");

      scanf("%d", &chai);

      if(chai>number){

         printf("猜大了");

      }

      else if (chai < number) {

         printf("猜小了");

      }

      else {

         printf("恭喜你猜中了");

         break;

      }

   }

}

相关文章:

  • MySQL调优--12--分批插入/更新数据 ---案例2
  • 主流 AI 芯片配置
  • 第三章 组件(10)- CSS隔离
  • 【开源免费】基于SpringBoot+Vue.JS医院药品管理系统(JAVA毕业设计)
  • 细说 Java 线程池
  • 使用自动化运维工具 Ansible 集中化管理服务器
  • linux(rocky)设置更新服务器时间
  • 微前端架构深度解码:模块化拆解与联邦宇宙的构建
  • docker简介-学习与参考
  • 本地部署阿里万象2.1文生视频模型(Wan2.1-T2V)完全指南
  • 高性能模拟计算:让计算更快、更智能
  • iOS开发之最新Demo上传Github步骤(2025.02.28)
  • 深度学习之-“全连接网络的反向传播”
  • FFmpeg-chapter3-读取视频流(原理篇)
  • 网络原理 初识[Java EE]
  • 如何在一台服务器上搭建 mongodb副本集1主2从节点
  • linux之crosstool-NG(1)生成toolchain
  • 算法-二叉树篇13-路径总和
  • ARM MTE
  • 【算法】前缀和算法详解
  • 怎么做自己的一个网站/如何弄一个自己的网站
  • 自己做电影网站/网站网络营销推广
  • 硅谷电视剧他们做的是网站还是软件/现在有什么技能培训班
  • 网站开发达成口头协议算不算诈骗/国外搜索引擎有哪些
  • 实验楼编程网站/怎么设计一个网页
  • 网站制作好在百度里可以搜到吗/网络营销乐云seo