SCAU学习笔记 - 校科联自科二面通关指南
写在前面
Ciallo~(∠・ω< )⌒☆ 相信点开这篇文章的25级新生们大概率也是在参观了我们学校的创客空间之后对校科联这个组织心生向往,从军训结束到十一假期结束,你就得学超级多东西,因为想进自科的人大有人在,所谓的“零基础也能进”不能说百分百纯谎言吧,只能说零基础想进真的是很困难的
学长我作为栽在算法三面的卑微老灯(据野史记载还是因为长得丑被yss刷掉的) 在上面的简单劝退之外,还是希望各位小朋友不要跟我一样盲目学习,故写此通关自科系列。
系列分为两部分,这一部分是到二面为止的内容,下一部分则是三面算法方向的内容(其他方向我也不会),具体而言你需要在十一前最后一个周末掌握大部分才能通关,到时候是集中在教四的大教室进行一次闭卷考试的形式(至于一面其实除非你骂面试官基本都能过 ,甚至面试官都是招的志愿者,说不定你还能碰到我 )
那么具体要学习哪些东西呢,其实基本上你只需要把C语言的语法知识掌握扎实就足以通过了,但是以往年经验,二面题会有很多坑,所以为了弥补你在前面掉坑丢的分,我们姑且还是需要再掌握一些简单的算法和数据结构相关知识的,你可以点击蓝色链接提前解锁窝农后续对应专业课的学习,也可以在本文直接对这几个模块进行简单的速通
顺带一提,作为某不知名前任部长的acm队友和某不知名现任部长的每日出勤任务npc,Swan大人这里姑且有一些往年真题,后面会穿插在正文中作为例题给各位看一看
好了,前面废话说的已经很多了,让我们直接开始正文部分吧
C语言语法基础
这一部分一般是出现在试卷的前15或20道选择题,第一道程序改错,第一道程序设计题,这部分的分是必须优先拿满的,理论上拿满已经足够你通过自科二面的笔试的了,不要纠结于按顺序写完题目,优先把这些题写完
好了,现在你可以掏出学校开学时发的陈湘骥老师编写的《高级程序语言设计》开始学习了
变量
变量类型
为了速通,在这里,我们只需要知道int
、long long
和long
这些都属于整数类型,顾名思义,就是只能存整数,在一个代码里面这些类型的变量始终为整数,就算用了除法操作,也会默认向下取整
而double
和float
属于实数类型,他们允许存储带小数点的数
至于bool
则是只有是和否两种类型的变量,他的名字就叫布尔型
例1(2024年二面)
这题就是很裸地在考我们上面刚说的概念,很明显选D
赋值操作
C语言中首先大家都完全能看懂的赋值操作就是一个变量等于一个算式这种形式,如a=1+1
、b=2
、c=2.0
特殊地,我们允许有i+=2
这样的形式,其实意思也就是i=i+2
,而如果对i加1的话还可以更简便地写为i++
或++i
,这两种写法略有不同,但是自科很喜欢考,我们放在后面细说,先看几道简单的例题
例2(2024年二面)
我们一行一行来看这个代码
首先,int pad=5
是定义了一个叫pad的int类型变量,初始值为5
接下来,pad++
是我们上面说的pad=pad+1
的简写,所以这个时候pad变成了6
再然后,pad+=3
也就是pad=pad+3
,现在pad的值是9
接下来,printf
可以看成一个固定格式,就是在这个时候输出pad的值,所以输出为9,选D
至于后面的pad-=2
,确实是pad=pad-2
进行了这样的操作,但是只是在代码内部改变了pad的值,并没有输出,注意题目问的是输出结果而不是pad的值,所以不是7
然后,我们来讲讲i++
和++i
的区别,其实如果他们单独出现并加上一个分号那么其实是毫无区别的,区别在于出现了a=i++
这样的组合式子,首先你要知道他是合法的,所以那种选错题不要选他
对于a=i++
,其实是两步式子合在一起的简写,分别是a=i
和i++
;而a=++i
则操作顺序相反,我们来看一个例子
int i = 5;
int result = i++; // result 是 5,i 变成 6
//-------------------------分界线---------------------------//
int i = 5;
int result = ++i; // result 是 6,i 变成 6
例3(2023年二面)
那么我们分析的话就是说sum=pad=5
,那么sum和pad自然就都是5
接下来pAd=sum++
,也就是说现在pAd是5,sum是6,接下来的两次++操作自然就把pAd变为了7
**但是!**注意在C语言里面的变量名我们是区分大小写的,所以pAd和pad其实不是一个东西,最后输出的pad的值那就应该仍然输出5