【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.rhkb.cn/news/139687.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

07_ElasticSearch:倒排序索引与分词Analysis

07_ElasticSearch&#xff1a;倒排序索引与分词Analysis 一、 倒排索引是什么&#xff1f;1.1 通过示例&#xff0c;简单理解下1.2 核心组成 二、倒排索引是怎么工作的&#xff1f;2.1 创建倒排索引2.2 倒排索引搜索 三、Analysis 进行分词3.1 Analyzer 由三部分组成3.2 Analyz…

【JS】—垃圾回收机制

一、指令材料 1.定义 JavaScript&#xff08;JS&#xff09;的垃圾回收机制是一种自动管理内存的过程&#xff0c;它有助于释放不再使用的内存&#xff0c;以避免内存泄漏和提高程序的性能。 JavaScript的垃圾回收机制是一种自动管理内存的方式&#xff0c;以确保不再被引用的…

Linux Shell 实现一键部署podman

podman 介绍 使用 Podman 管理容器、Pod 和映像。从本地环境中无缝使用容器和 Kubernetes&#xff0c;Podman 提供与 Docker 非常相似的功能&#xff0c;它不需要在你的系统上运行任何守护进程&#xff0c;并且它也可以在没有 root 权限的情况下运行。 Podman 可以管理和运行…

Hive 的函数介绍

目录 ​编辑 一、内置运算符 1.1 关系运算符 1.2算术运算符 1.3逻辑运算符 1.4复杂类型函数 1.5对复杂类型函数操作 二、内置函数 2.1数学函数 2.2收集函数 2.3类型转换函数 2.4日期函数 2.5条件函数 2.6字符函数 三、内置的聚合函数 四、内置表生成函数 五、…

Android Jetpack组件架构:Lifecycle的使用 和 原理

Android Jetpack组件架构&#xff1a;Lifecycle的使用和原理 导言 作为Jetpack中关于生命周期管理的核心组件&#xff0c;Lifecycle组件是其他比如LiveDate和ViewModel等组件的基础&#xff0c;本篇文章主要就将介绍关于Lifecycle的使用和它的运作原理。 Lifecycle的使用 我…

MyBatis 中的插件可以拦截哪些操作

MyBatis 中的插件可以拦截哪些操作 MyBatis 是一个优秀的持久化框架&#xff0c;在实际项目开发中广泛应用。MyBatis 的插件机制可以方便地对 MyBatis 的各个环节进行扩展和定制。在本文中&#xff0c;我们将详细介绍 MyBatis 中的插件机制&#xff0c;并探讨插件可以拦截哪些…

C语言大佬的必杀技---宏的高级用法

C语言大佬的必杀技—宏的高级用法 目录: 字符串化标记的拼接宏的嵌套替换多条语句防止一个文件被重复包含宏和函数的区别 可能大家在学习的时候用得比较少&#xff0c;但是在一些代码量比较大的时候&#xff0c;这样使用&#xff0c;可以大大的提高代码的可读性&#xff0c;…

Dependency ‘org.redisson:redisson:‘ not found解决方法 三种刷新Maven项目的方法

报错情况 在pom中导入redisson包 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId> </dependency> 爆红&#xff0c;还显示Dependency org.redisson:redisson: not found。 由于报错已经解决&#xff0c;…

002-第一代硬件系统架构确立及产品选型

第一代硬件系统架构确立及产品选型 文章目录 第一代硬件系统架构确立及产品选型项目介绍摘要硬件架构硬件结构选型及设计单片机选型上位机选型扯点别的 关键字&#xff1a; Qt、 Qml、 信号采集机、 数据处理、 上位机 项目介绍 欢迎来到我们的 QML & C 项目&#xff…

【视觉SLAM入门】8. 回环检测,词袋模型,字典,感知,召回,机器学习

"见人细过 掩匿盖覆” 1. 意义2. 做法2.1 词袋模型和字典2.1.2 感知偏差和感知变异2.1.2 词袋2.1.3 字典 2.2 匹配(相似度)计算 3. 提升 前言&#xff1a; 前端提取数据&#xff0c;后端优化数据&#xff0c;但误差会累计&#xff0c;需要回环检测构建全局一致的地图&…

【AI视野·今日Sound 声学论文速览 第十期】Fri, 22 Sep 2023

AI视野今日CS.Sound 声学论文速览 Fri, 22 Sep 2023 Totally 1 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Performance Conditioning for Diffusion-Based Multi-Instrument Music Synthesis Authors Ben Maman, Johannes Zeitler, Meinard M lle…

【新版】系统架构设计师 - 案例分析 - 架构设计<架构风格和质量属性>

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 架构设计&#xff1c;架构风格和质量属性&#xff1e;例题1例题2例题3例题4例题5例题6 架构 - 案例分析 - 架构设计&#xff1c;架构风格和质量属性&#xff1e; 例题1 某软件公司为…

Python —— pytest框架

1、认识pytest框架 1、搭建自动化框架的思路与流程 1、搭建自动化测试框架的思路和流程&#xff0c;任意测试手段流程都是一致的&#xff1a;手工测试、自动化测试、工具测试 手工测试&#xff1a;熟悉业务 —— 写用例 —— 执行用例并记录结果 —— 生成测试报告自动化测试…

Spring循环依赖大全

本博客挑出出现大部分情况的循环依赖场景进行分析&#xff0c;分析启动会不会报循环依赖的错误&#xff01; 一、常规的A依赖B&#xff0c;B依赖A&#xff0c;代码如下&#xff1a; Component public class A {Resourceprivate B b; } Component public class B {Resourcepri…

【Java 基础篇】Java函数式接口详解

Java是一门强类型、面向对象的编程语言&#xff0c;但在Java 8引入了函数式编程的概念&#xff0c;这为我们提供了更多灵活的编程方式。函数式接口是函数式编程的核心概念之一&#xff0c;本文将详细介绍Java函数式接口的概念、用法以及一些实际应用。 什么是函数式接口&#…

mall电商项目(学习记录1)

1.简介 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管…

一、 计算机网络概论

一、计算机网络概论 1、计算机网络概述 1.1、概念 计算机网络是一个将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统 是一些互连的、自治的计算机系统的集合 以能够相互共享资源的方…

Python函数绘图与高等代数互融实例(八):箱线图|误差棒图|堆积图

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数 Python函数绘图与高等代数互融实例(二):闪点函数 Python函数绘图与高等代数互融实例(三):设置X|Y轴|网格线 Python函数绘图与高等代数互融实例(四):设置X|Y轴参考线|参考区域 Python函数绘图与高等代数互融实例(五…

蓝桥杯 题库 简单 每日十题 day7

01 啤酒和饮料 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元&#xff0c;饮料每罐1.9元。小明买了若干啤酒和饮料&#xff0c;一共花了82.3元。我们还知道他买的啤酒比饮料的数量少&#xff0c;请你…

C/C++运算符超详细讲解(系统性学习day5)

目录 前言 一、运算符的概念与分类 二、算术运算符 三、关系运算符 四、逻辑运算符 五、赋值运算符 六、运算符的优先级 总结 前言 本篇文章是对运算符的具体讲解。 一、运算符的概念与分类 概念&#xff1a; 运算符就是一种告诉编译器执行特定的数学或逻辑操作的符…