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

c语言每日一练(6)

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

五道选择题:

1、如下程序的功能是( )

#include <stdio.h>
int main()
{char ch[80] = "123abcdEFG*&";int j;puts(ch);for (j = 0; ch[j] != '\0'; j++)//1if (ch[j] >= 'A' && ch[j] <= 'Z')//2ch[j] = ch[j] + 'e' - 'E';//3puts(ch);return 0;
}

A、 测字符数组ch的长度
B、 将数字字符串ch转换成十进制数
C、 将字符数组ch中的小写字母转换成大写                                                                                      D、 将字符数组ch中的大写字母转换成小写

解析:观察代码构成,发现主要部分为代码1,2,3。先看代码1,代码1的意思是,只要字符不为'\0'它就会遍历下去,所以代码1这个循环会将字符串ch给遍历一遍。继续观察,循环里包含着代码2,代码2包含着代码3。代码2是个if表达式,进入代码3的条件是对应字符为大写字母,最后看下代码3,要注意的一点:a的ASCII码值为97,A的ASCII码值为65,大小写字母之间的ASCII码值是定值为32,因此,可以看出代码3的作用是将大写字母转化为小写字母,综上所述,该函数的作用是将字符串中的大写字母转化为小写字母。故选D

 

2、以下程序运行时,输入  1abcedf2df<回车>    的输出结果是( )

#include <stdio.h>
int main()
{char ch;while ((ch = getchar()) != '\n')//1{if (ch % 2 != 0 && (ch >= 'a' && ch <= 'z'))//2ch = ch - 'a' + 'A';//3putchar(ch);}printf("\n");return 0;
}

A、 1abcedf2df      B、 1ABCEDF2DF

C、 1AbCEdf2df    D、 1aBceDF2DF

解析:这道题与上一道题类似。观察代码,发现主要构成为代码1,2,3。可以看出代码1通过getchar将我们输入的字符串依次分解为一个个字符,并令这一个个字符依次进入代码2判定下一步操作。

看到代码2,发现代码2进入的条件得是小写字母,且对应的ASCII码值不能被2整除,a的ASCII码值为97,因此a,c,e,g......便可以进入到代码3。代码3的作用可以看出是将小写字母转化为大写字母。综上所述,我们输入 1abcedf2df<回车>    1,2不会进入,保留原样,a,c,e均被转化为大写字母,所以最后的结果为1AbCEdf2df,故选C

3、以下对C语言函数的有关描述中,正确的有【多选】( )
A、 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体
B、 函数的实参和形参可以是相同的名字
C、 在main()中定义的变量都可以在其它被调函数中直接使用
D、 在C程序中,函数调用不能出现在表达式语句中

解析:基础题,A选项是定义了,对。形参和实参可以同名,形参可以理解为实参的一份临时拷贝,在计算机存储上它们的空间是相互独立,互不影响的,故B对。当函数有返回值时是可以在其他被调函数中使用的,故C错。D选项和C错的一样。综上所述,答案为AB

4、在上下文及头文件均正常的情况下,下列代码的输出是( )

#include<stdio.h>
void print(char* s)
{if (*s){print(++s);printf("%c", *s);}
}
int main()
{char str[] = "Geneius";print(str);return 0;
}

A、suiene        B、neius       C、run-time error       D、suieneG

解析:使用了递归调用的方式逆序打印字符串,但因为先++后使用的原因最后一个字符是打印不出来的,所以答案选A


 5、给定 fun 函数如下,那么 fun(10) 的输出结果是( )

int fun(int x)
{return (x == 1) ? 1 : (x + fun(x - 1));
}

A、 0         B、 10        C、 55         D、 3628800

解析: 观察代码,发现当x等于1时,返回值1,不为1则递归调用。10这个数有点大,我们用3先走进去试一下,3走进去,发现不为1,走(3+fun(3-1)),所以fun(3)=(3+fun(3-1))。fun(2)接着走,2不等于1,走(2+fun(2-1)),所以fun(2)=(2+fun(2-1)),1等于1返回1,所以fun(1)=1,fun(2)=(2+1),fun(3)=3+2+1,可以看出,是个等差数列。

