数据结构经典测试题4

1.

#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

p是char*类型,每次++,后移一个地址,char *p = str[0]相当于char *p = "stra",p先指向其中的字符's',printf输出遇到 0停止,第一次输出"stra",p++后,指向字符't',第二次输出"tra",第三次输出"ra".

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被赋值为m的首地址,此时p+1在数组m里会跳过4个元素,相当于 是将m中的元素四个一组进行管理,p[1]拿到第二组{5,6,7,8},而p[1]是5的地址,p[1][2]就是这一组里第三个元素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

计算时p1、str退化为首元素地址,则p1+2相当于是字符串"cd"的首地址,p2+1相当于是字符串"BCD"的首地址,strcat函 数将两个字符串拼接,并把新字符串"cdBCD"的首地址返回,再执行strcpy(str+2,"cdBCD");str+2是数组第3个元素'z'的地址 所以,strcpy(str+2,"cdBCD")也就是将'z'及其后的字符用"cdBCD"替换,而前面的"xy"不受影响 所以最后输出"xycdBCD".

4.

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

A: 两个字符串可以用关系运算符进行大小比较

B: 函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位)

C: C语言本身没有提供对字符串进行整体操作的运算符

D: 当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

答案为C

A选项错误,通常C语言中两个字符串比较大小,是借助strcmp()函数进行的。B选项中strlen返回的是字符串除结束符'\0'的 部分,实际占用内存大小加上结尾符。D选项两个字符串拼接后,原本每个字符串后都会有一个字符串结束符'\0',而拼接 后,字符串结束符只剩下一个,所以占用空间会减一.

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

内层while循环的作用让指针it2跳过字符'c',第一次越过后停在原字符串第一个'd'上,而在之前it1和it2是同步的,赋值不会 改变字符串内容,此时it1停在第一个'c'上,*it1++ = *it2++;语句将'c'替换为'd',字符串变更为"abddcccd",同时指针it1加 加停在第四个字符'd'上,it2再次跳过字符'c',停在最后一个'd'上,赋值后,字符串不变,再后移外层循环遇到0结束.

6.

URL化。编写一种方法,将字符串中的空格全部替换为 %20 。假定该字符串尾部有足够的空间存放新增字符, 并且知道字符串的“真实”长度。

示例:

输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith"

输入:" ", 5 输出:"%20%20%20%20%20"

char* replaceSpaces(char* S, int length){
int count = 0;
for (int i = length - 1; i >= 0; i--) {
if (S[i] == ' ') count++;//统计空格的个数
}
int r_end = length + count * 2; //实际所需数组空间的长度
int c_end = length - 1;//字符串的末尾
S[r_end--] = '\0';//先设置字符串结尾标志
while(c_end >= 0){ //从后往前开始遍历替换
if (S[c_end] == ' ') {//当前字符是空格则向末尾添加 %20
S[r_end--] = '0';
S[r_end--] = '2';
S[r_end--] = '%';
c_end--;
continue;
}
S[r_end--] = S[c_end--];//当前是非空格则直接赋值即可
}
return S;
}
谢谢

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

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

相关文章

【用最少数量的箭引爆气球】python刷题记录

R2-贪心篇. 求最小&#xff0c;那就尽可能地假设更多的气球y值不相同咯。 不对&#xff0c;气球除了y值我们随便摆&#xff0c;所以找尽可能多重叠的&#xff0c;就作为同一只箭。 class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:#贪心策略…

原生PHP/JS自主开发的交友内核框架婚恋交友系统V10

本文来自&#xff1a;婚恋交友系统V10 - 源码1688 应用介绍 原生PHP/JS自主开发的交友内核框架&#xff0c;极高性能、无捆绑、自主权、无流水扣点、独立全开源 01脱单盲盒&#xff1a;脱单盲盒类似于漂流瓶&#xff0c;先将自己《投放》到盲盒中&#xff0c;另一伴有缘将您取…

【文件fd】深入理解和实现Linux底下一切皆文件 | 系统和语言文件操作二者关系_封装 | 系统调用为什么怎样封装成库函数

目录 1.系统调用的打开/读/写文件操作 2.如何理解Linux底下一切皆文件 2.1设备属性 2.2设备的操作方法 3.如何实现Linus底下一切皆文件 4.源码查看 5.系统和语言文件操作二者关系 5.1 flags选项和C语言的"w""a"方式 二者的关系 5.2 系统的文件描…

Linux之基础IO(下)

目录 缓冲区的概念 深入理解文件系统 创建文件的整个过程 软链接 硬链接 上一节课我们学习了基础IO中的文件的读写操作&#xff0c;以及文件描述符的概念和重定向的基本原理&#xff0c;本期我们继续进行基础IO的学习。 缓冲区的概念 在讲缓冲区之前&#xff0c;大家先看…

Java 集合框架:HashMap 的介绍、使用、原理与源码解析

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 020 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

Redis (常用数据结构和命令)

目录 简介 概述 特点 数据结构 常用命令 通用命令 keys del exists expire 与 ttl String 命令 SET 和GET: MSET和MGET INCR和INCRBY和DECY SETNX SETEX Redis 命令 Key 的层级结构 key层级关系 &#xff1a; Hash命令 HSET和HGET HMSET和HMGET HGETALL H…

TypeScript核心

