【C刷题】day3

一、选择题

1、已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; ,正确的调用语句是( )

A: fun(c,&d); B: fun(c,d); C: fun(&c,&d); D: fun(&c,d);

【答案】:

A

【解析】:

考点:&的使用(可以看这篇文章:一招教你scanf什么时候要加&,什么时候不用加&)

如果要传地址:

对于本身无法表示地址信息的,要加&;

本身表示的就是地址信息的,既不需要加&

c数组本来就表示地址,那么就不需要加&

d只是一个变量,但是fun的第二个参数要传地址,那就把d的地址取出来即&b


2、请问下列表达式哪些会被编译器禁止【多选】( )
nt a = 248, b = 4;
int const *c = 21;
const int *d = &a;
int *const e = &b;
int const * const f = &a;

A: *c = 32; B: *d = 43 C: e=&a D: f=0x321f
【答案】:

ABCD

【解析】:

考点:指针常量和常量指针

const在*的左侧:表示指针指向的是常量,那么*c和*d不可修改

const在*的右侧:表示指针是个常量指针,那么e和f不可修改

总结来说:就是const后面跟的是啥,啥就不能直接改变


3、以下程序的输出结果为( )
#include <stdio.h>
int i;
void prt()
{for (i = 5; i < 8; i++)printf("%c", '*');printf("\t");
} int main()
{for (i = 5; i <= 8; i++)prt();return 0;
}

A: *** B: *** *** *** *** C: *** *** D: * * *
【答案】:

A

【解析】:

考点:for循环的逻辑+全局变量

整个代码的逻辑:

main函数中的i=5进入prt(),再次进入另一个for循环,

i=5打印一个*,i++

i=6打印一个*,i++

i=7打印一个*,i++

i=8,不满足循环条件i<8,结束循环,又回到main函数

回到main函数时i=8,此时main函数中的for循环i=5的一次循环已经结束,i++

所以i=9,那么又不满足for循环的条件,跳出循环


4、下面代码段的输出是( )
int main()
{int a=3;printf("%d\n",(a+=a-=a*a));return 0;
}

A: -6 B: 12 C: 0 D: -12
【答案】:

D

【解析】:

考点:操作符的优先级

赋值操作符的优先级很低,那么就先计算a*a也就得到9

那么表达式也就是a+=a-=9,也就是a=a+(a=a-9)(此时a=3)

那么a=a+(-6)(此时的a=-6),那么a=-6+(-6)=-12


5、下列不能实现死循环的是( )

A: while(1){ } B: for(;1;){ } C: do{ }while(1); D: for(;0;){ }

【答案】:

D

【解析】:

考点:C语言中0表示假,非0表示真

前三个判断条件都为1,恒为真,那么就会死循环

最后一个判断条件为0,恒为假,直接就不会进入循环


二、编程题

1.记负均正

e25f594061a64f0c9d745b70fd6768d0.png

【参考答案】: 

输入n个整数时,一次输入就sum就加和

注意:被除数为0的情况要单独考虑

#include <stdio.h>
int main() 
{int n = 0;int count1 = 0;int count2 = 0;int a = 0;double sum = 0;scanf("%d", &n);
//输入n个整数for (int i = 0; i < n; i++){scanf("%d", &a);//统计正数if (a > 0){sum += a;count1++;}//统计负数else if (a < 0)count2++;}//注意被除数为0的情况if (count1 != 0)printf("%d %.1lf", count2, sum / count1);elseprintf("%d 0.0", count2);return 0;
}

2.旋转数组的最小数字

fac41414552240aabdf74b1162dcb810.png

【参考答案】:  

本题考察:二分查找

思路:在正常的二分查找的基础上不断改进

首先通过规律发现,由于原数组是升序的,那么旋转数组的最小值左边一定是升序,右边是降序

然后就是循环的部分:

(1)当中间值大于最右边说明:mid在最小值的左边

(2)中间值小于最右边说明:mid在最小值的右边(或者就是mid)

注意1:

这里不能像正常的二分查找一样,left=mid+1;right=mid-1;(+1或者-1都可能跳过min)

