C语言--每日五道选择题--Day9

第一题

1、如下程序的运行结果是( )

char c[5]={'a', 'b', '\0', 'c', '\0'};
printf("%s", c);

A: 'a' 'b' 

B: ab\0c\0 

C: ab c 

D: ab

答案及解析 D

        首先这是一个字符数组,我们要知道无论是字符串还是字符数组,它们遇到ASCII值为0就会停止打印,而‘\0’的ASCII值为0。

        然后我们以%s的格式打印这个字符数组,首先是依次输出这个字符数组的内容的,其次就是不会将里面的内容分开,最后遇到\0停止打印,故选D。

第二题

2、若有定义: int a[2][3]; ,以下选项中对 a 数组元素正确引用的是( )

A: a[2][0] 

B: a[2][3] 

C: a[0][3] 

D: a[1>2][1]

答案及解析 D

我们要明确,引用数组和定义数组的' [ ] '的这个符号的意义是不一样的;

在定义一个数组的时候,a[n] 这里是表示a数组有n个元素;

而在引用数组的时候a[1] 的1是表示数组的下标,并且数组下标从0开始,数组最后一个元素的下标是n-1;

我们知道这些之后就看选项吧!

A,B,C明显的数组越界,因为下标是2,还有3了

D :数组下标可以用表达式的,a[1 > 2] [1] 可以看作 a[0] [1] 。1 > 2是假为0;

第三题

3、在下面的字符数组定义中,哪一个有语法错误( )

A: char a[20]="abcdefg"; 

B: char a[]="x+y=5."; 

C: char a[15]; 

D: char a[10]='5';

答案及解析 D

本题考查的是数组的定义和初始化;

A:正确,字符数组可以这样定义,这是字符串的写法,“abcdefg”末尾默认有个\0,作为字符串的终点;

B:正确,虽然字符数组没有指定元素个数,但是后面初始化了,所以元素个数就是初始化的字符串的元素个数;

C:正确,定义一个未初始化的字符数组;

D:错误,字符数组的初始化,不可以是单个字符;

第四题

4、下列定义数组的语句中正确的是( )【多选】

A:

#define size 10
char str1[size], str2[size+2];

B: char str[]; 

C: int num['10']; 

D: int n=5; int a[n][n+2];

答案及解析 A C

本题仍然考察数组的定义;

A:正确,可以使用宏来作为数组的个数,也可以使用表达式;

B:错误,不初始化数组,必须定义数组个数;

C:正确,定义一个整型数组,数组个数为‘10’,我们要记住,每个字符都有对应的ASCII值,所以也可以使用单个字符来定义数组个数

D:在C99中支持了用变量来定义数组个数,但是在这里不做参考,你知道可以就行

ASCII值表:

第五题

5、已知 i,j 都是整型变量,下列表达式中,与下标引用 X[ i ] [ j ] 不等效的是【多选】

A: *(X[ i ]+j) 

B: *(X+i)[ j ] 

C: *(X+i+j) 

D: *(*(X+i)+j)

答案及解析 B C

这里考察的是指针的解引用和数组之间的关系

先知道这一个概念:

我们的二维数组,其实是一维数组的数组,有如下图解:

当我们真正弄懂这个概念,我们做这类题目才会快;

我们来看,一个二维数组,有三行三列,其实就是三个包含了三个元素的一维数组的数组

arr[0]是一个一维数组,我们要访问arr[0]的数组元素的时候,不就是在访问arr这个二维数组第一行的元素吗?

访问arr[0]的第一个元素,就是在访问arr这个数组的第一行第一列的元素: arr[0][0];

那我们把思维放在arr[0]是一维数组的身上,访问这个数组的第一个元素就是:arr[0][0]

我们就可以发现,arr[0]其实就相当于一维数组的数组名,要访问第一行的元素就是在数组名后面加下标引用操作符;a[0][0];a[1][0]......

所以我们来看选项:

