C语言小练习(一)

🌞 “人生是用来体验的,不是用来绎示完美的,接受迟钝和平庸,允许出错,允许自己偶尔断电,带着遗憾,拼命绽放,这是与自己达成和解的唯一办法。放下焦虑,和不完美的自己和解,然后去爱那个完整的自己!”
前面,关于C语言的基础知识都学的差不多,但是想要好好掌握这门语言,还是要勤加练习,从现在到开学,每天会更新一个小练笔,大家可以一起来做一下❗
Day01
- 📝 一.选择题
- 📝二.编程题
📝 一.选择题
1.🎈执行下面程序,正确的输出是( )
#include <stdio.h>
int x = 5, y = 7;
void swap()
{int z;z = x;x = y;y = z;
}
int main()
{int x = 3, y = 8;swap();printf("%d,%d\n", x, y);return 0;
}
A: 5,7 B: 7,5 C: 3,8 D: 8,3
🏆答案:C
🔭答题思路:swap函数调用的是全局变量,int x = 3, y = 8;属于局部变量,只在主函数内生效。而主函数内的printf函数考虑局部优先的原则,会输出3,8。
2.🎈以下不正确的定义语句是( )
A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0};
B: char c2[] = {‘\x10’, ‘\xa’, ‘\8’};
C: char c1[] = {‘1’,‘2’,‘3’,‘4’,‘5’};
D: int y[5+3]={0, 1, 3, 5, 7, 9};
🏆答案:B
🔭答题思路:这里的B选项,就用到了转义字符的知识,详细的也可以去看我另外一篇博客:链接: 转义字符
✅ 这里,我们就知道\ddd中ddd表示1~3个八进制的数字。如:\130 X
八进制数是由0~7组成,题目中B选项就错在了'\8'中出现了8.
而\ xdd中dd表示2个十六进制的数字。如:\x30 0
十六进制的数是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中A-F分别表示十进制数字10-15.
3.🎈 test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】( )
#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;
A: a B: b C: c D: d
🏆答案:ACD
🔭答题思路:本题主要需要弄清楚define和typedef。#define是一种宏,一般会用在预处理阶段,在预处理阶段,define只会替换,不会做任何的算计逻辑等处理。而typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typedef。用typedef定义数组、指针、结构等类型会带来很大的方便,不仅使程序书写简单,也使意义明确,增强可读性。
🔎那么,在上述代码中,INT_PTR a, b;在预处理阶段就会转化成int*a,b;这里,int *是a的类型,而b的类型是int.而typedef是起了一个别名,别名是一个独立的类型,使用这个类型创建的变量都是这个类型,因此c和d都是int*.
我们也可以通过调试来验证一下:
4.🎈若给定条件表达式 (M)?(a++):(a–) ,则其中表达式 M ( )
A: 和(M==0)等价 B: 和(M ==1)等价C: 和(M!=0)等价 D: 和(M!=1)等价
🏆答案:B
🔭答题思路:本题考察的主要是三目运算符表达式1?表达式2:表达式3
✅唯一 一个三目操作符。
🧩表达式1为真,表达式2的结果为整个表达式的结果,表达式3不算.
🧩表达式1为假,表达式3的结果为整个表达式的结果,表达式2不算。
关于操作符的详细知识点,可以跳转见博客:操作符(上)
操作符(下)本题只要知道了操作符的相关知识,就不难解出!
5.🎈有如下定义语句,则正确的输入语句是【多选】( )
int b;
char c[10];
A: scanf(“%d%s”,&b,&c); B: scanf(“%d%s”,&b,c);
C: scanf(“%d%s”,b,c); D: scanf(“%d%s”,b,&c);
🏆答案:AB
🔭答题思路:作为字符数组,c和&c的地址一致,但是,对于整型变量b,想要取它的地址,必须是&b.
📝二.编程题
1.🎈输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
- 用返回一个整数列表来代替打印
- n 为正整数,0 < n <= 5
OJ链接【牛客网题号: JZ17 打印从1到最大的n位数】【难度:入门】
🔭答题思路:从题目中,我们知道
n的取值范围是正整数1~5,当n为1,应当输出[1,2,3,4,5,6,7,8,9]当n为2时,应当输出[1,2,3...99],当n为3,应当输出[1,2,3...999]当n为4时,应当输出[1,2,3...9999]当n为5时,应当输出[1,2,3...99999]我们发现最大的那位数都可以用10^n^-1来表示,那么打印的过程,我们可以用for循环来实现。
int* printNumbers(int n, int* returnSize)
{*returnSize = pow(10, n) - 1;int* ret = (int*)malloc(sizeof(int) * (*returnSize));//申请足够大的空间//malloc函数是用于动态内存分配的int i = 0;for (i = 0; i < *returnSize; i++){*(ret + i) = i + 1;//下标从0开始,数值从1开始}return ret;
}

