全国计算机二级C语言考试题型及考试重点
- 格式:doc
- 大小:27.00 KB
- 文档页数:3
二级计算机技能考试c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。
A. varB. letC. intD. define答案:C2. 下列哪个选项是C语言中的合法标识符?()A. 2variableB. variable2C. _variableD. $variable答案:C3. 在C语言中,用于执行条件判断的关键字是()。
A. ifB. elseC. switchD. case答案:A4. C语言中,用于定义一个函数的关键字是()。
A. functionB. defC. voidD. int答案:C5. 在C语言中,用于表示逻辑“与”操作的符号是()。
A. &&B. ||C. =D. ==答案:A6. 下列哪个选项是C语言中的合法整型常量?()A. 100B. 0x1AC. 1.5E+2D. 0b1010答案:B7. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A8. C语言中,用于表示逻辑“或”操作的符号是()。
A. &&B. ||C. =D. ==答案:B9. 在C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. unionC. structD. typedef答案:A10. C语言中,用于定义一个联合体的关键字是()。
A. structB. unionC. enumD. typedef答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。
答案:int2. C语言中,________关键字用于声明一个指针。
答案:*3. 使用________函数可以输出字符串到控制台。
答案:printf4. C语言中,________关键字用于声明一个函数。
答案:void5. 在C语言中,________关键字用于声明一个枚举类型。
计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。
2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。
二、填空题1. 在C语言中,`________`关键字用于声明一个函数。
答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。
2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。
```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。
2. 编写一个C语言程序,实现将一个字符串反转。
```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1。
1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构.在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等.一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成.考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念.1。
算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的.撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习.详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1。
1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法.1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输.(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量.同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法”运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x123B. 123.0C. 123e2D. 123.0L答案:A2. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", 'Hello, World!'D. "Hello, World!'"答案:A4. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a; int b) { return a + b; }C. int add(int a, int b) { return a - b; }D. int add(a, b) { return a + b; }答案:A5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. int array = 10;答案:A二、填空题1. 在C语言中,用于输入的函数是___________。
答案:scanf2. 在C语言中,用于输出的函数是___________。
答案:printf3. 在C语言中,用于计算两个整数的差的运算符是___________。
答案:-4. 在C语言中,用于定义一个整型变量的关键字是___________。
答案:int5. 在C语言中,用于定义一个字符型变量的关键字是___________。
全国计算机等级考试二级C语言笔试试卷及标准解析全国计算机等级考试二级C语言笔试试卷及标准解析一、选择题((1)一(10)每题2分(11)一(50)每题1分共60分) 下列各题A)、B)、C)、D)四个选项中只有一个选项是正确的请将正确选项涂写在答题卡相应位置上答在试卷上不得分。
(1)下列选项中不属于结构化程序设计方法的是 A)自顶向下B)逐步求精 C)模块化 D)可复用 (2)两个或两个以上模块之间关联的紧密程度称为 A)耦合度B)内聚度 C)复杂度 D)数据传输特性 (3)下列叙述中正确的是 A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对 (4)按照“后进先出”原则组织数据的数据结构是 A)队列B)栈 C)双向链表D)二叉树 (5)下列叙述中正确的是A)线性链表是线性表的链式存储结构 B)栈与队列是非线性结构 C)双向链表是非线性结构 D)只有根结点的二叉树是线性结构 (6)对如下二叉树 ABDECF 进行后序遍历的结果为A)ABCDEFB)DBEAFC C)ABDECFD)DEBFCA (7)在深度为7的满二叉树中叶子结点的个数为A)32B)31 C)64D)63 (8)“商品”与“顾客”两个实体集之间的联系一般是 A)一对一B)一对多 C)多对一D)多对多 (9)在E-R图中用来表示实体的图形是 A)矩形B)椭圆形 C)菱形D)三角形 (10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMS B)DBMS包含DB和DBS C)DBS包含DB 和DBMS D)没有任何关系 (11)以下不合法的用户标识符是A)j2_KEYB)Double C)4dD)_8_ (12)以下不合法的数值常量是 A)011B)1e1 C)8.0E0.5D)0xabcd (13)以下不合法的字符常量是A)′\018′B)′\"′ C)′\\′D)′\xcc′(14)表达式3.6-5/2+1.2+5%2的值是 A)4.3B)4.8C)3.3 D)3.8(15)以下能正确定义字符串的语句是 A)char str[]={′\064′};B)char str="kx43"; C)charstr="; D)char str[]="\0";(16)以下数组定义中错误的是 A)int x[][3]={0};B)int x[2][3]={{l2}{34}{56}}; C)int x[][3]={{l23}{456}}; D)int x[2][3]={l23456};(17)若要求从键盘读入含有空格字符的字符串应使用函数A)getcB)gets C)getcharD)scanf(18)以下四个程序中完全正确的是 A)#includeB)#include main;main {/_programming_/{/_/programming /_/ printf("programming!\n");}printf("programming!\n");}C) #include D) include mainmain{/_/_programming_/_/{/_programming_/printf("programming!\n");} printf("programming!\n");}(19)若有定义:float x=1.5;int a=1b=3c=2;则正确的switch语句是 A)switch(x)B)switch((int)x); {case1.0:printf("_\n"); {case 1:printf("_\n");case2.0:printf("__\n");} case 2:printf("__\n");} C)switch(a+b) D)switch(a+b) {case 1:printf("_\n");{case 1:printf("_\n"); case 2+1:printf("__\n");}case c:printf("__\n");} (20)若各选项中所用变量已正确定义函数fun中通过return语句返回一个函数值以下选项中错误的程序是 A)mainB)float fun(int aint b){……} {……x=fun(210);……}main float fun(int aintb){……}{……x=fun(i,j);……} C)floatfun(intint); D)main main {floatfun(int iint j);{……x=fun(210);……}……x=fun(i,j);……}float fun(int aint b){……}float fun(int aint b){……} (21)在以下给出的表达式中与while(E)中的(E)不等价的表达式是A)(!E==0)B)(E>0‖EB)while(ch=getchar!=′N′)printf("%c",ch);C)while(ch=getchar==′N′)printf("%c",ch);D)while((ch=getchar)==′N′)printf("%c",ch); (23)已定义以下函数int fun(int _p){return _p;)fun函数返回值是 A)不确定的值 B)一个整数 C)形参P中存放的值 D)形参P的地址值 (24)若有说明语句:double _pa;则能通过scanf语句正确给输入项读入数据的程序段是 A)_p=&a; scanf("%1f"p);B)_p=&a; scanf("%f"p); C)p=&a; scanf("%1f"_p); D)p=&a; scanf("%1f"p); (25)现有以下结构体说明和变量定义如图所示指针p、q、r分别指向一个链表中连续的三个结点。
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法.1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构.描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
计算机二级C语言考试内容及重点计算机二级C语言试采用全国统一命题,统一考试的形式,各科目均为上机操作考试。
下面是2017年计算机二级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. 用指针作函数参数。
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。
作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。
选择题部分只能进入一次,退出后不能再次进入。
选择题部分不单独计时。
)1.下列叙述中正确的是()。
A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。
所以没有根结点或没有叶子结点的数据结构一定是非线性结构。
AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。
答案选择D选项。
2.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。
C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。
答案选择A选项。
3.C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。
计算机二级c语言题型
计算机二级C语言考试通常涵盖以下几个方面的题型:
1. 选择题,选择题是考察考生对C语言基础知识的掌握程度。
题目会给出若干个选项,考生需要选择正确的答案。
这类题目通常涉及C语言的语法、数据类型、运算符、控制语句等基础知识。
2. 填空题,填空题要求考生根据题目给出的代码片段或问题,在空白处填上正确的代码或答案。
这类题目考察考生对C语言语法和编程逻辑的理解和应用能力。
3. 程序分析题,程序分析题给出一段C语言代码,要求考生分析代码的执行结果或输出结果。
考生需要理解代码的逻辑,推测程序的运行过程,并给出正确的答案。
4. 程序设计题,程序设计题是考察考生的编程能力和解决问题的能力。
题目通常给出一个具体的问题或要求,考生需要使用C语言编写程序来解决问题。
这类题目要求考生能够熟练运用C语言的语法和常用库函数,设计合理的算法解决问题。
5. 综合题,综合题是将多个知识点结合起来考察考生的综合应
用能力。
题目可能会给出一段代码,要求考生分析代码的执行结果,并根据结果回答相关问题。
这类题目要求考生能够综合运用C语言
的各个方面知识,进行问题分析和解决。
除了以上常见的题型,具体的考试题目还可能根据不同的考试
机构和考试要求有所不同。
在备考过程中,建议考生通过做题、练
习和查阅相关资料来提高自己的C语言水平和应试能力。
计算机二级c语言考试题目及答案考试题目一:1. 下面哪个选项是 C 语言中的预处理指令?A. #includeB. intC. printfD. if答案:A. #include考试题目二:2. 在 C 语言中,如何声明一个整型变量?A. String num;B. int num;C. float num;D. num int;答案:B. int num;考试题目三:3. C 语言中的逻辑与运算符是什么?A. &&B. ||C. !D. &答案:A. &&考试题目四:4. 下面哪个选项是正确的C语言定义和初始化数组的方法?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[5] = (1, 2, 3, 4, 5);C. int arr = [1, 2, 3, 4, 5];D. int arr[5] = [1, 2, 3, 4, 5];答案:A. int arr[5] = {1, 2, 3, 4, 5};考试题目五:5. 下面程序的输出结果是什么?```c#include <stdio.h>int main() {int i = 5;if (i == 5) {printf("Hello, World!");}else {printf("Goodbye, World!");}return 0;}```A. Hello, World!B. Goodbye, World!C. 编译错误D. 运行错误答案:A. Hello, World!考试题目六:6. 下面哪个选项是 C 语言中的循环语句?A. chooseB. forC. switchD. if答案:B. for考试题目七:7. 在 C 语言中,如何访问数组的第一个元素?A. arr[0]B. arr[1]C. arr[-1]D. arr[first]答案:A. arr[0]考试题目八:8. 下面哪个选项是 C 语言中的条件语句?A. do-whileB. switchC. breakD. continue答案:B. switch考试题目九:9. 下面哪个选项是 C 语言中的自增运算符?A. +=B. -=C. ++D. --答案:C. ++考试题目十:10. 下面程序的输出结果是什么? ```c#include <stdio.h>int main() {int i = 0;while (i < 5) {printf("%d ", i);i++;}return 0;}```A. 0 1 2 3 4B. 1 2 3 4 5C. 0 1 2 3 5D. 编译错误答案:A. 0 1 2 3 4以上是计算机二级C语言考试题目及答案。
千里之行,始于足下。
202X年全国计算机二级C语言考试各章节重点难点考点总结202X年全国计算机二级C语言考试各章节重点难点考点总结一、基本概念和语法结构1. C语言的起源和发展历程2. C语言程序的基本结构3. 关键字、标识符和数据类型的定义和使用4. 变量、常量和表达式的定义和使用5. 算术运算符和赋值运算符的区别和使用方法6. 条件判断和循环结构的使用二、数据类型和运算符1. 基本数据类型和扩展数据类型的定义和使用2. 类型转换和类型提升的规则和注意事项3. 算术运算符、关系运算符和逻辑运算符的使用方法4. 位运算符和赋值运算符的使用方法5. 运算符优先级的规则和注意事项三、流程控制结构1. 顺序结构、选择结构和循环结构的概念和使用方法2. 分支结构和循环结构的嵌套使用和注意事项3. switch语句和break语句的使用方法4. while循环、do-while循环和for循环的使用方法5. 循环控制语句和循环嵌套的应用场景和注意事项四、数组和字符串第1页/共2页锲而不舍,金石可镂。
1. 数组的定义、初始化和访问方法2. 一维数组和二维数组的使用场景和注意事项3. 数组的操作和相关函数的使用方法4. 字符串的定义、初始化和操作方法5. 字符串处理函数的使用方法和注意事项6. 字符串的输入和输出格式控制的应用场景和技巧五、函数和指针1. 函数的定义、声明和调用方法2. 函数的参数传递方式和注意事项3. 函数的返回值类型和返回值的使用方法4. 函数的递归调用和递归算法的实现5. 指针的定义、初始化和使用方法6. 指针和数组、指针和函数之间的关系和使用方法六、文件操作和预处理命令1. 文件的打开、关闭和读写操作方法2. 文件的顺序读写和随机读写的区别和使用方法3. 文件的错误处理和异常处理的机制和方法4. 预处理命令的定义和使用方法5. 宏定义、条件编译和文件包含的规则和注意事项总结:上述内容是202X年全国计算机二级C语言考试所涉及的各章节重点难点考点。
1、算法的复杂程度:时间复杂程度和空间复杂程度。
时间复杂程度是执行算法所需要的计算工作量,可以用执行算法过程中所需基本运算的执行次数来度量;算法的空间复杂程度是指执行算法所需要的内存空间。
两者不相关。
(算法是指解决问题的有限运算序列,是对解决方案完美而准确地描述。
)2、线性结构与非线性结构:根据数据结构中个数据元素之间前后关系的复杂程度,一般将数据结构分为两大类:线性结构与非线性结构。
线性结构表示数据元素之间一一对应的关系,例如带链队式,循环队式,带链栈等;非线性结构表示数据元素间的一对多或者多对一的关系,例如二叉树。
3、线性表的链式存储结构所需的空间一般多于顺序存储结构。
线性表的顺序存储结构是把线性表中的相邻元素放在相邻的内存单元中,链式存储结构是用一组任意存储单元来存放表中的数据元素,为了表示出每个元素与其直接后级元素之间的关系,除了存储元素本身的信息外,还需存储一个指示其直接后级元素存储位置的信息。
4、软件的设计原则是:抽象,模块化,局部化,信息隐蔽,确定性,一致性,完备性和可验性。
[模块划分的原则是模块内具有高内聚度,模块间具有低耦合度]5、在E_R图中椭圆形表示属性,菱形表示联系,矩形表示实体集。
6、DFD图(即为数据流图)、数据字典(对数据流图所包含的元素的定义)、判定表和判定树是结构化分析的常用工具。
(数据流图是描述数据处理的过程的工具,它从数据传递和加工的角度来刻画数据流从输入到输出的变化过程。
主要图形元素有:圆形表示加工,箭头表示数据流,双杠表示存储文件,方框表示源、潭。
)7、程序流程图、N-S图、PAD图是详细设计过程中常用的图形工具。
8、数据库设计包括四个阶段:需求分析、概念设计、逻辑设计、物理设计。
【需求分析阶段的最后成果是软件需求规格说明书(准确地确定软件系统必须做什么和必须具备哪些功能);概要设计说明书、数据库说明书、集成计划测试计划都是概念设计阶段需要编写的文档。
将E-R图转换成关系数据模型的过程是逻辑设计。
全国计算机二级C 语言资格考试分析◆考试方式全国计算机等级考试二级C 语言每年上半年3 月份与9 月份两次考试,报名时间查看通知。
1.笔试:90 分钟,满分100 分,其中含公共基础知识部分的30 分。
2.上机:90 分钟,满分100 分3.上机操作包括:(1)填空。
(2)改错。
(3)编程。
◆题型分析二级C 考试分笔试和机试两部分,两部分总分均为100 分,两部分考试均需60 分以上才能合格发放证书。
若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补考合格发放证书。
若二科均在85 分以上,在合格证书上将加印“优秀”字样,若二科均在70 分以上,在合格证书上将加印“良好”字样。
(一)笔试笔试内容分两部分。
公共基础知识考核内容:30 分;C 语言基础知识考核内容:70 分。
题型分析如下:1、单向选择题40 道题,共70 分。
分值分布如下:其中(1)-(10)、(21)-(40)小题,每題2分,(11)-(20)小题,每题1分。
考核内容分布如下:(1)-(10)小题为公共基础知识考核内容,共计20 分;(11)-(40)小题为C 语言知识考核内容,共计50 分。
2、填空题15 个空,每空2 分,共30 分。
考核内容分布如下:(1)-(5)空为公共基础知识考核内容,共计10 分;(6)-(15)空为C 语言知识考核内容,共计20 分。
◆基本要求1.熟悉VisualC++6.0 集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在Visual C++ 6.0 集成环境下,能够编写简单的 C 程序,并具有基本的纠错和调试程序能力◆考试内容一、C 语言程序的结构1.程序的构成,main 函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3.源程序的书写格式。
4.C 语言的风格。
二、数据类型及其运算1.C 的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
计算机二级c语言考试及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义:int a=3, b=2;,则表达式a%b的值是多少?A. 0B. 1C. 2D. 3答案:B3. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strncpy答案:A4. 下面哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 若有定义:int x=10;,则执行语句x+=x-=x;后,x的值是多少?A. 0B. -10C. 10D. 20答案:A6. 在C语言中,以下哪个关键字用于声明一个联合体?A. structB. unionC. enumD. typedef答案:B7. 下列哪个选项不是C语言的标准输入输出函数?A. printfB. scanfC. coutD. getchar答案:C8. 在C语言中,以下哪个关键字用于声明一个枚举?A. structB. unionC. enumD. typedef答案:C9. 若有定义:int a=5, b=3;,则执行语句a+=b;后,a的值是多少?A. 8B. 3C. 5D. 2答案:A10. 在C语言中,以下哪个函数用于将字符串连接到另一个字符串?A. strcpyB. strcatC. strcmpD. strncpy答案:B二、填空题(每题2分,共20分)1. 在C语言中,声明一个整型变量并初始化为10,可以使用语句:int a = _______;。
答案:102. 若有定义:int a=5, b=3;,则执行语句a*=b后,a的值是_______。
答案:153. 在C语言中,若要比较两个字符串是否相等,可以使用函数_______。
计算机二级题库及答案c语言考试一、选择题1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x1AB. 0.123C. 1.2E3D. 0123答案:A2. 若有以下变量定义:```cint a = 10;float b = 12.5;```则以下哪个表达式的值是正确的?A. a + bB. a * bC. a / bD. a % b答案:A3. 下列哪个选项不是C语言中的关键字?A. intB. floatC. autoD. void答案:B4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A5. 若有以下函数定义:```cint max(int x, int y) {return x > y ? x : y;}```则调用该函数时,以下哪个选项是正确的?A. max(5, 3)B. max("5", "3")C. max(5.0, 3.0)D. max(5, '3')答案:A二、填空题1. 在C语言中,声明一个字符数组时,数组的大小必须______。
答案:指定2. 若定义一个指针变量p指向一个整型变量a,则p的类型应该是______。
答案:int*3. 在C语言中,使用______关键字可以定义一个静态局部变量。
答案:static4. 在C语言中,若要打开一个文件进行写操作,应该使用______函数。
答案:fopen5. 在C语言中,若要将一个字符串复制到另一个字符串中,可以使用______函数。
答案:strcpy三、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("The sum of even numbers within 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现两个整数的交换。
全国计算机等级考试二级C语言笔试试题及答案一、选择题(每小题2分,共70分)(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是 A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是A)提高耦合性降低内聚性有利他哦高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)对C++编译器区分重载函数无任何意义的信息是A)参数类型B)参数个数C)返回值类型D)常成员函数关键字coast(12)有如下类定义和变量定义:class A{publie:A(){data=0;}~A(){}int GetData () coast { return data;}void SetData(int n) {data=n;}private:int data;};ccnst A a;A b;下列函数调用中错误的是A)a .GetData();B)a .SetData(10);C)b .GetData();D)b .SetData(10);(13)有如下类定义和变量定义:class Parents{public:int publicuata;private:int privateData;};class ChildA:public Parents{/*类体略*/};class ChildB:private Parents{/*类体略*/);ChildA a;ChildBb;下列语句中正确的是A)cout<<a.publicData <<endl ;B)cout<<a.privateData <<endl ;C)cout<<b.publicData <<endl ;D)cout<<b.privateData <<endl ;(14)运算符重载时不需要保持的性质是A)操作数个数B)操作数类型C)优先级D)结合性(15)下列关于函数模板的描述中,错误的是A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D)模板参数表不能为空(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstream fin=ifstream.open(“file.dat”);B)ifstream*fir.=new ifstream(“file.dat”);C)ifstream fin; fin.open(“file.dat”);D)ifstream *fin=new ifstream();fin一>open(“file.dat”);(17)下列描述中,不属于面向对象思想主要特征的是A)封装性B)跨平台性C)继承性D)多态性(18)有如下程序段:Tnt i=4;int j=l;int main(){int i=8,j=i;cout<<i<<j<<endl;}运行时的输出结果是A)44B)41C)88D)81(19)有如下程序段:int i=5;while(int i=0){cout《'*';i--;}运行时输出“*”的个数是A)0B)1C)5D)无穷(20)己知有数组定义char a[3][4];下列表达式中错误的是A)a[2]=“WIN”B)strcpy(a[2],“WIN”)C)a [2][3]='W'D)a[0][1]=a[0][1](21)已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是A)char fun(int,int);B)double fun(int,int,double);C)int fun(int,char*);D)float fun (int, int, int);(22)建立一个类对象时,系统自动调用A)析构函数B)构造函数C)静态函数D)友元函数(23)通过派生类的对象可直接访问其A)公有继承基类的公有成员C)私有继承基类的公有成员D)私有继承基类的私有成员(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为A)a .orerator++(1)B)operator++(a)C)operator++(a,l)D)a.operator++()(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是A)()B)[ ]C)< >D){ }(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 A)ios_base::inB)ios_base::in|ios_base::outC)ios_base::outD)ios_base::in&ios_base::out(27)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCD{char* a;int b;public:XCD(char* aa, int bb){a=new char[strlen(aa)+1];strcpty(a,aa);b=bb;}Char* Geta (){return a;)int Getb(){ return b;}};int main(){char *pl=“abcd”,*p2=“weirong”;int dl=6, d2=8;XCD x(pl,dl),Y(p2,d2);cout<<strien (x .Geta())+y. Getb()+endl;return 0;}运行时的输出结果是A)12B)16C)14D)11(28)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCF{int a;XCF(int aa=0):a (aa){cout<<“1”;}XCF(XCF& x){a=x .a; cout<<“2”;)~XCF(){cout<<a;}int Geta(){return a;}};int main(){XCF dl(5),d7 (dl);XCF *pd=new XCF(8);cout<<pd一>Geta();delete pd;return 0;}运行时的输出结果是A)121SS88B)12188SSC)12185D)128512(29)已知类MyClass声明如下:class MyClass{int n;public;MyClass(int k):n(k){}int getValue()const{return n;}};在下列数组定义中正确的是A)MyClass x1[2];B)MyClass x2[2]={new MyClass(1),new MyClass(2)};C)MyClass *x3[2];D)MyClass *x4[2]={MyClass(1),MyClass(2)};(30)有如下程序:#include<iostream>using namespace std;class AA{lilt k;protected:int n;void setK(int k){ this->k=k;}public:void setN(int n){ this->n=n;}};class BB: public }{/*类体略*/};int main(){BB x_ ; //1x .n=1; //2x.setN (2); //3x.k=3; //4x .setK(4);return 0;}在标注号码的四条语句中正确的是A)1B)2C)3D)4(31)有如下类定义:class XX{int xx;public:XX():xx(0){cout<<' A';}XX(int n):xx ( n){tout<<' B';}};Class YY:public XX{Int yy;public:YY():yy ( 0){cout+yy;}YY(int n):XX(n+1),yy(n){cout<<yy;}YY (int m, int n):XX (m),yy(n){cout<<yy;} };下列选项中,输出结果为A0的语句是A)YY y1(0,0);B)YY y2(1);C)YY y3(0);D)YY y4;(32)有如下程序:#include<iostream>Using namespace std;class A{public:virtual void f(){cout+1;}void g(){cout<<2;}};class B:public A{public:virtual void f(){cout<<3;}void g(){ecut<<4;}};void show(A &a){a.f();a.g();}int main(){B b;show(b);return 0;}运行时的输出结果是A)12B)34C)14D)32(33)有如下程序:#include<iostream>using namespace std;class Pair{int m;int n;public:boot operator >(pair p)const; //须在类体外给出定义};int main(){Pair Al(3,4),p2(4,3);p3(4,5);Cout<<(pl>p2)<<(P2>P1)<<(p2>p3)<<(p3>p2);return 0;}运算符函数。
全国计算机二级C语言资格考试分析
◆考试方式
全国计算机等级考试二级C语言每年上半年3月份与9月份两次考试,报名时间查看通知。
1.笔试:90分钟,满分100分,其中含公共基础知识部分的30分。
2.上机:90分钟,满分100分
3.上机操作包括:
(1)填空。
(2)改错。
(3)编程。
◆题型分析
二级C考试分笔试和机试两部分,两部分总分均为100分,两部分考试均需60分以上才能合格发放证书。
若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补考合格发放证书。
若二科均在85分以上,在合格证书上将加印“优秀”字样,若二科均在70分以上,在合格证书上将加印“良好”字样。
(一)笔试
笔试内容分两部分。
公共基础知识考核内容:30分;C语言基础知识考核内容:70分。
题型分析如下:
1、单向选择题40道题,共70分。
分值分布如下:
其中(1)-(10)、(21)-(40)小题,每題2分,(11)-(20)小题,每题1分。
考核内容分布如下:
(1)-(10)小题为公共基础知识考核内容,共计20分;
(11)-(40)小题为C语言知识考核内容,共计50分。
2、填空题15个空,每空2分,共30分。
考核内容分布如下:
(1)-(5)空为公共基础知识考核内容,共计10分;
(6)-(15)空为C语言知识考核内容,共计20分。
◆基本要求
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函数的应用)。
◆考试重点
一般每3年教材作一次调整,通过对最近3年等级考试真题分析,各章内容及出题比例大约如下表所示。