【c语言函数精选题】

c语言函数精选题

  • 一、易错概念题
    • 1.1💡建立函数的目的
    • 1.2💡函数的定义
    • 1.3💡return语句
    • 1.4💡函数的参数
    • 1.5💡复合语句声明变量
  • 二、代码填空题
    • 2.1💡四舍五入
    • 2.2💡二分法求方程根
    • 2.3💡输出菱形
    • 2.4💡求三个数的最小公倍数
    • 2.4💡两个整数最大公约数

🔍计算机二级,考研复试,期末复习…
在这里插入图片描述

一、易错概念题

1.1💡建立函数的目的

在这里插入图片描述

A 选项:函数调用本身会有一定的开销,比如参数传递、栈操作等,在某些情况下甚至可能降低程序执行效率,建立函数的主要目的不是提高执行效率,该选项错误。
B 选项:将程序中实现特定功能的代码封装成函数,使程序结构更加清晰,每个函数完成一个独立的功能,就像一个个模块,方便理解和维护,从而提高了程序的可读性,该选项正确。
C 选项:虽然函数可以复用代码,但在实际程序中,函数定义和调用的相关代码也会占用一定篇幅,不一定能减少程序篇幅,该选项错误。
D 选项:函数只是程序逻辑结构的一种组织方式,对程序文件所占内存大小没有直接的减少作用,程序文件大小主要和代码量、编译后的目标格式等因素有关,该选项错误。
答案B

建立函数的目的:
提高可读性和可维护性 实现代码复用 模块化编程 增强程序逻辑性


1.2💡函数的定义

在这里插入图片描述

A 选项:double fun(int x, int y) ,这是一个标准的函数定义形式,返回值类型为double,函数名为fun,形参列表中包含两个int类型的参数x和y,符合 C 语言函数定义规则,该选项正确。
B 选项:double fun(int x;int y) ,在形参列表中,参数之间应该用逗号分隔,而不是分号,该选项错误。
C 选项:double fun(int x, int y); ,函数声明末尾需要加分号,但函数定义末尾不能加分号,该选项错误。
D 选项:double fun(int x, y); ,第二个参数y没有指定类型,不符合函数定义中形参需明确类型的要求,该选项错误。
答案A

声明有分号,定义无分号!!!


1.3💡return语句

在这里插入图片描述

A 选项:如果函数的返回值类型不是void ,即使函数中没有return语句,它依然有返回值,只是这个返回值是不确定的,所以该选项错误。
B 选项:函数不会返回若干个系统默认值,没有这样的规则,该选项错误。
C 选项:没有return语句,函数无法按照用户期望返回特定值,因为函数执行结束后,其返回值区域的值是不确定的,该选项错误。
D 选项:当函数返回值类型不是void且没有return语句时,函数会返回一个不确定的值,这是因为函数结束时,其返回值所在的内存区域未被正确赋值,该选项正确。
答案 D

再学一个知识:在早期的 C 语言(如 C89 标准)中,当函数值类型缺省定义时,该函数值隐含的类型是int型。

1.4💡函数的参数

在这里插入图片描述

