下面是计算机水平考试的二级的c++程序设计的考试大纲,如果想考别的证书,可以通过
管理中心报名系统https://bm.ykoa.net/
来选对你有用的计算机水平考试的证书。如果还是想考计算机水平考试的二级的c++程序设计的话,后续我会发考试题给大家练(一套一套的发,做完了,在评论区找我要答案或者对于代码哪里不懂的话,也可以评论区问我)
一、考试目的与要求
学生应了解计算机程序设计的基本知识,掌握 C++语言程序设计的基本方法和使用计算机处理问题的
思维方法,具有应用计算机编程的初步能力。
1、了解 C++语言的特点,掌握语言的成份及其使用方法,能够阅读及编写简单的应用程序;
2、掌握最基本的算法和实现的方法;
3、掌握结构化程序设计的方法,能编制出风格良好的程序;
4、掌握 C++语言程序调试的基本技能。
二、考试内容
(一)数据类型及其运算
【考试要求】
了解基本类型及其常量的表示法;掌握变量的定义及初始化方法;掌握运算符与表达式的概念;掌握
C++
的自动类型转换和强制类型转换。
【主要考点】
1
、数据类型的种类
2
、各种数据类型的定义方法
3
、运算符的种类
4
、运算符优先级和结合性
5
、不同类型数据间的转换与运算
(二)基本语句
【考试要求】
了解
C
语句的概念及种类;掌握
C
语言常用的输入
/
出方式。
【主要考点】
1
、表达式语句、空语句、复合语句
2
、数据的输入与输出
3
、输入输出函数
printf
、
scanf
的使用
(三)选择结构程序设计
【考试要求】
熟练掌握
if
…
else
的三种语法;领会
switch
与
break
语句的作用。
【主要考点】
1
、
if
语句
2
、
switch
语句
3
、选择结构的嵌套
1/8
(四)循环结构程序设计
【考试要求】
领会程序设计中构成循环的方法;掌握
for
、
while
、
do-while
语句的用法;了解
break
、
continue
在循
环语句中的作用。
【主要考点】
1
、
for
循环结构
2
、
while
和
do while
循环结构
3
、
continue
语句和
break
语句
4
、循环的嵌套
(五)数组的定义和引用
【考试要求】
了解一维数组、二维数组的基本概念;掌握数组类型变量的定义与引用;掌握数组元素的引用。
【主要考点】
1
、一维数组和多维数组的定义和初始化
2
、数组的引用
3
、字符串与字符数组
4
、字符串处理函数
(strlen, strcpy, strcat, strcmp)
(六) 函数
【考试要求】
掌握函数的定义与调用;掌握函数参数的传递方式;领会变量存储类型的概念及各种存储类型变量的
生存期和有效范围;领会函数的嵌套调用与递归调用
【主要考点】
1
、函数的定义方法
2
、函数的类型和返回值
3
、形式参数与实在参数;参数值的传递
4
、函数的正确调用;嵌套调用和递归调用
5
、内联函数和函数重载
6
、局部变量和全局变量
7
、变量的存储类别和作用域
(七) 指针
【考试要求】
了解指针与地址的概念;掌握指针变量的定义、初始化及指针的运算;掌握指针与数组、指针数组、
指针实现字符串等知识;了解指针与函数的概念。
【主要考点】
1
、指针变量的定义和初始化
2
、指针的赋值
3
、指针的运算
4
、指针与数组
2/8
3/8
5
、指针与字符串
6
、指针用作函数参数
(八) 结构与联合
【考试要求】
掌握结构体和联合体类型的说明、结构体和联合体变量的定义及初始化方法;掌握结构体与联合体变
量成员的引用。
【主要考点】
1
、结构体和联合体类型数据的定义方法和初始化
3
、结构体和联合体类型的说明及结构体类型变量的定义
4
、结构体和联合体变量的初始化
5
、结构体和联合体变量的引用
6
、结构体数组
(九) 基本语句
【考试要求】
了解面向对象类和对象的概念;掌握构造、析构函数的定义和使用;类的继承性。
【主要考点】
1
、类的创建和引用对象
2
、构造函数与析构函数
3
、派生类的定义和访问权限
4
、单一继承与多重继承
(十) 了解
C++
流的概念,掌握标准设备输入
/
输出函数的使用
【考试要求】
了解
C++
流的概念;掌握标准设备输入
/
输出函数的使用。
【主要考点】
1
、文件类型指针
2
、文件的打开与关闭
3
、文件的读写
4
、输入输出的控制格式
三、考试方式
机试。考试时间为
105
分钟,满分
100
分。
四、考试题目类型
理论题(
20 分):主要由单项选择题组成;
编程题(
80 分):分为简单操作题、简单应用题和综合应用题 3 种类型的考题。
4/8
五、考试样题
(一)理论题(
20
分,每小题
1
分)
(
1
)已定义一个整型变量
x
,则表达式
x=1, x++, x+2
的值是
_________
。
A) 1
B) 2
C) 3
D) 4
(
2
)以下选项中不正确的实型常量是
_______
。
A) 2.607E
–
1
B) 0.8103e2.1
C) –77.77
D) 456e–2
(
3
)以下选项中不合法的用户标识符是
_______
。
A) abc.c
B) file
C) Main
D) PRINTF
(
4
)
C
语言中运算对象必需是整型的运算符是
_______
。
A)
%
B)
/
C) !
D) **
(
5
)
.
若
a
、
b
、
c
、
d
都是
int
类型变量且初值为
0
,以下选项中不正确的赋值语句是
_______
。
A) a=b=c=100;
B) d=(c=22)–(b++);
C) c+=b;
D) d++;
(
6
)
C
语言中不合法的字符常量是
_______
。
A) ‘\0xff’
B) ‘\65’
C) ‘&’
D) ‘\028’
(
7
) 对象的初始化是通过
________
实现的。
A)
友元函数
B)
构造函数
C)
析构函数
D)
递归函数
(
8
)已知
x=496
,则执行
printf(“*%06d*\n”,x);
后输出是
_______
。
A) *496
*
B) *
496*
C) *000496*
D)
输出格式符不合法
(
9
)若有以下程序段,其输出结是
_______
。
int a=0, c=0;
5/8
c=(a-=a-5);
cout<<a<<c<<endl;
A) 00
B) 5,5
C) –5,5
D) –10– 10
(
10
)设
a=3
、
b=4
、
c=5
,则逻辑表达式:
!(a+b)+c–1 && b+c/2
的值是
_______
。
A) –1
B) 0
C) 1
D) true
(
11
)以下程序的输出结果是
_______
。
#include <iostream.h>
void main()
{ int w=4,x=3,y=2,z=1;
cout<<(w<x?w :z<y ? z :x)<<endl;
}
A) 1
B) 2
C) 3
D) 4
(
12
)若执行以下程序时从键盘上输入
3
和
4
,则输出结果是
_______
。
#include <iostream.h>
void main()
{ int a,b,s;
cin>>a>>b;
s=a;
if(a<b)
s=b;
s*=s;
cout<<s<<endl;
}
A) 14
B) 16
C) 18
D) 20
(
13
)以下程序段的输出结果是
_______
。
int k,j,s;
for (k=2; k<6;k++, k++)
{ s=1;
for (j=k;j<6; j++) s+=j;
}
cout<<s<<endl;
A) 9
B) l
C) 11
D) 10
(
14
)以下正确的函数原型为
_______
。
A) ff(int x, int y)
B) void ff(x,y);
C) void ff(int x,y);
D) void ff(int, int);
(
15
)以下叙述正确的是
_______
。
A) do_while
语句构成的循环不能用其它语句构成的循环来代替。
B) do_while
语句构成的循环只能用
break
语句退出。
C)
用
do_while
语句构成循环时,在
while
后的表达式为非零时结束循环。
D)
用
do_while
语句构成循环时,在
while
后的表达式为零时结束循环。
(
16
)若有以下程序
#include<iostream.h>
class CC
{
char c1,c2;
public:
CC(char a,char b){c1=a;c2=b;}
~CC()
{
cout<<c1<<c2<<endl;
}
void disp()
{
if(c1>c2)
cout<<c1<<">"<<c2<<endl;
else
cout<<c2<<">"<<c1<<endl;
}
};
void main()
{
CC c('X', 'Y');
c.disp();
}
则程序运行后的输出结果是
________
A) XY
Y>X
B) Y>X
XY
C) Y>X
D) XY
(
17
)以下程序段的输出结果是
_______
。
6/8
7/8
char c1='A', c2='Y';
cout<<c1<<c2<<endl;
A)
因输出格式不合法,无正确输出
B) 65,90
C) A, Y
D) 65,89
(
18
)以下说法中正确的是
_______
。
A) C
语言程序总是从第一个定义的函数开始执行
B)
在
C
语言程序中,要调用的函数必须在
main
函数中定义
C) C
语言程序总是从
main
函数开始执行
D) C
语言程序中的
main
函数必须放在程序的开始部分
(
19
)以下程序的输出结果是
_______
。
#include <iostream.h>
int xyz(int a, int b)
{ int c;
c=a+b;
return c;
}
void main()
{ int x=6,y=7,z=8,r;
r=xyz((x--,y++,x+y),z--);
cout<<r<<endl;
}
A) 11
B) 20
C) 21
D) 31
(
20
)若有定义
: int x
,
*pb;
则以下正确的赋值表达式是
_______
。
A) pb=&x
B) pb=x
C) *pb=&x
D) *pb=*x
(二)操作题
1
、简单操作题(
35
分)
(
1
)打开
proj1.cpp
,按照以下要求,完成操作:
1)
求出能整除
k
且是偶数的数,并将这些数按从大到小的顺序输出,例如当
k=20
时,输出
20
,
10
,
4
,
2
;
2)
请按照注释的要求在程序的“
_______
”部分填入适当的内容并去掉程序中的“
_____
”,使程序
能正确运行,保存文件。
(15
分
)
(
2
)打开
proj2.cpp
,按照以下要求,完成操作:
1)
请补充函数
fun
,该函数的功能是,根据整型参数
m
的值,计算如下公式
t=1-1/(2*2)-1/(3*3)-
…
-1/(m*m)
的值。
8/8
2)
请按照注释的要求在程序的“
_______
”部分填入适当的内容并去掉程序中的“
_____
”,使该公
式能得出正确的结果,保存文件。
(20
分
)
2
、简单应用题(
20
分)
(
1
)
在以下
C++
程序的两行星号之间填入相应的语句,以完成
fun
函数部分。该程序用于求两个由键盘输
入的数字的最大公约数。
#include <iostream.h>
int fun(int num1,int num2);
main()
{
int s,num1,num2;
cout<<"Input a number:";
cin>>num1;
cout<<"Input another number:";
cin>>num2;
s=fun(num1,num2);
cout<<"The result is : "<<s;
}
int fun(int num1,int num2)
{
********************************************************
********************************************************
}
3
、综合应用题(
25
分)
打开
proj4.cpp
,按照以下要求,完成操作:
已知一个源程序文件
proj4.cpp
,此程序通过继承关系,实现对姓名的设置。类
TestClass1
实现对名字访问,
TestClass2
实现对名字的设置和输出。程序在屏幕上输出为如图所示。
这个程序不完整,请按照以下要求将程序补充完整。
(
1
)在类
TestClass1
中定义函数
GetName
为虚函数,请在注释
//***1***
之后添加适当语句。
(
2
)定义函数
GetName()
为实现获得名字的缓存,请在注释
//***2***
之后添加适当语句。
(
3
)完成
TestClass2
函数的定义,请在注释
//***3***
之后添加适当语句。
(
4
)完成
TestClass2
函数的操作,实现对名字的处理,请在注释
//***4***
之后添加适当语句
谢谢各位看官的观看,如果有帮助,给我点个关注点的赞,谢谢。