学年总结
知识梳理
经过本学期的学习,我们了解学习了C语言,现在,由我来整理一下这学期的学习内容(仅仅大致说明)。
首先,是各种类型,整形(int),单精度浮点(float),双精度浮点(double),字符型(char)等。
然后,最基础的输入输出(cin,scanf;cout,printf);
除此之外,还有各种符号的意义,如&&,||,!=,==,=,++,–等。
接下来,我们学习了条件控制结构,即if/else控制结构。
当满足if的条件时,便执行if内的内容。否则就执行else内的内容。
除了if,还有switch结构,不过switch需要用case列举情况。
接下来,就到了循环结构,其中主要有三个,while,do-while,for。
其中,while和for都是先判断条件,再执行。而do-while是先执行,再判断条件。这三个的形式在一定条件下可以互相转化。
在循环中,最常用的一种手段是嵌套循环,或者说多重循环。如双重for循环,在内循环执行完之后才会执行外部循环。
除了这些,对于循环的控制,有break,continue,goto,分别作用是,跳出本层循环,跳到循环开头,跳到指定位置。
接下来,便到了数组,数组即为一组有着相同类型的变量的集合。通过下标实现对数组每个元素的访问。无论主函数内外都可以定义数组,但是数组只能以常数定义大小,不能以变量变量大小。
对于定义,不仅可以定义一维数组,还可以定义二维数组。对于不能确定大小的,还可以用vector定义动态数组。
再来说函数,所谓函数,即为定义在主函数外的一组执行一个任务的语句。一般来说用以计算一些求解模式固定的量,简化了主函数内容,便于封装。一般来说,主函数传递值到函数,函数按照步骤处理后,再把返回值回馈给主函数。
题目举例
上述的知识点,在题目中往往要综合使用。
下面我来举一个例题。
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
#include<iOStream>
#include<cstdio>
#include<vector>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int f[1000000];//定义一个足够大的数组,保存是否是素数
int acf(int &m,int &n)//定义函数判断X,Y的大小,因为题目中并没有说明
{
int t;
if(m<=n)
return 0;
else
{
t=m;
m=n;
n=t;
return 0;//不需要返回值,所以直接结束。
}
}
int main()
{
int m,n,l=0;
scanf("%d%d",&m,&n);//scanf输入一般会快一点
acf(m,n);//自定义函数的使用
f[1]=0;
for(int i=2;i<=1000000;i++)
f[i]=1;
for(int i=2;i<=1000000;i++)
{
if(f[i]==1)
{
for(int j=2;j*i<=1000000;j++)//双重循环
f[i*j]=0;
}
}//判断是否为素数,原则上这个也可以单独写个自定义函数
for(int i=m;i<=n;i++)
{
if(f[i]==1)
{
l++;
}
}//循环内嵌套判断,判断是否为素数。
cout<<l;
return 0;
}
感悟
经过一个学期的学习,我们已经学习c语言的最基本的操作,包括如何定义,输入,还有条件判断和循环语句,学会了定义数组和函数。
尽管这些都是基础内容,但是要注意的地方依旧很多,比如在循环中不要嵌套过多的循环,不然很容易占用过多资源;尽量不要进行死循环然后有btreak判断条件跳出的方式;。
还有数组下标是从0开始,不是从1开始,定义数组时尽量定义大一些,不然数组越界会很难受
要学会自主学习一些有用的函数,如sort等(stl真的很好使)。
函数要注意先写出来测试一遍,不要直接写,不然很难找错
除了这些,还有很多,暂时不一一列举。
通过这段时间的学习,我从一个小白,变成了一个可以通过c语言解决一些简单问题的人,在学习中我刚感受到了c语言学习的快乐,其中写程序时严明的逻辑便是吸引我的地方。
我感受了编程的快乐,在下学期,我一定会更加努力主动的学习。以求在实践中,不断提升自己的能力。
相关阅读
1. 概念开始,先稍稍讲一点android中Service的概念和用途吧~Service分为本地服务(LocalService)和远程服务(RemoteService):1、本地服务
“每天都有人在讲大数据、讲数据产品、讲平台,但是概念始终觉得很模糊,越不正视只会越迷失方向,所以就大胆的往前走吧!”一、缺少总结
近些年来,“无监督学习在反欺诈中的应用”这一概念非常火,然而从应用场景以及实际效果来看,这更像是一场被扭曲的骗局。很久没更新这
【题目1】引用和指针有什么区别? 【解答】 (1)定义一个指针变量编译器会为它分配内存,而引用不占用任何内存; (2)引用必须在定义时被
忙活了大半年,最近刚好有一个改版项目完成上线,又正值中期总结这个档口,所以针对项目总结将一些经验技巧梳理出来。项目总结相信大家