2015年C++程序设计单元综合测试(一)
-
给出下面程序的输出结果
#include
using namespace std;
int min(int a,int b)
{
if(a
else return b;
return 0;
}
void main()
{
cout<
}
-
编写函数模板 void change(T &i,T &j),能够实现整型数据、实型和字符串的交换,并编写测试的主函数。
-
写出模板函数实现数值型数组元素值按从小到大排序的程序。
#include
using namespace std;
template
void sort(T b[],int n)
{
T temp;
int i,j;
T *a=new T[n];
for (i=0;i
for(i=0;i
{
for(j=i+1;j
{ if(a[i]>a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i
cout<
delete []a;
}
void main()
{
int i,n=6;
int a[]={5,1,9,10,3,8};
____________;
for(i=0;i
{cout<
cout<
}
-
给出下面程序的输出结果。
#include
using namespace std;
void main()
{
int num=0,i=8;
do
{
i--;
num++;
}while(--i);
cout<
}
-
有一字符串,包含那个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
#include
using namespace std;
void copystr(_______________)
{
int n=0;
while(n
{
n++;
p1++;
}
while(*p1!='\0')
{
*p2=*p1;
p1++;
p2++;
}
*p2='\0';
}
void main()
{
int m;
char str1[20],str2[20];
cout<<"输入字符串1:";
______________;
cout<<"从第m个字符串开始复制,请输入m:";
cin>>m;
if(strlen(str1)
cout<<"输入超过str1的长度"<
else
{
copystr(str1,str2,m);
cout<<"复制的字符串是:"<
}
}
-
#include
using namespace std;
int fun1(int);
void main()
{
int i=12;
___________;
___________;
cout<<"fun1:"<<(*fp)(i)<
}
int fun1(int k)
{
k=k*2+1;
return k;
}
-
运行结果如下:
AAAbBB
BB
CCC
程序如下:
#include
void main()
{
char ch[3][4]={"AAA","BB","CCC"},(*q)[4]=ch,*p;
int i;
___________
*p='b';
___________
for(i=0;i<3;i++)
{
cout<
}
}
-
#include
void main()
{
int n;
cin>>n;
cin.get();
char s[n];
cin.getline(s,n);
cout<
delete s;
}
-
计算1~20之间偶数之和。
#include
void main()
{
int a,i;
a=0;
for(i=0;i<21;________)
{
_______________
}
cout<<"偶数之和为:"<
}
-
#include
#include
using namespace std;
class MyClass
{
public:
MyClass(int i=0){member=i;}
void SetMember(const string m){member="big"+m;m=member;}
string GetMember(){return member;}
void print()const{cout<<"Stu:"<
private:
string member;
};
void main()
{
MyClass obj1,*obj2;
string i="wang lin";
obj2=&obj1;
obj2->SetMember(i);
obj1.print();
}
-
#include
#include
using namespace std;
template
T Max(T a,T b)
{return a>b? a:b;}
T Mix(T a,T b)
{return a>b? b:a;}
void main()
{
cout<<"Max(3,5)"<
(3,5)< cout<<"Mix(3,5)"<
(3,5)< }
-
#include
void main()
{
int x=32,y=37;
const int *p=&x;
*p=y;
cout<<*p<
}
-
#include
class A
{
private:
int x,y;
public:
void f1(int i=0,int j=0){x=i;y=j;}
void print(){cout<
void f1(int i=0){x=i,y=0;}
};
void main()
{
A a;
a.f1(5);
a.print();
}
-
在STL库中用于查找数组内容的函数是___________。
-
C++语言提供的基本操控符可以分为3种类型:顺序结构、选择结构和_________。
-
类的继承是指派生类继承基类数据成员和__________。
-
设在程序中使用如下语句申请一个对象数组:
Shape *p1=new Shape[3];
则在需要释放p1指向的数组对象时,使用的语句是____________。
-
在C++标准库中,使用________类来表示复数。
-
C++提供了两种格式控制方式:使用_________类提供的借口和使用带操控符的特殊函数。
-
在结构体中定义的函数称为___________。
-
C++语言支持_________,实际上就是变量的别称。
-
决定C++语言中函数返回类型的是___________________。
-
目前,有两种重要的程序设计方法,分别是结构化程序设计和__________程序设计。
-
下面程序运行结束后,k的值为________。
#include
void main( )
{int i,j,k;
for(i=0;j=10;i<=j;i++,j--)
k=i+j;
cout<
}
-
C++程序一般可以分为4个部分:程序的主函数、全局说明、__________、和用户自定义的函数。
-
程序需要执行键盘输入时,使用_______运算符。
-
C++结构体中的成员默认访问权限为________。
-
函数fun的返回值是一个整形数据的引用,有两个参数都是int,声明fun函数的原型是
____________________。
-
使用关键字________说明的函数是内联函数。
-
如果调用函数是,需要改变实参或者返回多个值,应该采取________方式。
-
对数组进行升幂排序、反转、复制数组的内容等操作需要包含头文件____________。
-
C++中只有两个逻辑常量:ture和_________。
-
________指令指示编译器将一个源文件嵌入到带该指令的源文件之中。
-
C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是
- A.增加了一些新的运算符
- B.允许函数重载,并允许设置缺省参数
- C.规定函数说明符必须用原型
- D.引进了类和对象的概念
-
设int & max(int &,int &)返回两参数中较大者,如有两整型变量int a=5;int b=10;在执行max(a,b)++后,a,b的值分别为
- A.5,10
- B.6,10
- C.5,11
- D.6. 11
-
内联函数的特点是
- A.减少代码量,加快访问速度
- B.减少代码量,减缓访问速度
- C.增加代码量,减缓访问速度
- D.增加代码量,加快访问速度
-
多态是指
- A.不同的对象调用不同名称的函数
- B.不同的对象调用相同名称的函数
- C.一个对象调用不同名称的函数
- D.一个对象调用不同名称对象
-
下列有关设置函数参数的描述中,正确的是
- A.设置了默认参数的参数右边允许出现没有指定默认值的参数
- B.参数默认值的设置顺序从参数表的左端开始
- C.参数默认值要设置在定义语句的时候,不能设置在声明语句中
- D.参数默认值可以是数值也可以是表达式
-
下面属于重载函数的有 【 】
- a.void f(int x)(…) b. int f(int y)(…)
- c.intf(int i,int j)(…) d.float k(int x) (…)
- A. 4个全部
- B.a和d
- C.b和c
- D.c和d
-
下列模板定义中不正确的是
- A.emplate
Q F(Q x){return Q+x;} - B.template
Q F(Q x){return x+x;} - C.template
T F(T x){return x * x;} - D.template
T F(T x){return x;}
- A.emplate
-
下列数组的定义中,错误的是
- A.char ca1[ ]={‘c’,’m’,’n’};
- B.char ca2[6]=”name”;
- C.char ca3[4]=”your”;
- D.iznt arry[ ]={1,2,3,4};
-
在C++中,数据封装要求解决的问题是
- A.实现规范化
- B.防止书写错误
- C.防止非法访问
- D.实现类型转换
-
设存在函数int sum(int,int)返回两个参数的和,若求20、45、100三个数的和,下列表达式不正确的是
【 】
- A.int m=sum(20,45,100) ;
- B.int m=sum(sum(20,45),100);
- C.int m=sum(20,sum(45,100));
- D.int m=sum(45,sum(20,100));
-
使用输入输出操控符setw,可以控制 【 】
- A.输出精度
- B.输出宽度
- C.对齐方式
- D.填充字符
-
已定义了一个类A并有语句A* pa=new A(5);,那么下列说法正确的是 【 】
- A.该语句会创建A类的一个对象,并将此对象的地址赋给指针pa
- B.该语句会创建A类的5个对象,且他们的地址是连续的
- C.当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放
- D.类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数
-
C++的合法注释是
- A./*This in a C progream/*
- B.// This in a C progream
- C. “This in a C progream”
- D.// This in a C progream//
-
C++程序执行总是从【 】开始的。
- A.main函数
- B.第一行
- C.头文件
- D.函数注释
-
释放关键字new所开辟的动态存储空间必须使用
- A.create
- B.free
- C.release
- D.delete
-
下列关于类和对象的说法不正确的是
- A.对象是类的一个实例
- B.一个类只能有一个对象
- C.一个类只能有一个名字
- D.类和对象的关系与数据类型和变量的关系相似
-
在C++中使用流进行输入输出,其中用于键盘输入的对象是 【 】
- A.cerr
- B.cin
- C.cout
- D.cfile
-
下列表达式中不可能作为左值(赋值运算符左侧)的是
- A.a=b
- B.*p
- C.f(a,b)
- D.&a
-
C++源文件的扩展名为 【 】
- A..cpp
- B..c
- C. .txt
- D..exe
-
下列标识符中真确的是
- A.abc
- B.3ab
- C.int
- D.+ab