}
A)1
B)2
C)3
D)4
(12)若执行以下程序时从键盘上输入3和4,则输出结果是_______。
#include
voidmain()
{inta,b,s;
cin>>a>>b;
s=a;
if(a
s*=s;
cout<
}
A)14
B)16
C)18
D)20
(13)以下程序段的输出结果是_______。
intk,j,s;
for(k=2;k<6;k++,k++)
{s=1;
for(j=k;j<6;j++)s+=j;
}
cout<
A)9
B)l
C)11
D)10
(14)以下正确的函数原型为_______。
A)ff(intx,inty)
B)voidff(x,y);
C)voidff(intx,y);
D)voidff(int,int);
(15)以下叙述正确的是_______。
A)do_while语句构成的循环不能用其它语句构成的循环来代替。
B)do_while语句构成的循环只能用break语句退出。
C)用do_while语句构成循环时,在while后的表达式为非零时结束循环。
D)用do_while语句构成循环时,在while后的表达式为零时结束循环。
(16)若有以下程序
#include
classCC
{
charc1,c2;
public:
CC(chara,charb){c1=a;c2=b;}
~CC()
{
cout<}
voiddisp()
{
if(c1>c2)
cout<"<else
cout<"<}
};
voidmain()
{
CCc('X','Y');
c.disp();
}
则程序运行后的输出结果是________
A)XY
Y>X
B)Y>X
XY
C)Y>X
D)XY
(17)以下程序段的输出结果是_______。
charc1='A',c2='Y';
cout<A)因输出格式不合法,无正确输出
B)65,90
C)A,Y
D)65,89
(18)以下说法中正确的是_______。
A)C语言程序总是从第一个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main函数中定义
C)C语言程序总是从main函数开始执行
D)C语言程序中的main函数必须放在程序的开始部分
(19)以下程序的输出结果是_______。
#include
intxyz(inta,intb)
{intc;
c=a+b;
returnc;
}
voidmain()
{intx=6,y=7,z=8,r;
r=xyz((x--,y++,x+y),z--);
cout<}
A)11
B)20
C)21
D)31
(20)若有定义:
intx,*pb;则以下正确的赋值表达式是_______。
A)pb=&x
B)pb=x
C)*pb=&x
D)*pb=*x
(二)操作题
1、简单操作题(35分)
(1)以下程序中f()函数的形式参数有2个
#include
f(intb[],intn)
{
inti,r=1;
for(i=0;i<=n;i++)r=r*b[i];
returnr;
}
voidmain()
{
intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
cout<}
(2)编写一个C++程序,打印以下图案
*
***
*****
***
*
参考程序:
#include
voidmain(){
for(inti=0;i<3;i++){
for(intj=0;j<2-i;j++)cout<<'';
for(intk=2-i;k<3+i;k++)cout<<'*';
cout<}
for(intii=3;ii<5;ii++){
for(intj=0;jfor(intk=ii-2;k<=6-ii;k++)cout<<'*';
cout<}
}
2、简单应用题(20分)
(1)在以下C++程序的两行星号之间填入相应的语句,以完成fun函数部分。
该程序用于求两个由键盘输入的数字的最大公约数。
#include
intfun(intnum1,intnum2);
main()
{
ints,num1,num2;
cout<<"Inputanumber:
";
cin>>num1;
cout<<"Inputanothernumber:
";
cin>>num2;
s=fun(num1,num2);
cout<<"Theresultis:
"<
}
intfun(intnum1,intnum2)
{intr;
if(num1r=num1;num1=num2;num2=r;
}
do{
r=num1%num2;
num1=num2;
num2=r;
}while(r);
returnnum1;
}
3、综合应用题(25分)
编写程序,定义一个类square(正方形),其成员数据及函数要求如下:
①私有数据成员 floatradius(代表边长)
②构造函数 square(floatd=0)当参数缺省时将数据成员radius的值设置为0,否则设置为参数d的值
③成员函数floatperimeter(floatd)计算出周长。
(注:
正方形的周长为:
l=4*r)
参考程序:
#include
classsquare{
private:
floatradius;
public:
square(floatd=0){
radius=d;
}
floatperimeter(floatd){
return4*d;
}
};
voidmain(){
floatm;
cout<<"输入正方形的边长:
";
cin>>m;
squarea(m);
cout<}
一、考试目的与要求
学生应了解计算机程序设计的基本知识,掌握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、选择结构的嵌套
㈣循环结构程序设计
【考试要求】
领会程序设计中构成循环的方法;掌握for、while、do-while语句的用法;了解break、continue在循环语句中的作用。
【主要考点】
1、for循环结构
2、while和dowhile循环结构
3、continue语句和break语句
4、循环的嵌套
㈤数组的定义和引用
【考试要求】
了解一维数组、二维数组的基本概念;掌握数组类型变量的定义与引用;掌握数组元素的引用。
【主要考点】
1、一维数组和多维数组的定义和初始化
2、数组的引用
3、字符串与字符数组
4、字符串处理函数(strlen,strcpy,strcat,strcmp)
㈥函数
【考试要求】
掌握函数的定义与调用;掌握函数参数的传递方式;领会变量存储类型的概念及各种存储类型变量的生存期和有效范围;领会函数的嵌套调用与递归调用
【主要考点】
1、函数的定义方法
2、函数的类型和返回值
3、形式参数与实在参数;参数值的传递
4、函数的正确调用;嵌套调用和递归调用
5、内联函数和函数重载
6、局部变量和全局变量
7、变量的存储类别和作用域
㈦指针
【考试要求】
了解指针与地址的概念;掌握指针变量的定义、初始化及指针的运算;掌握指针与数组、指针数组、指针实现字符串等知识;了解指针与函数的概念。
【主要考点】
1、指针变量的定义和初始化
2、指针的赋值
3、指针的运算
4、指针与数组
5、指针与字符串
6、指针用作函数参数
㈧结构与联合
【考试要求】
掌握结构体和联合体类型的说明、结构体和联合体变量的定义及初始化方法;掌握结构体与联合体变量成员的引用。
【主要考点】
1、结构体和联合体类型数据的定义方法和初始化
3、结构体和联合体类型的说明及结构体类型变量的定义
4、结构体和联合体变量的初始化
5、结构体和联合体变量的引用
6、结构体数组
㈨基本语句
【考试要求】
了解面向对象类和对象的概念;掌握构造、析构函数的定义和使用;类的继承性。
【主要考点】
1、类的创建和引用对象
2、构造函数与析构函数
3、派生类的定义和访问权限
4、单一继承与多重继承
㈩了解C++流的概念,掌握标准设备输入/输出函数的使用
【考试要求】
了解C++流的概念;掌握标准设备输入/输出函数的使用。
【主要考点】
1、文件类型指针
2、文件的打开与关闭
3、文件的读写
4、输入输出的控制格式
三、考试方式
机试。
考试时间为105分钟。
四、考试题目类型
考试分两部分:
理论题(20分)、编程题(80分)。
理论题主要由单项选择题组成。
编程题分简单操作题、简单应用题和综合应用题3种类型的考题。