当前位置: 首页 > news >正文

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)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…...

java基础-Stream(流)、File(文件)和IO

Java中的流(Stream)提供了一个统一的接口来处理输入和输出数据&#xff0c;文件(File)提供了一种简单的方式来操作磁盘上的文件&#xff0c;而I/O则允许我们在Java程序中读写数据。 一、流Stream java中得stream是一种抽象概念&#xff0c;流可以从多种来源读取数据&#xff…...

el-table实现指定列合并

table传入span-method方法可以实现合并行或列&#xff0c;方法的参数是一个对象&#xff0c;里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组&#xff0c;第一个元素代表rowspan&#xff0c;第二个元素…...

38.利用matlab解 有约束无约束的参数估计对比(matlab程序)

1.简述 1.离散型随机变量的极大似然估计法: (1) 似然函数 若X为离散型, 似然函数为 (2) 求似然函数L(θ)的最大值点 θ, 则θ就是未知参数的极大似然估计值. 2.连续型随机变量的极大似然估计法: (1) 似然函数 若 X 为连续型, 似然函数为 (2) 求似然函数L(θ)的最大值点θ, 则…...

什么是React?React与VU的优缺点有哪些?

什么是React&#xff1f;什么是VUE&#xff1f; 维基百科上的概念解释&#xff0c;Vue.js是一个用于创建用户界面的开源MVVM前端JavaScript框架&#xff0c;也是一个创建单页应用的Web应用框架。Vue.js由尤雨溪&#xff08;Evan You&#xff09;创建&#xff0c;由他和其他活跃…...

区块链技术助力慈善,为您的善举赋予全新力量!

我们怀揣着一颗温暖的心&#xff0c;秉承着公开透明的理念&#xff0c;带着信任与责任&#xff0c;倾力打造了一套区块链技术驱动的去中心化捐赠与物资分发系统&#xff0c;通过智能生态网络&#xff08;IEN&#xff09;解决捐赠不透明问题的系统&#xff0c;让您的善举直接温暖…...

模拟实现消息队列项目(系列4) -- 服务器模块(内存管理)

目录 前言 1. 创建MemoryDataCenter 2. 封装Exchange 和 Queue方法 3. 封装Binding操作 4. 封装Message操作 4.1 封装消息中心集合messageMap 4.2 封装消息与队列的关系集合queueMessageMap的操作 5. 封装未确认消息集合waitMessage的操作 6. 从硬盘中恢复数据到内存中 7. Memo…...

STM32 LoRa源码解读

目录结构&#xff1a; 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 格式化打印&#xff1a; printf10.2 awk&#xff1a;好用的数据处理工具awk 的逻辑运算字符 10.3 文件比对工具diffcmppatch 10.4 文件打印准备&#xff1a; pr 该系列目录 --> 【BASH】回顾与知识点梳理&#…...

【网络】应用层——HTTPS协议

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; HTTPS协议 &#x1f349;HTTP的不安全性&#x1f349;认识HTTPS协议&#x1f353;加密解密&#x1f35…...

Windows新版文件资源管理器经常在后台弹出的临时解决方案

禁用组策略自动刷新 运行gpedit.msc找到计算机配置->管理模板->系统->组策略找到 “关闭组策略的后台刷新”启用 参考 https://answers.microsoft.com/en-us/windows/forum/all/windows-11-most-recently-opened-explorer-window/26e097bd-1eba-4462-99bd-61597b5…...

软考高项(八)项目整合管理 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…...

基于python+django开发的学生信息管理系统

基于pythondjangovue.js开发的学生信息管理系统&#xff0c;师弟的课程作业 功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;学生管理、班级管理、用户管理、日志管理、系统信息模块…...

mysql的高级查询语句

目录 一、本文前言 二、高效查询方式 1&#xff09;指定指字段进行查看 2&#xff09;对字段进行去重查看 3&#xff09;where条件查询 4&#xff09;and 和 or 进行逻辑关系的增加 5&#xff09;查询取值列表中的数据 6&#xff09;between的引用 7&#xff09;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. 概念 定义一个适配器&#xff0c;帮助原本不能实现接口的类“实现”该接口 1.1 角色 目标&#xff08;Target&#xff09;&#xff1a;客户端调用的目标接口 被适配者&#xff08…...

机器学习概述及其主要算法

目录 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的根集合&#xff08;root set&#xff09;的重要组成部分&#xff1b;找出栈上的引用是GC的根枚举&#xff08;root enumeration&#xff09;中不可或缺的一环。 要看JVM选择用什么方式。通常这个选择会影响到GC的实现。 如果JVM选择不记录任何这种…...

Bug合集

这里会收藏后面所遇到的bug并附上具有参考的意义的博客&#xff0c;会持续更新 Java 1、SpringBoot升级2.6.0以上后&#xff0c;Swagger出现版本不兼容报错。 Failed to start bean ‘documentationPluginsBootstrapper‘&#xff1b; 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...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...