📖malloc是动态内存分配函数,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址。如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
✅注意:malloc函数的返回的是无类型指针,在使用时一定要强制转换为所需要的类型。❗
🏆在使用malloc开辟空间时,使用完成一定要释放空间,如果不释放会造内存泄漏。
🔎在使用malloc函数开辟的空间中,不要进行指针的移动,因为一旦移动之后可能出现申请的空间和释放空间大小的不匹配。
📝具体使用方法:指针自身 = (指针类型*)malloc(sizeof(指针类型)*数据数量)
2.🎈根据输入的日期,计算是这一年的第几天。输入保证年份为4位数且日期合法。
输入描述:输入一行,每行空格分割,分别是年,月,日。
输出描述:输出是这一年的第几天
OJ链接【牛客网题号: HJ73 计算日期到天数转换】【难度:简单】
🔭答题思路:拿到这个题目,我们首先想到的是,我们需要
判断这一年是否为闰年,闰年的二月有29天,而其他普通年份二月只有28天。那么如果月份大于2,总天数就要进行+1的操作。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int year = 0, month = 0, day = 0;scanf("%d%d%d", &year, &month, &day);int month_day[12] = { 31,59,90,120,151,181,212,243,273,304,334,365 };//建立一个整型数组,表示普通年份,前month个月数的天数和int days = 0;if (month >= 2){days = month_day[month - 2] + day;}elsedays = day;if (month > 2){if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//如果是闰年,天数+1{days++;}}printf("%d\n", days);return 0;
}

