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语言练习题库----数组的更多相关文章
- Standard C 语言标准函数库介绍
全面巩固所知所学,往精通方向迈进! Standard C 语言标准函数库速查 (Cheat Sheet) from:http://ganquan.info/standard-c/function/ C ...
- C语言变长数组data[0]
1.前言 在刷题时遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在linux内核中,结构体中经常用到data[0] ...
- Redis学习之路(008)- Redis C语言客户端库hiredis文档翻译
Hiredis是Redis数据库一个轻量的C语言客户端库. 之所以轻量是由于它只是简单的提供了对redis操作语句支持的接口,并没有实现具体的操作语句的功能.但正是由于这种设计使我们只要熟悉了通用的r ...
- C语言函数库
C语言函数库 分类函数目录函数进程函数诊断函数接口子程序输入输出 str字符串操作函数mem操作存贮数组 数学函数 时间日期函数 转换函数 分类函数,所在函数库为ctype.h[top] int is ...
- C语言cJSON库的使用,解析json数据格式
C语言cJSON库的使用,解析json数据格式 摘自:https://www.cnblogs.com/piaoyang/p/9274925.html 对于c语言来说是没有字典这样的结构的,所以对于解析 ...
- C语言练习题
C语言练习题 1. 以下选项中,合法的一组C语言数值常量是( ) A)028 .5e-3 .0xf B)12. OXa23 4.5e0 C).177 4e1.5 Oabc D) ...
- Standard C 语言标准函数库速查(彩色的函数列表,十分清楚)
Standard C 语言标准函数库速查 (Cheat Sheet) wcstombs 函数说明 #include <stdlib.h> size_t mbstowcs(wchar_t * ...
- C语言学习004:数组与指针
在C语言中,字符串实际上就是字符数组,在内存中字符串"Shatner"存储的形式是这样的
- C语言中的数组的一些笔记
C语言是面向过程的语言. 计算数组长度: Int count =sizeof(ages)/sizeof(int); C语言里面输出字符串,必须以'\0'结束,如果没有则一直执行下去. Char nam ...
随机推荐
- java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp 错误是因为时间类型出现了0 ...
- JAVA中接口与抛出异常的相关知识
1.接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只 ...
- maven快速自动更新子模块项目的版本号
当一个版本发布,新起一个版本时,我们需要更改一下项目中的版本号.一个maven工程,如果只是一个单一的主项目,那么只要手动修改一下 pom.xml 就 可以了,耗不了多少时间.但是如果这个maven项 ...
- mongo aggregate 删除重复数据
$group 按照什么排序, 关照 _id 这个是排序的依据 $match 这个从排序的结果内抽取 count 大于一的 allDiskUse 如果内存配置比较小, 设置这个才能运行, 否则会崩. ...
- Hadoop 搭建集群的步骤
1.安装jdk,配置环境变量 root@localhost java]# vi /etc/profile 在profile中添加如下内容: #set java environmentexport J ...
- UML作业第三次:分析《书店图书销售管理系统》,绘制类图
一. 类图语法学习小结(类间关系的表示方法) 1.抽象类和接口 我们用关键字abstract或abstract class来定义抽象类(抽象类用斜体显示).也可以使用interface,annotat ...
- Day02_Python基础学习今日总结
1.模块(库):是别人写好的函数封装成一个名字,内部有丰富的功能可以直接调用.分为标准库和第三方库.标准库直接导入即可使用,而第三方库需要下载安装才能用. 2.在项目中导入库时,自建的文件名不能喝库名 ...
- openSUSE安装Qt5
找了很多资料发现没一个好用又简单的. 终于在wiki.qt.io上找到了一个! 安装方法如下: 1下载安装包,我建议最好下载离线包.下载链接http://download.qt.io/archive/ ...
- [转]大白话讲解Promise(一)
http://www.cnblogs.com/lvdabao/p/es6-promise-1.html 去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正 ...
- Watchman 的安装
先查看gcc的版本 gcc --version 如果gcc的版本低于4.8,就要升级gcc的版本了.在这里,就不延时升级gcc了, 安装watchman git clone https://githu ...