C语言速成指南

2023-11-05

说明一下吧:

这篇文章是用于c语言有目的的速成,有点基础的看一看也可以当复习,如果想要真正学好c语言,建议看一下之前写的详细教程,这篇文章会有很多对于考试没有多大帮助的东西被忽略掉。临近期末祝大家考试顺利。

我也会不断完善这篇文章的,欢迎各路大佬指正,给我提一提建议

目录

顺序结构基础

1.printf

2.scanf

分支结构

         1.if-else语句

2.if-else的嵌套与缀连

3.switch-case分支

循环结构

1.while循环

2.do-while循环

3.for循环

函数

1.函数的介绍

2.math里的标准函数

数组

1.一维数组

2.二维数组

指针(简单了解即可)

字符串

1.字符串简介

2.字符串处理函数

结构类型

结构体

顺序结构基础

        1.printf

                printf就是打印,将printf里的语句在控制台上打印出来。

#include <stdio.h>

int main(){
	printf("Hello World!");
	return 0;
}

        这就是使用printf打印Hello World!的代码。

 做几点说明:1.

#include <stdio.h>

int main(){
    //书写自己的代码
    return 0;
}

 这是c语言前期学习的框架,代码写在有//的地方。

2.printf打印的内容要在“ ”中

3.最后别忘了语句的结尾需要;

        2.scanf

scanf是c语言的输入语句,可以从键盘上获得数字或者是字符,然后进行后续运算。

(插曲:变量)

c语言中对于变量定义要求相当严格:

主要用到的就是以下几种,其他的我们暂时不需要使用

1.int(定义整型类型的变量,最常用的变量类型)输入输出时:%d

2.long long int(还是整形类型,但是包含整数的范围比int要大,一般计算阶乘等数据较大的程序中使用)输入输出时:%lld

3.double(双精度浮点数,精度高,用于定义小数)输入时%lf,输出时%f(默认为其为小数,如果有小数保留要求eg:保留两位小数:%.2f)

4.char(用于定义字符)

5.int *p(指针类型变量)

变量的定义格式:

变量类型 自定义变量名(一般来说只用字母即可)=...(可以进行变量初始化,也可以不进行);

scanf语句可以从键盘上输入变量的值(数字或者是字符)

下面是scanf的格式

//先定义一个整数a,在键盘上获得a的值
int a;
scanf("%d",&a);

特别注意:变量输入之前的&一定不要拉掉!!!

练习:做一个加法计算机,计算a+b的值

input:2 3

output:2+3=5

答案

#include <stdio.h>

int main(){
	//先定义两个变量a和b
	int a,b;
	//从键盘上输入a,b的值
	scanf("%d %d",&a,&b);
	//按要求进行输出
	printf("%d+%d=%d",a,b,a+b); 
	return 0;
}

分支结构

简单了解分支结构:

        1.if-else语句

if(所要判断的条件:条件判断为真或者是假){
    //如果满足条件索要执行的语句
    //注意:如果有多条满足条件要执行的语句,
    //一定要加上大括号
    //如果仅有一条语句,可以不加大括号。
    //这里建议初学者把大括号都加上。
}else{
    //这里是不满足判断条件所执行的语句,
    //如果不需要,也可以省略。
    //大括号用法同上。
}

 (插曲:计算机运算符)

下面简单说一下if语句里的条件判断:

数学符号:小于号                计算机语言:<

                小于等于                                <=

                大于号                                     >

                大于等于                                >=

                等于                                        ==

这个等于初学者经常打成“=”一定要引起注意!!!!!

(插曲:逻辑运算)

逻辑运算符我们先了解常用的:

逻辑与&&        逻辑或||        逻辑非 

逻辑名 符号 运算
&& 两侧任意一侧为假整个条件为假,前为假后面不再判断
|| 两侧任意一侧为真整个条件为真,前为真后面不再判断
对条件进行取反,非真为假,非假为真

