C/C++知识点之C语言练习题库----数组
小标 2018-08-10 来源 : 阅读 1160 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言练习题库----数组,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言练习题库----数组,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

有如下语句 int a[10] = {1,2,3,4,5,6,7,8,9,10};int *p = a;则数值为9的表达式是______

*p+9                       b)       *(p+8)                    c)       *p+=9                    d)       p+7

 解析:B  

数组的下标是从 0 开始的,9 在 a [ 8 ] 这个位置上,p当前指向 a [ 0 ] ,所以需要向后移动8位,a和c 都是移动9位,d是地址偏移 7 位 .

 

若有定义语句:int a[3][6];按在内存中存放的顺序,a数组的第10个元素是_____

a[0][3]                    b)       a[1][4]                    c)       a[0][4]                    d)       a[1][3]

 解析:D

这个二维数组的正确理解方式应该是 : 定义了一个名字为a的数组,a数组里面有三个元素,每个元素包含6个int类型的变量,数组的第十个元素应该是a[0][6]之后的a[1][3],这个知识点的考察点在于要认识二维数组中的元素和指针都是怎么存储和指向的,指针是如何偏移的。

 

以下数组定义中错误的是______

                     A. int x[][3] = {0};                                 B. int x[2][3] = {{1,2}, {3,4}, {5, 6}};

                     C. int x[][3] = {{1,2,3}, {4,5,6}};        D. int x[2][3] = {1,2,3,4,5,6};

解析:B

第一个中括号表示数组当中元素的个数,第二个中括号表示每个元素中(类似一维数组的)变量的个数。

在定义二维数组的时候第二个中括号(元素的个数)是必须被定义的。B中等号右边的正确定义应该是a[][2].

 

若有说明:int i,j=2, *p=&i;, 则能完成i=j赋值功能的语句是_____

A)*p=*&j;          B)i=*p     C)i+&j;           D)i=**p;

 解析: A

 

 

下列程序的运行结果是______

int main()

{

           int a[5][2] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

           int* p = a;    //p指向0 ,偏移量是int字节

           int (*p2)[2] = &a[1];   //  p2指向{2,3}中的首地址,偏移量是int*[2]字节(两个int字节)

           ++p;    //p向后偏移一个int字节    指向1

           ++p2;     //p2向后偏移两个int字节  指向4

           printf("%d\n", *p);

           printf("%d\n", **p2);

           printf("%d\n", p2[1][2]);     //p2 先向后偏移一个int*2字节(两个int)  p2[1]再向后偏移两个int字节得到p2[1][2]    指向8

           return 0;

}

 

 

下面的程序输出结果为________

#include <stdio.h>

int main()

{

           int a[] = {10,20,30,40,50};

           int *p = (int*)(&a+1);     // &a的含义为a[]的地址,偏移量为5个int  *p指向50后面的一个元素

           printf("%d %d\n",*(a+1),*(p-1));     // a为首元素的地址,偏移量为一个,所以指向20     p-1指向50的地址,间接引用后的结果为50

           return 0;

}    

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程