计算机二级复习趣谈
来源:互联网 发布: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老师的博客那里偷学点东西,可能学习效果不咋地,但还是挺轻松的。你问我为什么不选他的课?我校选课要走群众路线,群众选啥我选啥,群众不选,我也不选。我们专业的常微分方程,数值分析两门课就是这个原因,已经形同虚设了……
- 计算机二级复习趣谈
- C++全国二级计算机考试复习
- 《“计算机的功能”趣谈》
- 十天复习,过不到计算机二级是你的运气PIE
- 计算机复习
- 计算机复习
- 二级复习10
- 二级复习11
- 二级复习12
- 二级C复习13
- 二级考试复习随笔
- MYSQL二级复习笔记
- 计算机二级基础知识
- 计算机二级基础知识
- 计算机二级基础知识
- 轻松通过计算机二级
- 杂七杂八 - 计算机二级题目
- 计算机二级基础知识
- 10种使测试人员陷入困境的行为趋势
- 反射相关
- JZOJ 3506. 【NOIP2013模拟11.4A组】善良的精灵
- SQ的工具应用代码
- 二叉搜索树的相关操作:插入节点,删除节点,排序,查找,最大值,最小值,前序,中序,后序遍历(主要用到递归的方法)
- 计算机二级复习趣谈
- SpringMVC与Struts2的区别
- Android SQLite 数据库增删改查dos命令行语句
- 年终奖(DP)
- MySql配置、介绍
- CSU-1007
- NY45---棋盘覆盖
- C++新特性
- BFS初步的总结