常用操作方式 1、类型推断 ts会根据变量存放的初始值来进行变量类型限定。 如上&#xff1a;开始str是字符串&#xff0c;则此变量以后就只能存字符串值。 开发中的意义&#xff1a;变量分配字符串值&#xff0c;后期可能会书写一些字符串功能、方法等相关的操作&#xff0c;如…

【算法/学习】前缀和差分

前缀和&&差分目录 1. 前缀和的概念及作用 &#x1f308;概念 &#x1f308;用途 &#x1f319;一维前缀和 &#x1f319;二维前缀和 2. 差分的概念及用途 &#x1f308;概念&#xff1a; &#x1f308;用途 &#x1f319;一维差分 &#x1f319;二维差分 1. …

JVM面试题之内存区域、类加载篇

文章目录 引言JVM是什么&#xff1f;1. JVM内存划分2. 对象如何在JVM中创建2.1 内存分配2.2 创建对象步骤 3. JVM类加载流程3.1 双亲委派 总结 引言 Java开发人员在面试中基本都会被问到关于JVM的问题。想要成为高级的开发人员&#xff0c;了解和学习Java运行的原理和JVM是必不…

数据结构——二叉树性质

性质1:在二叉树的第i层上至多有2^(i-1)个结点(i>1)。 这个性质很好记忆&#xff0c;观察一下图6-5-5。 第一层是根结点&#xff0c;只有一个&#xff0c;所以2^(1-1)2^01。 第二层有两个&#xff0c;2^(2-1)22。 第三层有四个&#xff0c;2^(3-1)2^24。 第四层有八个&am…

【年报文本分析】Python+Selium获取互动易平台投资者提问与上市公司回应文本数据

目录 序言excel文件准备全部代码 序言 互动易平台链接&#xff1a;https://irm.cninfo.com.cn/views/interactiveAnswer 需要提前下载好三个库&#xff0c;都可以用pip install轻松下载&#xff0c;稍微麻烦点儿的是需要去下载个对应版本的chromedriver.exe驱动&#xff0c;放…

路由表与IP数据报的转发

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、相关知识 1、路由类型 路由表中有3类路由&#xff1a;直连路由、静态路由、动态路由 直连路由&#xff1a;一般指去往路由器接口直接连接网络的…

mysql中You can’t specify target table for update in FROM clause错误

mysql中You can’t specify target table for update in FROM clause错误 You cannot update a table and select directly from the same table in a subquery. mysql官网中有这句话&#xff0c;我们不能在一个语句中先在子查询中从某张表查出一些值&#xff0c;再update这张表…

【ffmpeg命令入门】视频剪切,倍速与倒放

文章目录 前言1. 视频剪切2. 视频倍速公式说明例子 3. 视频倒放总结 前言 在视频编辑中&#xff0c;剪切、倍速和倒放是常见的操作&#xff0c;能够帮助我们调整视频的长度、播放速度以及播放顺序。掌握 FFmpeg 命令中的相关参数和用法将使视频处理变得更加高效。在这篇文章中…

pytest使用

主要技术内容 1.pytest设计 接口测试 框架设想 common—公共的东西封装 1.request请求 2.Session 3.断言 4.Log 5.全局变量 6.shell命令 ❖ config---配置文件及读取 ❖ Log— ❖ payload—请求参数—*.yaml及读取 ❖ testcases—conftest.py; testcase1.py…….可…

2024年【熔化焊接与热切割】考试题及熔化焊接与热切割考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试题是安全生产模拟考试一点通生成的&#xff0c;熔化焊接与热切割证模拟考试题库是根据熔化焊接与热切割最新版教材汇编出熔化焊接与热切割仿真模拟考试。2024年【熔化焊接与热切割】考试题及熔化…

vue-plugin-hiprint 打印 预览打印+静默打印

1.安装 npm install vue-plugin-hiprint npm i socket.io-client --save //为了静默打印 &#xff08;为此还需安装客户端&#xff09; 2…html页面 引入css <link rel"stylesheet" type"text/css" media"print" href"https://cdn.jsde…

创新大赛中财务预测的策略与技巧

创新大赛中财务预测的策略与技巧 前言财务预测的重要性财务预测的步骤财务预测的关键要素注意事项结语 前言 在当今快节奏、竞争激烈的商业环境中&#xff0c;创新不仅是推动企业成长的动力&#xff0c;更是衡量一个项目能否在市场中脱颖而出的关键。创新大赛作为展示这些创新成…

星耀巴黎,竞猜有礼!为运动健儿加油,让世界看见中国力量

即将高燃来袭首金荣耀&#xff0c;让我们拭目以待&#xff01; 当象征着“更快、更高、更强”的号角再次吹响&#xff0c;谁又能在这场全球瞩目的体育盛宴中&#xff0c;率先触碰那份至高无上的荣耀&#xff1f;“首金”不仅是一个国家或地区体育实力的象征&#xff0c;更是运…

1台solidworks图形工作站同时给5人一起使用

在日益发展的科技环境中&#xff0c;团队协作已成为各个行业不可或缺的一一部分。对于工程设计和图形处理领域而言&#xff0c;SolidWorks等强 大的三维建模和仿真软件成为了日常工作的重要工具。 随着团队规模的扩大和项目复杂性的增加&#xff0c;如何高效、稳定地为多人提供…