A 选项:在 C 语言中,函数调用时,实参可以是常量(如5 、'a’等)、变量(已定义的合法变量)或表达式(如3 + 5 、a * b等),该选项正确。
B 选项:形参是在函数定义时用于接收实参传递过来的值的参数,它只能是变量,不能是常量或表达式。常量没有存储地址,无法接收实参传递的数据,表达式也不具备接收数据的功能,所以该选项错误。
C 选项:实参可以为任意类型,只要在调用函数时的类型匹配正确即可,比如int 、float 、char 、指针类型等,该选项正确。
D 选项:为了保证数据传递的正确性,形参应与其对应的实参类型一致(或存在合理的类型转换关系),否则可能导致数据错误或程序运行异常,该选项正确。
答案B

实参多样常变表,类型任意皆可行。
形参只能是变量,类型要与实参应 。


1.5💡复合语句声明变量

在这里插入图片描述

在 C 语言中,在函数的复合语句(通常由花括号 {} 括起来)中定义的变量,其作用域仅限于该复合语句内部。当程序执行离开这个复合语句时,该变量的生命周期结束,不能在复合语句之外被访问,所以该变量只在该复合语句中有效,该选项正确。
答案A

普通变量的生存空间就是那个大括号{}!


二、代码填空题

2.1💡四舍五入

在这里插入图片描述

对于【1】处:
题目要求对value中的值进行四舍五入计算,在 C 语言中,可以使用(int)(value + 0.5)来实现对浮点数value的四舍五入并转换为整数,所以【1】处应填(int)(value + 0.5) 。
对于【2】处:
需要判断计算后的值val与ponse是否相等,若相等则显示"Well done!!",所以判断条件应该是val == ponse,故【2】处应填val == ponse。

2.2💡二分法求方程根

在这里插入图片描述

【1】 f( r) * f(n)<0:
在二分法求根过程中,每次取区间[m, n]的中点r=(m + n)/2 。判断f( r)与f(n)的乘积的符号是为了确定根所在的区间。
若f( r)* f(n)<0,根据零点存在定理(如果函数y = f(x)在区间[a, b]上的图象是连续不断的一条曲线,并且有f(a)·f(b)<0,那么函数y = f(x)在区间(a, b)内有零点),可知根在区间[r, n]内,此时应将r赋值给m,即m = r,来缩小根所在的区间范围。
【2】 n - m<0.001:
这里n - m表示当前根所在区间的长度。题目要求绝对误差不超过0.001,当区间长度小于0.001时,就认为找到了满足精度要求的近似根,此时可以跳出循环 。

二分法求方程根的基本思想是:对于区间[m, n]上连续不断且f(m) * f(n) < 0的函数y = f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值。

2.3💡输出菱形

在这里插入图片描述
在这里插入图片描述

【1】处:
观察输出图形可知,每一行的数量是有规律变化的。当i = 0时,第一行有1个;i = 1时,第二行有3个* ;i = 2时,第三行有5个* 。可以总结出规律,第i行*的数量为2 * i + 1。所以此处应填2 * i + 1。
【2】处:
在main函数中,第一个for循环for(i = 0; i < 3; i++) 是用于控制上半部分图形的输出。要输出对应的图形,需要调用函数a,所以此处应填a(i)。
【3】处:
第二个for循环for(i = 3; i >= 0; i–) 是用于控制下半部分图形的输出,同样需要调用函数a来输出对应的图形,所以此处应填a(i)。

2.4💡求三个数的最小公倍数

在这里插入图片描述
在这里插入图片描述

【1】处:
在max函数中,其功能是找出三个数x、y、z中的最大值。已经判断了x是否为最大值,接下来要判断y是否为最大值,条件应该是y > x && y > z,所以此处应填y > x && y > z。
【2】处:
在main函数中,通过不断让x0(三个数中的最大值)乘以i得到一个新的数j,然后判断j是否能同时被输入的三个数x1、x2、x3整除,如果能整除,那么j就是这三个数的最小公倍数,此时可以跳出循环。判断整除可以使用取余运算,条件为j % x1 == 0 && j % x2 == 0 && j % x3 == 0,所以此处应填j % x1 == 0 && j % x2 == 0 && j % x3 == 0。

三个数最小公倍数求解思路:
找出最大值:
max函数通过一系列条件判断找出输入的三个数x、y、z中的最大值。
寻找最小公倍数:
利用一个无限循环while(1) ,从i = 1开始,让最大值x0乘以i得到j(即j = x0 * i)。
然后通过判断j能否同时被原来的三个数x1、x2、x3整除(即【2】处的条件j % x1 == 0 && j % x2 == 0 && j % x3 == 0)。如果能整除,说明j是这三个数的公倍数,并且由于是从i = 1逐步递增寻找,找到的第一个满足条件的j就是最小公倍数,此时跳出循环。如果不能整除,则i自增 1(i = i + 1),继续寻找下一个可能的公倍数。

2.4💡两个整数最大公约数

在这里插入图片描述

【1】处:
该函数使用辗转相除法求最大公约数,在进行辗转相除之前,需要保证num1是较大的数,num2是较小的数。如果num1小于num2,就需要交换它们的值。所以此处应填<。
【2】处:
辗转相除法的核心是用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是 0 为止。此时的除数就是两个数的最大公约数。在循环中,当余数不为 0 时,就继续进行辗转相除操作,所以循环条件应该是b != 0。

辗转相除法求最大公约数!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

储油自动化革命,网关PROFINET与MODBUS网桥的无缝融合,锦上添花

储油行业作为能源供应链的关键环节&#xff0c;其自动化和监控系统的可靠性和效率至关重要。随着工业4.0的推进&#xff0c;储油设施越来越多地采用先进的自动化技术以提高安全性、降低成本并优化运营。本案例探讨了如何通过使用稳联技术PROFINET转MODBUS模块网关网桥&#xff…

不同类型光谱相机的技术差异比较

一、波段数量与连续性 ‌多光谱相机‌ 波段数&#xff1a;通常4-9个离散波段&#xff0c;光谱范围集中于400-1000nm‌。 数据特征&#xff1a;光谱呈阶梯状&#xff0c;无法连续覆盖&#xff0c;适用于中等精度需求场景&#xff08;如植被分类&#xff09;‌。 ‌高光谱相机…

Linux纯命令行界面下SVN的简单使用教程

诸神缄默不语-个人技术博文与视频目录 我用的VSCode插件是这个&#xff1a; 可以在文件中用色块显示代码修改了什么地方&#xff0c;点击色块还可以显示修改内容。 文章目录 1. SVN安装2. checkout3. update1. 将文件加入版本控制 4. commit5. 查看SVN信息&#xff1a;info6.…

STM32单片机芯片与内部114 DSP-变换运算 实数 复数 FFT IFFT 不限制点数

目录 一、ST 官方汇编 FFT 库&#xff08;64点&#xff0c; 256 点和 1024 点&#xff09; 1、cr4_fft_xxx_stm32 2、计算幅频响应 3、计算相频响应 二、复数浮点 FFT、IFFT&#xff08;支持单精度和双精度&#xff09; 1、基础支持 2、单精度函数 arm_cfft_f32 3、双精…

在IDEA中进行git回滚操作:Reset current branch to here‌或Reset HEAD

问题描述 1&#xff09;在本地修改好的代码&#xff0c;commit到本地仓库&#xff0c;突然发觉有问题不想push推到远程仓库了&#xff0c;但它一直在push的列表中存在&#xff0c;那该怎么去掉push列表中的内容呢&#xff1f; 2&#xff09;合并别的分支到当前分支&#xff0…

【五.LangChain技术与应用】【14.LangChain与MoonShot、通义千问:多模型融合的实战】

兄弟们,今天咱们来唠点硬核的——当国产大模型双雄(MoonShot和通义千问)碰上LangChain这个万能胶水,会擦出什么火花?这可不是简单的API调用教程,而是实打实的多模型组合拳打法,保准看完你也能搞出个企业级AI系统!(全程大白话,放心食用) 一、为什么非得搞多模型? 先…

33.C++二叉树进阶1(二叉搜索树两种模型及其应用)

⭐上篇文章&#xff1a;32.C二叉树进阶1&#xff08;二叉搜索树&#xff09;-CSDN博客 ⭐本篇代码&#xff1a;c学习/18.二叉树进阶-二叉搜索树 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) ⭐标⭐是比较重要的部分 在上篇文章中&#xff0c;实现了一个简单的二…

CSS—属性继承与预处理器:2分钟掌握预处理器

个人博客&#xff1a;haichenyi.com。感谢关注 1. 目录 1–目录2–属性继承3–预处理器 2. 属性继承 像Android里面继承extends&#xff0c;类继承&#xff0c;子类可以使用父类的public和protected的属性和方法。子类可以直接用。   在CSS里面也是类似的。CSS里面是布局里面…

Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 4 部分

附件下载 联系工作人员获取附件 在 OpticStudio 中使用 RCWA 工具为增强现实&#xff08;AR&#xff09;系统设置出瞳扩展器&#xff08;EPE&#xff09;的示例中&#xff0c;首先解释了k空间中光栅的规划&#xff0c;并详细讨论了设置每个光栅的步骤。 介绍 本文是该四篇文…

【数据结构】堆和priority_queue

堆的定义 堆是什么&#xff1f;实际上堆是一种特殊的&#xff08;受限制的&#xff09;完全二叉树&#xff0c;它在完全二叉树的基础上要求每一个节点都要大于等于或者小于等于它的子树的所有节点。这个大于小于体现在节点的值或者权重。 如图所示&#xff1a; 根节点大于等于…

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型&#xff08;LLM&#xff09;本地化部署与管理工具&#xff0c;旨在简化在本地计算机上运行和管理大语言模型…

1.Big-endian/ little endian大端对齐、小端对齐

一、大端模式、小端模式的介绍 Little endian&#xff1a;是低位字节排放在内存的低地址端、高位字节排放在内存的高地址端。 Big-endian&#xff1a;是高位字节排放在内存的低地址端、低位字节排放在内存的高地址端。 西门子是大端模式&#xff0c;因为比如 MW100 MB100(高位…

基于Python的PDF特殊字体提取器开发实践

基于Python的PDF特殊字体提取器开发实践 一、应用背景与功能概述 在PDF文档处理场景中&#xff0c;我们常常需要针对特定格式的文本内容进行提取分析。本文介绍的"PDF特殊字体提取器"是一款基于Python开发的桌面应用程序&#xff0c;主要解决以下业务需求&#xff…

【基础4】插入排序

核心思想 插入排序是一种基于元素比较的原地排序算法&#xff0c;其核心思想是将数组分为“已排序”和“未排序”两部分&#xff0c;逐个将未排序元素插入到已排序部分的正确位置。 例如扑克牌在理牌的时候&#xff0c;一般会将大小王、2、A、花牌等按大小顺序插入到左边&…

搭建laravle 数字产品销售平台 php

一个专为单一供应商设计的数字市场平台&#xff0c;旨在为销售数字产品和服务提供一站式解决方案。无论是软件、电子书、音乐、视频还是其他类型的数字内容&#xff0c;都能帮助商家高效地管理和销售他们的数字商品。 主要特点 单一供应商模式&#xff1a;专注于单一品牌或供应…

flink集成tidb cdc

Flink TiDB CDC 详解 1. TiDB CDC 简介 1.1 TiDB CDC 的核心概念 TiDB CDC 是 TiDB 提供的变更数据捕获工具&#xff0c;能够实时捕获 TiDB 集群中的数据变更&#xff08;如 INSERT、UPDATE、DELETE 操作&#xff09;&#xff0c;并将这些变更以事件流的形式输出。TiDB CDC 的…

大模型——打造自己的AI搜索引擎

大模型系列——打造自己的AI搜索引擎 你可能听说过 Perplexity,这是一个引起轰动的 AI 搜索引擎,但它是收费的。本文介绍使用开源 AI工具创建本地 Perplexity 的替代方案。 你可能听说过 Perplexity,这是一个引起轰动的 AI 搜索引擎。与传统搜索相比,它提供简洁、综合的查…

五、并发爬虫

本节聚焦于使用协程、线程、进程实现并发爬虫任务。 Python 线程受全局解释器锁&#xff08;GIL&#xff09;制约&#xff0c;同一时刻仅能执行一个线程&#xff0c;无法充分利用多核 CPU 优势&#xff0c;且频繁切换线程会增加开销&#xff0c;影响爬虫性能。 协程是轻量级线程…

Avalonia 中文乱码

代码字体文件设置成支持中文的&#xff0c;但是编译的代码还是显示的乱码&#xff0c;原因是代码文件的文件编码格式不支持中文导致的。 如下面的2个页面一部分中文显示正常&#xff0c;一部分显示正常&#xff0c;一部分显示乱码。

Verilog学习方法—基础入门篇(一)

前言&#xff1a; 在FPGA开发中&#xff0c;Verilog HDL&#xff08;硬件描述语言&#xff09;是工程师必须掌握的一项基础技能。它不仅用于描述数字电路&#xff0c;还广泛应用于FPGA的逻辑设计与验证。对于初学者来说&#xff0c;掌握Verilog的核心概念和基本语法&#xff0…