c语言每日一练(3)
前言:
每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情况更新。
五道选择题:
1、执行下面的程序段,语句3的执行次数为( )
for(i = 0; i <= n-1; i++) // (1)
for(j = n; j > i; j--) // (2)
state// (3)
A.n(n+2)/2 B.(n-1)(n+2)/2 C.n(n+1)/2 D.(n-1)(n+2)
解析:先看代码构成,两个循环嵌套在了一起,每一次循环都会执行一次语句3,那么我们的目标就是计算出总循环的次数。
第一层循环的i被初始化为0,循环继续条件为i<=n-1,且每次循环i+1。继续观察,发现没有别的可以影响i的值的因素了,0~n-1次数为n,因此第一层循环的次数为n。
接下来看第二层循环,第二层循环的j被初始化为了n,循环继续条件为j>i,且每次循环j减1。第二层循环受到i的值的影响,我们在做这种题时可以先代几个值进去尝试。
当i=0时,走到第二层循环,那么此时循环继续进行的条件就变成了j>0,j被初始化为n,每次循环j减1。那么第二层循环就会走n次。
我们接着走,当i=1时,走到第二层循环,那么此时循环继续进行的条件就变成了j>1,j又会被初始化为n,那么循环的次数就会是n-1
当i=2时为n-2.......一直到i=n-1时二层循环走1次可以看出
总共的循环次数是n+n-1+n-2+.....+1最后的结果为(1+n)*n/2,所以答案是C
2、对于代码段,下面描述正确的是( )
t=0;
while(printf("*"))
{
t++;
if (t<3)
break;
}
A. 其中循环控制表达式与0等价 B. 其中循环控制表达式与'0'等价
C. 其中循环控制表达式是不合法的 D. 以上说法都不对
解析: 观察四个选项,发现它们都避不开循环控制表达式,所以我们从循环控制表达式入手。循环控制表达式为printf("*"),而printf是有返回值的,它在屏幕上输出了几个字符,返回值就为几。printf("*")只会在屏幕上打印出一个*字符,所以这个控制表达式可以等价为1,也就是可以将循环看作while(1),循环条件恒为真,也就是死循环。
因此,如果有表达式可以实现循环控制表达式恒为真,那就等价于我们的循环控制表达式。
先看A选项,A:循环控制表达式与0等价,显然是错的,0恒为假,一次循环都不会进去更别说死循环了。
再看B选项,B:循环控制表达式与'0'等价,'0'的ASCII码值是48,48非0,循环控制表达式恒为真,故答案为B。
C选项是循环控制表达式不合法,一般来说,要出现循环控制表达式不合法,很可能是你的语法出错了,而题目中的死循环,虽然它死循环了,但循环是会进行的,所以是合法的,C错。D不用看,一般都不会选这个。所以最后答案为B
3、如下函数是求两个int数字最大公约数的,指出其中存在的问题【多选】( )
int gcd(char x,char y)
{
int min = x < y ? x : y;
for (min = 0; min > 0; min--)
if (x % min = 0 && y % min = 0)
return min;
}
A. 参数类型不对 B.循环变量min初值不对 C.判断等于的符号不对 D.返回类型不对
解析:题目函数的用途是求两个数字的最大公约数,让我们指出代码存在的问题。这种问题,即使你不知道怎么用代码求最大公约数也是能做的。
先看A选项,A说参数类型不对,那么我们观察可以发现,x,y是char型的,而题目要求两个int数字的最大公约数,参数类型不匹配,故要选A。
再看B选项,B说循环变量min初值不对,min初值被设成了0,而循环条件为min>0,因此循环一次都不会进行,更不会走到if的判断中。会直接走到return min上,最后只会返回x,y中的较小的那个,这样求最大公约数显然是错的,故要选B。
再看C选项,C说判断等于的符号不对,观察发现问题代码,if (x % min = 0 && y % min = 0)我们判断相等时要用两个=号,一个=号是赋值的意思,故要选C。
最后再看D选项,D说返回类型不对,min是int型的,而函数的返回类型也是故D错,不选。综上所述,我们的答案是ABC
4、下列条件语句中,功能与其他语句不同的是( )
A. if(a) printf("%d\n",x); else printf("%d\n",y);
B. if(a==0) printf("%d\n",y); else printf("%d\n",x);
C. if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D. if(a==0) printf("%d\n",x); else printf("%d\n",y);
解析:找不同,这个很简单,顺着走看功能就行
先看A选项,if(a) printf("%d\n",x); else printf("%d\n",y);顺着读就是,当a为非0值时,打印x,当a为0时打印y
再看B选项,if(a==0) printf("%d\n",y); else printf("%d\n",x);当a为0时打印y,当a为非0打印x,和A一样
再看C选项,if (a!=0) printf("%d\n",x); else printf("%d\n",y);当a不等于0时打印x,为0时打印y,和A一样
最后看D选项,if(a==0) printf("%d\n",x); else printf("%d\n",y);当a等于0时打印x,不等于0时打印y,和之前的都不一样,故答案为D
5、我们知道C语言的 break 语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环,下列跳出多层循环的做法正确的是【多选】( )
A. 将程序写成函数用return结束函数,便可跳出循环
A解析:使用return可以直接结束函数,别说跳出循环了,它直接撂担子不干了,所以A正确
B. 修改外层循环条件例如
for (int i = 0; i < MAX1; i++)
{for (int j = 0; j < MAX2; j++){if (condition){i = MAX1;//1break;//2}}//3
}
B解析:当condition满足的时候,i=MAX1,然后break,break跳出一层循环,跳到3的位置,继续走发现没有代码执行了,跳到开始的条件判断,发现不满足i<MAX1这个条件,故循环结束。可以看出,当condition满足时,直接跳出这个多层循环,故B正确
C. 在外层循环设置判断条件例如
for (; symbol != 1 && condition2; )
{for (; symbol != 1 && condition3; ){if (condition1)symbol = 1;}
}
C解析:当condition满足时,symbol被赋值为1。可以看出,两层循环进行的条件均是symbol!=1,也就是说, 当symbol不等于1时两层循环才会有进行的可能,所以当symbol为1时,两层循环都会被跳出,C正确
D. 在外层循环后面加入break例如
for ( ;symbol; )
{for ( ;symbol!=1; ){if (condition)symbol = 1;//1}if (symbol == 1)//2break;
}
D解析:当condition满足时,symbol等于1,会跳到2的位置。symbol等于1,满足if(symbol==1),故跳出循环,D正确。综上所述,答案为ABCD
编程题1:
数字在升序数组中出现的次数_牛客题霸_牛客网

int GetNumberOfK(int* nums, int numsLen, int k) {int i = 0; int count = 0;for (i = 0; i < numsLen; i++)//遍历一遍数组{if (nums[i] == k)//k是目标,当等于时计数器+1{count++;}}return count;//返回统计结果
}
编程题2:
面试题 05.06. 整数转换 - 力扣(LeetCode)
int convertInteger(int A, int B) {unsigned int x = A ^ B; int count = 0;
//异或(^)可以将A和B的两个值相同的位变为0,不同的位变为1
//因此此时的x的位上的1的数量为A和B不同的位的个数while(x){if(x&1==1)
//与1进行且运算,1只有最后一位为1,其他位为0
//可以将x最后一位的值剥离出来
//当剥离的结果为1意味着,找到了1个A和B不同的位{count++;}x>>=1;//将x右移1位,如此可以遍历x上的所有位}return count;//返回计数结果
}
好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O
相关文章:
c语言每日一练(3)
前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…...
java基础-Stream(流)、File(文件)和IO
Java中的流(Stream)提供了一个统一的接口来处理输入和输出数据,文件(File)提供了一种简单的方式来操作磁盘上的文件,而I/O则允许我们在Java程序中读写数据。 一、流Stream java中得stream是一种抽象概念,流可以从多种来源读取数据ÿ…...
el-table实现指定列合并
table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素…...
38.利用matlab解 有约束无约束的参数估计对比(matlab程序)
1.简述 1.离散型随机变量的极大似然估计法: (1) 似然函数 若X为离散型, 似然函数为 (2) 求似然函数L(θ)的最大值点 θ, 则θ就是未知参数的极大似然估计值. 2.连续型随机变量的极大似然估计法: (1) 似然函数 若 X 为连续型, 似然函数为 (2) 求似然函数L(θ)的最大值点θ, 则…...
什么是React?React与VU的优缺点有哪些?
什么是React?什么是VUE? 维基百科上的概念解释,Vue.js是一个用于创建用户界面的开源MVVM前端JavaScript框架,也是一个创建单页应用的Web应用框架。Vue.js由尤雨溪(Evan You)创建,由他和其他活跃…...
区块链技术助力慈善,为您的善举赋予全新力量!
我们怀揣着一颗温暖的心,秉承着公开透明的理念,带着信任与责任,倾力打造了一套区块链技术驱动的去中心化捐赠与物资分发系统,通过智能生态网络(IEN)解决捐赠不透明问题的系统,让您的善举直接温暖…...
模拟实现消息队列项目(系列4) -- 服务器模块(内存管理)
目录 前言 1. 创建MemoryDataCenter 2. 封装Exchange 和 Queue方法 3. 封装Binding操作 4. 封装Message操作 4.1 封装消息中心集合messageMap 4.2 封装消息与队列的关系集合queueMessageMap的操作 5. 封装未确认消息集合waitMessage的操作 6. 从硬盘中恢复数据到内存中 7. Memo…...
STM32 LoRa源码解读
目录结构: SX1278 |-- include | |-- fifo.h | |-- lora.h | |-- platform.h | |-- radio.h | |-- spi.h | |-- sx1276.h | |-- sx1276Fsk.h | |-- sx1276FskMisc.h | |-- sx1276Hal.h | |-- sx1276LoRa.h | -- sx1276LoRaMisc.h – src |-- fifo.c |-- lora.c |-- …...
【BASH】回顾与知识点梳理(十)
【BASH】回顾与知识点梳理 十 十. 文件的格式化与相关处理10.1 格式化打印: printf10.2 awk:好用的数据处理工具awk 的逻辑运算字符 10.3 文件比对工具diffcmppatch 10.4 文件打印准备: pr 该系列目录 --> 【BASH】回顾与知识点梳理&#…...
【网络】应用层——HTTPS协议
🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! HTTPS协议 🍉HTTP的不安全性🍉认识HTTPS协议🍓加密解密ἵ…...
Windows新版文件资源管理器经常在后台弹出的临时解决方案
禁用组策略自动刷新 运行gpedit.msc找到计算机配置->管理模板->系统->组策略找到 “关闭组策略的后台刷新”启用 参考 https://answers.microsoft.com/en-us/windows/forum/all/windows-11-most-recently-opened-explorer-window/26e097bd-1eba-4462-99bd-61597b5…...
软考高项(八)项目整合管理 ★重点集萃★
👑 个人主页 👑 :😜😜😜Fish_Vast😜😜😜 🐝 个人格言 🐝 :🧐🧐🧐说到做到,言出必行&am…...
基于python+django开发的学生信息管理系统
基于pythondjangovue.js开发的学生信息管理系统,师弟的课程作业 功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 功能包括:学生管理、班级管理、用户管理、日志管理、系统信息模块…...
mysql的高级查询语句
目录 一、本文前言 二、高效查询方式 1)指定指字段进行查看 2)对字段进行去重查看 3)where条件查询 4)and 和 or 进行逻辑关系的增加 5)查询取值列表中的数据 6)between的引用 7)like…...
04-8_Qt 5.9 C++开发指南_QTableWidget的使用
文章目录 1. QTableWidget概述2. 源码2.1 可视化UI设计2.2 程序框架2.3 qwintspindelegate.h2.4 qwintspindelegate.cpp2.5 mainwindow.h2.6 mainwindow.cpp 1. QTableWidget概述 QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget 组件后,可以在 PropertyEditor…...
《golang设计模式》第二部分·结构型模式-01-适配器模式(Adapter)
文章目录 1. 概念1.1 角色1.2 应用场景1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 示例类图 1. 概念 定义一个适配器,帮助原本不能实现接口的类“实现”该接口 1.1 角色 目标(Target):客户端调用的目标接口 被适配者(…...
机器学习概述及其主要算法
目录 1、什么是机器学习 2、数据集 2.1、结构 3、算法分类 4、算法简介 4.1、K-近邻算法 4.2、贝叶斯分类 4.3、决策树和随机森林 4.4、逻辑回归 4.5、神经网络 4.6、线性回归 4.7、岭回归 4.8、K-means 5、机器学习开发流程 6、学习框架 1、什么是机器学习 机器…...
识jvm堆栈中一个数据类型是否为为引用类型,目前虚拟机实现中是如何做的?
调用栈里的引用类型数据是GC的根集合(root set)的重要组成部分;找出栈上的引用是GC的根枚举(root enumeration)中不可或缺的一环。 要看JVM选择用什么方式。通常这个选择会影响到GC的实现。 如果JVM选择不记录任何这种…...
Bug合集
这里会收藏后面所遇到的bug并附上具有参考的意义的博客,会持续更新 Java 1、SpringBoot升级2.6.0以上后,Swagger出现版本不兼容报错。 Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPo…...
linux下.run安装脚本制作
1、安装文件(install.sh) PS: .run安装包内部执行脚本文件 2、资源文件(test.zip) PS: 待安装程序源文件 3、制作.run脚本(install.run) cat install.sh test.zip > install.run chmod ax install.run...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...
数据库优化实战指南:提升性能的黄金法则
在现代软件系统中,数据库性能直接影响应用的响应速度和用户体验。面对数据量激增、访问压力增大,数据库性能瓶颈经常成为项目痛点。如何科学有效地优化数据库,提升查询效率和系统稳定性,是每位开发与运维人员必备的技能。 本文结…...
【仿生机器人】刀剑神域——爱丽丝苏醒计划,需求文档
仿生机器人"爱丽丝"系统架构设计需求文档 一、硬件基础 已完成头部和颈部硬件搭建 25个舵机驱动表情系统 颈部旋转功能 眼部摄像头(视觉输入) 麦克风阵列(听觉输入) 颈部发声装置(语音输出)…...
