【C语言】每日一题(半月斩)——day4
目录
选择题
1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )
2、运行以下程序后,如果从键盘上输入 65 14<回车> ,则输出结果为( )
3、若运行以下程序时,从键盘输入 ADescriptor<回车> ,则下面程序的运行结果是( )
4、如下函数是求两个int数字最大公约数的,指出其中存在的问题【多选】( )
5、执行下面的程序段,语句3的执行次数为( )
掌握continue和break的区别
编程题
1.错误的集合
2.密码检查
选择题
1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )
A: n=0;while(ch=getchar()!='\n')n++; B: n=0;while(getchar()!='\n')n++;
C: for(n=0;getchar()!='\n';n++); D: n=0;for(ch=getchar();ch!='\n';n++);
解析:
本体考察的是对for循环
for循环语句,其中第一项初始化表达式只执行一次,因此ch只从输入流中取一个字符,之后就再不会取字符,因此会死循环。选D
for(赋值语句;判断语句;调整语句); //(循环变量赋初值; 循环条件; 循环变量增值)
{
//...
}
2、运行以下程序后,如果从键盘上输入 65 14<回车> ,则输出结果为( )
int main()
{int m, n;printf("Enter m,n;");scanf("%d%d", &m,&n);while(m!=n) //1{while(m>n) m=m-n; //2while(n>m) n=n-m; //3
}printf("m=%d\n",m);return 0;
}
A: 3 B: 2 C: 1 D: 0
解析:
本题考察的是while循环,循环嵌套的理解
初值m=65,n=14;循环1判断m!=n为真,来到循环2判断m>n为真,执行m=m-n;直到m=9,n=14;
循环2结束来到循环3判断n>m为真,执行n=n-m;直到m=9,n=5;循环3结束回到循环1,如此往复直到m==n时,循环结束。选C
while(循环控制表达式)
{
语句序列
}
3、若运行以下程序时,从键盘输入 ADescriptor<回车> ,则下面程序的运行结果是( )
#include <stdio.h>
int main()
{char c;int v0 = 0, v1 = 0, v2 = 0;do{switch (c = getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1 += 1;default:v0 += 1; v2 += 1;}} while (c != '\n');printf("v0=%d,v1=%d,v2=%d\n", v0, v1, v2);return 0;
}
A: v0=7,v1=4,v2=7 B: v0=8,v1=4,V2=8
C: v0=11,v1=4,v2=11 D: v0=12,v1=4,v2=12
解析:
本题考察的是switch-case-default 语句
switch 语句中,如果进入某条case入口中没有break; 会进入下一条case中一直到default,直到遇到break;或者代码结束;
例当c为'A'时,从case 'A'进入,先后执行v1+=1;v0+=1;v2+=1;,
而当c为'p'时,从default进入,先后执行v0+=1;v2+=1;,最终v0和v2是相等的。选D
switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
default:语句n
break;
}
4、如下函数是求两个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: 返回类型不对
解析:
本题考察的:==和=(==表示判断是否相等,=表示赋值运算符)
1.函数实参是int,形参用char不对,会发生截断丢失数据;2.min在for循环开始时更新为0,不再是两个形参中的较小值;
3.判断是否整除的时候误将==写成=赋值运算符;
4.函数最终要返回一个int值,返回值类型没问题,但是这里要强调一个选项中没写出的问题
选ABC
知识点:'==' 和 '='
“=”是赋值。
👉它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。
“==”是相等操作符,👉 判断两边是否相等。利用相等运算符,如果希望相等运算符返回true,则运算符两侧的值或语句必须使相等的;如果不相等,则==运算符返回false。
5、执行下面的程序段,语句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)
解析:
本题考察多重循环体
外循环有n次,
当i=0,内循环为n次,
当i=1,内循环为n-1次,
当i=2时,内循环为n-2次,
以此类推,总次数为 n+(n-1)+(n-2)+......+2+1,就是个等差数列,等于n(n+1)/2。 选C
在多重循环中有很多类型的循环嵌套
// 外层循环 while(条件1){ // 内层循环for(条件2){ }do{}while(条件3); }在循环嵌套中最需要注意的就是跳转语句
掌握continue和break的区别
👉break:
退出当前循环!如果出现在多重循环的内层循环中,不会退出外层循环,只会退出当前循环。
👉continue(继续):
结束本次循环(后面的代码不执行了),进入下一次循环。
break可以出现在switch选择结构和循环结构中,continue只能出现在循环中。
利用continue和break实现重复输入。
编程题
1.错误的集合
645.错误的集合——力扣
集合
s包含从1到n的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组
nums代表了集合S发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。
解析:
将数组排序,才能去遍历;
returnSize是指返回数组元素的个数。
1.:使用qsort()函数将数组排序成升序;
2:为返回值数组开辟动态内存空间,否则在出函数时会释放;
3:定义一个数来记录数组的前一个数;
4:遍历数组:相同记录为num[0],数组当前元素-前一个元素值大于一说明中间的就是缺的元素num[1];
5:如果最后一个元素不等于长度,说明最后一个就是缺的元素。
int my_cmp(const void* p1,const void* p2)
{return *(int*)p1 - *(int*)p2;
}int* findErrorNums(int* nums, int numsSize, int* returnSize)
{//将数组进行升序排序qsort(nums,numsSize,4,my_cmp);//returnSize为返回数组元素个数*returnSize = 2;//开辟动态内存空间,否则在出函数时会释放int* num = (int*)malloc(sizeof(int)*2);//定义数组的前一个数int front = 0;//遍历数组for(int i = 0; i < numsSize;i++ ){//相同记录为num[0]if(nums[i] == front){num[0] = nums[i];}//数组当前元素-前一个元素值大于一说明中间的就是缺的元素else if(nums[i] - front > 1){num[1] = nums[i]-1;}front = nums[i];}//最后一个元素不等于长度,说明最后一个就是缺的元素if(nums[numsSize-1] != numsSize){num[1] = numsSize;}return num;
}
2.密码检查
密码检查_牛客题霸_牛客网 (nowcoder.com)
输入一个数n,接下来有n(n≤100)行,每行一个字符串,表示一个密码,输入保证字符串中只出现大写字母,小写字母和数字,字符串长度不超过100。
解析
1:创建输入密码数量的n,和字符串arr;
2:for循环遍历,创建用于记录密码的字符是否正确count,顺便求字符串长度;
3:判断字符串长度是否合法;
4:遍历一遍字符串,格式正确就记录count;
5:最后将字符串长度与count比较,相同“YES”,反之“NO”。
int main()
{int n = 0;scanf("%d", &n);//字符串长度限制char arr[100] = { 0 };//密码个数for (int j = 0; j < n; j++){scanf("%s", arr);//用于记录密码的字符是否正确int count = 0;//字符串长度int sz = strlen(arr);//是否符合长度要求if (sz >= 8 && sz <= 100){//遍历一遍字符串,格式正确就记录for (int i = 0; i < sz; i++){if (arr[i] >= 'A' && arr[i] <= 'Z' ||arr[i] >= 'a' && arr[i] <= 'z' ||arr[i] >= '0' && arr[i] <= '9'){count++;}}}//长度对比if (sz == count){printf("YES\n");}else{printf("NO\n");}}return 0;
}