A:*(x[i] + j),这里的x[i]相当于的是二维数组第i行的地址+j就相当于找第i行的第j个元素的地址,再解引用就找到了x[i][j]

B:这里要注意的是操作符优先级的问题,下标引用操作符是的优先级是高于解引用的,相当于的是**((X + i) + j),数组名相当于第一行的地址,➕了i+j个,跳过了i+j行,越界了;

C:在二维数组中,数组的元素名代表的是数组第一行的地址,所以对数组的首元素相加减,跳的位置是一个行的距离,很明显,这里是X+i+j,跳过了i+j行,越界了;

D:先找到i行,解引用,再找到j个元素,解引用;得到了x[i][j]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/136149.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django中如何创建表关系,请求生命周期流程图

Django中ORM创建表关系 如何创建表关系(一对一 , 一对多 , 多对多) 图书表,出版社表,作者表,作者详情表 换位思考法判断表关系 图书表和出版社表 >>> 一对多 >>> 图书表是多,出…

【Spring】@Component组件

大前提&#xff1a; 添加了相关的约束文件以及注解支持 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:…

异步编程工具Promise与Async/Await:解决前端开发中的嵌套回调地狱

文章目录 Promise&#xff1a;处理异步操作的基本工具Promise.all async/await&#xff1a;更简洁的异步编程方式Promise与async/await的比较结论 当谈及JavaScript中的异步编程时&#xff0c;两个非常常见且强大的工具是Promise和async/await。在本文中&#xff0c;我们将以实…

​软考-高级-系统架构设计师教程(清华第2版)【第3章 信息系统基础知识(p120~159)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第3章 信息系统基础知识(p120~159)-思维导图】 课本里章节里所有蓝色字体的思维导图

【Redis】String字符串类型

上一篇&#xff1a;Redis-key的使用 https://blog.csdn.net/m0_67930426/article/details/134361821?spm1001 .2014.3001.5501 目录 appen (附加&#xff09; strlen(获取字符串的长度&#xff09; incr decr getRange(获取字符串&#xff09; setRange&#xff08;替…

Flink

1. Flink简介 1.1 初识Flink Flink项目的理念是&#xff1a;“Apache Flink是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源的有状态的流处理框架”。 Apache Flink是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行有状态计算。Fl…

fastbins_Double Free调试

我大哥给我出了一题pwn heap题&#xff0c;当时现场的时候没解出来&#xff0c;想岔了。事后感概自己还是理解的不够透彻。决定认真再次调试下。用的是2.23版本的how2heap中fastbins_dup.c。 简单用gcc编译下&#xff0c;然后带源码调试&#xff1a; 生成一个a.out的文件&#…

leetcode刷题日记:111. Minimum Depth of Binary Tree(二叉树的最小深度)

给我们一个二叉树&#xff0c;我们应该如何来求二叉树的最小深度呢&#xff1f; 二叉树的最小深度指的是叶子结点到所处的位置最小的&#xff0c;这就是二叉树的最小深度&#xff0c;也就是说我们要找的是离根结点最近的叶子结点。如果我们从根结点向下出发寻找叶子节点&#x…

移动硬盘和u盘的区别哪个好 移动硬盘和u盘有啥区别

在数字时代的今天&#xff0c;数据存储已经成为我们生活中的重要一环。当我们需要移动、备份或传输大量数据时&#xff0c;常常会不知道是选择移动硬盘还是U盘。其实&#xff0c;对于许多人来说&#xff0c;移动硬盘和U盘之间的区别并不清晰。下面我们就来看移动硬盘和u盘的区别…

思科9300交换机使用USB进行升级ISO

一、下载ISO 一、网址 Software Download - Cisco Systems 二、找到型号 四、选择XE 软件 五、进行下载 二、COPY 进 U盘 一、、请注意&#xff01;如果你的U盘不是Fat32文件格式则交换机读取不了&#xff0c;请先格式化再复制文件。 二、下载后将 bin文件复制到U盘。 1.扩展…

经典OJ题:重排链表

