C语言基础语法

序记:博主是算法小菜菜,开创此blog主要是为了分享自己在算法和数据结构方面每日的学习成果,欢迎各位批评指正。本篇blog要是为了简单介绍C语言的基本知识和语法:

目录

1.C语言是什么?

2.第一个C程序

3.scanf+printf

4.define+const

5.数学函数

6.分支结构

7.循环

8.函数

 9.数组

10.带有代码提示的C语言、C++软件 


 1.C语言是什么?

   程序设计语言主要分为三种:机器语言,汇编语言,高级语言

  • 机器语言是机器可以直接读懂,由0和1组成
  • 汇编语言是用一些英文字母或符号来代替特定指定的二进制串
  • 高级语言是人们可以直接编写并转化为机器语言,因此C语言应运而生

2.第一个C程序

#include<stdio.h> //输入输出库函数 
int main(){       //主函数 即每个程序率先执行的函数
	int n; //定义一个整形变量
	
	scanf("%d",&n); //输入函数 %d代表的是输入的n要为整数类型,与上面的int对应
	
	printf("%d",n); //输出函数 %d代表的是输出的值为整数类型
	
	return 0;     //终止程序
}

3.scanf+printf

#include<stdio.h> 
int main(){       
	
	int a,b;
	//输入的数据 定义宽度为5->默认只要前五位数
	scanf("%5d",&b);
	//输入的数据 跳过前面的数值-> %*2d 跳过前两个值 %4d->赋值a四个数 %*d->跳过剩余的所有值
	scanf("%*2d%4d%*d",&a);
	//输出占5列,不足左边用空格补上
	printf("%5d\n",a);
	//输出占5列,不足左边用0补上
	printf("%05d\n",a);
	//输出占5列,不足右边用空格补上
	printf("%-5d\n",a);
	
	double n;
	//赋值双精度值
	scanf("%lf",&n);
	//输出double类型数据 默认保留小数点后六位
	printf("%f\n",n);
	//保留小数点后三位 注意小数点
	printf("%.3f\n",n);
	return 0;     
}

4.define+const

//两种定义固定常量的方法
//define和const ->定义后不可改变,即不能重新赋值

#include<stdio.h> 
#define PI 2
int main(){       
	
	printf("%d\n",PI);

	const int x=2;
	printf("%d",x);

	return 0;     
}

5.数学函数

#include<stdio.h> 
#include<math.h> //引入math头文件
int main(){       
	
	int a=5,b=2;
	printf("%d\n",a+b); //加
	printf("%d\n",a-b); //减
	printf("%d\n",a*b); //乘
	printf("%d\n",a/b); //除
	printf("%d\n",a%b); //余
	
	int c=-2;
	//取c绝对值 printf必须用%f
	printf("%f\n",fabs(c));
	//取a的平方根
	printf("%f\n",sqrt(a));
	//取a的b次方
	printf("%f\n",pow(a,b));
	//取e的a次方
	printf("%f\n",exp(a));
	//取a的对数
	printf("%f\n",log(a));
	//取a的以10为底的对数
	printf("%f\n",log10(a));

	return 0;     
}

6.分支结构

#include<stdio.h> 
int main(){       
	
	//嵌套分支 多重判断
	if(1){
		//TODO
	}else if(1){
		//TODO
	}else{
		//TODO
	}
	
	//case后只能跟常量
	switch (1) {
	case 1:
		//TODO
		break;
	case 2:
		//TODO
		break;
	default:
		//TODO
		break;
	}
	
	return 0;     
}

7.循环

#include<stdio.h> 
int main(){       
	
	/*
	  执行顺序
	  1.int i=0;
	  2.i<=0;
	  3.statement
	  4.i++
	*/

	for(int i=0;i<=0;i++){
		//statement
	}
	
	/*
	  执行顺序
	  1.while()的判断语句;
	  2.statement;
	*/
	while(1){
		//statement
	}
	
	/*
	  执行顺序
	  1.statement;
	  2.while()的判断语句;
	*/
	do{
		//statement
	}while(1);
	
	// 使用continue可跳过此次循环 使用break可跳出循环
	
	//嵌套循环
	//如何跳出嵌套循环?
	//使用goto语句
	for(int i=0;i<=0;i++){
		for(int j=0;j<=0;j++){
			if(1){
				goto PIN;
			}
		}
	}
	
	PIN:printf("已跳出");
	
	return 0;     
}

8.函数

    函数的目的是什么?
    我的浅薄之见是->减少代码量 引用方便
    下面给大家分享一个代码题 来加深理解 -> 求0-100的素数

#include<stdio.h> 
#include<math.h>

//使用一个返回布尔值的函数
bool judge(int n);

int main(){       
	
	//1不是素数 所以我们直接从2开始计算
	for(int i=2;i<=100;i++){
		if(judge(i)){
			printf("%d ",i);
		}
	}
	
	return 0;     
}

bool judge(int n){
	//确定一个数是否是素数 即要满足 xy=n 那么一定有一个数小于sqrt(n)
	int k=sqrt(n);
	for(int i=2;i<=k;i++){
		//如果存在n可以整除 那么就不是素数
		if(n%i==0){
			return false;
		}
	}
	return true;
}

 9.数组

  数组是什么?
  数组就是一个存储多个数据的大空间 并且每个数据都有自己的index。index从0开始,我们可以通过index就可以找到我们需要的value

#include<stdio.h> 

int main(){       

	
	int a[5]={1,2,3,4,5};
	for(int i=0;i<=4;i++){
		printf("%d ",a[i]);
	}
	
	
	return 0;     
}

#include<stdio.h> 

int main(){       
	
	//这里给大家演示一个用到数组的题目
	//向无序列表中插入一个值
	
	int num;//插入的数
	scanf("%d",&num);
	
	int n;//n为输入数组的长度
	scanf("%d",&n);
	int a[100]; //a[n]为数组
	for(int i=0;i<n;i++){
		//输入
		scanf("%d",&a[i]);
	}
	
	//把该值插入到数组中
	a[n]=num;
	
	int t;//做数据交换时的暂存空间
	for(int i=0;i<=n-1;i++){
		for(int j=i+1;j<=n;j++){
			if(a[i]>a[j]){
				//交换a[i]、a[j]里的值
				t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
		}
	}
	
	for(int i=0;i<=n;i++){
		printf("%d ",a[i]);
	}
	
	
	return 0;     
}

10.带有代码提示的C语言、C++软件 

  刚接触C语言的伙伴们可能下载的都是 Dev,但我用着不太习惯,毕竟不想反复敲击重复的代码,同时也有一些C++方面的缺陷。所以给大家推荐下列这款带有C语言、C++提示,对于新手非常的友好,具体的优势大家可以自己下载体验一下。

网址:百度网盘 请输入提取码

提取码:1234

 可以说有点类似IDEA的布局之类的,整体感觉还是比Dev舒服许多。 

尾序:该篇blog主要从基础上了解C语言,要掌握算法和数据结构还是远远不够的,打好基础才是王道。  --2022.6.17

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值