C语言—每日选择题—Day68

第一题

1、运行以下C语言代码,输出的结果是()

#include <stdio.h>
int main()
{char *str[3] ={"stra", "strb", "strc"};char *p =str[0];int i = 0;while(i < 3){printf("%s ",p++);i++;} return 0;
}

A: stra strb strc

B: s t r

C: stra tra ra

D: s s s

答案及解析 C

这里需要注意的是printf函数,会自动识别字符串,到\0位置结束打印

而p为char*类型,p++,只会移动一个字节,p++后置++,返回++之前的值

所以第一次打印:stra,但p在t位置

第二次:tra,但p在r位置

第三次为:ra,但p在a位置

第二题

2、下列代码输出的结果是什么()

#include <stdio.h>
int main() 
{int m[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};int(*p)[4] = (int(*)[4])m;printf("%d", p[1][2]);return 0;
}

A: 7

B: 3

C: 8

D: 4

答案及解析 A

这里p是一个数组指针,类型为int(*)[4]

p[1] [2] 相当于:*(*(p + 1) + 2),p的类型为int (*) [4],所以p + 1,是往后4个元素大小

相当于取到了5,6,7,8的整个地址

而数组指针,这样理解更容易:int arr[4];

&arr :表示整个数组的地址,是数组指针,对数组指针解引用:*&arr = arr;

所以对数组指针解引用得到的是数组指针开头的元素地址;

那*(p + 1) 就是5的地址,类型int*

所以*(*(p + 1) + 2),就是往后移动两个元素,到7的地址,再解引用拿出7;

第三题

3、下列程序的输出结果是( )

int main()
{char p1[15]="abcd", *p2="ABCD", str[50]="xyz";strcpy(str + 2, strcat(p1+2, p2+1));printf("%s", str);return 0;
}

A: xyabcAB

B: abcABz

C: ABabcz

D: xycdBCD

答案及解析 D

首先要记住strcpy,是覆盖到str + 2,所指向的地址,所以应该在z往后覆盖;

而strcat,是链接字符串,从p1 + 2 为起始位置,p2 + 1为起始位置,p2 + 1链接到p1 + 2末尾:cdBCD

strcpy中:就是z变成cdBCD

所以str就是xycdBCD

第四题

4、以下叙述中正确的是( )

A: 两个字符串可以用关系运算符进行大小比较
B: 函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位)
C: C语言本身没有提供对字符串进行整体操作的运算符
D: 当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

答案及解析 C

A:错误,字符串比较需要使用strcmp函数,因为要比较相同位置的字符的ASCII值

B:错误:strlen函数返回的是到 ‘ \0 ’之前的长度,而 ' \0 '也占用了内存,并没返回实际占用内存大小;

C:正确

D:错误:在拼接的时候,是舍去了一个字符串的 '\0',结果字符串占用内存的空间应该是原字符串空间和 - 1;

第五题

5、程序的结果是什么( )

#include<stdio.h>
char* f(char* str, char ch)
{char* it1 = str;char* it2 = str;while(*it2 != '\0'){while (*it2 == ch){it2++;} *it1++ = *it2++;} return str;
} 
int main() 
{char a[10];strcpy(a, "abcdcccd");printf("%s", f(a, 'c'));return 0;
}

A: abdcccd

B: abdd

C: abcc

D: abddcccd

答案及解析 D

这个自己按着程序思路遍历一遍就行

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在win10上虚拟一个LoongOS系统(类似虚拟机)作为开发环境

文章目录 1.安装1.1.下载这三个东西1.2.安装好qemu。1.3.创建一个启动脚本startup_mate.bat&#xff0c;然后把三部分东西放到一起1.4.然后双击startup.bat就可以启动了。 2.文件的传输2.1.使能虚拟机系统的ssh2.2.连接ssh 3.Qt相关安装Qt安装opencv 1.安装 注意&#xff0c;一…

ClickHouse--17--argMin() 和argMax()函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 argMin() 和argMax()函数业务场景使用案例1.准备表和数据&#xff1a;业务场景一&#xff1a;查看salary 最高和最小的user业务场景二&#xff1a;根据更新时间获取…

再也不怕面试官问 OOM了,一次生产环境 Metaspace OOM 排查流程实操!

问题背景 小奎公司的运维同时今天反映核心业务一个服务目前 CPU 的使用率、堆内存、非堆内存的使用率有点高。刚反映没有过多久该服务就直接 OOM 了&#xff0c;以下是生产监控平台监控信息。 CPU 使用率监控 堆内存和非堆内存使用率 OOM 产生的日志报错信息 问题分析 根…

Go第三方框架--ants协程池框架

1. 背景介绍 1.1 goroutine ants是站在巨人的肩膀上开发出来的&#xff0c;这个巨人是goroutine&#xff0c;这是连小学生都知道的事儿&#xff0c;那么为什么不继续使用goroutine(以下简称go协程)呢。这是个思考题&#xff0c;希望讲完本文大家可以有个答案。 go协程只涉及用…

Docker部署minio集群

1.基本定义 由于是非常轻量级的软件&#xff0c;所以架构上也没有这么复杂&#xff0c;他使用操作系统的文件系统作为存储介质&#xff0c;我们在向任意节点写数据的时候&#xff0c;minio会自动同步数据到另外的节点&#xff0c;而机制叫做erasure code&#xff08;纠删码&am…

linux内核驱动-在内核代码里添加设备结点

