作业12 (2023-05-15 指针概念)

[复制链接]
发表于 2025-10-9 22:48:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
第1题/共11题【单选题】

关于指针的概念,错误的是:( )
A.指针变量是用来存放地点的变量
B.指针变量中存的有效地点可以唯一指向内存中的一块地区
C.野指针也可以正常利用
D.局部指针变量不初始化就是野指针
答复精确
答案分析:
A:精确,指针变量中存储的是一个地点,指向同范例的一块内存空间
B:精确,地点是唯一的,一个指针变量中只能存储一个地点,因此可以唯一指向内存中的一块地区
C:野指针指向的空间时非法的,大概说该指针指向的空间已经不存在了,因此野指针不能利用
D:局部指针变量没有初始化时内里就是随机值,因此指向谁人位置不肯定,故将其当作是野指针
因此:选择C
第2题/共11题【单选题】

以下体系中,int范例占几个字节,指针占几个字节,利用体系可以利用的最大内存空间是多大:( )
A.32位下:4,4,2^32 64位下:8,8,2^64
B.32位下:4,4,不限定 64位下:4,8,不限定
C.32位下:4,4,2^32 64位下:4,8,2^64
D.32位下:4,4,2^32 64位下:4,4,2^64
答复精确
答案分析:
32位体系下:
int占4个字节,指针表现地点空间个数,统共有2^32个,故占4个字节
64位体系下:
int占4个字节,指针表现地点空间个数,统共有2^64个,故占8个字节
因此:选择C
第3题/共11题【编程题】

利用指针打印数组内容
作业内容
写一个函数打印arr数组的内容,倒霉用数组下标,利用指针。
arr是一个整形一维数组。
我的答案:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.    
  6.         int arr[10] = {
  7.    
  8.     0,1,2,3,4,5,6,7,8,9 };
  9.         int* p = arr;
  10.         int* pend = arr + 9;
  11.         while (p <= pend)
  12.         {
  13.    
  14.    
  15.                 printf("%d ", *p);
  16.                 p++;
  17.         }
  18.         return 0;
  19. }
复制代码
参考答案:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.    
  6.     int arr[] = {
  7.    
  8.    1,2,3,4,5,6,7,8,9,10};
  9.     //在这里完成代码
  10.     // 分析:因为数组中存储的元素类型是int类型的,因此只要给一个int的指针,依次取索引数组中的每个元素即可
  11.     int* p = arr;  // 数组名代表数组首元素的地址
  12.     for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); ++i)
  13.     {
  14.    
  15.    
  16.         printf("%d ", *p);   // *p: 取到p所指向位置的元素
  17.         ++p;                 // 获取p的下一个位置
  18.     }
  19.    
  20.            return 0;
  21. }
复制代码
第4题/共11题【单选题】(这道题其时不会做,做错了)

在小端呆板中,下面代码输出的结果是:( )
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.    
  6.     int a = 0x11223344;
  7.     char *pc = (char*)&a;
  8.     *pc = 0;
  9.     printf("%x\n", a);
  10.     return 0;
  11. }
复制代码
A.00223344
B.0
C.11223300
D.112233
(答复错误)我的答案:A
(精确答案是:C)
答案分析:
假设,a变量的地点为0x64,则a变量在内存中的模子为:
0x64| 44 |
0x65| 33 |
0x66| 22 |
0x67| 11 |
char范例的指针变量pc指向只能指向字符范例的空间,如果黑白char范例的空间,必须要将该空间的地点强转为char范例。
char pc = (char)&a; pc现实指向的是整形变量a的空间,即pc的内容为0x64,即44,
*pc=0,即将44位置中内容改为0,修改完成之后,a中内容为:0x11223300
低地点 高地点
0X 44 33 22 11
因此:选择C
涉及的知识点:
大端存储模式:是指数据的低位生存在内存的高地点中,而数据的高位,生存在内存的低地点中。
小端存储模式:是指数据的低位生存在内存的低地点中,而数据的高位,生存在内存的高地点中。

第5题/共11题【单选题】

下面代码的结果是:( )
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    
  5.    
  6.   int arr[] = {
  7.    
  8.    1,2,3,4,5};
  9.   
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表