永发信息网

C++的题目请教

答案:2  悬赏:50  手机版
解决时间 2021-02-02 18:55
  • 提问者网友:轮囘Li巡影
  • 2021-02-02 07:54
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、一个____允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
A函数模板 B模板函数 C类模板 D模板类
7、如果一个类至少有一个纯虚函数,那么就称该类为____。
A抽象类 B虚基类 C派生类 D以上都不对
8、____提供了类对外部的接口,而____不允许外界访问,但允许派生类的成员访问。
A公有成员 B私有成员 C私有成员函数 D保护成员
9、____不是构造函数的特征。
A构造函数的函数名与类名相同 B构造函数可以重载
C构造函数可以设置缺省参数 D构造函数必须指定类型说明
10、关于成员函数特征的下列描述中,___是错误的。
A成员函数一定是内联函数 B成员函数可以重载
C成员函数可以设置缺省函数参数值 D成员函数可以是静态的
11、关于new运算符的下列描述中,___是错误的。
A它可以用来动态创建对象和对象数组
B使用它创建的对象或对象数组可以使用运算符delete删除
C使用它创建对象时要调用构造函数
D使用它创建对象数组时必须指定初始值
12、 const int *p说明不能修改____。
A p指针 B p指针指向的变量
C p指针指向的数据类型 D上述ABC三者
13、下列描述中,正确的是__。
A虚函数是一个static类型的成员函数
B虚函数是一个非成员函数
C抽象类是指具有纯虚函数的类
D抽象类可以说明其对象

14、运算符重载的作用是__d__。
A提高程序的运行效率 B加强类的继承性
C增加数据的安全性 D增加程序的可读性
15、在C++中,关于下列函数参数的描述中,__b__是正确的。
A C++语言中,实参是按照自左至右的顺序求值的
B若一个参数设置了默认值,则其右边的所有参数都具有默认值
C函数参数的默认值不允许是表达式
D设置参数默认值时,应该全部参数都设置
16、在__c__情况下适宜采用inline定义内联函数。
A函数体会有循环语句 B函数体会有递归语句
C函数代码小,频繁调用 D函数代码多,不常调用
17、定义析构函数时,应该注意—C—。
A其函数名与类名完全相同 B函数返回类型是vold类型
C无形参,也不可重载 D函数中必须有delete语句
18、 int * const p说明不能修改__a__
A p指针 B p指针指向的变量
C p指针指向的数据类型 D上述ABC三者
19、关于堆运算符(new ,delete)的下列描述中,__C__是错误的。
A使用堆运算符可以动态建立或删除对象
B new运算符创建对象时要调用构造函数
C可以在使用new[]创建数组时,为每个数组元素指定初始值
D delete运算符可以作用于空指针
20、下列描述中,_d___是抽象类的特性
A可以说明虚函数 B可以进行构造函数重载
C可以定义友元函数D不能说明其对象
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-02-02 09:28
太多了
全部回答
  • 1楼网友:廢物販賣機
  • 2021-02-02 09:57

#include "stdio.h" #include "iostream"

//从大到小排序 void sortfrombigtosmall(int numbers[],int output[],int count) {  bool flag;

 for (int i=1;i<=count-1;++i)  {   flag = true; //默认每次都是排好了序列

  for (int j=0;j<count-1;++j)   {    if(numbers[j]<numbers[j+1])    {     int temp = numbers[j];     numbers[j]=numbers[j+1];     numbers[j+1]=temp;     flag=false; //又排序了,可见没有排好    }   }

  if(flag) //如果排好了,拷贝数组并且退出   {    for (int i=0;i<count;++i)    {     output[i]=numbers[i];    }    break;   }  }

}

//原数组查找,返回-1下标没有找到 int findnumberbyorigin(int numbers[],int count,int number) {  for (int i=0;i<count;++i)  {   if (numbers[i]==number)   {    return i;   }  }  return -1; }

//折半查找 int binaryfindnumber(int numbers[],int count,int number) {  int top = 0;  int bottom = count-1;  int middle = (top+bottom)/2;

 while(numbers[middle]!=number && bottom>=top)  {   if(numbers[middle]>number) //比查找的数值小   {    top = middle+1;   }   else if (numbers[middle]<number)   {    bottom = middle -1;   }    middle = (top+bottom)/2;  }

 if(numbers[middle]==number)  {   return middle;  }  return -1;

}

//打印输出 void printout(int numbers[], int count) {  printf("排序后的数组:\n");  for (int i=0;i<count;++i)  {   printf("%d ",numbers[i]);  } }

void main() {  int numbers[]={1,0,9,2,5,3,0,3,0,2,3,3};  int output[12];  int number = 0;

 //排序归类并打印  sortfrombigtosmall(numbers,output,12);  printout(output,12);

 printf("\n\n输入一个要查找的数字:");  scanf("%d",&number);

 //一般方法查找  int result = findnumberbyorigin(numbers,12,number);  printf("按照顺序查找法结果:\n");  printf(result==-1?"没有找到!\n\n":"该数在原数组的下标是:%d \n\n",result);

 printf("按照折半查找法结果:\n");  result = binaryfindnumber(output,12,number);  printf(result==-1?"没有找到!":"该数在原数组的下标是:%d ",result);  //system("pause");

}

【说明:使用vc++写,根据实际情况可以修改】

运行情况:

1)没找到:

2)找到了:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