故fun(10)=1+2+3+4+.....+10结果为55,答案为C

 

编程题1: 

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

思路:两个循环,一个循环找最大。一个循环来比较,有则返回最大元素下标,无则返回-1 

int dominantIndex(int* nums, int numsSize) {int max = 0;int i = 0;int max_order = 0;for (i = 0; i < numsSize; i++){if (max < nums[i]){max = nums[i];//找数组最大值max_order = i;//储存最大值的下标}}for (i = 0; i < numsSize; i++){if (max < nums[i] * 2 && max_order != i)//不能够和自己比{return -1;}}return max_order;
}

编程题2:

图片整理_牛客题霸_牛客网

思路:简单的排序问题,以升序排序即可,可以使用冒泡排序,但没必要,我们有更好qsort函数,qsort函数直接快排,不仅效率高,而且方便。

不明白如何使用qsort函数的宝子们,可以看下博主之前写的博客

手把手教你使用qsort函数_大海里的番茄的博客-CSDN博客

#include <stdio.h>
#include<string.h>
int cmp_char(const void* c1, const void* c2)
{return (*(char*)c1) - (*(char*)c2);
}
int main() 
{char a[1001] = { 0 };gets(a);//获得字符串int len = strlen(a);//计算字符串长度qsort(a, len, sizeof(char), cmp_char);//使用快排函数printf("%s", a);
}

  好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O

相关文章:

c语言每日一练(6)

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

2023年国赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…...

WebAPIs 第四天

1.日期对象 2.节点操作 3.M端事件 4.JS插件 一.日期对象 实例化时间对象方法时间戳 日期对象&#xff1a;用来表示时间的对象 作用&#xff1a;可以得到当前系统时间 1.1 实例化 ① 概念&#xff1a;在代码中发现了new关键字时&#xff0c;一般将这个操作称为实例化 …...

SQL 语句解析过程详解

SQL 语句解析过程详解&#xff1a; 1&#xff0e;输入SQL语句 2&#xff0e;词法分析------flex 使用词法分析器&#xff08;由Flex生成&#xff09;将 SQL 语句分解为一个个单词&#xff0c;这些单词被称为“标记“。标记包括关键字、标识符、运算符、分隔符等。 2.1 flex 原…...

单源最短路径【学习算法】

单源最短路径【学习算法】 前言版权推荐单源最短路径Java算法实现代码结果 带限制的单源最短路径1928. 规定时间内到达终点的最小花费LCP 35. 电动车游城市 最后 前言 2023-8-14 18:21:41 以下内容源自《【学习算法】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此…...

汽车上的电源模式详解

① 一般根据钥匙孔开关的位置来确定整车用电类别&#xff0c;汽车上电源可以分为常电&#xff0c;IG电&#xff0c;ACC电 1&#xff09;常电。常电表示蓄电池和发电机输出直接供电&#xff0c;即使点火开关在OFF档时&#xff0c;也有电量供应。一般来讲模块的记忆电源及需要在车…...

【碎碎念随笔】1、回顾我的电脑和编程经历

✏️ 闲着无事&#xff0c;讲述一下我的计算机和代码故事 一、初识计算机 &#x1f5a5;️ 余家贫&#xff0c;耕植无钱买电脑。大约六年级暑假&#xff0c;我在姐姐哪儿第一次接触到了计算机&#xff08;姐姐也是买的二手&#xff09;。 &#x1f5a5;️ 计算机真有趣&#x…...

背上花里胡哨的书包准备面试之webpack篇(+一些常问的面试题)

目录 webpack理解&#xff1f; webpack构建流程&#xff1f; loader解决什么问题&#xff1f; plugin解决什么问题&#xff1f; 编写loader和plugin的思路&#xff1f; webpack热更新&#xff1f; 如何提高webpack的构建速度&#xff1f; 问git常用命令&#xff1f; ht…...

你知道什么是Curriculum Training模型吗

随着深度学习技术的飞速发展&#xff0c;研究人员在不断探索新的训练方法和策略&#xff0c;以提高模型的性能和泛化能力。其中&#xff0c;Curriculum Training&#xff08;课程学习&#xff09;模型作为一种前沿的训练方法&#xff0c;引起了广泛的关注和研究。本文将深入探讨…...

vue 大文件视频切片上传处理方法

前端上传大文件、视频的时候会出现超时、过大、很慢等情况&#xff0c;为了解决这一问题&#xff0c;跟后端配合做了一个切片的功能。 我这个切片功能是基于 minion 的&#xff0c;后端会把文件放在minion服务器上。具体看后端怎么做 1、在项目的 util(这个文件夹是自己创建的…...

痞子衡嵌入式:AppCodeHub - 一站网罗恩智浦MCU应用程序

近日&#xff0c;恩智浦官方隆重上线了应用程序代码中心(Application Code Hub&#xff0c;简称 ACH)&#xff0c;这是恩智浦 MCUXpresso 软件生态的一个重要组成部分。痞子衡之所以要如此激动地告诉大家这个好消息&#xff0c;是因为 ACH 并不是又一个恩智浦官方 github proje…...

打造数字化营销闭环,破解精准获客难题

现阶段&#xff0c;企业需要进行数字化营销闭环&#xff0c;以实现更精确的客户获取。随着数字技术的迅猛发展&#xff0c;企业需要将在线广告、社交媒体营销和数据分析等工具相互结合&#xff0c;建立一个完整的数字化营销流程。通过使用客户细分、精准定位和个性化广告等手段…...

《雷达像智能识别对抗研究进展》阅读记录

&#xff08;1&#xff09;引言 ​ 神经网络通常存在鲁棒性缺陷&#xff0c;易受到对抗攻击的威胁。攻击者可以隐蔽的诱导雷达智能目标识别做出错误预测&#xff0c;如&#xff1a; ​ a图是自行车&#xff0c;加上对抗扰动后神经网络就会将其识别为挖掘机。 &#xff08;2&a…...

【AHB】初识 AHB 总线

AHB 与 APB、ASB同属于 AMBA 总线架构规范&#xff0c;该总线规范由 ARM 公司提出。 目录 一、AHB 总线 二、AHB 总线组成 三、AHB 主从通信过程 一、AHB 总线 AHB&#xff08;Advanced High Performance Bus&#xff09;,意为高级高性能总线&#xff0c;能将微控制器&…...

Linux服务使用宝塔面板搭建网站,通过内网穿透实现公网访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板&#xff0c;它支持Linux/Windows系统&#xff0c;我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…...

C++ 判断

判断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。 下面是大多数编程语言中典型的判断结构的一般形式&#xff1a; 判断语句 C 编程语言…...

“解引用“空指针一定会导致段错误吗?

可能有些朋友看见这个标题第一反应是嵌入式的某些内存中,0地址也是可以被正常访问的,所以对0地址的解引用不会发生错误,但我要说的情况不是这个,而是指一个真正的空指针,不仅是c/c中的0,(void*)0,NULL,还有nullptr,一个真正的空指针. 在c语言中,想获得某结构体的成员变量相对偏…...

釉面陶瓷器皿SOR/2016-175标准上架亚马逊加拿大站

亲爱的釉面陶瓷器皿和玻璃器皿制造商和卖家&#xff0c;亚马逊加拿大站将执行SOR/2016-175法规。这是一份新的法规&#xff0c;规定了含有铅和镉的釉面陶瓷器和玻璃器皿需要满足的要求。让我们一起来看一看&#xff0c;为什么要实行SOR/2016-175法规&#xff1f;这是一个保护消…...

Redux - Redux在React函数式组件中的基本使用

文章目录 一&#xff0c;简介二&#xff0c;安装三&#xff0c;三大核心概念Store、Action、Reducer3.1 Store3.2 Reducer3.3 Action 四&#xff0c;开始函数式组件中使用4.1&#xff0c;引入store4.1&#xff0c;store.getState()方法4.3&#xff0c;store.dispatch()方法4.4&…...

rust学习-同时执行多Future

只用 .await 来执行future,会阻塞并发任务,直到特定的 Future 完成 join!:等待所有future完成 可事实上为什么都是res1完成后再执行res2? join! 不保证并发执行,难道只负责同步等待? 示例 [package] name = "rust_demo5" version = "0.1.0" edit…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...