数据结构经典测题3

news2024/11/15 15:25:28

1.

设有定义: char *p; ,以下选项中不能正确将字符串赋值给字符型指针 p 的语句是【多选】( )

A: p=getchar(); B: scanf("%s",p); C: char s[]="china"; p=s; D: *p="china";

答案为ABD

A选项,首先类型就不匹配,getchar()函数返回值是int,只能赋值给整型,此时p为char*类型。B选项,p指针在定义的时 候没有分配内存,这行代码在运行的时候会报野指针错误。C选项,指针p指向数组s。D选项,*p代表p指向内存的内容, 这 里要使用p = "china"才正确.

2.

#include<stdio.h>
int main()
{
static char *s[] = {"black", "white", "pink", "violet"};
char **ptr[] = {s+3, s+2, s+1, s}, ***p;
p = ptr;
++p;
printf("%s", **p+1);
return 0;
}

上述代码输出结果是什么?

A: ink B: pink C: white D: hite

答案为A

char **ptr[] 是一个二级指针数组,存的是s这个指针数组中每个元素的地址,p是一个三级指针,ptr这个二级指针数组的 数组名会退化成一个三级指针赋值给p,++p相当于是在ptr数组上往后跳了一个元素的位置,*p就是ptr数组第二个元素的内 容,也就是指向s数组中s+2这个元素的地址,**p就得到了s数组中s+2这个元素的内容, s数组中保存的是字符串的首地址,那就 得到了"pink"这个元素的首地址,在**p+1就是这个地址向后偏移一个字节,也就指到了'i'上,所以printf("%s",**p+1);输出的就 是"ink".

3.

若有定义语句: char s[3][10],(*k)[3],*p; 则以下赋值语句错误的是( )

1.p = s;
2.p = k;
3.p = s[0];
4.k = s;

A: 124 B: 1234 C: 12 D: 234

答案为A

题目主要就考指针类型是否一样,char s[3][10]中s运算时会退化为数组指针,类型为char (*)[10],所指向的每个数组长度 为10;char (*k)[3]很明显k就是一个数组指针,类型也为 char (*)[3],所指向的每个数组的长度为3;char *p类型为char * 指针,s[0]代表二维数组第一行,运算时会退化为第一行首元素地址,类型为char *。在没有强制类型转换的情况下,只有 类型完全相同的指针才能相互赋值.

4.

假设 sizeof(void *) 为4,sizeof(char) 为1,那么对于 char str[sizeof("ab")]; sizeof(str) 的值是( )

A: 2 B: 3 C: 4 D: 代码无法编译

答案为B

因为sizeof是计算数据结构的大小,数组就是一种数据结构,sizeof(str)此时str代表整个数组。对于"ab",编译器都会自动 在后面添一个0,占据一个字节,共3个字节,故数组str的长度为3,元素是char类型,故最终结果为3.

5.

有如下程序段,则对函数 fun 的调用语句正确的是【多选】( )

char fun(char *);
int main()
{
char *s = "one", a[5] = {0}, (*f1)(char *) = fun, ch;
return 0;
}

A: *f1(&a); B: f1(*s); C: f1(&ch); D: ch = *f1(s);要改成(*f1)(s)才正确

答案为CD

我们知道使用(*f1)(s)与f1(s)效果是相同的。*f1(s)中()的优先级比*高,先结合为f1(s),返回结果是char,*f1(s)是对返回结 果char类型数据解引用,是错的,改成(*f1)(s)是对的,故D正确;对ch取地址得到char *,作为参数没问题,C正确;A错 在对char解引用,B错在参数类型不匹配.

6.

给定两个字符串 s1 和 s2 ,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符 串.

bool CheckPermutation(char* s1, char* s2){
int table1[256] = {0}, table2[256] = {0};
int len1 = strlen(s1);
int len2 = strlen(s2);
if (len1 != len2) return false;//长度都不同,直接不可能了
while(*s1 != '\0' && *s2 != '\0') {
table1[*s1] += 1;//以字符ascii值为下标对s1字符串的字符进行计数

table2[*s2] += 1;//以字符ascii值为下标对s2字符串的字符进行计数
s1++;
s2++;
}
for (int i = 0; i < 256; i++) {
if (table1[i] != table2[i]) { //判断两个字符串相同位置是否计数相同即可
return false;
}
}
return true;
}

