计算机二级复习趣谈

来源:互联网 发布:dfx设计 java 编辑:程序博客网 时间:2024/05/01 18:42

计算机二级复习趣谈

前言

最近我在复习计算机二级考试,我的考试科目是C语言。说实话,在复习的过程中,我并未感觉自己的编程水平有什么提高。当然,我也并非没有任何收获,在复习的过程中,我学到了一些以前在课堂上没有掌握的C语言知识点,还有一些软件工程,数据库的知识(也许吧……)。

软件工程和数据库基础

我在这两个方面完全是门外汉,一点基础都没有。不过我身上有着中国学生普遍有的特殊技能——无敌的应试本领。虽然我对软件工程,数据库一窍不通,但是蒙对计算机二级的选择题,保证及格还是可以的。

关于C语言和C++中的C

我在复习计算机二级的过程中,也感觉到了C语言对类型的检查是很弱的。虽说C++ 兼容C,但是并不是说一段C代码在C编译器中编译通过,它在C++ 编译器中就一定不报错,C++ 的检查要更严格一些。下面我举两个例子。

字符数组,字符指针和字符串常量

#include <stdio.h>int main(void){    char *s;    s = "hello world!";    puts(s);    return 0;}

上面这段代码可以在C编译器上通过,但是在C++中得到了一个warning:deprecated conversion from string constant to “char*”
说实话,我也是第一次知道在C语言中,一个字符串常量居然可以作为右值赋值给一个字符指针!这实在太反人类了

当然如果你写成这样

char s[100]; s = "hello world!";

这绝对是错的,C语言中不存在对数组的“整体操作”。

函数指针

#include <stdio.h>int add(int a, int b){    return a + b;}int main(void){    int (*f)();    f = add;    k = f(1, 2);    return 0;}

上面这段代码在C编译器中可以通过,但是在C++ 中就不可以了。原因在于C语言中int func()int func(void)不相同的!!!前者可以接受任意个参数,而后者不接受任何参数。在C++ 中,两者是等同的。

一点吐槽

当年王简跟我说,学校的C语言课程学完,考计算机二级的C语言就没有问题了……我信他娘的鬼话!学校的C语言教学非常烂,C语言中的宏,条件编译,联合(或者说共用体),指针……都是我自学的!学了一学期的C语言,老师连C标准库这个名词都没有提到过。我的一个计算机系的朋友告诉我,他们学C++ ,老师从没告诉他们有STL这个玩意!我校教师的良心rocedu知道了,一定感慨万千……

我校教师的良心——rocedu老师

这学期我们专业有门java程序设计的课是他教,不过我们班只有王震宇一个人选了。不得不说在我校选择java这门课绝对物超所值,rocedu老师绝对负责,学到的干货是满满的,但我没选……态度不代表能力,有积极向上的心的确不错,可我从没有付诸行动过。新的学期我也学点新的东西,自学C++ 或者复习汇编语言应该是个不错的选择,也可以从rocedu老师的博客那里偷学点东西,可能学习效果不咋地,但还是挺轻松的。你问我为什么不选他的课?我校选课要走群众路线,群众选啥我选啥,群众不选,我也不选。我们专业的常微分方程,数值分析两门课就是这个原因,已经形同虚设了……

0 0
原创粉丝点击