好啦,第一天的练习到这里就结束啦!后期会继续更新C语言的小练笔,欢迎大家持续关注、点赞和评论!❤️❤️❤️
相关文章:
C语言小练习(一)
🌞 “人生是用来体验的,不是用来绎示完美的,接受迟钝和平庸,允许出错,允许自己偶尔断电,带着遗憾,拼命绽放,这是与自己达成和解的唯一办法。放下焦虑,和不完美的自己和解…...
Flask-flask系统运行后台轮询线程
对于有些flask系统,后台需要启动轮询线程,执行特定的任务,以下是一个简单的例子。 globals/daemon.py import threading from app.executor.ops_service import find_and_run_ops_task_todo_in_redisdef context_run_func(app, func):with …...
jsp本质-servlet
jsp本质-servlet 一、jsp文件 <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>JSP Example…...
回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基…...
科技资讯|苹果Vision Pro新专利曝光:可调节液态透镜
苹果公司近日申请了名为“带液态镜头的电子设备”,概述了未来可能的头显设计。头显设备中的透镜采用可调节的液态透镜,每个透镜可以具有填充有液体的透镜腔,透镜室可以具有形成光学透镜表面的刚性和 / 或柔性壁。 包括苹果自家的 Vision Pr…...
神经网络基础-神经网络补充概念-38-归一化输入
概念 归一化输入是一种常见的数据预处理技术,旨在将不同特征的取值范围映射到相似的尺度,从而帮助优化机器学习模型的训练过程。归一化可以提高模型的收敛速度、稳定性和泛化能力,减少模型受到不同特征尺度影响的情况。 常见的归一化方法 …...
【Redis】什么是缓存雪崩,如何预防缓存雪崩?
【Redis】什么是缓存雪崩,如何预防缓存雪崩? 如果缓存集中在一段时间内失效,也就是通常所说的热点数据集中失效 (一般都会给缓存设定一个失效时间,过了失效时间后,该数据库会被缓存直接删除,从…...
[国产MCU]-W801开发实例-开发环境搭建
W801开发环境搭建 文章目录 W801开发环境搭建1、W801芯片介绍2、W801芯片特性3、W801芯片结构4、开发环境搭建1、W801芯片介绍 W801芯片是联盛德微电子推出的一款高性价比物联网芯片。 W801 芯片是一款安全 IoT Wi-Fi/蓝牙 双模 SoC芯片。芯片提供丰富的数字功能接口。支持2.…...
区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测
区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测。基于分位…...
改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)
改善神经网络——优化算法 梯度下降Mini-batch 梯度下降(Mini-batch Gradient Descent)指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快,机器学习的应用是一个高度依赖经验的过程,伴随着大量…...
大数据面试题:Spark的任务执行流程
面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)Spark的工作流程?2)Spark的调度流程;3)Spark的任务调度原理…...
通过 Amazon SageMaker JumpStart 部署 Llama 2 快速构建专属 LLM 应用
来自 Meta 的 Llama 2 基础模型现已在 Amazon SageMaker JumpStart 中提供。我们可以通过使用 Amazon SageMaker JumpStart 快速部署 Llama 2 模型,并且结合开源 UI 工具 Gradio 打造专属 LLM 应用。 Llama 2 简介 Llama 2 是使用优化的 Transformer 架构的自回归语…...
ansible远程执行命令
一、ansible简介 需要在一台机器上搭建ansible环境,且配置目的ip的密码,通道没有问题即可下发命令 使用的通道是ssh(端口:36000) 二、搭建细节 1、安装ansible yum install -y ansible 2、把目的ip密码写到配置…...
Windows快速恢复丢失的颜色校准
场景 有时开机或启动某个软件后,颜色校准(设置项:校准显示器颜色)会丢失,每次重新设置很麻烦。 文章首发及后续更新:https://mwhls.top/4723.html,无图/无目录/格式错误/更多相关请至首发页查看…...
Vue安装单文件组件
安装 npm npm 全称为 Node Package Manager,是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。 npm -v由于网络原因 安装 cnpm npm install -g cnpm --registryhttps://registry.npm.taobao.org安装 vue-cli…...
小白的Node.js学习笔记大全---不定期更新
Node.js是什么 Node. js 是一个基于 Chrome v8 引擎的服务器端 JavaScript 运行环境Node. js 是一个事件驱动、非阻塞式I/O 的模型,轻量而又高效Node. js 的包管理器 npm 是全球最大的开源库生态系统 特性 单一线程 Node.js 沿用了 JavaScript 单一线程的执行特…...
第二周晨考自测(2.0)
1.冒泡排序 冒泡排序是数组解构中的常见排序算法之一。规则如下:先遍历数组,让相邻的两个数据进行比较,如果前一个比后一个大,那么就把这两个数据交换位置,经过一轮遍历之后,最大的那个数字就排在数组最后…...
计算机视觉之三维重建(三)(单视图测量)
2D变换 等距变换 旋转平移保留形状、面积通常描述刚性物体运动 相似变换 在等距变换的基础增加缩放特点 射影变换 共线性、四共线点的交比保持不变 仿射变换 面积比值、平行关系等不变仿射变换是特殊的射影变换 影消点与影消线 2D无穷远点 两直线的交点可由两直线的…...
docker 批量快速删除容器和镜像
一、批量删除镜像 如果你想要批量删除 Docker 镜像,可以使用各种命令。以下是一些示例: 1. 删除所有镜像: docker rmi $(docker images -q) 2. 删除所有未标记的镜像(即 <none> 镜像): docker rmi $(docker images -f "dangling=true" -q) 请注意…...
【数据分析入门】Matplotlib
目录 零、图形解析与工作流0.1 图形解析0.2 工作流 一、准备数据1.1 一维数据1.2 二维数据或图片 二、绘制图形2.1 画布2.2 坐标轴 三、绘图例程3.1 一维数据3.2 向量场3.3 数据分布3.4 二维数据或图片 四、自定义图形4.1 颜色、色条与色彩表4.2 标记4.3 线型4.4 文本与标注4.5…...
SingleFile CLI:5分钟掌握终极网页批量下载神器
SingleFile CLI:5分钟掌握终极网页批量下载神器 【免费下载链接】SingleFile Web Extension for saving a faithful copy of a complete web page in a single HTML file 项目地址: https://gitcode.com/gh_mirrors/si/SingleFile SingleFile CLI是一个强大的…...
LM567锁相环芯片实测:手把手教你搭建10kHz音频信号检测电路(附面包板接线图)
LM567锁相环芯片实战:从零构建10kHz音频检测电路全流程解析 在电子设计领域,频率检测一直是个既基础又关键的课题。无论是红外遥控信号解码、超声波测距,还是电磁导航系统,精准的频率识别都是实现功能的前提。而LM567这款经典的锁…...
【Midjourney提示词黄金公式】:20年AI视觉专家亲授7大风格锚点+3层语义嵌套技巧
更多请点击: https://intelliparadigm.com 第一章:Midjourney提示词黄金公式的底层逻辑 Midjourney 的提示词(Prompt)并非自由文本堆砌,而是一套具有语法优先级与语义权重的结构化指令系统。其“黄金公式”——主体 …...
Python应用性能监控实战:New Relic探针架构与部署指南
1. 项目概述:一个现代应用性能管理的Python探针如果你正在用Python开发Web应用、微服务或者任何需要对外提供服务的后端系统,那么“性能”和“可观测性”这两个词一定不会陌生。当线上服务突然变慢、错误率飙升,或者用户反馈某个接口卡顿时&a…...
终极iOS越狱完整指南:5个步骤解锁iPhone隐藏功能
终极iOS越狱完整指南:5个步骤解锁iPhone隐藏功能 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder 👇 项目地址: http…...
如何通过虚拟地址查找物理地址
1 如何通过虚拟地址查找物理地址(原理与代码) 本文说明 虚拟地址(VA)到物理地址(PA) 的映射在 x86-64 Linux 上如何理解与实现,并给出可编译的示例代码。不同架构(ARM、RISC-V&#…...
手把手教你用OpenMP和CUDA加速ICP配准:从单核到GPU的完整性能对比
手把手教你用OpenMP和CUDA加速ICP配准:从单核到GPU的完整性能对比 ICP(Iterative Closest Point)算法是点云配准领域的经典方法,但在处理大规模点云时常常面临性能瓶颈。本文将深入探讨如何利用OpenMP和CUDA技术对ICP算法进行多线…...
PCB 设计避坑指南|从基础规范到制造验证,一文吃透所有核心规则
1 设计基础规范1.1 文件命名与管理PCB 命名遵循 “产品型号 功能代码 设计序号 版本” 格式,例如 “AIP25-Lab-V1.0” 。严禁直接覆盖旧版文件,确保设计版本的可追溯性和规范性。1.2 材料与工艺选择1.2.1.基材采用 FR4 环氧玻璃布。 1.2.2 板厚厚度范…...
手机短剧拉片软件2026推荐,助力高效内容分析
手机短剧拉片软件2026推荐,助力高效内容分析在当今的影视行业中,手机短剧以其短小精悍、节奏紧凑的特点受到了广大观众的喜爱。对于创作者来说,如何深入分析这些短剧,学习其中的创作技巧,成为了提升自身水平的关键。据…...
告别玄学:给STM32/CH32V的SD卡SPI驱动加上超时、重试与状态机
从零构建工业级SD卡SPI驱动:超时重试与状态机设计实战 在嵌入式系统中,SD卡作为可靠的大容量存储介质被广泛应用。然而许多开发者都经历过这样的困境:实验室测试完美的SD卡驱动,一旦部署到真实环境中就频繁出现读写失败、卡死甚至…...


