C语言笔试训练【第九天】

文章目录

  • 👿1、下列程序的输出是( )
  • 💎2、二维数组X按行顺序存储,其中每个元素占1个存储单元。若 X[4][4] 的存储地址为 Oxf8b82140 , X[9][9] 的存储地址为 Oxf8b8221c ,则 X[7][7] 的存储地址为( )
  • 👻3、以下哪个选项可以正确描述 sizeof(double) ( )
  • 👹4、下列代码运行后的结果是什么( )
  • 👾5、以下逗号表达式的值为( )
  • 🤖自除数
  • 😈除自身以外数组的乘积

👿1、下列程序的输出是( )

#include<stdio.h>
int main()
{
	int a[12] = { 1,2,3,4,5,6,7,8,9,10,11,12 }* p[4], i;
	for (i = 0; i < 4; i++)
		p[i] = &a[i * 3];
	printf("%d\n",p[3][2]);
	return 0;
}

A: 上述程序有错误 B: 6 C: 8 D: 12

这道题中的数组p里的数据类型为 int* 类型,p是一个指针数组,p[i] = &a[i*3]相当于是把数组a每3个一组分开并把每组的首地址存在p数组,此时p类似一个4行3列的二维数组,p[3][2]就是4行第3个元素12,但二维数组的本质也是一维数组,如图,所以选 D
在这里插入图片描述

💎2、二维数组X按行顺序存储,其中每个元素占1个存储单元。若 X[4][4] 的存储地址为 Oxf8b82140 , X[9][9] 的存储地址为 Oxf8b8221c ,则 X[7][7] 的存储地址为( )

A: Oxf8b821c4 B: Oxf8b821a6 C: Oxf8b82198 D: Oxf8b821c0**

并不知数组有几行几列,所以不能用普通的数组
在这里插入图片描述

假设每行有n个元素:那x[9][9]元素的地址 - x[4][4]元素的地址 = 0x21c-0x140=5n+5(21c和140是地址末三位的十六进制数),这里n是43,假设x[7][7]的地址是z,x[7][7]元素的地址 - x[4][4]元素的地址 = z-0x140 = 3n+3,z = 3n+3+140 =
3*43+3+0x140 = 0x84+0x140 = 0x1c4,看地址的尾数,选择A

👻3、以下哪个选项可以正确描述 sizeof(double) ( )

A: 一个整型表达式 B: 一个双精度型表达式 C: 一个不合法的表达式 D: 一种函数调用

sizeof是C语言中的一个操作符,不是函数调用,简单的说其作用就是返回一个对象或者类型所占的内存字节数,结果是无符
号整数,因此可以把它看作是整型表达式。所以选择 A

👹4、下列代码运行后的结果是什么( )

int main(){
	char a = 'a', b;
	printf("%c,", ++a);
	printf("%c\n", b = a++);
	return 0;
}

A: b,b B: b,c C: a,b D: a,c

变量a里边存的是字符’a’,第一次输出先加加再输出,输出的是’b’;第二次输出的时候,a先赋值再加加,赋值给b的就是a原来
的值,输出b的时候的还是’b’,所以选 A

👾5、以下逗号表达式的值为( )

(x= 4 * 5 , x * 5) , x + 5;

A: 25 B: 20 C: 100 D: 45

逗号表达式是从前到后依次计算子表达式,而其结果是最后一项的值,此题去掉括号后的表达式,和原表达式是等价的,先
计算45并赋值给x,x变为20,中间x5并没有改变x的值,最后一项x+5值是25,也就是整个表达式的值,所以选 A

🤖自除数

自除数
自除数 是指可以被它包含的每一位数整除的数。

例如,128 是一个 自除数 ,因为 128 % 1 = 0,128 % 2 = 0,128 % 8 =0。自除数 不允许包含 0 。

给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。
在这里插入图片描述
此题只需要将这个数的每一位找出,再用这个数进行取模,看是否等于0即可。但要注意一点,如果这个数中含有0,那他不可能是自除数,因为0不能做除数