相关文章:
【C语言】每日一题(半月斩)——day4
目录 选择题 1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( ) 2、运行以下程序后,如果从键盘上输入 65 14<回车> ,则输出结果为( &…...
Are you sure you want to continue connecting (yes/no) 每次ssh进
Lunix scp等命令不需要输入yes确认方法_scp不需要确认-CSDN博客 方法一:连接时加入StrictHostKeyCheckingno ssh -o StrictHostKeyCheckingno root192.168.1.100 方法二:修改/etc/ssh/ssh_config配置文件,添加: StrictHostKeyC…...
网络与信息系统安全设计规范
1、总则 1.1、目的 为规范XXXXX单位信息系统安全设计过程,确保整个信息安全管理体系在信息安全设计阶段符合国家相关标准和要求,特制订本规范。 1.2、范围 本规范适用于XXXXX单位在信息安全设计阶段的要求和规范管理。 1.3、职责 网络安全与信息化…...
在Linux怎么用vim实现把一个文件里面的文本复制到另一个文件里面
2023年10月9日,周一下午 我昨天遇到了这个问题,但在网上没找到图文并茂的博客,于是我自己摸索出解决办法后,决定写一篇图文并茂的博客。 情景 假设现在我要用vim把file_transfer.cpp的内容复制到file_transfer.hpp里面 第一步 …...
CCAK—云审计知识证书学习
目录 一、CCAK云审计知识证书概述 二、云治理概述 三、云信任 四、构建云合规计划 <...
3.springcloudalibaba gateway项目搭建
文章目录 前言一、搭建gateway项目1.1 pom配置1.2 新增配置如下 二、新增server服务2.1 pom配置2.2新增测试接口如下 三、测试验证3.1 分别启动两个服务,查看nacos是否注册成功3.2 测试 总结 前言 前面已经完成了springcloudalibaba项目搭建,接下来搭建…...
Debezium日常分享系列之:Debezium 2.3.0.Final发布
Debezium日常分享系列之:Debezium 2.3.0.Final发布 一、重大改变二、PostgreSQL / MySQL 安全连接更改三、JDBC 存储编码更改四、新功能和改进五、Kubernetes 的 Debezium Server Operator六、新的通知子系统七、新的可扩展信号子系统八、JMX 信号和通知集成九、新的…...
js为什么是单线程?
基础 js为什么是单线程? 多线程问题 类比操作系统,多线程问题有: 单一资源多线程抢占,引起死锁问题;线程间同步数据问题; 总结 为了简单: 更简单的dom渲染。js可以操控dom,而一…...
centos安装redis教程
centos安装redis教程 安装的版本为centos7.9下的redis3.2.100版本 1.下载地址 Index of /releases/ 使用xftp将redis传上去。 2.解压 tar -zxvf 文件名.tar.gz 3.安装 首先,确保系统已经安装了GCC编译器和make工具。可以使用以下命令进行安装: sudo y…...
把短信验证码储存在Redis
校验短信验证码 接着上一篇博客https://blog.csdn.net/qq_42981638/article/details/94656441,成功实现可以发送短信验证码之后,一般可以把验证码存放在redis中,并且设置存放时间,一般短信验证码都是1分钟或者90s过期,…...
【已编译资料】基于正点原子alpha开发板的第三篇系统移植
系统移植的三大步骤如下: 系统uboot移植系统linux移植系统rootfs制作 一言难尽,踩了不少坑,当时只是想学习驱动开发,发现必须要将第三篇系统移植弄好才可以学习后面驱动,现将移植好的文件分享出来: 仓库&…...
地下城堡3魂之诗食谱,地下城堡3菜谱37种
地下城堡3魂之诗食谱大全,让你解锁制作各种美食的方法!不同的食材搭配不同的配方制作,食物效果和失效也迥异。但有时候我们可能会不知道如何制作这些食物,下面为您介绍地下城堡3菜谱37种。 关注【娱乐天梯】,获取内部福…...
HDMI 基于 4 层 PCB 的布线指南
HDMI 基于 4 层 PCB 的布线指南 简介 HDMI 规范文件里面规定其差分线阻抗要求控制在 100Ω 15%,其中 Rev.1.3a 里面规定相对放宽了一些,容忍阻抗失控在 100Ω 25%范围内,不要超过 250ps。 通常,在 PCB 设计时,注意控…...
理解Go中的布尔逻辑
布尔数据类型(bool)可以是两个值之一,true或false。布尔值在编程中用于比较和控制程序流程。 布尔值表示与数学逻辑分支相关的真值,它指示计算机科学中的算法。布尔(Boolean)一词以数学家乔治布尔(George Boole)命名,总是以大写字母B开头。 …...
rv1126-rknpu-v1.7.3添加opencv库
rv1126所使用的rknn sdk里默认是不带opencv库的,官方所用的例程里也没有使用opencv,但是这样在进行图像处理的时候有点麻烦了,这里有两种办法: 一是先用python将所需要的图片处理好后在转化为bin格式文件,在使用c或c进行读取&…...
【Redis】Redis持久化深度解析
原创不易,注重版权。转载请注明原作者和原文链接 文章目录 Redis持久化介绍RDB原理Fork函数与写时复制关于写时复制的思考 RDB相关配置 AOF原理AOF持久化配置AOF文件解读AOF文件修复AOF重写AOF缓冲区与AOF重写缓存区AOF缓冲区可以替代AOF重写缓冲区吗AOF相关配置写后…...
c/c++--字节对齐(byte alignment)
1. 默认字节对齐 在所有结构体成员的字节长度都没有超出操作系统基本字节单位(32位操作系统是4,64位操作系统是8)的情况下 按照结构体中字节最大的变量长度来对齐;若结构体中某个变量字节超出操作系统基本字节单位 那么就按照系统字节单位来对齐。 注意࿱…...
算法进阶——字符串的排列
题目 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 数据范围:n<10 要求:空间复…...
js中 slice 用法用法全解析
slice 工作原理 在深入研究一些更高级的用法之前,让我们看一下 slice 方法的基础知识。如MDN文档, slice 是数组上的一个方法,它最多有两个参数: arr.slice([begin[, end]]) begin 从该索引处开始提取原数组中的元素,如果该参数为负数&am…...
Typora安装教程
Typora 安装教程 安装 官网最新版 自行官网下载 社区版(老版本,附带激活码) 链接: https://pan.baidu.com/s/1t_3o3Xi7x09_8G1jpQYIvg?pwdmeyf 提取码: meyf 复制这段内容后打开百度网盘手机App,操作更方便哦 将百度云盘下…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