特别注意:逻辑运算的结果只有0和1!

如:1+1==2计算结果为1

1*2==5&&1+1==2计算结果为0

1*2==5||1+1==2计算结果为1

!(1+1==2)计算结果为0

        2.if-else的嵌套与缀连

嵌套:嵌套就是在if中在进行若干次判断,用分支图加强一下理解

嵌套的优化:可以用逻辑运算代替嵌套减少代码行数

缀连:在else后面跟上若干个if判断句

if(条件1){

}else
if(条件2){

}
else
if(条件3){

}
else{

}

小结练习:输入一个年份,判断是否为闰年。

答案:

#include <stdio.h>

int main(){
	int year;
	scanf("%d",&year);
	int shifou=0;
	if(year%4==0&&year%100!=0){
		shifou=1;
	}else
	if(year%4==0&&year%100==0&&year%400==0){
		shifou=1;
	}
	if(shifou==1){
		printf("Yes");
	}
	if(shifou==0){
		printf("No");
	}
	return 0;
}

        3.switch-case分支

基本格式

switch(n){
    case 1:
    case 2:
    ...
    default:
}

其中:n为整数或者是整数表达式,n是几,就执行case几。

另外,没有break的话,switch-case会一直执行至最底端,可以根据需要添加break语句 

循环结构

循环前言:循环的道理很简单,熟练掌握循环还需要多做点练习,这一部分会多给出一点练习

        1.while循环

基本格式:

while(循环继续的条件){
    每次循环所执行的语句
}

一个比较好的入门题:

 

对于EOF现有一个了解:

通常,题目会要求多组样例输入。对于多组样例输入,一般会是读到 EOF 结束。 EOF 的意思是 End Of File,表示读到文件尾,结束输入。 scanf 函数的返回值如果为 EOF 的话,就表示输入结束了。比如题目输入一个数,以 EOF 结束 

这个题是循环输入多组数据,所以需要用EOF来结束,之后的相加,开一个while循环让i从1加到n即可。

#include <stdio.h>

int main(){
    int n;
    int i;
    while(scanf("%d",&n)!=EOF){
        i=1;
        int ret=0;
        while(i<=n){
            ret+=i;
            i++;
        }
        printf("%d\n",ret);
    }
    return 0;
}

还不理解欢迎评论区询问。 

        2.do-while循环

do{
    每次循环所执行的条件
}while(循环继续条件)

do-while循环与while循环的区别:

do循环是先执行一次循环然后判断循环是否继续,while是先判断循环条件是否满足,然后在进行循环,也就是说do-while循环至少进行一次,while循环可能一次也不执行。

例题:判断一个整数是几位数

思路:每次循环让这个整数整除10撇掉最后一位,做一个计数器,每次循环让计数器++,循环继续的条件就是这个整数>0,因为考虑到这个数可能是0,所以用do-while循环。

#include <stdio.h>

int main(){
	int n;
	scanf("%d",&n);
	int count=0;
	do{
		n/=10;
		count++;
	}while(n>0);
	printf("%d",count);
	return 0;
}

        3.for循环

for循环就是while循环的优化,每个for循环都可以写成while循环。

格式学会之后for循环也就理解的差不多了

for(循环开始时条件;循环继续的条件;每次循环必须做的事){
    每次循环执行的语句
}

一般来说会是这样:

for(i=0;i<n;i++){
}

 上面这种形式是for循环最为常见的。

例题:

还是这个题,我们尝试把内层循环改为for循环: 

#include <stdio.h>

int main(){
    int n;
    int i;
    while(scanf("%d",&n)!=EOF){
        int ret=0;
        for(i=1;i<=n;i++){
            ret+=i;
        }
        printf("%d\n",ret);
    }
    return 0;
}

经典循环嵌套:

一般来说打印行列图形,外层循环控制的是行,内层控制的是列。

打印99乘法表:

 

#include <stdio.h>

