C语言笔试训练【第三天】
大家好,我是纪宁。
今天是C语言笔试训练的第三天,大家加油!
第一题
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);
数组传参实际上传递的是数组首元素的地址,在函数内部,可以通过数组首元素的地址找到整个数组元素,而数组名就是数组首元素的地址,而函数的第二个参数类型是一级整形指针,所以要将变量d的地址传过去。
注意:不能采用 &数组名 的形式进行数组传参,那样会将整个数组的地址传过去,解引用后也找到的是整个数组,而不是数组元素。
所以这道题选 A
核心知识点:指针初级 函数传参
第二题
2、请问下列表达式哪些会被编译器禁止【多选】( )
int 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
这里又考察到了const 修饰指针变量的知识。const 修饰指针变量,若const 在 *左边,则说明指针指向的内容不能变,若const 在 * 右边,则说明指针的指向不能变。
那么就很好判断了,const 在 *c 的前面,所以 *c 不能改变,A被禁止编译;const在*d的前面,所以*d不能改,指针变量e中,const在*后面,所以e的指向不能改;指针变量f const既在*左边,又在*右边,所以指针的指向和指针指向的内容都不能改变。
这道题选 A B C D
第三题
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: * * *
这道题目需要注意的一点就是:变量i 为全局变量,在函数prt 中改变了变量 i 的值,所以 main 函数里面的循环只进行一次。所以这道题选 D
![]()
第四题
4、下面代码段的输出是( )
int main()
{int a=3;printf("%d\n",(a+=a-=a*a));return 0;
}
A: -6 B: 12 C: 0 D: -12
此题考查的是赋值运算符的右结合性,即先算右边的。a+=a-=a*a 可以转化为a=a+(a-=a*a),a-=a*a的值为 -6,并且 a 的值也变为了 -6,所以 a+=-6 就等于 -12,所以选 D
第五题
5、下列不能实现死循环的是( )
A: while(1){ } B: for(;1;){ } C: do{}while(1); D: for(;0;){ }
while 循环括号里的表达式为真,则循环进行;for 循环的第二个表达式,也是 for 循环是否进行的判断条件;do...while循环中括号里的表达式也是循环是否进行的条件。
1 为真,0为假,所以 D 不能实现死循环,所以选 D
记负均正
首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。
输入描述:首先输入一个正整数n,然后输入n个整数;输出描述:输出负数的个数,和所有正整数的平均值。
示例
输入:11 1 2 3 4 5 6 7 8 9 0 -1 输出:1 5.0
输入:3 0 0 0 输出:0 0.0
#include <stdio.h>
#include<stdlib.h>
int main() {int n = 0, count1 = 0, count2 = 0, i = 0;double ave = 0, sum = 0;scanf("%d", &n);int* arr = (int*)malloc(sizeof(int) * n);if (arr == NULL)perror("malloc fail");for (i = 0; i < n; i++) {scanf("%d", &arr[i]);if (arr[i] < 0)count1++;else if (arr[i] == 0)count2++;elsesum += arr[i];}if (count2 == n || count1 == n)ave = 0;elseave = sum * 1.0 / (n - count1 - count2);printf("%d %.1lf", count1, ave);return 0;
}
此题需要注意的点是要好好读题,0不算正数,在判断的时候要单独考虑,并且不参与计算平均值。当全是0或者全是负数的时候还要单独考虑一下输出结果,否则就会出现除数为 0 而得不到运算结果。

