深圳市企业网站seo点击软件,哪些网站可以加锚文本,wordpress虚拟商品,开发手机app价格目录 例题一题目解析答案 例题二题目解析答案 例题三题目解析答案 例题四题目解析答案 例题五题目解析答案 例题六题目解析答案 例题七题目解析答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 #x1f412;#x1f412;#x1f412;
个人主页 #x… 目录 例题一题目解析答案 例题二题目解析答案 例题三题目解析答案 例题四题目解析答案 例题五题目解析答案 例题六题目解析答案 例题七题目解析答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 个人主页 C语言 ️️️
C语言例题 python 例题一
以下系统中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个字节
注意指针是表示的是地址空间,而地址会因为系统不同而不同,比如32位的系统,一个地址就需要32个比特位来表示,而指针如果想要表示这个地址的话,同样也需要32个比特位才可以,所以在32为的系统条件下,指针占32个比特位也就是4个字节
答案
答案:C
例题二
下面代码的结果是
#include stdio.h
int main()
{int arr[] {1,2,3,4,5};short *p (short*)arr;int i 0;for(i0; i4; i){*(pi) 0;}for(i0; i5; i){printf(%d , arr[i]);}return 0;
}A.1 2 3 4 5 B.0 0 3 4 5 C.0 0 0 0 5 D.1 0 0 0 0
题目解析
注意数组arr一开始是整形类型的数组,而之后用short * p (short*)arr将arr强制转换为short*,并且用short类型的指针p来接收
后面在通过*(p1)来对数组的元素重新赋值,最后再打印
我们知道short类型的元素占2个字节,也就是16个比特位,而int类型的元素占4个字节,也就是32个比特位 因此下面是arr各元素的内存
01 00 00 00表示arr[0].02 00 00 00表示arr[1]…, 当我们for循环修改arr里面的元素时,过程如下 答案
答案 B
例题三
关于二级指针描述描述正确的是 A.二级指针也是指针只不过比一级指针更大 B.二级指针也是指针是用来保存一级指针的地址 C.二级指针是用来存放数组的地址 D.二级指针的大小是4个字节
题目解析
A二级指针是指针不能说起比一级指针大只能说二级指针指向的空间中存储的也是一个地址
C:数组的地址一般用一级指针存储或者用数组指针接收
D二级指针是指针但是否占4个字节不一定要看具体的系统,如果是32为的系统就是4个字节,但如果是64为的系统则是8个字节
答案
答案 B
例题四
下面关于指针运算说法正确的是 A.整形指针(int*类型)1向后偏移一个字节 B.指针-指针得到是指针和指针之间的字节个数 C.整形指针解引用操作访问4个字节 D.指针不能比较大小
题目解析
A整形指针1向后便宜一个整形类型的大小即4个字节
B两个指针相减指针必须指向一段连续空间减完之后的结构代表两个指针之间相差元素的个数
C整形指向的是一个整形的空间解引用操作访问4个字节
D指针中存储的是地址地址可以看成一个数据因此是可以比较大小的
答案
答案 C
例题五
下面哪个是指针数组 A. int* arr[10]; B.int * arr[]; C.int **arr; D.int (*arr)[10];
题目解析
关于指针数组等相类似的如果有不懂的可以看我之前的一些文章 C语言深入理解指针非常详细三 C语言深入理解指针非常详细四 指针数组是一个数组该数组的每个元素是一个指针
A定义了一个数组该数组中有10个元素每个元素都是int*的指针类型
B编译失败定义数组时要给出空间的大小如果没有给时必须要给出初始化结果
C定义了一个二级指针(不用因为一个arr就认为是数组,数组在定义的时候需要 [ ] )
D*和arr先结合说明arr不是数组。实际上arr是一个指针一个指向数组的指针(也就是数组指针)
答案
答案 A
例题六
下列程序段的输出结果为
unsigned long pulArray[] {6,7,8,9,10};
unsigned long *pulPtr;
pulPtr pulArray;
*(pulPtr 3) 3;
printf(%d,%d\n,*pulPtr, *(pulPtr 3));A.9,12 B.6,9 C.6,12 D.6,10
题目解析
unsigned long pulArray[] {6,7,8,9,10}; unsigned long *pulPtr;
pulPtr pulArray; // 数组名代表数组首元素地址因此pulptr指向的是数组中第一个元素的位置
*(pulPtr 3) 3; // pulptr3访问的是数组中第三个元素(数组下标从0开始)
(即 * (pulPtr 3)pulPtr[3], * (pulPtr 3)3pulPtr[3]3)因为一开始puPtr[3]pulArray[3]9,所以最后结果就是将9改为9312
printf(“%d,%d\n”,*pulPtr, *(pulPtr 3)); // 打印第一个和第三个元素因此打印6和12
答案
答案 C
例题七
关于指针的概念错误的是( ) A.指针变量是用来存放地址的变量 B.指针变量中存的有效地址可以唯一指向内存中的一块区域 C.野指针也可以正常使用 D.局部指针变量不初始化就是野指针
题目解析
A指针变量中存储的是一个地址指向同类型的一块内存空间
B地址是唯一的一个指针变量中只能存储一个地址因此可以唯一指向内存中的一块区域
C野指针指向的空间时非法的或者说该指针指向的空间已经不存在了因此野指针不能使用
D局部指针变量没有初始化时里面就是随机值因此指向那个位置不一定故将其看成是野指针
答案
答案 C