数据结构经典测试题4

news2024/9/22 13:38:14

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.coloradmin.cn/o/1947864.html

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

相关文章

前端面试宝典【Javascript篇】【2】

欢迎来到《前端面试宝典》&#xff0c;这里是你通往互联网大厂的专属通道&#xff0c;专为渴望在前端领域大放异彩的你量身定制。通过本专栏的学习&#xff0c;无论是一线大厂还是初创企业的面试&#xff0c;都能自信满满地展现你的实力。 核心特色&#xff1a; 独家实战案例…

Flink之重启策略

目录 1、固定延迟重启策略 2、失败率重启策略 3、不重启策略 在设置完 CheckPoint() 检查点机制后&#xff0c;不设置重启策略的话&#xff0c;&#xff0c;可以无限重启程序&#xff0c;那么设置的检查点机制也就没有什么意义了。因此&#xff0c;在生产实践中&#xff0c;…

笔记本检测工具 | 爱回收笔记本质检系统 v1.9.6

软件简介 爱回收笔记本质检系统是一款专为笔记本电脑硬件检测而设计的软件。它以其快速的检测速度、简便的操作流程和直观的检测结果&#xff0c;为用户提供了一种高效、易懂的硬件检测解决方案。 这款软件不仅适用于对电脑硬件有一定了解的用户&#xff0c;也特别适合对硬件…

Sentinel隔离、降级、授权规则详解

文章目录 Feign整合Sentinel线程隔离熔断降级授权规则自定义异常结果 上一期教程讲解了 Sentinel 的限流规则&#xff1a; Sentinel限流规则&#xff0c;这一期主要讲述 Sentinel 的 隔离、降级和授权规则 虽然限流可以尽量避免因高并发而引起的服务故障&#xff0c;但服务还…

【玩转C语言】第五讲--->数组-->一维和多维深度理解

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 引言&#xff1a; 大家好&#xff0c;我是坊钰&#xff0c;为了让大家深入了解C语言&#xff0c;我开创了【玩转C语言系列】&#xff0c;将为大家介绍C语言相关知识…

你还在为文件翻译烦恼吗?试试这四款神器,轻松搞定一切!

现如今的信息传播速度不断得加快&#xff0c;无论是中外交流还是学习&#xff0c;也越来越多小语种出现在我们的工作和生活当中来了&#xff0c;其中不伐一些文件批量的形式&#xff0c;所以今天就具体来探讨一下&#xff0c;关于文件翻译的四款辅助工具&#xff1a; 一、福昕在…

openGauss触发器详解

openGauss 是一款开源关系型数据库管理系统&#xff0c;广泛应用于企业级应用中。随着数据量的增长和业务逻辑的复杂化&#xff0c;数据库管理和操作的自动化需求越来越高。触发器&#xff08;Triggers&#xff09;作为数据库中重要的编程工具&#xff0c;能够极大地简化复杂操…

广州机房服务器搬迁布线方案

友力科技&#xff08;广州&#xff09;有限公司&#xff0c;专业从事数据中心机房建设、改造和搬迁工程。友力科技&#xff08;广州&#xff09;有限公司提供的服务内容包括但不限于&#xff1a;原数据中心设备下架准备、沿途运输、新数据中心上架运行、数据迁移等。 友力科技…

前端面试细节重难点(十二)(已工作|做分享)

1、如何区分在react、vue和js中的是否传递e参数&#xff1f;事件对象e都要通过event作为实参显示传递形参才可接收到吗&#xff1f; 答&#xff1a;&#xff08;1&#xff09;在原生JavaScript中&#xff1a;事件对象e需要通过函数参数显式传递。 &#xff08;2&#xff09;在R…

观测云加入华为云「新加坡云联盟」,引领亚太创新潮流

7月19日&#xff0c;「新加坡云联盟」在华为云新加坡峰会2024上正式宣告成立。这一创新的联合不仅是新加坡乃至整个亚太地区云服务领域的重要里程碑&#xff0c;更是全球数字化转型进程中的关键一步。 观测云作为联盟的首批成员之一&#xff0c;在成立仪式上精彩亮相&#xff0…

探索能源管理体系认证的意义与实施

能源管理体系&#xff08;Energy Management System, EnMS&#xff09;是一个综合性的框架&#xff0c;旨在帮助企业系统地管理能源使用&#xff0c;提升能源效率&#xff0c;实现可持续发展的目标。这个体系包括了企业的组织结构、职责分配、惯例、程序、过程以及资源管理。通…

Linux中为qt添加opencv

一. 安装OpenCV库&#xff1a; 打开终端&#xff0c;输入以下命令安装OpenCV&#xff1a; sudo apt-get update sudo apt-get install libopencv-dev二. 配置Qt项目 在Qt Creator中打开项目&#xff0c;然后编辑.pro文件&#xff0c;添加以下内容&#xff1a; INCLUDEPATH …

2024年必备的9大CRM工具选购指南

本文介绍的工具有&#xff1a;纷享销客、Zoho CRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpot CRM、Apptivo。 在选择合适的CRM系统时&#xff0c;许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说&#xff0c;找到一个既能提高客户关系管理效率&#x…

Java基础-Java多线程机制

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 一、引言 二、多线程的基本概念 1. 线程与进程 2. 多线程与并发 3. 多线程的优势 三、Java多线程的实…

GUL图形化界面操作(上部)

目录 AWT Frame对象&#xff1a;创建窗口 ​编辑 该对象相关的属性 设置窗口大小&#xff08;对象.setsize(int,int)&#xff09; 让窗口可以显现出来&#xff08;对象.setVisible(bool)&#xff09; 设置窗口标题&#xff08;对象.setTitle(String)&#xff09; 设置窗…

MySQL学习(14):索引使用规则

1. 索引语法 #创建索引 create [unique|fulltext] index 索引名 on 表名 (字段名,...); #字段可以有多个 #如果不加unique或fulltext&#xff0c;那么将创建一个普通索引 #在InnoDB引擎小&#xff0c;创建的索引默认是Btree结构#查看索引 show index from 表名;#删除索引 drop…

折叠群控FPV穿越机技术详解

折叠群控FPV穿越机技术是一个结合了多项高端技术和飞行理念的创新系统。以下是该技术的详细解析&#xff1a; 1. 技术概述&#xff1a; - FPV穿越机&#xff1a;FPV&#xff0c;全称First Person View&#xff0c;即“第一人称视角”&#xff0c;是指通过无人机上搭载的摄像头&…

Python+Pytest+Allure+Yaml+Pymysql+Jenkins+GitLab运行原理

PythonPytestAllureYamlPymysqlJenkinsGitLab运行原理逻辑及调用关系 GitLab代码仓&#xff1a; Jenkins工作空间&#xff1a; 代码&#xff1a; 测试报告展示&#xff1a;

医疗器械上市欧美,需要什么样的网络安全相关申报文件?

医疗器械在欧美上市时&#xff0c;需要提交的网络安全相关申报文件主要包括以下几个方面&#xff0c;这些要求基于欧美地区的法律法规和监管机构的指导文件。 一、美国FDA要求 1. 网络安全管理计划 内容&#xff1a;制造商需要提交一份网络安全管理计划&#xff0c;该计划应包含…

blender顶点乱飞的问题解决

初学blender&#xff0c;编辑模式下移动某些顶点&#xff0c;不管是移动还是滑动都会出现定点乱飞的问题&#xff0c;后来才发现是开了吸附工具的原因&#xff01;&#xff01;&#xff01;&#xff01; 像下面这样&#xff0c;其实我只是在Z轴上移动&#xff0c;但是就跑的很…