谢谢

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

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

相关文章

汇昌联信数字做拼多多运营实力好吗?

汇昌联信数字在拼多多运营方面的实力如何?汇昌联信数字作为一家专注于电子商务运营服务的公司&#xff0c;其在拼多多平台的运营能力是值得关注的。根据市场反馈和客户评价&#xff0c;汇昌联信数字在拼多多的运营实力表现良好&#xff0c;能够为客户提供专业的店铺管理、产品…

学习大数据DAY23 Linux基本指令4与ngnix安装以及Shell,python编写环境配置

目录 其他扩展类 echo 输出字符串 date 显示当前日期 (用于日期转字符串) date -d 日期解析&#xff08;用于字符串转日期&#xff09; date 设置日期 linux 网络对时 cal 查看日历 wget 命令 seq 命令 Linux 定时执行计划 特殊符号说明 linux 添加硬盘分区挂载 上…

PotatoTool 蓝队版 V1.3 发布:增强功能和性能优化

一、简介 经过广大网友的反馈和建议&#xff0c;我们对V1.1版本中存在的问题进行了优化。其中&#xff0c;我们针对MD5库进行了本地化处理&#xff0c;以提高查询效率。然而&#xff0c;这也导致了软件体积的飙升。二、优化概述 1、兼容性 兼容arm架构系统 2、UI 2.1 界面…

Meta革命性发布:Llama 3.1——性能最强的AI开源模型,开启智能新时代!

前言 &#x1f680; Meta隆重推出Llama 3.1&#xff1a;迄今为止性能最强的AI模型 Meta公司近日发布了他们最新的AI语言模型——Llama 3.1&#xff0c;这一消息迅速在科技界掀起了波澜。作为猫头虎技术团队&#xff0c;我们将为大家详细解析Llama 3.1的强大功能及其应用前景。…

unity文字||图片模糊

一.文字模糊 1、增大字体大小后等比缩放 快捷键R 2、更改字体渲染模式 二.图片模糊 1、更改过滤模式 2、更改格式或者压缩 3、如果只是图片边缘看不清&#xff0c;可以增加canvas/图片的每单位参考像素

C++学习笔记01-语法基础(问题-解答自查版)

前言 以下问题以Q&A形式记录&#xff0c;基本上都是笔者在初学一轮后&#xff0c;掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系&#xff0c;也适合做查漏补缺和复盘。 本文对读者可以用作自查&#xff0c;答案在后面&#xff0…

AV1技术学习:Quantization

量化是对变换系数进行&#xff0c;并将量化索引熵编码。AV1的量化参数 QP 的取值范围是0 ~ 255。 一、Quantization Step Size 在给定的 QP 下&#xff0c;DC 系数的量化步长小于 AC 系数的量化步长。DC 系数和 AC 系数从 QP 到量化步长的映射如下图所示。当 QP 为 0 时&…

inventory主机清单管理与playbook剧本

1 inventory主机清单管理 Inventory支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或多个主机组内。 如果是名称类似的主机&#xff0c;可以使用列表的方式标识各个主机。 vim /etc/ansible/hosts [webservers] 192.168.8…

L60---1189. “气球” 的最大数量(排序)---Java版

1.题目 2.思路 (1)用字典的方法 (2)今天脑子已经无法思考了&#xff0c;明天再补充 3.代码实现 class Solution {public int maxNumberOfBalloons(String text) {// 单词 "balloon" 中各字母的需求Map<Character, Integer> required new HashMap<>()…

leetcode3098. 求出所有子序列的能量和

