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...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...