从 C 到C++

第一次测验

1、单选题:
下面程序片段哪个没错?‍‏‍
选项:
A: int n = 4; int & r = n * 5;
B: int n = 6; const int & r = n; r = 7;
C: int n = 8; const int & r1 = n; int & r2 = r1;
D: int n = 8; int & r1 = n; const int r2 = r1;
答案: 【  int n = 8; int & r1 = n; const int r2 = r1;

2、单选题:
‍下面说法哪种是对的?‌
选项:
A: 常引用所引用的变量,其值不能被修改
B: 不能通过常量指针,去修改其指向的变量
C: 常量指针一旦指向某个变量,就不能再指向其他变量
D: 1+1 = 3
答案: 【 不能通过常量指针,去修改其指向的变量

3、单选题:
‎表达式 “new int”的返回值类型是:‏
选项:
A: int
B: int *
C: int &
D: void
答案: 【 int *

4、单选题:
‍下面小段程序,哪个是正确的:‏
选项:
A:    char * p = new char[10];          p[0] = 'K';    delete [] p;
B:    int *p = new int[25];    p[10] = 100;    delete p
C:    char * p = new int;    p = 'a';     delete p;
D: int * p = new char[20]; 
答案: 【    char * p = new char[10];          p[0] = 'K';    delete [] p;

5、单选题:
‎变量的引用就是变量的(    )‎
选项:
A: 值
B: 类型
C: 别名
D: 内存地址
答案: 【 别名

6、单选题:
‎已有定义“int a=10, *p=&a;”,则下面各组中两个语句完全正确并且作用相同的‌‎‌
选项:
A: *p=20; a=20;
B: cout<<p; cout<<a;
C: p=20; &a=20;
D: cout<<&p; cout<<&a;
答案: 【 *p=20; a=20;

7、单选题:
‎已知“int *p=new int[3];”,若分配成功,则指针p在堆中分配到的内存尺寸为(    )字节。‌‎‌
选项:
A: 3
B: 4
C: 12
D: 不确定
答案: 【 12

8、单选题:
‍已知“int a=10;int &r=a;a=a+10;cout<<r;”,则输出为(    )。‎‍‎
选项:
A: 10
B: 20
C: 30
D: 不确定值
答案: 【 20

9、单选题:
​已知“int a=10, b=8; int &r=a; r=b; b=15; cout<<a<<","<<b<<","<<r;”,则输出为(    )。​​​
选项:
A: 10,15,10
B: 10,8,15
C: 8,15,8
D: 15,15,15
答案: 【 8,15,8

10、单选题:
​用new运算符创建一个含10个元素的一维整型数组的正确语句是(    )。‌​‌
选项:
A: int *p=new a[10];
B: int *p=new int(10);
C: int *p=new int[10];
D: int *p=new int[10]={1,2,3,4,5};
答案: 【 int *p=new int[10];

11、单选题:
‍假设堆内存分配均成功,则下面程序段完全正确的是(    )。‎‍‎
选项:
A: int *p=new int(3);  Cout<<* p; delete p;
B: int *p=new int[5]:   for(int i=0; i<5; i++)     {    p[i]=i; cout<<p[i];       }delete p;
C: int *p=new int[5];for(int i=0; i<5;i++,p++)   {*P=i;cout<<*p;}delete []p;
D: 其它选项程序段均正确
答案: 【 int *p=new int(3);  Cout<<* p; delete p;

12、单选题:
‎下面关于const指针的语句中,正确的是(    )。​‎​
选项:
A: int a=10; const int *p=&a; *p=20;
B: int a=10; int *const p= &a; *p=20;
C: int a=10, b=20; int *const p=&a; p=&b;
D: int a=10, b=20; const int *const p=&a; p=&b;
答案: 【 int a=10; int *const p= &a; *p=20;

13、单选题:
‎关于动态存储分配,下列说法正确的是(    )。‎‎‎
选项:
A: new 和delete 是C++语言中专门用于动态分配和释放内存的函数
B: 动态分配的内存空间可以初始化
C: 当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间
D: 当动态内存分配失败时,系统会立即崩溃,因此一定要慎用new
答案: 【 动态分配的内存空间可以初始化

14、单选题:
‌已知n是一个int型变量,下列语句中错误的是(    )。‌‌‌
选项:
A: long  *p=new long[n];
B: long  p[n];
C: long  *p=new long(n);
D: long  p[10];
答案: 【 long  p[n];

15、单选题:
‌假定int类型变量占4个字节,其有定义:int x[10]={0,2,4};则数组x在内存中所占的字节数是(    )。​‌​
选项:
A: 6
B: 12
C: 20
D: 40
答案: 【 40

16、单选题:
‍以下程序的输出结果是(    )。‎‍main()‎‍  {int a=10,*pa=&a,&ra=a;‎‍   (*pa++;‎‍   ra++;‎‍    cout<<a<<endl;‎‍}‎‍‎
选项:
A: 10
B: 11
C: 12
D: 13
答案: 【 12

17、单选题:
‍假如“void Fun(int x,int y);”,下列函数原型声明中不能作为重载函数的是(    )。​‍​
选项:
A: int Fun(int a,int b);
B: int Fun(int x,int y,int z);
C: int Fun(int a,int b,float z);
D: void Fun(float x=0,float y=0);
答案: 【 int Fun(int a,int b);

18、单选题:
‌下列程序的输出结果是(    )。‏‌#include <iostream.h>‏‌#include <string.h>‏‌int x;‏‌void funA(int &a,int b);‏‌void funB(int u,int &v);‏‌void main()‏‌  {int aa;‏‌  int bb=10;‏‌  x=20;‏‌  funA(aa,bb);‏‌  cout<<aa<<"  "<<bb<<"  "<<x<<endl;‏‌  funB(aa,bb);‏‌  cout<<aa<<"  "<<bb<<"  "<<x<<endl;‏‌}‏‌void funA(int &a,int b)‏‌{int aa;‏‌aa=b+10;‏‌a=2*b;‏‌b=aa+10;‏‌}‏‌void funB(int u,int &v)‏‌{int bb;‏‌bb=u;‏‌v=bb+10;‏‌x=u+v;‏‌}‏‌‏
选项:
A: 20 30 20 <回车换行>20 20 40
B: 20 10 20 <回车换行>20 20 40
C: 20 10 20 <回车换行>20 30 50
D: 20 10 20 <回车换行>20 30 40
答案: 【 20 10 20 <回车换行>20 30 40

19、单选题:
‎下面程序的输出结果是(    )。​‎#include <iostream.h>​‎#include <string.h>​‎void  fun(int a,int &rb,int *pc)​‎{a=10;​‎rb=20;​‎*pc=30;​‎}​‎void main()​‎{int a,b,c;​‎a=b=c=0;​‎fun(a,b,&c);​‎cout<<a<<b<<c<<endl;​‎}​‎​
选项:
A: 102030
B: 02030
C: 10030
D: 0030
答案: 【 02030

20、单选题:
‌有以下程序:‎‌#include <iostream.h>‎‌#include <string.h>‎‌int fun(int x[],int n)‎‌{static int sum=0,i;‎‌for(i=0;i<n;i++)‎‌sum+=x[i];‎‌return sum;‎‌}‎‌void main()‎‌{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;‎‌s=fun(a,5)+fun(b,4);‎‌cout<<s<<endl;‎‌}‎‌程序执行后的输出(    )。‎‌‎
选项:
A: 45
B: 50
C: 60
D: 55
答案: 【 60

类和对象基础

第二次测验

1、单选题:
​以下不是面向对象程序设计特性的是‍​‍
选项:
A: 继承性
B:

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注