企业网站建设方案渠道,曲靖手机网站建设,wordpress类似于知更鸟的中文主题,如何建立自己的企业网站题目 一、选择题 1、以下叙述中正确的是#xff08; #xff09; A: 只能在循环体内和 switch 语句体内使用 break 语句 B: 当 break 出现在循环体中的 switch 语句体内时#xff0c;其作用是跳出该 switch 语句体#xff0c;并中止循环体的执行 C: continue 语句的作用是 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: 都不是 二、编程题 1LeetCode747. 至少是其他数字两倍的最大数 747. 至少是其他数字两倍的最大数 - 力扣LeetCode 给你一个整数数组 nums 其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是则返回 最大元素的下标 否则返回 -1 示例 1 输入nums [3,6,1,0] 输出1 解释6 是最大的整数对于数组中的其他整数6 至少是数组中其他元素的两倍。6 的下标是 1 所以返回 1 。 示例 2 输入nums [1,2,3,4] 输出-1 解释4 没有超过 3 的两倍大所以返回 -1 。 示例 3 输入nums [1] 输出0 解释因为不存在其他数字所以认为现有数字 1 至少是其他数字的两倍。 提示 1 nums.length 50 0 nums[i] 100 nums 中的最大元素是唯一的 2:LeetCode349. 两个数组的交集 349. 两个数组的交集 - 力扣LeetCode 示例 1 输入nums1 [1,2,2,1], nums2 [2,2] 输出[2] 示例 2 输入nums1 [4,9,5], nums2 [9,4,9,8,4] 输出[9,4] 说明 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 题解 一、选择题 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 也就死循环了 3 、【答案解析】 正确答案 C do-while 循环中的循环体通常都是复合语句代码块 A 错误 while( 表达式 ) 后面要写分号 B 错误 while 不能省 D 错误 4 、【答案解析】 正确答案 D A 选项数组传参只需要写数组名就行 a[] 时错误的 B 选项第二个参数写成了大写错了。 C 选项第二个参数是浮点数但是 fun 函数的第二参数是数组不匹配 fun 函数参数 x 需要传一个数组或者 float * 指针只有 D 选项的形式是正确的。 5 、【答案解析】 正确答案 A 一个函数不写返回值类型默认的返回类型是 int 但不提倡这么做 二、编程题 1 、【答案解析】 暴力破解双重循环遍历数组对每个元素判断是否是其他元素的两倍。或者先遍历一遍找出最大值然后遍历一遍 判断是否是其他数字二倍。 更优思想一次遍历找出最大的数字和次大的数字判断最大的数字是否是次大数字 2 倍即可。 int dominantIndex(int* nums, int numsSize)
{if (numsSize 1) return 0;int max, sec, idx;if (nums[0] nums[1]) {max nums[0];idx 0;sec nums[1];}else {max nums[1];idx 1;sec nums[0];}for (int i 2; i numsSize; i) {if (nums[i] max){ sec max; max nums[i]; idx i;}else if (nums[i] sec){sec nums[i];}}if (max sec * 2){return idx;}return -1;
} 2、【答案解析】 暴力破解即可将 nums1 数组中的每一个数字判断是否存在于 nums2 数组中通过这种方式找出交集数据找出 之后判断这个数组是否已经在返回数组中存在不存在则添加到返回数组中即可。 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;}if (j nums2Size) {continue;}for (j 0; j *returnSize; j) {if (nums1[i] arr[j]) break;}if (j *returnSize) {arr[*returnSize] nums1[i];*returnSize 1;}}return arr;
}