旋转数组的最小数字
有一个长度为 n 的非降序数组,比如 [1,2,3,4,5] ,将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了 [3,4,5,1,2] ,或者 [4,5,1,2,3] 这样的。请问,给定这样一个旋转数组,求数组中的最小值。
要求:空间复杂度:O(1) ,时间复杂度:O(logn)
示例
输入:[3,4,5,1,2] 返回 -1
输入:[3,100,200,3] 返回 3
这道题如果要求最小数字确实不难,难就难在要求时间复杂度 O(logN) ,而二分查找的时间复杂度就是 O(logN),所以这道题采用二分查找的方法。
这个题主要分析三种旋转情况 [1, 2, 3, 4, 5],使用中间值与右端进行比较。
1. 中间大于右边 [3, 4, 5, 1, 2],这种情况下,最小数一定在右边;则left = mid + 1。
2. 中间等于右边 [1, 0, 1, 1, 1], 这个是[0, 1, 1, 1, 1] 旋转过来的,这时候需要缩小范围 right--;,注意不能是left++,因为是非降序数组,所以要缩小右边范围,把较小值向右推,符合我们的判断规则。
3. 中间小于右边 [5, 1, 2, 3, 4], 这种情况下,最小数字则在左半边,也有可能就是中间值,所以right = mid。
int minNumberInRotateArray(int* nums, int numsLen ) {int left=0,right=numsLen-1,mid=0;while(left<right){mid=(left+right)/2;if(nums[left]<nums[right]){return nums[left];//未旋转}else if(nums[mid]>nums[right]){left=mid+1;}else if(nums[mid]<nums[right]){right=mid;}else{right--;}}return nums[left];
}

相关文章:
C语言笔试训练【第三天】
大家好,我是纪宁。 今天是C语言笔试训练的第三天,大家加油! 第一题 1、已知函数的原型是: int fun(char b[10], int *a) ,设定义: char c[10];int d; ,正确的调用语句是( …...
Android SystemServer中Service的创建和启动方式(基于Android13)
Android SystemServer创建和启动方式(基于Android13) SystemServer 简介 Android System Server是Android框架的核心组件,运行在system_server进程中,拥有system权限。它在Android系统中扮演重要角色,提供服务管理和通信。 system …...
Meta开源AI音频和音乐生成模型
在过去的几年里,我们看到了AI在图像、视频和文本生成方面的巨大进步。然而,音频生成领域的进展却相对滞后。MetaAI这次再为开源贡献重磅产品:AudioCraft,一个支持多个音频生成模型的音频生成开发框架。 AudioCraft开源地址 开源地…...
rust怎么解析json数据?
关注我,学习Rust不迷路!! 在 Rust 中,你可以使用 serde 库来实现结构体与 JSON 之间的互相转换。 serde 是 Rust 社区最常用的序列化和反序列化库,它提供了方便的功能来处理结构体与 JSON 之间的转换。 首先ÿ…...
STM32 NOR_FLASH 学习
NOR FLASH FLASH是常用的,用于存储数据的半导体器件,它具有容量大,可重复擦写、按“扇区/块”擦除、掉电后数据可继续保存的特性。 NOR FLASH的单位是MB,EEPROM的单位是KB。 NM25Q128,是NOR FLASH的一种,…...
【数据结构|二叉树遍历】递归与非递归实现前序遍历、中序遍历、后序遍历
递归与非递归实现二叉树的前序遍历、中序遍历、后序遍历。 二叉树图 定义 前序遍历(Preorder Traversal): 前序遍历的顺序是先访问根节点,然后按照先左后右的顺序访问子节点。对于上面的二叉树,前序遍历的结果是&…...
iPhone 8 Plus透明屏有哪些场景化应用?
iPhone 8 Plus是苹果公司于2017年推出的一款智能手机,它采用了全新的玻璃机身设计,使得手机更加美观和时尚。 而透明屏则是一种新型的屏幕技术,可以使手机屏幕呈现出透明的效果,给人一种科技感十足的视觉体验。 透明屏是通过使用…...
解决 MySQL 删除数据后,ID 自增不连续问题
修复前 除了部分数据,导致后续新增的数据,ID 自增不连续 解决方案 执行下方 SQL 语句即可修复此问题,mbs_order为需要修复的表名 SET i0; UPDATE mbs_order SET id(i:i1); ALTER TABLE mbs_order AUTO_INCREMENT0;...
arcgis--网络分析(理论篇)
1、定义概念 (1)网络:由一系列相互联通的点和线组成,用来描述地理要素(资源)的流动情况。 (2)网络分析:对地理网络(如交通网络、水系网络)&…...
Linux笔记1(系统状态等)
man命令: man name: man section name: man -k regexp: 在 Linux 中,man 命令用于查看命令、函数或配置文件等的手册页,提供了详细的帮助文档。man 是 "manual" 的缩写。man 命令的用法如下: man [选项] [命令名]例如&…...
Set-up ESP-AT Environment on Windows using CMD
Before you start, the following environments need to be installed: Git BashPython environment, suggest Python version: 3.8.7. Please ensure the installation of Python v3.8 version environment, and remember to select the option “add to PATH” during the in…...
SpringBoot中Redis报错:NOAUTH Authentication required
1、问题 org.springframework.dao.InvalidDataAccessApiUsageException: NOAUTH Authentication required.; nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required. … 2、解决 如果提供了密码还没解决,那可能是…...
需求飙升120%!芭比产品火爆出圈,意大利人争相购买!
据外媒报道,真人版《芭比》成为今年夏天最火的电影,仅在美国和加拿大,该影片的票房收入就超过3.5亿美元。在意大利《芭比》也备受追捧,目前的票房收入突破1670万欧元,成为2023年观看人数第三多的电影。 除了电影界之外…...
echarts-pie---------3D曲状环形饼图实现!!!
示例(参考此处饼图修改https://www.isqqw.com/viewer?id37497) 话不多说直接上代码 此套代码可以直接再echarts官网中的此处运行 let selectedIndex ; let hoveredIndex ; option getPie3D([{name: 数学,value: 60,itemStyle: {color: #1890FF,},},{…...
合并两个有序链表(leetcode)
题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]思路 每次递归都会比较当前两个节点的值,选择较小的节点作为合并后的链…...
CAS之AtomicReference原理解析
如果你了解了AtomicInteger的工作原理,或者看了如下文章,知道了AtomicInteger只能对当个int类型共享变量做cas的缺点。 CAS之AtomicInteger原理解析_z275598733的博客-CSDN博客 那么AtomicReference就是来解决这个问题的。原理很类似,只是A…...
JS/JQ实现字符串加密成 HEX(十六进制) 字符串
应用场景: 1、数据传输:在网络通信或数据存储中,将字符串转换为十六进制格式可以确保数据的可靠传输和存储。十六进制字符串只包含数字和字母,而不涉及控制字符或其他特殊字符,因此避免了特殊字符在传输过程中引起的问…...
骨传导耳机怎么样?盘点五款适合室外佩戴的骨传导耳机
不知道各位出去玩的时候,有没有觉得外面的世界太喧嚣,需要一副耳机开启自己的小天地,相信有很多人都有这种习惯,在路上戴着耳机享受属于自己的那一片天地,可是市面上种类这么多耳机,该如何选择呢࿰…...
【flink】使用flink-web-ui提交作业报错
使用WebUI提交作业出现错误。 错误截图: 弹框信息: Server Response Message: org.apache.flink.runtime.rest.handler.RestHandlerException: Could not execute application.at org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$h…...
「从零入门推荐系统」22:chatGPT、大模型在推荐系统中的应用
作者 | gongyouliu 编辑 | gongyouliu 提示:全文2.5万字,预计阅读时长2小时,可以先收藏再慢慢阅读。 我们在上一章介绍了chatGPT、大模型的基本概念、核心技术原理等基础知识,有了这些背景知识的铺垫,下面我们来介绍ch…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