官解 class Solution(object):# 定义常量mod int(1e9 7) # 模数&#xff0c;用于防止结果溢出inf float(inf) # 无穷大&#xff0c;用于初始化时的特殊值def sumOfPowers(self, nums, k):n len(nums) # 数组长度res 0 # 用于存储最终结果# 三维动态规划表&#xff0c;…

JAVA.包、final、权限

包 final 权限 代码块 1.构造代码块 创建这个本类的对象的时候会先指向构造代码块再执行构造方法 作用&#xff1a;把构造方法重复的部分抽取出来 2.静态代码块 static 随着类的加载而加载&#xff0c;只执行一次。 作用&#xff1a;数据初始化&#xff0c;比如在学生管…

AV1技术学习:Constrained Directional Enhancement Filter

CDEF允许编解码器沿某些(可能是倾斜的)方向应用非线性消阶滤波器。它以88为单位进行。如下图所示&#xff0c;通过旋转和反射所示的三个模板来定义八个预设方向。 Templates of preset directions and their associated directions. The templates correspond to directions of…

从零开始:在Linux系统上创建和管理Conda环境的详细指南【安装教程】

引言 在数据科学和机器学习领域&#xff0c;使用虚拟环境来管理不同项目的依赖是一个常见且重要的实践。Conda是一个强大的包管理和环境管理工具&#xff0c;广泛应用于Python和R的开发环境中。本文将详细介绍如何在Ubuntu系统上从零开始安装和使用Conda&#xff0c;通过创建和…

keras框架的to_categorical方法

在阅读keras的中文文档时候&#xff0c;对于这里的代码不了解 y_train keras.utils.to_categorical(np.random.randint(10, size(1000, 1)), num_classes10)这里应该拆分为两部分看待 第一个是np.random.randint() 查看numpy文档知道&#xff1a; random.randint ( low , hi…

设计模式--创建型

实现 #include <iostream> #include <memory>// 抽象产品类 class Product {public:virtual void Operation() const 0; };// 具体产品 类A class ConcreteProductA : public Product {public:virtual void Operation() const override {std::cout << &quo…

Tomcat部署、优化、压力测试

目录 Tomcat概念 核心组件 Web容器 Web服务器之间解析请求的区别 Apache HTTP Server Nginx Tomcat Servlet容器 JSP容器 字节码文件 Tomcat表面处理请求的过程 Tomcat底层处理请求的过程 内部结构 Tomcat部署 JRE环境配置 PATH冒号位置的区别 安装Tomcat 目…

连接Redis异常:JedisMovedDataException

redis.clients.jedis.exceptions.JedisMovedDataException: MOVED 5798 192.168.187.138:6379 在使用JAVA API连接redis的时候&#xff0c;出现了异常&#xff1a; 问题的原因 JAVA API实现是redis集群实现方式&#xff0c;而在配置文中就配置的是单结点的方式。 Moved表示使…

MySQL的高可用(MHA)

高可用模式下的故障切换&#xff0c;基于主从复制。 单点故障和主从复制不能切换的问题。 至少需要三台。 故障切换过程0-30秒 vip地址&#xff0c;根据vip地址所在的主机&#xff0c;确定主备。 主 vip 备 vip 主和备不是优先级确定的&#xff0c;主从复制的时候就确定…

使用infercnv对单细胞转录组进行拷贝数变异推断(上,原理)

InferCNV 是一个专门设计用于鉴定肿瘤样本中拷贝数变异&#xff08;Copy Number Variations, CNVs&#xff09;的R包&#xff0c;特别是在单细胞RNA测序&#xff08;scRNA-seq&#xff09;数据分析领域。它通过比较肿瘤细胞与正常细胞&#xff08;或参照细胞&#xff09;的基因…

【Leetcode】十八、动态规划:不同路径 + 全1的最大正方形

文章目录 1、动态规划2、leetcode509&#xff1a;斐波那契数列3、leetcode62&#xff1a;不同路径4、leetcode121&#xff1a;买卖股票的最佳时机5、leetcode70&#xff1a;爬楼梯6、leetcode279&#xff1a;完全平方数7、leetcode221&#xff1a;最大正方形 1、动态规划 只能…