首页 > 编程语言 >GESP C++四级考试:指针

GESP C++四级考试:指针

时间:2025-01-18 17:22:49浏览次数:1  
标签:arr 20 变量 指向 int C++ GESP 指针

C++指针的考试内容
指针的基本概念
指针是一种特殊的变量,用于存储数据的内存地址。
指针变量中存储的是内存地址,定义指针变量时必须指定其指向的类型。
指针的类型
指针可以指向任意类型的数据,包括基本数据类型(如int、char、float等)和自定义复杂类型(如结构体)。
不同类型的数据占用的内存大小不同,指针类型的作用之一是保证指针在解引用时能获取正确大小内存的数据。
指针的运算
指针可以进行加减运算,指针加1或减1时,会根据其指向的数据类型所占的字节数来移动。
例如,int* p;,p++后,p的地址会增加sizeof(int)字节。
常量指针与指针常量
常量指针:指向常量的指针,其指向的值不能通过指针修改,但指针本身可以指向其他地址。语法为const 变量类型* 变量名或变量类型 const* 变量名。
指针常量:指针的常量,其指向的地址不能改变,但可以通过解引用修改指向的值。语法为变量类型* const 变量名。
指针与数组
数组名是数组中第一个元素的存储地址,可以作为指针使用。
例如,int arr[10];,arr等价于&arr[0]。
函数指针和指针函数
函数指针:指向函数的指针,可以用来调用函数。
指针函数:返回值为指针的函数。
多级指针
多级指针是指指针的指针,例如int** p;表示p是一个指向int类型的指针。
2023年12月GESP C++四级真题中涉及指针的考点题目及答案解析
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
int arr[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
int
p = arr;
p++;
cout << p;
选项:
A) 4
B) 6
C) 8
D) 10
答案:B
解析:数组名是数组第一个元素的地址,定义int类型指针p,赋值为arr,即p指向arr[0];p++,指针自增1,则p的指向往后移动一个int类型的存储空间,指向arr[1],
p指针解引用,输出p即输出p所指向的值,arr[1]的值为4,所以输出4。
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
int x = 20;
int
p = &x;
cout << f(p);
选项:
A) 400
B) 20
C) 40
D) 800
答案:A
解析:定义函数f的功能:返回指针p指向数据的平方。主函数中定义int类型变量x初始化为20,int类型指针初始化为变量x的地址,将指针p作为实参进行函数调用,函数结果为20的平方400,赋值给p,输出p,所以输出400。
2024年3月GESP C++四级真题中涉及指针的考点题目及答案解析
单选题
题目:下列C++代码执行后,输出的是( )。
cpp复制
float fnum[2] = {1.1, 1.1};
int foo(float* f) {
return int(f * 2);
}
cout << fnum[0] + foo(fnum + 1);
选项:
A) 3.1
B) 3.2
C) 3.3
D) 3.4
答案:A
解析:foo函数的功能是传入一个float指针f,返回值为f指针指向的内容乘2的整数部分。数组fnum也是指针地址,指向数组第一个元素,fnum[1] = int(2 * 1.1) = 2,fnum[0] + fnum[1] = 1.1 + 2 = 3.1,所以输出3.1。
2023年6月GESP C++四级真题中涉及指针的考点题目及答案解析
单选题
题目:下列关于C++语言中指针的叙述,不正确的是( )。
选项:
A) 指针变量中存储的是内存地址。
B) 定义指针变量时必须指定其指向的类型。
C) 指针变量只能指向基本类型变量,不能指向指针变量。
D) 指针变量指向的内存地址不一定能够合法访问。
答案:C
解析:指针变量不仅可以指向基本类型变量,还可以指向指针变量,例如int** p;表示p是一个指向int
类型的指针。
模拟选择题
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
int arr[5] = {1, 2, 3, 4, 5};
int* p = arr;
cout << (p + 3);
选项:
A) 1
B) 2
C) 3
D) 4
答案:D
解析:指针p指向数组arr的第一个元素,p + 3指向数组的第四个元素,
(p + 3)解引用后输出4。
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
int x = 10;
int* p = &x;
p = 20;
cout << x;
选项:
A) 10
B) 20
C) 30
D) 40
答案:B
解析:指针p指向变量x的地址,通过解引用
p修改x的值为20,输出x的值为20。
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int (p)[2] = arr;
cout << ((p + 1) + 1);
选项:
A) 2
B) 4
C) 6
D) 8
答案:B
解析:p是一个指向二维数组的指针,p + 1指向第二行,
(p + 1)解引用后得到第二行的首地址,((p + 1) + 1)解引用后得到第二行第二个元素的值4。
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
char* str = "Hello, World!";
cout << (str + 7);
选项:
A) H
B) e
C) W
D) o
答案:C
解析:str是一个指向字符串的指针,str + 7指向字符串的第8个字符(从0开始计数),
(str + 7)解引用后输出W。
单选题
题目:下列代码执行后,输出的是( )。
cpp复制
int a = 10;
int b = 20;
int* p1 = &a;
int* p2 = &b;
*p1 = p2;
cout << a << " " << b;
选项:
A) 10 20
B) 20 20
C) 10 10
D) 20 10
答案:B
解析:指针p1指向变量a的地址,指针p2指向变量b的地址。通过解引用
p1 = *p2,将b的值赋给a,所以a的值变为20,b的值仍为20,输出20 20。
希望这些内容对你有帮助!如果有任何其他问题或需要进一步的解释,请随时告诉我。

