一起答

2015年C++程序设计单元综合测试(一)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 给出下面程序的输出结果

    #include

    using namespace std;

    int min(int a,int b)

    {

    if(a

    else return b;

    return 0;

    }

    void main()

    {

    cout<

    }

  2. 编写函数模板 void change(T &i,T &j),能够实现整型数据、实型和字符串的交换,并编写测试的主函数。

  3. 写出模板函数实现数值型数组元素值按从小到大排序的程序。

    #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<

    }

  4. 给出下面程序的输出结果。

    #include

    using namespace std;

    void main()

    {

    int num=0,i=8;

    do

    {

    i--;

    num++;

    }while(--i);

    cout<

    }

  5. 有一字符串,包含那个字符。写一函数,将此字符串中从第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<<"复制的字符串是:"<

    }

    }

  6. #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;

    }

  7. 运行结果如下:

    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<

    }

    }

  8. #include

    void main()

    {

    int n;

    cin>>n;

    cin.get();

    char s[n];

    cin.getline(s,n);

    cout<

    delete s;

    }

  9. 计算1~20之间偶数之和。

    #include

    void main()

    {

    int a,i;

    a=0;

    for(i=0;i<21;________)

    {

    _______________

    }

    cout<<"偶数之和为:"<

    }

  10. #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();

    }

  11. #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)<

    }

  12. #include

    void main()

    {

    int x=32,y=37;

    const int *p=&x;

    *p=y;

    cout<<*p<

    }

  13. #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();

    }

  14. 在STL库中用于查找数组内容的函数是___________。

  15. C++语言提供的基本操控符可以分为3种类型:顺序结构、选择结构和_________。

  16. 类的继承是指派生类继承基类数据成员和__________。

  17. 设在程序中使用如下语句申请一个对象数组:

    Shape *p1=new Shape[3];

    则在需要释放p1指向的数组对象时,使用的语句是____________。

  18. 在C++标准库中,使用________类来表示复数。

  19. C++提供了两种格式控制方式:使用_________类提供的借口和使用带操控符的特殊函数。

  20. 在结构体中定义的函数称为___________。

  21. C++语言支持_________,实际上就是变量的别称。

  22. 决定C++语言中函数返回类型的是___________________。

  23. 目前,有两种重要的程序设计方法,分别是结构化程序设计和__________程序设计。

  24. 下面程序运行结束后,k的值为________。

    #include

    void main( )

    {int i,j,k;

    for(i=0;j=10;i<=j;i++,j--)

    k=i+j;

    cout<

    }

  25. C++程序一般可以分为4个部分:程序的主函数、全局说明、__________、和用户自定义的函数。

  26. 程序需要执行键盘输入时,使用_______运算符。

  27. C++结构体中的成员默认访问权限为________。

  28. 函数fun的返回值是一个整形数据的引用,有两个参数都是int,声明fun函数的原型是

    ____________________。

  29. 使用关键字________说明的函数是内联函数。

  30. 如果调用函数是,需要改变实参或者返回多个值,应该采取________方式。

  31. 对数组进行升幂排序、反转、复制数组的内容等操作需要包含头文件____________。

  32. C++中只有两个逻辑常量:ture和_________。

  33. ________指令指示编译器将一个源文件嵌入到带该指令的源文件之中。

  34. C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是 

    • A.增加了一些新的运算符
    • B.允许函数重载,并允许设置缺省参数
    • C.规定函数说明符必须用原型
    • D.引进了类和对象的概念
  35. 设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
  36. 内联函数的特点是

    • A.减少代码量,加快访问速度
    • B.减少代码量,减缓访问速度
    • C.增加代码量,减缓访问速度
    • D.增加代码量,加快访问速度
  37. 多态是指  

    • A.不同的对象调用不同名称的函数
    • B.不同的对象调用相同名称的函数
    • C.一个对象调用不同名称的函数
    • D.一个对象调用不同名称对象
  38. 下列有关设置函数参数的描述中,正确的是

    • A.设置了默认参数的参数右边允许出现没有指定默认值的参数
    • B.参数默认值的设置顺序从参数表的左端开始
    • C.参数默认值要设置在定义语句的时候,不能设置在声明语句中
    • D.参数默认值可以是数值也可以是表达式
  39. 下面属于重载函数的有                                                              【  】

    • 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
  40. 下列模板定义中不正确的是

    • A.emplateQ F(Q x){return Q+x;}
    • B.templateQ F(Q x){return x+x;}
    • C.templateT F(T x){return x * x;}
    • D.templateT F(T x){return x;}
  41. 下列数组的定义中,错误的是

    • A.char ca1[ ]={‘c’,’m’,’n’};
    • B.char ca2[6]=”name”;
    • C.char ca3[4]=”your”;
    • D.iznt arry[ ]={1,2,3,4};
  42. 在C++中,数据封装要求解决的问题是  

    • A.实现规范化
    • B.防止书写错误
    • C.防止非法访问
    • D.实现类型转换
  43. 设存在函数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));
  44. 使用输入输出操控符setw,可以控制                                                   【   】

    • A.输出精度
    • B.输出宽度
    • C.对齐方式
    • D.填充字符
  45. 已定义了一个类A并有语句A* pa=new A(5);,那么下列说法正确的是                      【  】

    • A.该语句会创建A类的一个对象,并将此对象的地址赋给指针pa
    • B.该语句会创建A类的5个对象,且他们的地址是连续的
    • C.当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放
    • D.类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数
  46. 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//
  47. C++程序执行总是从【  】开始的。

    • A.main函数
    • B.第一行
    • C.头文件
    • D.函数注释
  48. 释放关键字new所开辟的动态存储空间必须使用  

    • A.create
    • B.free
    • C.release
    • D.delete
  49. 下列关于类和对象的说法不正确的是  

    • A.对象是类的一个实例
    • B.一个类只能有一个对象
    • C.一个类只能有一个名字
    • D.类和对象的关系与数据类型和变量的关系相似
  50. 在C++中使用流进行输入输出,其中用于键盘输入的对象是          【  】

    • A.cerr
    • B.cin
    • C.cout
    • D.cfile
  51. 下列表达式中不可能作为左值(赋值运算符左侧)的是  

    • A.a=b
    • B.*p
    • C.f(a,b)
    • D.&a
  52. C++源文件的扩展名为                     【 】

    • A..cpp
    • B..c
    • C. .txt
    • D..exe
  53. 下列标识符中真确的是

    • A.abc
    • B.3ab
    • C.int
    • D.+ab