大学MOOC 面向对象程序设计(辽宁工程技术大学)1453128189 最新慕课完整章节测试答案
从 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:
