当前位置: 首页 > news >正文

C语言日常刷题5

文章目录

  • 题目
  • 答案与解析
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7、


题目

1、以下叙述中正确的是( )
A: 只能在循环体内和switch语句体内使用break语句
B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C: continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D: 在while语句和do-while语句中无法使用continue语句

2、下列 for 循环的次数为( )

for(int i = 0 ; i || i++ < 5;);

A: 0 B: 5 C: 1 D: 无限

3、以下描述中正确的是( )
A: 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B: do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C: 在do-while循环体中,不一定要有能使while后面表达式的值变为零(“假”)的操作
D: do-while循环中,根据情况可以省略while

4、设函数 fun 和实参数组的说明是如下形式,则对函数的调用语句中,正确的是( )

void fun(char ch,float x[]);
float a[10];

A: fun(“asd” , a[]);  B: fun(‘x’ , A);
C: fun(‘68’ , 2.8);   D: fun(32 , a);

5、在c语言中,一个函数不写返回值类型,默认的返回类型是( )
A: int B: char C: void D: 都不是

6、给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。
OJ链接【 leetcode 题号:747. 至少是其他数字两倍的最大数】【难度:简单】

示例:
输入:nums = [3,6,1,0]
输出:1
解释:6 是最大的整数,对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。
输入:nums = [1,2,3,4]
输出:-1
解释:4 没有超过 3 的两倍大,所以返回 -1 。
输入:nums = [1]
输出:0
解释:因为不存在其他数字,所以认为现有数字 1 至少是其他数字的两倍

int dominantIndex(int* nums, int numsSize)
{}

7、给定两个数组,编写一个函数来计算它们的交集。
OJ链接【 leetcode 题号:349. 两个数组的交集】【难度:简单】

示例:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{}

答案与解析

1

正确答案:A
break语句通常用在循环语句和switch语句中。当break用于switch语句中时,可使程序跳出switch而执行switch以后的语句;当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。B、C和D三个选项中均有错误。因此A选项正

2

正确答案:D
逻辑或运算如果前表达式为真,后表达式不计算,第一次循环时i为0,执行i++,第二次循环时i为1,是个真值,不再执行i++,也就死循环了(在 (a || b)中,只要a为真,那么整个表达式就诶真,不会在执行b)

3

正确答案:C
do-while循环中的循环体通常都是复合语句代码块,A错误,while(表达式)后面要写分号,B错误,while不能省,D错误(C 中,可以一直让while()判定为真,让后使用break跳出)

4

正确答案:D
A选项数组传参只需要写数组名就行,a[]时错误的,B选项第二个参数写成了大写,错了。C选项第二个参数是浮点数,但是fun函数的第二参数是数组不匹配,fun函数参数x需要传一个数组或者float *指针,只有D选项的形式是正确的。(D选项中,首个传输的参数是数字,其实是传输的ASCII码值,所以可以用char类型进行接受,此外,所有的整形家族成员都可以接受)

5

正确答案:A
一个函数不写返回值类型,默认的返回类型是int,但不提倡这么做

6

解法思路:
1、暴力破解:双重循环遍历数组,对每个元素判断是否是其他元素的两倍。或者先遍历一遍找出最大值,然后遍历一
遍判断是否是其他数字二倍。

2、更优思想:一次遍历找出最大与第二大的值,然后比较最大值是否至少为第二大的值的两倍

此处仅展示较优的算法

//至少是其他数字两倍的最大数
int dominantIndex(int* nums, int numsSize) {int i = 0;int sub = 0;int max1 = -1;//最大值int max2 = -1;//其他数字中的最大值for (i = 0; i < numsSize; i++){//遇到比max1 大的值if (max1 < nums[i]) {max2 = max1;max1 = nums[i];sub = i;}//在后来的数字中遇到没有max1 大,但比max2大的值else if (max2 < nums[i]) {max2 = nums[i];}}//满足最大值至少是其他数字两倍if (max1 >= 2 * max2)return sub;elsereturn -1;
}

7、

解法思路:
1、设置两个循环,分别遍历两个数组中的元素,如果元素相同就把这个元素放置入交集数组中(注意:1.当两个数组长度不相同时,超出较短那个数组的元素不可以算在交集中;2.在查找到相同元素后就可以停止第二个循环,避免时间的浪费;3.判断这个数组中是否已经有了这个元素,避免元素重复)

//寻找交集元素
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {static int arr[1000];*returnSize = 0;int i, j, k;for (i = 0; i < nums1Size; i++) {for (j = 0; j < nums2Size; j++) {if (nums2[j] == nums1[i]) break;//判断nums1[i] 是否在nums2数组中}if (j == nums2Size) {// nums1中i位置的数据在nums2数组中不存在,则非交集数据continue;}//只有在另一个数组中存在的数据才能走下来,判断是否已经被添加到返回数组中for (j = 0; j < *returnSize; j++) {if (nums1[i] == arr[j]) break;//判断数组中是否有这个元素}if (j == *returnSize) {//不在返回数组中,则添加到返回数组中arr[*returnSize] = nums1[i];*returnSize += 1;}}
return arr;
}
http://www.lryc.cn/news/144092.html

相关文章:

  • 【LeetCode-中等题】73. 矩阵置零
  • 本地部署 FastGPT
  • 软件工程(十八) 行为型设计模式(四)
  • Socket通信与WebSocket协议
  • 新KG视点 | Jeff Pan、陈矫彦等——大语言模型与知识图谱的机遇与挑战
  • 详解过滤器Filter和拦截器Interceptor的区别和联系
  • List常用的操作
  • Android studio APK切换多个摄像头(Camera2)
  • ChatGPT 对教育的影响,AI 如何颠覆传统教育
  • Spring(九)声明式事务
  • java中用HSSFWorkbook生成xls格式的excel(亲测)
  • 做平面设计一般电脑可以吗 优漫动游
  • 设计模式备忘录+命令模式实现Word撤销恢复操作
  • Linux centos7 bash编程小训练
  • 创作2周年纪念日-特别篇
  • 【UE5】用法简介-使用MAWI高精度树林资产的地形材质与添加风雪效果
  • 兼容AD210 车规级高精度隔离放大器:ISO EM210
  • R语言常用数组函数
  • 前端开发之Element Plus的分页组件el-pagination显示英文转变为中文
  • 基于Java+SpringBoot+Vue前后端分离社区医院管理系统设计和实现
  • 浅谈单例模式在游戏开发中的应用
  • Stable Diffusion WebUI 整合包
  • 什么是 RESTful API
  • 如何搭建关键字驱动自动化测试框架?
  • WPF实战项目十二(API篇):配置AutoMapper
  • Linux 内核模块加载过程之重定位
  • Flink流批一体计算(19):PyFlink DataStream API之State
  • adb shell获取安卓设备电量ROM内存帧率等信息
  • springboot服务端接口外网远程调试,并实现HTTP服务监听
  • 代码随想录算法训练营之JAVA|第四十二天|70. 爬楼梯