int main(){
	for(int i=1;i<=9;i++){
		for(int j=1;j<=i;j++){
			printf("%d*%d=%d ",j,i,j*i);
		}
		printf("\n");
	}
	return 0;
}

 辗转相除法可以参考:辗转相除法求最大公约数,这也是循环一个很经典的题

循环嵌套还可以自己练一下这个题:

 另外许多oj上有循环的练习,这部分就是需要多练习。

上一题答案:

#include <stdio.h>

int main(){
	int n;
	scanf("%d",&n);
	int i,j,a,b;
	for(i=1;i<=n;i++){
		for(j=1;j<=2*(n-i);j++){
			printf(" ");
		}
		for(a=1;a<=i;a++){
			printf("%d ",a);
		}
		for(b=i-1;b>0;b--){
			printf("%d ",b);
		}printf("\n");
	}
	return 0;
}

函数

        1.函数的介绍

        2.math里的标准函数

数组

        1.一维数组

        2.二维数组

指针(简单了解即可)

        

字符串

        1.字符串简介

        2.字符串处理函数

结构类型

        结构体


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言速成指南 的相关文章

  • Ubuntu 终端常用命令(持续更新)

    文章目录 1 查找 1 grep 在命令行中查找 曾经使用过的命令 2 find 3 which 2 编辑文件 1 vim 2 vi 3 gedit 建议新手使用 3 清除命令 1 clear 2 reset 4 磁盘管理 1 df dis
  • 修改windows控制台编码

    代码页code page UTF 8 65001 简体中文 GB2312 936 繁体中文BIG5 950 日文 932 美国 加拿大英语 437 俄文 866 韩文 949 查看当前代码页 chcp 设置当前代码页 临时设置 设置UTF
  • 应用服务漏洞扫描与利用

    使用命令nmap探测目标靶机的服务版本信息 将需要使用的参数作为FLAG进行提交
  • android.os.Environment

    public class Environment extends Object Java lang Object Android os Environment 类概述 提供访问环境变量 摘要 常量 String MEDIA BAD REMO
  • 【SDIO】SD2.0协议分析总结(一)-- SD卡基本概率介绍

    相关文章 SDIO SDIO SD卡 FatFs文件系统相关文章索引 1 前言 由于目前使用的硬件平台STM32只支持SD2 0 所以后面的介绍主要是参考 Part1 Physical Layer Simplified Specificat