题目&#xff1a; 给定一个链表&#xff0c;在进行重排前&#xff1a; 进行重排链表后&#xff1a; 如上图所示&#xff0c;所谓的重拍链表&#xff0c;就是将第一个节点连接第倒数第一个节点&#xff0c;第二个节点连接倒数第二个节点&#xff0c;以此类推&#xff0c;最后在连…

【matlab】KMeans KMeans++实现手写数字聚类

目录 matlab代码kmeans matlab代码kmeans MNIST DATABASE下载网址: http://yann.lecun.com/exdb/mnist/ 聚类 将物理或抽象对象的集合分成由类似特征组成的多个类的过程称为聚类(clustering)。 对于给定N个n维向量x1&#xff0c;…&#xff0c;xN∈Rn&#xff0c;聚类的目标…

贪心

【深基12.例1】部分背包问题 题目描述 阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有 N ( N ≤ 100 ) N(N \le 100) N(N≤100) 堆金币&#xff0c;第 i i i 堆金币的总重量和总价值分别是 m i , v i ( 1 ≤ m i , v i ≤ 100 ) m_i,v_i(1\le m_i,v_i \le 100) mi​,vi​(…

统计学_蒙特卡罗方法

1、蒙特卡罗方法的基本思想 蒙特卡罗方法(Monte Carlo method)是由冯诺依曼和乌拉姆等人发明的&#xff0c;“蒙特卡罗”这个名字是出自摩纳哥的蒙特卡罗赌场&#xff0c;这个方法是一类基于概率的方法的统称&#xff0c;不是特指一种方法。 蒙特卡罗方法也成统计模拟方法&am…

SpringBoot3数据访问

SpringBoot3数据访问 SpringBoot整合 Spring、SpringMVC、MyBatis进行数据访问开发。 整合SSM场景 整合步骤 1、创建SSM整合项目 ①数据库准备 DROP TABLE IF EXISTS t_user; CREATE TABLE t_user (id bigint NOT NULL AUTO_INCREMENT COMMENT 编号,login_name varchar(200)…

前端---认识HTML

文章目录 什么是HTML&#xff1f;HTML的读取、运行HTML的标签注释标签标题标签段落标签换行标签格式化标签图片标签a标签表格标签列表标签表单标签form标签input标签文本框单选框复选框普通按钮提交按钮文件选择框 select标签textarea标签特殊标签div标签span标签 什么是HTML&a…

2.1 CE修改器:精确数值扫描

本关是CE修改器的第一关&#xff0c;用户需要通过 Cheat Engine 工具完成精确扫描值。在这个练习中&#xff0c;需要将一个特定的数值&#xff08;健康值&#xff09;改变为 1000。首先&#xff0c;要确保数值类型设置正确&#xff0c;默认的是2字节或4字节。接着&#xff0c;选…

(三)正点原子I.MX6ULL kernel6.1挂根文件系统

一、概述 移植NXP官方最新的linux kernel&#xff08;linux-imx-lf-6.1.y&#xff09; 移植方法基本参照正点原子教程 移植开发板&#xff1a;正点原子阿尔法2.1 二、添加开发板到内核 进入内核目录下&#xff0c;先修改Makefile 打开终端&#xff1a; cp arch/arm/configs/im…

Nginx:如何实现一个域名访问多个项目

1. 背景介绍 最近在多个项目部署中遇到这样一个问题&#xff0c;一个域名如何实现多个项目的访问。因为不想自己单独去申请域名证书和域名配置&#xff0c;便想到了这个方案&#xff0c;结合Nginx的location功能实现了自己的需求&#xff0c;便记录下来。示例中是以项目演示&a…

Unity - 各向异性 - 丝绸材质

文章目录 目的环境主观美术效果的[假]丝绸基于物理的方式ProjectPBR filament web captureReferences 目的 拾遗&#xff0c;备份 环境 Unity : 2020.3.37f1 Pipeline : Builtin Rendering Pipeline 主观美术效果的[假]丝绸 非常简单 : half specualr pow(1 - NdotV, _Edg…