序记:博主是算法小菜菜,开创此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
更多推荐
C语言基础语法
发布评论