程序设计与算法(三)第01周测验(2020春季)

001:简单的swap

输入

输出
5,3
样例输入

样例输出
5,3

代码如下:

#include <iostream>
using namespace std;
class A
{
public:
	int x;
	int getX() { return x; }
};
void swap(
	// 在此处补充你的代码
	A& a, A& b
	
)
{
	int  tmp = a.x;
	a.x = b.x;
	b.x = tmp;
}
int main()
{
	A a, b;
	a.x = 3;
	b.x = 5;
	swap(a, b);
	cout << a.getX() << "," << b.getX();
	return 0;
}

002:难一点的swap

输入

输出
5,3
样例输入

样例输出
5,3

代码如下:

#include <iostream>
using namespace std;

void swap(
	// 在此处补充你的代码
	int*& a, int*& b
	
)
{
	int* tmp = a;
	a = b;
	b = tmp;
}
int main()
{
	int a = 3, b = 5;
	int* pa = &a;
	int* pb = &b;
	swap(pa, pb);
	cout << *pa << "," << *pb;
	return 0;
}

003:好怪异的返回值

输入

输出
10
样例输入

样例输出
10

代码如下:

#include <iostream>
using namespace std;
// 在此处补充你的代码
int&

getElement(int* a, int i)
{
	return a[i];
}
int main()
{
	int a[] = { 1,2,3 };
	getElement(a, 1) = 10;
	cout << a[1];
	return 0;
}

004:神秘的数组初始化

输入

输出
123,456
样例输入

样例输出
123,456

代码如下:

#include <iostream>
using namespace std;

int main()
{
	int* a[] = {
		// 在此处补充你的代码
		NULL,NULL,new int,new int[6]

	};

	*a[2] = 123;
	a[3][5] = 456;
	if (!a[0]) {
		cout << *a[2] << "," << a[3][5];
	}
	return 0;
}

选择题

1单选(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;

答案:D
A、错,只能引用变量,不能引用返回值不是变量的表达式 B、错,不能对常引用进行赋值 C、错,不能用常引用对非常引用进行初始化

2单选(1分)
下面程序片段输出结果是什么?

int a = 1,b = 2;

int & r = a;

r = b;

r = 7;

cout << a << endl;

A.1

B.2

C.7

D.8

答案:C

3单选(1分)
下面说法哪种是对的?

A.常引用所引用的变量,其值不能被修改

B.不能通过常量指针,去修改其指向的变量

C.常量指针一旦指向某个变量,就不能再指向其他变量

D.1+1 = 3

答案:B
A、错,其值可以被修改,只是不能通过引用它的常引用去修改 C、可以指向其他变量 。只是不能通过它修改它所指向的变量 D、1+1 = 2

4单选(1分)
表达式 “new int”的返回值类型是:

A.int

B.int *

C.int &

D.void

答案:B

5单选(1分)
下面小段程序,哪个是正确的:

得分/总分

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];

答案:A
B、delete 数组的时候要用 [] C、类型不匹配 D、类型不匹配

单选(1分)
下面说法正确的是:

A.多个重载函数的参数个数必须不同。

B.两个函数,参数表相同,返回值类型不同,它们是重载关系。

C.调用一个第二个和第三个参数都有有缺省值的函数时,可以不写第二个实参而写第三个实参。

D.使用内联函数的目的是提高程序的运行速度。

答案:D

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JILIN.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值