📜  指针 mcq sanfoundry - C++ (1)

📅  最后修改于: 2023-12-03 15:10:08.195000             🧑  作者: Mango

程序员必读:指针MCQ sanfoundry - C++

简介

指针是C++中最重要的基本数据类型之一,程序员必须深入了解它的概念、用法和应用。本文将为大家介绍来自sanfoundry网站的有关指针的MCQ(多项选择题),供大家学习和测试。

MCQ
问题1:如果以下声明:
int a[] = {10, 20, 30, 40, 50};
int *p = a;

则以下哪个选项是正确的?

a) p++ = 30;

b) p + 2 = &a[2];

c) ++*p = 20;

d) *(p + 3) = 60;

答案:c)

解释:++*p = 20; 表示增加了指向a[0]的指针*p的值,所以a[0]的值也变为了20。

问题2:下面代码段的输出将是什么?
#include <iostream>
using namespace std;

int main() {
  int a = 1, b = 2, c = 3;
  int *p1 = &a, *p2 = &b, *p3 = &c;
  cout << *p1 << "," << *p2 << "," << *p3 << endl; // 输出1,2,3
  *p1 = *p2 = *p3;
  cout << *p1 << "," << *p2 << "," << *p3 << endl; // 输出3,3,3
  return 0;
}

a) 1,2,3 和 3,3,3

b) 1,1,1 和 3,3,3

c) 3,3,3 和 1,1,1

d) None of these选项都不正确

答案:a)

解释:第一行输出了p1、p2和p3的值,第二行将它们都指向了c,所以第二行输出了3,3,3。

问题3:以下代码的输出将是什么?
#include <iostream>
using namespace std;

void function1(int *ptr) {
  *ptr = *ptr * *ptr;
}

int main() {
  int num = 5;
  function1(&num);
  cout << num; // 输出25
  return 0;
}

a) 5

b) 25

c) 30

d) 编译错误

答案:b)

解释:function1(&num)调用函数function1,并给它传递了变量num的地址。函数中将num的值乘以自身,并将结果存储回num。所以程序的输出是25。

结论

学习指针的概念和用法是C++编程的重点之一,程序员必须掌握它的基本知识。以上的MCQ题目提供了一些实现指针的例子,帮助各位程序员理解和应用指针。