C语言速成指南

C语言速成指南

说明一下吧:

这篇文章是用于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

int main(){

printf("Hello World!");

return 0;

}

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

做几点说明:1.

#include

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

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

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

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

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

}

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

例题:

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

#include

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

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

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.字符串处理函数

结构类型

结构体

黄金推荐

多少次我告诉自己此情可待成追忆
365完美体育app

多少次我告诉自己此情可待成追忆

🕒 06-27 💰 2300
口袋妖怪日月重要NPC商店及地点位置分布一览
365完美体育app

口袋妖怪日月重要NPC商店及地点位置分布一览

🕒 06-27 💰 1702
兰州美术集训学校排名前十 哪个学校好
365bet娱乐场客户端

兰州美术集训学校排名前十 哪个学校好

🕒 06-27 💰 4633