linux中&#xff0c;一切皆文件 我们在用户层用一些系统函数&#xff08;如&#xff1a;fopen等等&#xff09;时&#xff0c;会进入内核&#xff0c;内核会在字符注册了的设备号链表中查找。如果找到就运行我们写的设备文件的&#xff08;驱动&#xff09;函数 我们在前面已经…

RuoYi-Vue若依框架-vue前端给对象添加字段

处理两个字段的时候有需求都要显示在下拉框的同一行&#xff0c;这里有两种解决方案&#xff0c;一是后端在实体类添加一个对象&#xff0c;加注解数据库忽略处理&#xff0c;在接口处拼接并传给前端&#xff0c;二是在前端获取的数据数组内为每个对象都添加一个字段&#xff0…

cannal的使用

搭建MySQL 安装canal 1.新建文件夹logs, 新建文件canal.properties instance.properties docker.compose.yml instance.properties ################################################# ## mysql serverId , v1.0.26 will autoGen # canal.instance.mysql.slaveId0# enable g…

06 Php学习:字符串

PHP 中的字符串变量 在 PHP 中&#xff0c;字符串是一种常见的数据类型&#xff0c;用于存储文本数据。字符串变量可以包含字母、数字、符号等字符&#xff0c;并且可以进行各种操作和处理。以下是关于 PHP 中字符串变量的一些重要信息&#xff1a; 定义字符串变量&#xff1…

【SpringBoot3】Bean管理

1.Bean扫描 1.1传统Spring 标签&#xff1a;<context:component-scan base-package"com. example "/>注解&#xff1a;ComponentScan(basePackages "com.example") 1.2SpringBoot SpringBoot默认扫描启动类所在的包及其子包 2.Bean注册 如果要注…

SQL注入sqli_labs靶场第五、六题

第五题 根据报错信息&#xff0c;判断为单引号注入 没有发现回显点 方法&#xff1a;布尔盲注&#xff08;太耗时&#xff0c;不推荐使用&#xff09; 1&#xff09;猜解数据库名字&#xff1a;&#xff08;所有ASCII码值范围&#xff1a;0~127&#xff09; ?id1 and length…

TDengine too many open files

too many open files 是比较常见的报错&#xff0c;尤其使用TDengine 3.0 集群时&#xff0c;大概率会遇到。这个报错很简单&#xff0c;但要想顺利解决&#xff0c;却涉及到很多知识点。 目录 知识点&#xff1a;fs.nr_open知识点&#xff1a;file-max & fs.file-nr知识点…

Linux多进程通信(4)——消息队列从入门到实战!

Linux多进程通信总结——进程间通信看这一篇足够啦&#xff01; 1.基本介绍 1&#xff09;消息队列的本质其实是一个内核提供的链表&#xff0c;内核基于这个链表&#xff0c;实现了一个数据结构&#xff0c;向消息队列中写数据&#xff0c;实际上是向这个数据结构中插入一个…

怎样系统地学习自动化测试?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 平时的测试工作其实细分一下&#xff0c;大概有三个领域…

C++ 线程库(thread)与锁(mutex)

一.线程库(thread) 1.1 线程类的简单介绍 thread类文档介绍 在C11之前&#xff0c;涉及到多线程问题&#xff0c;都是和平台相关的&#xff0c;比如windows和linux下各有自己的接口&#xff0c;这使得代码的可移植性比较差。C11中最重要的特性就是对线程进行支持了&#xff…

操作系统的基础知识:操作系统的特征:并发,共享,虚拟,异步

操作系统的特性&#xff1a; 1.并发 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的&#xff0c;但微观上是交替注意&#xff1a;并行:指两个或多个事件在同一时刻同时发生。 操作系统的并发性指计算机系统中“同时”运行着多个程序&#xff0c;这…

graphicLayer.startDraw({开启连续绘制isContinued之后,无法获取连续标绘的坐标数据

摘要&#xff1a;graphicLayer.startDraw({开启连续绘制isContinued之后&#xff0c;无法获取连续标绘的坐标数据的解决方案 问题前景&#xff1a; graphicLayer.startDraw({开启连续绘制isContinued之后&#xff0c;.then()方法只走一次&#xff0c;无法获取连续标绘的所有坐…

【Linux】shell 脚本基础使用

在终端中输入命令可以完成一些常用的操作&#xff0c;但是我们都是一条一条输入命令&#xff0c;比较麻烦&#xff0c;为了解决这个问题&#xff0c;就会涉及到 shell 脚本&#xff0c;它可以将很多条命令放到一个文件里面&#xff0c;然后直接运行这个文件即可。 shell 脚本类…

【3GPP】【核心网】核心网/蜂窝网络重点知识面试题二(超详细)

1. 欢迎大家订阅和关注&#xff0c;3GPP通信协议精讲&#xff08;2G/3G/4G/5G/IMS&#xff09;知识点&#xff0c;专栏会持续更新中.....敬请期待&#xff01; 目录 1. 对于主要的LTE核心网接口&#xff0c;给出运行在该接口上数据的协议栈&#xff0c;并给出协议特征 2. 通常…

Centos7使用docker安装Jenkins(含pipeline脚本语句)

一、下载Jenkins docker pull jenkins/jenkins:lts 二、启动Jenkins docker run \-u root \--rm \-d \-p 8081:8080 \-p 50000:50000 \-v /root/docker/jenkins/var/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr…