【C刷题】day7

  • 🎥 个人主页:深鱼~
  • 🔥收录专栏:【C】每日一练
  • 🌄欢迎 👍点赞✍评论⭐收藏

一、选择题

1、以下对C语言函数的有关描述中,正确的有【多选】( )

A: 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体

B: 函数的实参和形参可以是相同的名字

C: 在main()中定义的变量都可以在其它被调函数中直接使用

D: 在C程序中,函数调用不能出现在表达式语句中

【答案】:

AB

【解析】:

考点:函数(局部变量+返回值+参数)

C:主函数中定义的局部变量只在主函数中有效,因为主函数也是一个函数,它与其他函数是平行关系,所以错误;

D:当函数有返回值时,可以出现在表达式中,所以错误


2、在C语言中,以下正确的说法是( )

A: 实参和与其对应的形参各占用独立的存储单元

B: 实参和与其对应的形参共占用一个存储单元

C: 只有当实参和与其对应的形参同名时才共占用存储单元

D: 形参是虚拟的,不占用存储单元

【答案】:

A

【解析】:

考点:形参和实参

A,B,C:形参是实参的一份临时拷贝,分别占用不同的内存空间
D:函数如果不被调用时,函数的形参是形式上存在的,但是函数在被调用的时候,形参是要分配内存空间的


3、在上下文及头文件均正常的情况下,下列代码的输出是( )(注: print 已经声明过)
int main()
{char str[] = "Geneius";print(str);return 0;
}
print(char *s)
{if(*s){print(++s);printf("%c", *s);}
}

A: suiene B: neius C: run-time error D: suieneG

【答案】:

A

【解析】:

考点:递归的理解

递的过程:

*s=’G‘:++s,注意是先将s=s+1(s已经变了),再s+1的值赋给print函数

*s=’e‘:++s,先将s=s+1,再s+1的值赋给print函数

....

*s=’s‘:++s,先将s=s+1,再s+1的值赋给print函数

归的过程:

*s='\0':回到上一次递归

*s=’s‘:打印\0(因为s已经变成了当前字符的下一个),也就是不打印

...

*s=’e‘:打印n

*s=’G‘:打印e

代码实现了递归倒序打印字符串的功能,但是++s使得s的值发生了变化,回不到'G'的位置上,故而没有打印'G'


4、对于函数 void f(int x); ,下面调用正确的是( )

A: int y=f(9); B: f(9); C: f(f(9)); D: x=f();

【答案】:

B

【解析】:

考点:函数的返回值

A:函数f是没有返回值的,不能给int类型变量赋值,故错误同时需要一个整型参数,

C:f(9)不能作为f的参数,也是错的

D:没有传参,也不能接收返回值也是错误的


5、给定 fun 函数如下,那么 fun(10) 的输出结果是( )
int fun(int x)
{return (x==1) ? 1 : (x + fun(x-1));
}

A: 0 B: 10 C: 55 D: 3628800

【答案】:

C

【解析】:

考点:递归的理解

x =10 :10+fun(9)

x =9:10+9+fun(8)

x = 8:10+9+8+fun(7)

...

x = 1:10+9+8+7+6+5+4+3+2+1

代码是一个递归函数,计算x+(x-1)+(x-2)+...+2+1即等差数列的和


二、编程题

1. 图片整理

【参考答案】:  

思路:图片按照大小(ASCII码值从小到大)排列直接快排

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int char_cmp(const void* e1,const void*e2)
{return (*(char*)e1-*(char*)e2);
}
int main() {char str[1001]={0};while(~scanf("%s",str)){qsort(str, strlen(str), sizeof(char), char_cmp);printf("%s",str);}return 0;
}

知识点补充:快排

qsort函数是一个库函数,底层使用的快速排序的方式,对数据进行排序,这个函数可以直接使用,可以用来排序任意类型的数据

头文件:#include<stdlib.h>

void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );

qsort(被排序数组的初始位置,要排序的数组的元素个数,一个元素所占字节,比较函数)

其中比较函数需要根据自己排序类型数据来写(以int类型快排为例)

  1. int int_cmp(const void* e1, const void* e2)

  2. {

  3. return (*(int*)e1 - *(int*)e2);

  4. }

如果想要更详细学习:可以看看这篇文章:【C进阶】指针(二) 


2.寻找数组的中心下标

【参考答案】:  

思路1:暴力求解:遍历数组i之前数之和为sum1,i之后的数之和为sum2如果sum1等于sum2就返回1;否则返回-1

int pivotIndex(int* nums, int numsSize)
{for(int i=0;i<numsSize;i++){int sum1=0;int sum2=0;for(int j=0;j<i;j++){sum1+=nums[j];}for(int k=i+1;k<numsSize;k++){sum2+=nums[k];}if(sum1==sum2)return i;}return -1;
}

 思路2:先求出数组总和,然后遍历数组的过程中看当前sum的两倍加上当前元素值是否为数组总和,即:2*sum+nums[i]==total,等于就返回i,否则继续遍历,直到结束,如果结束还没有,就返回-1

int pivotIndex(int* nums, int numsSize)
{//计算总和int total=0;for(int i=0;i<numsSize;i++){total+=nums[i];}int sum=0;for(int i=0;i<numsSize;i++){if(2*sum+nums[i]==total)return i;sum+=nums[i];}return -1;
}

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

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

相关文章

java--拼图游戏

1、了解拼图游戏基本功能&#xff1a; 拼图游戏内容由若干小图像块组成的&#xff0c;通过鼠标点击图像块上下左右移动&#xff0c;完成图像的拼凑。 2、拼图游戏交互界面设计与开发&#xff1a; 通过创建窗体类、菜单、中间面板和左右面板完成设计拼图的交互界面 &#xff…

java 实现串口通讯

1、引入依赖 <dependency><groupId>org.scream3r</groupId><artifactId>jssc</artifactId><version>2.8.0</version> </dependency>2、配置启动串口 Component public class ContextHolder implements ApplicationContextAw…

使用共享内存进行通信的代码和运行情况分析,共享内存的特点(拷贝次数,访问控制),加入命名管道进行通信的代码和运行情况分析

目录 示例代码 头文件(comm.hpp) log.hpp 基础版 -- 服务端 代码 运行情况 加入客户端 代码 运行情况 两端进行通信 客户端 代码 注意点 服务端 代码 两端运行情况 共享内存特点 拷贝次数少 管道的拷贝次数 共享内存的拷贝次数 没有访问控制 管道 共享…

神辅助 Cursor 编辑器,加入 GPT-4 让编码更轻松!

分类 互联网 在 ChatGPT 问世之前&#xff0c;我们的编码方式很多时候都是面向搜索引擎编码&#xff0c;需要不断地进行搜索&#xff0c;然后复制粘贴&#xff0c;俗称复制粘贴工程师。 但是&#xff0c;随着ChatGPT的出现&#xff0c;这一切将彻底改变。 ChatGPT 是一种基于…

AI工具合集

网站&#xff1a;未来百科 | 为发现全球优质AI工具产品而生 (6aiq.com) 如今&#xff0c;AI技术涉及到了很多领域&#xff0c;比如去水印、一键抠图、图像处理、AI图像生成等等。站长之家之前也分享过一些&#xff0c;但是在网上要搜索找到它们还是费一些功夫。 今天发现了一…

STM32 HAL库函数HAL_SPI_Receive_IT和HAL_SPI_Receive的区别

背景 前段时间开发一个按键板驱动&#xff0c;该板用的STM32F103系列单片机&#xff0c;前任工程师用STM32CubeMX生成的工程&#xff0c;里面全是HAL库调用&#xff0c;我接手后&#xff0c;学习了下HAL库的用法&#xff0c;踩坑不少&#xff0c;特别是带IT后缀的函数&#xf…

【左程云算法全讲11】贪心算法 并查集

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于左程云算法课程进行的&#xff0c;每个知识点的修正和深入主要参考…

电子电器架构 —— 车载网关边缘节点总线转换

电子电器架构 —— 车载网关边缘节点路由转发策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数3000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无…

系列十、你说你做过JVM调优和参数配置,请问如何盘点JVM系统的默认值?

一、JVM的参数类型 1.1、标配参数 java -versionjava -help 1.2、XX参数 1.2.1、Boolean类型 公式&#xff1a;-XX:或者- 某个属性值 表示开启、-表示关闭 # 是否打印GC收集细节 -XX:PrintGCDetails -XX:-PrintGCDetails# 是否使用串行垃圾收集器 -XX:UseSerialGC -XX:-UseS…