int* selfDividingNumbers(int left, int right, int* returnSize){
    int len=right-left+1;
    int *arr=(int*)malloc(sizeof(int)*len);
    int j=0;
    for(int i=left;i<=right;i++){
        int ret=i;
        while(ret){
            int z=ret%10;
            if(z==0)
                break;
            if(i%z !=0)
                break;
            ret/=10;
        }
        if(ret==0){
            arr[j]=i;
            j++;
        }
    }
    *returnSize=j;
    return arr;
}

😈除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。

请不要使用除法,且在 O(n) 时间复杂度内完成此题。
在这里插入图片描述
题目明确说明不能用除法。当然,使用除法也不一定行的同,因为数组中如果哪个位置为0的话,就不能正常运算,会出错。
这里我看了官方题解的做法,叫左右乘积列表

我们不必将所有数字的乘积除以给定索引处的数字得到相应的答案,而是利用索引左侧所有数字的乘积和右侧所有数字的乘积(即前缀与后缀)相乘得到答案。

对于给定索引 i,我们将使用它左边所有数字的乘积乘以右边所有数字的乘积。下面让我们更加具体的描述这个算法
算法的具体实现步骤(leetcode)
在这里插入图片描述

这里就用官方的例子来画图举例
在这里插入图片描述
答案对应的位置就是两个数组对应位置的乘积。

int* productExceptSelf(int* nums, int numsSize, int* returnSize){
    int i=0,ret=1;
    int* arr1=(int*)malloc(sizeof(int)*numsSize);
    arr1[0]=1;
    int* arr2=(int*)malloc(sizeof(int)*numsSize);
    arr2[numsSize-1]=1;
    int* arr3=(int*)malloc(sizeof(int)*numsSize);
    for(i=0;i<numsSize-1;i++){
        ret*=nums[i];
        arr1[i+1]=ret;
    }
    ret=1;
    for(i=numsSize-1;i>0;i--){
        ret*=nums[i];
        arr2[i-1]=ret;
    }
    for(i=0;i<numsSize;i++){
        arr3[i]=arr1[i]*arr2[i];
    }
    *returnSize=numsSize;
    return arr3;
}

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

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

相关文章

交换实验一

题目 交换机上接口配置 SW1 interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 port hybrid untagged vlan 3 to 6 interface Ethernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 2 to 6 interface Ethernet0/0/3 port link-type access port d…

C++基础语法——继承

1.继承是什么&#xff1f; 继承是一种面向对象编程的概念&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;从另一个类&#xff08;称为基类或父类&#xff09;继承属性和方法。继承使得子类能够使用基类已有的代码&#xff0c;并且可以在此基础上进行扩展或修…

99页4万字XX大数据湖项目建设方案

导读&#xff1a;原文《99页4万字XX大数据湖项目建设方案》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 目 录 1.项目综述 1.1.项目背景 1.2.项目目标 1.3.项…

Error = [Microsoft][SQL Server Native Client 10.0]无法打开 BCP 主数据文件(已解决)

需求&#xff1a;分页方式查出表中数据存入excel中&#xff0c;并给excel标记不同的编号 前提&#xff1a; #all_4表中数据已准备好 版本&#xff1a; sql server 2008 declare n int set n 1 while n 100 begin print n:print nEXEC master.dbo.sp_configure show adva…

什么是flexbox布局?它有什么特点和优势?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是 Flexbox 布局&#xff1f;⭐ 特点和优势⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那…

(三)行为模式:1、责任链模式(Chain of Responsibility Pattern)(C++示例)

目录 1、责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;含义 2、责任链模式的UML图学习 3、责任链模式的应用场景 4、责任链模式的优缺点 5、C实现责任链模式的实例 1、责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;含义 责任…

2682. 找出转圈游戏输家

题目描述&#xff1a; n 个朋友在玩游戏。这些朋友坐成一个圈&#xff0c;按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i 1) 个朋友的位置&#xff08;1 < i < n&#xff09;&#xff0c;而从第 n 个朋友的位置开始顺时针移动 1 步…

vue之动态表单(优化)

代码资源在这儿 ↑ vue之动态表单优化 vue2js动态表单优化vue3ts动态表单优化 vue2js动态表单优化 效果图 目录结构 五个文件的完整代码: 以下是App.vue <template><div><router-view></router-view><Formpage /></div> </templa…

