免费网站备案号码,如何将别人的网站作为自己的,怎样申请做自己的网站,wordpress分享到+滑动目录
一、选择题
二、编程题 #x1f388;个人主页#xff1a;库库的里昂#x1f390;CSDN新晋作者#x1f389;欢迎 #x1f44d;点赞✍评论⭐收藏✨收录专栏#xff1a;C语言每日一练✨相关专栏#xff1a;代码小游戏、C语言初阶、C语言进阶#x1f91d;希望作者的…目录
一、选择题
二、编程题 个人主页库库的里昂CSDN新晋作者欢迎 点赞✍评论⭐收藏✨收录专栏C语言每日一练✨相关专栏代码小游戏、C语言初阶、C语言进阶希望作者的文章能对你有所帮助有不足的地方请在评论区留言指正大家一起学习交流 【前言】 在大家学完初阶C语言后有很多知识点是比较模糊的我们应该多刷题这样才能巩固我们所学知识。所以我开了一个新专栏C语言每日一刷每一篇都包含5道选择题2道编程题每一道题后面都会有详细的解析。这个系列每日一更大家来看看吧 一、选择题
1.以下叙述中正确的是 A: 只能在循环体内和switch语句体内使用break语句 B: 当break出现在循环体中的switch语句体内时其作用是跳出该switch语句体并中止循环体的执行 C: continue语句的作用是在执行完本次循环体中剩余语句后中止循环 D: 在while语句和do-while语句中无法使用continue语句 【答案】A
【解析】 对于break语句 break语句通常用在循环语句和switch语句中当break用于switch语句中时可使程序跳出switch而执行switch以后的语句当break语句用于do-while、for、while循环语句中时可使程序终止循环而执行循环后面的语句即满足条件时便跳出循环 对于continue语句 continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环 2.下列for循环的次数为
for(int i 0 ; i || i 5;) A: 0 B: 5 C: 1 D: 无限 【答案】D
显而易见这是逻辑或运算
逻辑或运算最重要的一个知识点前表达式为真后表达式不计算 对于第一次循环时i为0时即i为假进而执行i表达式此时i1为真进入循环体中执行一次循环 第二次循环时i为1非0是个真值不再执行i也就死循环了 3.
以下描述中正确的是 A: 由于do-while循环中循环体语句只能是一条可执行语句所以循环体内不能使用复合语句 B: do-while循环由do开始用while结束在while(表达式)后面不能写分号 C: 在do-while循环体中不一定要有能使while后面表达式的值变为零(假)的操作 D: do-while循环中根据情况可以省略while 【答案】C
【解析】
do-while循环的语法循环至少执行一次
do
{循环语句;
}while(表达式); do-while循环中的循环体通常都是复合语句代码块A错误while(表达式)后面要写分号B错误while不能省D错误 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) 【答案】D
【解析】 分析此函数 函数的第一个参数为字符类型 函数的第二个参数为float x[ ]来接收参数可以转换为float *(x)所以这里需要我们传浮点型数组或者float *指针地址即可 A选项数组传参只需要写数组名就行a[]时错误的 B选项第二个参数写成了大写错了。 C选项第二个参数是浮点数但是fun函数的第二参数是数组不匹配fun函数参数x需要传一个数组或者float *指针只有D选项的形式是正确的。 5.在c语言中一个函数不写返回值类型默认的返回类型是 ( ) A、int B、char C、void D、都不是 【答案】A
【解析】 一个函数不写返回值类型默认的返回类型是int但不提倡这么做故选A。 二、编程题
1.OJ链接 【leetcode 题号747. 至少是其他数字两倍的最大数】【难度简单】
给你一个整数数组 nums 其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是则返回 最大元素的下标 否则返回 -1 。 示例 输入nums [3,6,1,0] 输出1 解释6 是最大的整数对于数组中的其他整数6 大于数组中其他元素的两倍。6 的下标是 1 所以返回 1 。 输入nums [1,2,3,4] 输出-1 解释4 没有超过 3 的两倍大所以返回 -1 。 输入nums [1] 输出0 解释因为不存在其他数字所以认为现有数字 1 至少是其他数字的两倍。 提示 1 nums.length 50 0 nums[i] 100 nums 中的最大元素是唯一的 思路与算法 遍历数组分别找到数组的最大值 m1和次大值m2。如果m1≥m2×2 成立则最大值至少是数组其余数字的两倍此时返回最大值的下标否则返回 -1。为了返回最大值的下标我们需要在计算最大值的同时记录最大值的下标。 int dominantIndex(int* nums, int numsSize)
{if (numsSize 1) return 0;int max 0, secmax 0, maxindex 0;int i;for (i 0; i numsSize; i){if (nums[i] max){secmax max;maxindex i;max nums[i];}else if (nums[i] secmax){secmax nums[i];}}if (max 2 * secmax)return -1;return maxindex;
}2.OJ链接【 leetcode 题号349. 两个数组的交集】【难度简单】
给定两个数组编写一个函数来计算它们的交集。 示例 输入nums1 [1,2,2,1], nums2 [2,2] 输出[2] 输入nums1 [4,9,5], nums2 [9,4,9,8,4] 输出[9,4] 思路 暴力破解即可将 nums1 数组中的每一个数字判断是否存在于 nums2 数组中通过这种方式找出交集数据找出之后判断这个数组是否已经在返回数组中存在不存在则添加到返回数组中即可。 int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{static int arr[1000];*returnSize 0;int i, j;for (i 0; i nums1Size; i) {for (j 0; j nums2Size; j) {if (nums2[j] nums1[i]) //判断nums1[i] 是否在nums2数组中break;} if (j nums2Size) // nums1中i位置的数据在nums2数组中不存在则非交集数据{continue; }//只有在另一个数组中存在的数据才能走下来判断是否已经被添加到返回数组中for (j 0; j *returnSize; j) {if (nums1[i] arr[j]) //判断nums1[i] 是否在 arr 这个返回数组中break;}if (j *returnSize) //不在返回数组中则添加到返回数组中{arr[*returnSize] nums1[i];*returnSize 1;}}return arr;
}
好了今天的每日一刷就到这里结束了感谢大家的观看