使用FFmpeg合并多个ts视频文件转为mp4格式

前言 爬取完视频发现都是ts文件&#xff0c;而且都是几百KB的视频片段&#xff0c;.ts 全名叫&#xff1a;MPEG Transport Stream&#xff0c;它是一个万能的多媒体容器&#xff0c;可以装下音频、视频、字幕。有时我们需要将.ts文件转换为其他更加广泛被支持的格式&#xff0…

springboot项目中没有识别到yml文件解决办法

springboot项目中没有识别到yml文件解决办法 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传] 1、这个意思就是没有配置数据库的数据源路径。所以需要配置数据源&#xff0c;比如mysql的驱动和路径。检查是否在properties或者yml文件中是否已经配置好。…

简单的用Python实现一下,采集某牙视频,多个视频翻页下载

前言 表弟自从学会了Python&#xff0c;每天一回家就搁那爬视频&#xff0c;不知道的以为是在学习&#xff0c;结果我昨天好奇看了一眼&#xff0c;好家伙&#xff0c;在那爬某牙舞蹈区&#xff0c;太过分了&#xff01; 为了防止表弟做坏事&#xff0c;我连忙找了个凳子坐下&…

图像分类(四) 全面解读复现GoogleNet_InceptionV1-V4

论文解读 InceptionV1 前言 论文题目: Going Deeper with Convolutions Googlenet论文原文地址:https://arxiv.org/pdf/1409.4842.pdf 之前看过VGG的论文&#xff08;VGG精读直达&#xff09;。当时VGG获得了 2014 ILSVRC 图像分类的第二名&#xff0c;今天来看一下第一名…

Yolov5

Yolov5 Anchor &#xff11;&#xff0e;Anchor是啥&#xff1f; anchor字面意思是锚&#xff0c;是个把船固定的东东&#xff08;上图&#xff09;&#xff0c;anchor在计算机视觉中有锚点或锚框&#xff0c;目标检测中常出现的anchor box是锚框&#xff0c;表示固定的参考框…

基于金鹰算法优化概率神经网络PNN的分类预测 - 附代码

基于金鹰算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于金鹰算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于金鹰优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

使用Qt实现多人聊天工作室

目录 1、项目背景 2、技术分析 3、架构设计 3、1 服务器架构 3.1.1 模块划分 3.1.2 模块之间的交互 3、2 客户端架构 3.2.1 模块划分 3.2.2 模块之间交互 4、实现过程 4、1 功能实现 4.1.1 用户登录注册功能​编辑 4.1.2 用户主界面功能 4、2 设计实现 4.2.1 登录…

关于Flume-Kafka-Flume的模式进行数据采集操作

测试是否连接成功&#xff1a; 在主节点flume目录下输入命令: bin/flume-ng agent -n a1 -c conf/ -f job/file_to_kafka.conf -Dflume.root.loggerinfo,console # 这个file_to_kafka.conf文件就是我们的配置文件 然后在另一台节点输入命令进行消费数据&#xff1a; kafka-cons…

SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

SQL INSERT INTO 语句用于在表中插入新记录。 INSERT INTO 语法 可以以两种方式编写INSERT INTO语句&#xff1a; 指定要插入的列名和值&#xff1a; INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);如果要为表的所有列添加值&#xff0c;则无需在SQL…

超详细vue3选项式父子组件传值

一、问题背景 最近遇到了一个情景&#xff1a; 子组件干完事情&#xff0c;需要对父组件的变量进行更新&#xff0c;因为父组件将该变量传递给子组件&#xff0c;但是不会双向绑定&#xff0c;这时候我们就需要传值或者触发回调去解决这个问题 我们将分为两个部分 1.父组件传…

力扣hot100 两数之和 哈希表

&#x1f468;‍&#x1f3eb; 力扣 两数之和 &#x1f60b; 思路 在一个数组中如何快速找到某一个数的互补数&#xff1a;哈希表 O(1)实现⭐ AC code class Solution {public int[] twoSum(int[] nums, int target){HashMap<Integer, Integer> map new HashMap<&g…