标签:arr,20,变量,指向,int,C++,GESP,指针
From: https://www.cnblogs.com/harddon/p/18678622

相关文章

  • PowerShell 脚本调整鼠标指针的速度,虽然这不会直接影响鼠标的 DPI(硬件设置)。这个方法
    在PowerShell中,直接通过系统设置控制鼠标DPI或鼠标速度并不是一个简单的操作,因为这些设置通常依赖于硬件和驱动程序。大部分操作系统(包括Windows)本身并不提供简单的接口来直接控制DPI设置。通常,这些设置通过鼠标驱动程序或专门的鼠标软件来管理(例如:Logitech、Razer、Corsai......
  • 【LeetCode: 415. 字符串相加 + 双指针】
    ......
  • C++新文件模板
    1.普通模板#include<bits/stdc++.h>usingnamespacestd;#defineinfile"infile.in"#defineoutfile"outfile.out"#definecin_cout_f#definespeedup#ifdefcin_cout_f#definecin_____in_____#definecout_____out_____ifstream____......
  • C++ 移动语义与完美转发
    移动语义 如果一个对象中有堆区资源,需要编写拷贝构造函数和赋值函数,实现深拷贝。深拷贝把对象中的堆区资源复制了一份,如果源对象(被拷贝的对象)是临时对象,拷贝完就没什么用了,这样会造成没有意义的资源申请和释放操作。如果能够直接使用源对象拥有的资源,可以节省资源申请和释放......
  • 嵌入式知识点总结(一)-C/C++关键字
     针对于嵌入式软件杂乱的知识点总结起来,提供给读者学习复习对下述内容的强化。目录1.C语言宏中"#“和"##"的用法1.1.(#)字符串化操作符1.2.(##)符号连接操作符2.关键字volatile有什么含意?并举出三个不同的例子?2.1.并行设备的硬件寄存器2.2.中断服务程序中修改的变......
  • 【2024年华为OD机试】 (A卷,200分)- 硬件产品销售方案(Java & JS & Python&C/C++)
    一、问题描述题目描述某公司目前推出了AI开发者套件,AI加速卡,AI加速模块,AI服务器,智能边缘多种硬件产品,每种产品包含若干个型号。现某合作厂商要采购金额为amount元的硬件产品搭建自己的AI基座。例如当前库存有N种产品,每种产品的库存量充足,给定每种产品的价格,记为price(不......
  • 【2024年华为OD机试】 (B卷,100分)- 流水线(Java & JS & Python&C/C++)
    一、问题描述题目描述一个工厂有m条流水线,来并行完成n个独立的作业,该工厂设置了一个调度系统,在安排作业时,总是优先执行处理时间最短的作业。现给定流水线个数m,需要完成的作业数n,每个作业的处理时间分别为t1,t2,...,tn。请你编程计算处理完所有作业的耗时为多......
  • 「C/C++」C++关键字 之 mutable 可变关键字
    ✨博客主页何曾参静谧的博客(✅关注、......
  • 「C/C++」C++20 标准库之#include <ranges>范围库
    ✨博客主页何曾参静谧的博客(✅关注、......
  • golang 指针传递和值传递
    golang指针传递和值传递packagemainimport"fmt"typeMyStructstruct{ Valuestring}//值传递//ModifyStructtakesaMyStructbyvalueandtriestomodifyit.funcModifyStruct(sMyStruct){ s.Value="Modified"}//指针传递//ModifySt......