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

结构类型

        结构体


  • 25
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在学习C语言时,除了在教室听课外,增加上机练习的机会非常重要。这样可以提高写代码的流畅度,减少在上机时的紧张感,并且能够更好地应对代码运行出错的情况。所以建议平时要腾出时间去上机练习,不仅限于课程指定的时间。\[1\] 引用\[2\]:此外,建议找一个考过的同学或者专门培训的老师一起学习C语言。因为C语言不仅仅是靠背诵和操作就能解决问题的,它需要理解和掌握。如果一个人学习,可能会因为某个问题而停滞不前,浪费很多时间。所以与他人一起学习可以相互帮助和解决问题。\[2\] 综上所述,要速成C语言计算机二级考试,你可以增加上机练习的时间,找一个考过的同学或专门培训的老师一起学习。这样可以提高你的编程能力和理解C语言的能力,帮助你更好地应对考试。 #### 引用[.reference_title] - *1* *2* [全国计算机二级C语言考试难不难?应该怎么备考?](https://blog.csdn.net/Hsuesh/article/details/108811167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [计算机二级C语言怎么过](https://blog.csdn.net/qq_34997333/article/details/81234225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值