那么就让left=mid;right=mid,

结果发现这样永远无法跳出循环

不断实验就让right=mid-1

注意2:

如果就像上面这样写,结果还是不正确

eg:【2,2,2,1,2】

这个情况的中间值等于最右边的值,那么就让right--(只能一个一个减,大幅度就会跳过最小值)

 * @param nums int整型一维数组 * @param numsLen int nums数组长度* @return int整型*/
int minNumberInRotateArray(int* nums, int numsLen )
{int left=0;int right=numsLen-1;//找有升序有降序(最小值的左边升序,右边降序)while(left<right){int mid=(left+right)/2;if(nums[mid]>nums[right])//中间值大于最右边说明:mid在最小值的左边{left=mid+1;}else if(nums[mid]<nums[right])//中间值小于最右边说明:mid在最小值的右边(或者就是mid){right=mid;//这里不能直接像二分查找一样right=mid-1}else //这里是为了排除重复的情况,但是又不能直接right=mid,就一个一个减{right--;}}return nums[left];}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/140236.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

蓝牙电话之HFP—电话音频

1 媒体音频&#xff1a; 播放蓝牙音乐的数据&#xff0c;这种音频对质量要求高&#xff0c;数据发送有重传机制&#xff0c;从而以l2cap的数据形式走ACL链路。编码方式有&#xff1a;SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式&#xff0c;最基础的编码方式是SBC&#xff0…

外卖小程序开发指南:打造完美的点餐体验

第一步&#xff1a;项目设置和初始化 首先&#xff0c;您需要选择一个适合您的开发平台&#xff0c;例如微信小程序、支付宝小程序或其他移动应用平台。接下来&#xff0c;创建一个新的小程序项目&#xff0c;并初始化所需的文件和目录。 示例代码&#xff08;微信小程序&am…

html怎么设置按钮返回顶部

在 HTML 中&#xff0c;我们可以通过一些代码和 CSS 样式来创建一个这样的按钮。 <button onclick"topFunction()" id"myBtn">返回顶部</button> <style> #myBtn { display: none; position: fixed; bottom: 20px; right: 30px; z-inde…

【算法专题突破】二分查找 - 704. 二分查找(16)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 题目非常简单&#xff0c;就是查找一个 target。 2. 算法原理 根据最基本的二分查找算法&#xff1a; 在一个…

spring中AbstractApplicationContext的refresh()

这个部分的源码看的次数不计其数了&#xff0c;每次看不同开源组件的调用过程中走到这里都有不同的收获。 spring 中 AbstractApplicationContext 的 refresh() 是 spring 的核心&#xff0c;几乎所有的逻辑都在是这里间接被调用。 如下源码为 spring boot 2.7.15 自带的 sprin…

怎么选择AI伪原创工具-AI伪原创工具有哪些

在数字时代&#xff0c;创作和发布内容已经成为了一种不可或缺的活动。不论您是个人博主、企业家还是网站管理员&#xff0c;都会面临一个共同的挑战&#xff1a;如何在互联网上脱颖而出&#xff0c;吸引更多的读者和访客。而正是在这个背景下&#xff0c;AI伪原创工具逐渐崭露…

如何自动获取短信验证码?

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ 这篇文章通过解决实际项目开发中遇到的如何自动获取短信验证码的问题&#xff0c;进一步讲述在Java中如何使用正则。 Java中如何使用正则 Java中正则相关类位于java.util.r…

大数据学习技术栈及书籍推荐

作为一名开发人员&#xff0c;特别是后端开发人员&#xff0c;随着网络数据量的持续增长&#xff0c;拥有强大的大数据处理能力已经成为每个公司或产品&#xff08;尤其是2C业务&#xff09;的必备条件。以下是我在网络上搜集和自身研究的基础上&#xff0c;为您推荐的技术栈和…

第一百五十二回 自定义组件综合实例:游戏摇杆三

文章目录 内容回顾优化性能示例代码我们在上一章回中介绍了 如何实现游戏摇杆相关的内容,本章回中将继续介绍这方面的知识.闲话休提,让我们一起Talk Flutter吧。 内容回顾 我们在前面章回中介绍了游戏摇杆的概念以及实现方法,并且通过示例代码演示了实现游戏摇杆的整个过程…

基于element-ui的年份范围选择器

基于element-ui的年份范围选择器 element-ui官方只有日期范围和月份范围选择器&#xff0c;根据需求场景需要&#xff0c;支持年份选择器&#xff0c;原本使用两个分开的年份选择器实现的&#xff0c;但是往往有些是不能接受的。在网上找了很多都没有合适的&#xff0c;所以打…

黑马JVM总结(二十三)

&#xff08;1&#xff09;字节码指令-init 方法体内有一些字节&#xff0c;对应着将来要由java虚拟机执行方法内的代码&#xff0c;构造方法里5个字节代码&#xff0c;main方法里有9个字节的代码 java虚拟机呢内部有一个解释器&#xff0c;这个解释器呢可以识别平台无关的字…

进入数据结构的世界

数据结构和算法的概述 一、什么是数据结构二、什么是算法三、如何去学习数据结构和算法四、算法的时间复杂度和空间复杂度4.1 算法效率4.2 大O的渐进表示法4.3 时间复杂度4.4 空间复杂度4.5 常见复杂度对比 一、什么是数据结构 数据结构是计算机存储、组织数据的方式。&#x…

git git fetch 和 git fetch origin master 的区别

git fetch 第1步 先读取 .git/config 配置 [remote origin]&#xff0c;若 fetch 并没有指定其中一个或多个远程仓库&#xff0c;就会处理所有的远程仓库 [remote “origin”]url gitgithub.com:kaku/testGit.gitfetch refs/heads/:refs/remotes/origin/第2步 git fetch 会…

【深度学习实验】前馈神经网络(九):整合训练、评估、预测过程(Runner)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. __init__(初始化) 2. train(训练) 3. evaluate(评估) 4. predict(预测) 5. save_model 6. load_model 7. 代码整合 一、实验介绍 二、实验环境 本系列实验使用…

【算法】滑动窗口破解长度最小子数组

Problem: 209. 长度最小的子数组 文章目录 题意分析算法原理讲解暴力枚举O(N^2)利用单调性&#xff0c;滑动窗口求解 复杂度Code 题意分析 首先来分析一下本题的题目意思 题目中会给到一个数组&#xff0c;我们的目的是找出在这个数组中 长度最小的【连续】子数组&#xff0c;而…

latexocr安装过程中遇到的问题解决办法

环境要求&#xff1a;需要Python版本3.7&#xff0c;并安装相应依赖文件 具体的详细安装步骤可见我上次写的博文&#xff1a;Mathpix替代者|科研人必备公式识别插件|latexocr安装教程 ‘latexocr‘ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件的相关解决办…

无线感知之手势识别模型:Widar 3.0

目录 一、前言 二、无线感知 三、国内的一些工作 四、WiFi 手势识别模型&#xff1a;Widar 3.0 一、前言 最近不少人吐槽WiFi CSI定位已经做无可做了&#xff0c;也发不了什么好的期刊&#xff0c;顶多冲一个SCI 2区。回首WiFi 指纹定位这块&#xff0c;RSS指纹定位已经发…

Leetcode 剑指 Offer II 045. 找树左下角的值

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底…

从零开始—【Mac系统】MacOS配置Java环境变量

系统环境说明 Apple M1 macOS Ventura 版本13.5.2 1.下载JDK安装包 Oracle官网下载地址 JDK下载【注&#xff1a;推荐下载JDK8 Oracle官网JDK8下载】 关于JDK、JRE、JVM的关系说明 JDK(Java Development Kit&#xff0c;Java开发工具包) &#xff0c;是整个JAVA的核心&#…

【完全二叉树魔法:顺序结构实现堆的奇象】

本章重点 二叉树的顺序结构堆的概念及结构堆的实现堆的调整算法堆的创建堆排序TOP-K问题 1.二叉树的顺序结构 普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构…