计算机二级_全国二级计算机
计算机二级由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“全国二级计算机”。
考试大纲
◆ 基本要求
1.熟悉 Visual C++ 6.0 集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在 Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力
◆ 考试内容
一、C语言程序的结构
1.程序的构成,main函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3.源程序的书写格式。
4.C语言的风格。
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句
1.表达式语句,空语句,复合语句。
2.输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计
1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。
3.选择结构的嵌套。
五、循环结构程序设计
1.for循环结构。
2.while和do-while循环结构。
3.continue语句和break语句。
4.循环的嵌套。
六、数组的定义和引用
1.一维数组和二维数组的定义、初始化和数组元素的引用。
2.字符串与字符数组。
七、函数
1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理
1.宏定义和调用(不带参数的宏,带参数的宏)。
2.“文件包含”处理。
九、指针
1.地址与指针变量的概念,地址运算符与间址运算符。
2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。
3.用指针作函数参数。
4.返回地址值的函数。
5.指针数组,指向指针的指针。
十、结构体(即“结构”)与共同体(即“联合”)
1.用typedef说明一个新类型。
2.结构体和共用体类型数据的定义和成员的引用。
3.通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。
十一、位运算
1.位运算符的含义和使用。
2.简单的位运算。
十二、文件操作
只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。
1.文件类型指针(FILE类型指针)。
2.文件的打开与关闭(fopen,fclose)。
3.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数的应用),文件的定位(rewind,fseek函数的应用)。◆ 考试方式
1.笔试:90分钟,满分100分,其中含公共基础知识部分的30分。
2.上机:90分钟,满分100分
3、上机操作包括:
(1)填空。
(2)改错。
(3)编程。2012年3月全国计算机等级考试二级C语言上机题库及答案
第1套
一、填空
给定函数的功能是调用 fun 函数建立班 级通讯录。通讯录记录每位学生的编号,姓名和电话号码。班级的人数和学生的 信息从键盘读入,每个人的信息作为一 个数据块写到名为答案 yfile5.dat 的二进 制文件中。答案:1.STYPE 2.FILE 3.fp
二、修改 先将在字符串 s 中的字符按正序存放到 t 串中,然后把 s 中的字符按逆序连接到 t 串后面。答案:1.for(i = 0;i
三、程序 将两个两位数的正整数 a,答案合并成 一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的千 位和十位上,答案数的十位和个位数依 次放在 c 数的百位和个位上。*c=(a/10)*1000+(b/10)*100+(a)*10 +(b);
第 2 套
一、填空 从键盘输入若干行文本(每行不超过 80 个字符),写到文件答案 yfile4.txt 中,用-1 作为字符串输入结束的标记。然后 将文件的内容读出显示在屏幕上。文件 的读写分别有自定义函数 ReadText 和 WriteText 实现。答案 :*fw str str
二、修改 从低位开始取出长整形变量 s 中的奇数 位上的数,依次构成一个新数放在 t 中,高位仍放在高位,低位仍放在低位。答案: long *t sl = sl*10;
三、程序 将两个两位数的正整数 a,答案合并成 一个整数放在 c 中。合并的方式:将 a 数的十位和个位数依次放在 c 数的千位 和十位上,答案数的十位和个位数依次 放在 c 数的百位和个位上。*c=(b/10)*1000+(a)*100+(b)*10 +(a/10);
第 3 套
一、填空 将自然数 1~10 以及它们的平方根写到 名为答案 yfile3txt 的文本文档中,然后 再顺序读出显示在屏幕上。答案:(1)fp(2)fclose(fp)(3)fname
二、修改 将 n 个无序整数从小到大排序。答案: for(i=j+1;i
三、程序将两个两位数的正整数A,答案合并成一个整数放在C中。合并的方式是:将A数的十位和个位数依次放在C数的千位和十位上,答案数的十位和个位数依次放在C数的百位和个位上*C=(B)*1000+(A)*100+(B 10)*10 +(a
10);
一、填空 第4套 调用函数 fun 将指定源文件中的内容复 制到指定的目标文件中,复制成功时函 数返回值为 1,失败时返回值为 0,在复 制的过程中,把复制的内容输出到终端 屏幕。主函数中源文件名放在变量 sfname 中,目标文件名放在变量 tfname 中 答案: “r” fs ft
二、修改 将长整形数中每一位上为偶数的数依次 取出,构成一个新数放在 t 中。高位仍 在高位仍在低位。答案: if(d%2=“=0)s /= 10;
三、程序 将两个两位数的正整数 a,答案合并成 一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的千 位和十位上,答案数的十位和个位数依 次放在 c 数的百位和个位上。*c=(a)*1000+(b/10)*100+(a/10)*10 +(b);第 5 套
一、填空 把形参 x 的值放入一个新结点并插入到 链表中,插入后结点数据域的值仍保持 递增有序。答案: x p s
二、修改计算正整数 num 的各位上的数字之积。答案:long k=1;num/=10;
三、程序 计算 n 门课程的平均分,计算结果作为 函数值返回。答案:int i;float ave=0.0;for(i=0;i 一、填空 给定程序中已建立一个带有头结点的单 向链表,在答案 ain 函数中将多次调用 fun 函数,没调用一次 fun 函数,输出链 表尾部结点中的数据,并释放该节点,是链表缩短。答案: next t->data t 二、修改 将字符串中的字符按逆序输出,单补改 变字符串中的内容。答案:void fun(char *a)printf(”%c“, *a); 三、程序 比较两个字符串的长度(不得调用 c 语 言提供的求字符串长度的函数)函数返,回较长的字符串。若两个字符串长度相 同,则返回第一个字符串。答案:int i;char *p=s , *q=t;int n=0,m=0;while(*p){n++;p++;} while(*q){m++;q++;} if(n>=m)p=s;else p=t;return p; 第 7 套 一、填空 删除链表中数据域值相同的结点,使之 只保留一个 答案: q next next 二、修改 用选择法对数组中的 n 个元素按从小到 大的顺序进行排序。答案: p = j;p=i; 三、程序 求出 1 到答案之间(含答案)能被 7 或 11 整除的所有整数放在数组 a 中,通过 n 返回这些数的个数。答案: int i ,j=0;*n=0;for(i=1;i 第 8 套 一、填空 在带有头结点的单向链表中,查找数据 域中值为 ch 的结点。找到后通过函数值 返回改结点在链表中所处的顺序号;不 存在,函数返回 0 值 答案: NULL n head ,ch 二、修改 删除 p 所指字符串中的所有空白字符, 输入字符串是用“#”结束输入。答案: for(i=0,t=0;p[i];i++)c[t]=' '; 三、程序 将 所指字符串中所有下标为奇数位置 上的字母转换成大写 答案: int i;for(i=1;i='a'&&[i]