C语言习题~day35
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之后的所有元素整体往前搬移,即删除该val 3. 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
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