随机推荐

  • 支持H.265网页播放的H5播放器EasyPlayer.js发布了

    在之前的多篇博客 历时半年 终于研发完成了Web网页对H 265 HEVC 直播和点播的支持 WebAssembly wasm EasyPlayer js开发Web H5网页播放H 265视频播放支持FLV与HLS直播与点播的过程 里面 我
  • C++ 拷贝构造函数等编译器自动生成的函数

    了解 C 默认编写的函数 空的类 在C 处理过后 编译器会为它声明 默认构造函数 copy 构造函数 copy assignment 操作符 析构函数 并且这些函数都是 public 且 inline 的 class Empty class
  • jQuery提交表单时,游览器默认拦截

    今天做一个功能 当用户点击查询时 先验证用户查询次数是否足够 如果够得话使用form表单方式提交 跳转新的界面 为什么用form表单 因为数据敏感 不适合在游览器地址上显示出来 防止用户随意修改而导致数据问题 当axaj发送请求 gt 验证
  • Vue集成WangEditor的初次使用

    作为一个菜鸟表示真的很难吖 这个插件就一个字 小巧 好用 首先我是Vue springboot的前后端分离 所以在查的时候结合文档和网上的一些例子 在此感谢帮助到我的大佬们 因为富文本编辑框之后会在很多地方用到 所以我采用了把WangEdi
  • Ctrl-labs CEO:脑机接口突破不断,五年内或可实现商用

    转自 https baijiahao baidu com s id 1650948598615192740 wfr spider for pc
  • Mysql-锁定读(Locking Reads)

    关于读锁 mysql官方文档地址 https dev mysql com doc refman 5 7 en innodb locking reads html与一致性非锁定读 普通读 快照读 对应的就是锁定读 锁定读的用处很多 首先先说下
  • js 高级算法 - 动态规划

    主要是看了 数据结构与算法 有所感悟 虽然这本书被挺多人诟病的 说这有漏洞那有漏洞 但并不妨碍我们从中学习知识 其实像在我们前端的开发中 用到的高级算法并不多 大部分情况if语句 for语句 swith语句等等 就可以解决了 稍微复杂的 可
  • DestroyList() 和ClearList() 一个使用引用,一个直接传参

    在高一凡编写的算法书P20页写着 销毁链表时用了引用 void DestroyList LinkList L LinkList q while L q L gt next free L L q 清空链表没有使用引用 void ClearLi
  • element UI 图片上传/文件上传

  • 2021-04-16

    喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事 你们一定都觉得这猴子太闹腾了 其实你们是有所不知 悟空是在研究一个数学问题 什么问题 他研究的问题是蟠桃一共有多少个 不过 到最后 他还是没能解决这个难题 呵呵 当时的情况是这样的 第一天悟空吃
  • yarn的常用命令以及与npm的对比

    yarn安装 在yarn的官网下载yarn并安装或者 npm i yarn g 查看版本 Yarn v 1 初始化一个新项目 yarn init 与 npm init 一样通过交互式会话创建一个 package json yarn init
  • 实施工程师的必修课(一)-----项目启动前的知识整理学习-工作流程

    项目启动前的知识整理学习 工作流程 第一步 项目启动 第二步 调研开始 第三步 需求总结 第四步 数据和材料的收集 第五步 需求调研结束 第六步 上线试运行 第七步 项目验收 以lims系统为例 实验室信息管理系统 LIMS Laborat
  • MySQL存储原理

    MySQL中的数据组织是以页为单位的 每一页中的信息包括 页头 记录页面的控制信息 共占56字节 包括页的左右兄弟页面指针 用来连接相邻的页面 页面空间使用情况等 虚记录 最大虚记录 比页内最大主键还大 最小虚记录 比页内最小主键还小 记录
  • chatgpt论文润色

    https github com binary husky chatgpt academic
  • 开源库nothings/stb的介绍及使用(图像方面)

    GitHub上有个开源的stb库 Star数已过万 地址为https github com nothings stb 为何叫stb 是用的作者名字的缩写Sean T Barrett 此库仅包含头文件 除stretchy buffer h外
  • 佛祖保佑 永不宕机 永无BUG C语言 串口打印

    字符串如下 char log oo0oo r n o8888888o r n 88 88 r n r n 0 0 r n r n r n
  • ChromeDriver最新版(116.x及最新)下载途径分享

    首先查看version 在地址栏输入chrome version 最新版 官方地址 https googlechromelabs github io chrome for testing 选择合适的下载即可 Old 官网 https chr
  • 关于postman使用技巧

    一 get方法 只在此显示下有token的查询方法 一般的get查询直接浏览器地址即可 二 post请求 1 在headers中设置下Content Type为application json 2 在Body中输入正确的json格式即可 三
  • 从零实现DevOps(二):Centos7操作系统-环境变量配置(JDK、Maven、Node)

    1 JDK安装并配置环境变量 由于Jenkins官网要求 从2 357版本后必须用java11或17才可以运行 java8运行会报错 所以我们直接安装jdk11 1 下载地址 往下拉可以找到Java11 Java Downloads Ora
  • C语言速成指南

    说明一下吧 这篇文章是用于c语言有目的的速成 有点基础的看一看也可以当复习 如果想要真正学好c语言 建议看一下之前写的详细教程 这篇文章会有很多对于考试没有多大帮助的东西被忽略掉 临近期末祝大家考试顺利 我也会不断完善这篇文章的 欢迎各路大