C语言习题~day35

ops/2024/10/8 17:50:45/

 1. 

 int f(int x){ return ((x>2) ? x*f(x-1) : 3); 
} 
int i; 
i=f(f(2))

执行如上函数后. i的值为()

A.30

B.无限递归

C.9

D.2160

先计算内层的f(2),因为 2 不大于 2,所以返回 3,即f(2)=3。

然后计算f(f(2))=f(3),对于f(3),因为 3 大于 2,所以返回3*f(2),即3*3=9,所以最终i=9。

2.

int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}}

 p[1][2]的值是()

A.1

B. 0

C.6

D.2

数组 p 中第二行实际存储的是 {3, 2, 0, 0} (因为每行都要填满 4 个元素,不足的用 0 补齐),所以 p[1][2] 的值是 0。

3.

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k
  • /*方法1解题思路:1. 从前往后遍历nums,找到val第一次出现的位置2. 将val之后的所有元素整体往前搬移,即删除该val3. nums中有效元素个数减少一个循环进行上述操作,直到nums中所有值为val的元素全部删除完时间复杂度:O(N^2)  空间复杂度:O(1)
    */
    #if 0
    int removeElement(int* nums, int numsSize, int val){// while(1){// 1. 在nums中找val出现的位置int pos = 0;for(; pos < numsSize; ++pos){if(nums[pos] == val){break;}}// 2. 检测是否找到if(pos == numsSize)break;// 3. 找到值为value的元素--将其删除for(int j = pos+1; j < numsSize; ++j){nums[j-1] = nums[j];}numsSize--;}return numsSize;
    }
    #endif#if 0
    /*方法2:解题思路: 1. 创建一个长度与nums相同的数组temp2. 遍历nums,将nums中所有与val不同的元素搬移到temp中3. 将temp中所有元素拷贝回nums中时间复杂度: O(N)  空间复杂度: O(N)
    */
    int removeElement(int* nums, int numsSize, int val){// 1. 申请numSize个元素的新空间int* temp = (int*)malloc(sizeof(int)*numsSize);if(NULL == temp){return 0;}// 2. 将nums中非value的元素搬移到temp中---尾插到temp中int count = 0;for(int i = 0; i < numsSize; ++i){if(nums[i] != val){temp[count] = nums[i];++count;}}// 3. 将temp中删除val之后的所有元素拷贝到nums中memcpy(nums, temp, sizeof(int)*count);free(temp);return count;
    }
    #endif

http://www.ppmy.cn/ops/117847.html

相关文章

【后端开发】JavaEE初阶——计算机是如何工作的???

前言&#xff1a; &#x1f31f;&#x1f31f;本期讲解计算机工作原理&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;【MySQL】MySQL中JDBC编程——MySQL驱动包安装——&#xff08;超详解&#xff09; &#x1f308;感兴趣的小伙伴看一看小编主…

Apache Cordova/PhoneGap

Apache Cordova和PhoneGap是两个在移动应用开发领域备受关注的开源框架&#xff0c;它们有着紧密的联系和显著的区别。本文将从起源与发展、技术特点、功能与应用、社区与文档资源、性能与限制以及未来发展趋势等多个方面&#xff0c;对Apache Cordova和PhoneGap进行详细探讨。…

【java面经速记】Mysql和ES数据同步

目录 Mysql业务数据库 ES查询数据库 数据同步方案 同步双写 异步双写&#xff08;MQ方式&#xff09; 基于Mysql的定时扫描同步 基于Binlog实时同步 使用canal监听binlog同步数据到es&#xff08;流行方案&#xff09; 拓展:mysql的主从复制原理 canal原理&#xff1a…

【ADC】SAR 型 ADC 和 ΔΣ ADC 的选型决策方法

本文学习于TI 高精度实验室课程&#xff0c;介绍如何选择 SAR 或 delta-sigma 型 ADC。 文章目录 一、选型决策树二、特定传感器的应用三、需要 DC 精度但分辨率较低的应用四、需要 DC 精度且分辨率较高的应用五、极低噪声的 DC 精密测量六、需要捕获瞬态信号值的应用七、需要高…

MySQL是怎么处理死锁的?

文章目录 检测死锁选择事务回滚客户端重试 在MySQL中&#xff0c;死锁是指两个或多个事务相互等待对方持有的资源&#xff0c;从而导致这些事务无法继续执行。 MySQL通过以下流程来处理死锁&#xff1a; 检测死锁 MySQL的存储引擎&#xff08;例如InnoDB&#xff09;会在事务…

C#和数据库高级:虚方法

文章目录 一、抽象方法和抽象类中的思考1.1、回顾抽象方法的特点1.2、针对抽象方法问题的引出 二、虚方法的使用步骤2.1、虚方法重写方法的调用2.2、系统自带的虚方法2.3、重写Equals方法2.4、虚方法和抽象方法的比较 三、虚方法和抽象方法的联系3.1、ToString()方法的应用 一、…

鸿蒙-app进入最近任务列表触发的监听

如果在UIAbility中&#xff0c;参考第一个链接&#xff0c;在页面中参考如下&#xff1a;State windowStage: window.WindowStage (getContext(this) as common.UIAbilityContext).windowStagetry {this.windowStage.on(windowStageEvent, (data) > {// 前台应用进入最近任…

HalconDotNet实现OCR详解

文章目录 一、基于字符分割的 OCR二、基于模板匹配的 OCR三、基于深度学习的 OCR四、基于特征提取的 OCR五、基于区域建议的 OCR 一、基于字符分割的 OCR 字符分割是 OCR 中的一个重要步骤。首先&#xff0c;对包含文本的图像进行预处理&#xff0c;如去噪、二值化等操作&#…