jenkins 安装nodejs 14

参考&#xff1a; jenkins容器安装nodejs-前端问答-PHP中文网

在ubuntu+cpolar+rabbitMQ环境下,实现mq服务端远程访问

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

LangChain手记 Agent 智能体

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Agent&#xff08;源代码可见&#xff09; “人们有时会将LLM看作是知识库&#xff0c;因为它被训练所以记住了来自互联网或其他地方的海量信息&#xff0c;因而当你向它提问时&#xff0c;它可以回答你的问题。有一…

网络

mcq Java 传输层&#xff1a;拆分和组装&#xff0c;完成端到端的消息传递&#xff0c;流量控制&#xff0c;差错控制等 网络层&#xff1a; 寻址、路由&#xff0c;复用&#xff0c;拥塞控制&#xff0c;完成源到宿的传递。 显然A选项是错误的&#xff0c;有流量控制的是传输层…

JavaWeb框架:Spring MVC介绍

Spring MVC 概述 概述 MVC&#xff08;Model View Controller&#xff0c;模型-视图-控制器&#xff09;&#xff0c;作为一种设计模式&#xff0c;用于应用程序的分层开发。 Spring MVC&#xff0c;由 Spring 框架提供的基于 MVC 设计模式的一个轻量级 Web 开发框架。Spring…

基于CentOS 7 部署社区版Haproxy

HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件&#xff0c;是一款具 备高并发(一万以上)、高性能的TCP和HTTP负载均衡器&#xff0c;支持基于cookie的持久性&#xff0c;自动故障切换&#xff0c;支 持正则表达式及web状态统计。 目录 1…

微服务-Fegin

在之前我们两服务之间调用的时候用的是restTemplate,但是这个方式调用存在很多的问题 String url "http://userservice/user/" order.getUserId(); 代码可读性差&#xff0c;编码体验不统一参数复杂的url难以维护 所以我们大力推出我们今天的主角--Fegin Feign是…

解决“warning: #223-D: function “xPortSysTickHandler“ declared implicitly“告警提示

继上篇文章发布已有时隔两个月之久&#xff0c;今天就把这两个月遇到的一些问题解决分享一下&#xff0c;首先&#xff0c;我们来看今天分享的这个关于我在学习freertos遇到的一个告警。如图所示&#xff1a; 告警提示原句为&#xff1a; warning: #223-D: function "xP…

Offset Explorer

Offset Explorer 简介下载安装 简介 Offset Explorer&#xff08;以前称为Kafka Tool&#xff09;是一个用于管理和使Apache Kafka 集群的GUI应用程序。它提供了一个直观的UI&#xff0c;允许人们快速查看Kafka集群中的对象以及存储在集群主题中的消息。它包含面向开发人员和管…

【自用】云服务器 docker 环境下 HomeAssistant 安装 HACS 教程

一、进入 docker 中的 HomeAssistant 1.查找 HomeAssistant 的 CONTAINER ID 连接上云服务器&#xff08;宿主机&#xff09;后&#xff0c;终端内进入 root &#xff0c;输入&#xff1a; docker ps找到了 docker 的 container ID 2.config HomeAssistant 输入下面的命令&…

PLUS操作流程、应用与实践,多源不同分辨率数据的处理、ArcGIS的应用、PLUS模型的应用、InVEST模型的应用

PLUS模型是由中国地质大学&#xff08;武汉&#xff09;地理与信息工程学院高性能空间计算智能实验室开发&#xff0c;是一个基于栅格数据的可用于斑块尺度土地利用/土地覆盖(LULC)变化模拟的元胞自动机(CA)模型。PLUS模型集成了基于土地扩张分析的规则挖掘方法和基于多类型随机…

ARM02汇编指令

文章目录 一、keil软件介绍1.1 创建工程1.2 解析start.s文件(重点)1.3 乱码解决1.4 更换背景颜色1.5 C语言内存分布1.6 解析map.lds文件(重点)1.7 常见错误信息1.8 仿真 二、汇编三种符号2.1 汇编指令2.2 伪指令2.3 伪操作 三、汇编指令格式3.1 格式3.2 注意事项 四、数据操作指…