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

C语言刷题指南(一)

📙作者简介: 清水加冰,目前大二在读,正在学习C/C++、Python、操作系统、数据库等。

📘相关专栏:C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。

欢迎点赞 👍 收藏 ⭐留言 📝 如有错误还望各路大佬指正!

✨每一次努力都是一种收获,每一次坚持都是一种成长✨       

在这里插入图片描述

 

目录

前言

1. 选择题

 📖题目1:

📖题目2:

📖题目3:

 📖题目4:

📖题目5: 

2. 编程题

📖题目一:

 📖题目二:

总结


前言

        前边我们学习了C语言相关的知识,然而并没有进行系统的练习,接下来我将开启一个新的专栏,C语言刷题训练营,以便于大家巩固所学的知识。


1. 选择题

 📖题目1:

1、执行下面程序,正确的输出是( )

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

✨题目解析:

这道题目考察的是函数相关的知识

  • swap函数调用时用的是全局变量,主函数中定义的变量只在主函数中有效,因为主函数也是一个函数,它与其他函数是平行关系;输出语句这里,考虑局部优先的原则

正确答案:C

📖题目2:

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选项考查转义字符,有如下格式,

  • 八进制数字是0-7,没有8,故B选项中'\8'是错误的
  • \ddd ddd表示1到3个八进制数 如:\130 转义为 字符X
  • \xhh hh表示1到2位十六进制数 如:\x30 转义为 字符0

正确答案:B

📖题目3:

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

✨题目解析:

这道题目考察的是C语言中的类型别名和typedef关键字的使用。

  • #define是宏定义,仅仅是直接替换,INT_PTR a, b; 进行宏替换后代码是这样的:int *a, b;这里的int *是a的类型,b的类型是int,故此次b只是int类型。
  • typedef是把该类型定义一个别名,别名是一个独立的类型了,使用这个类型创建的变
    量都是这个类型的。

因此,a,c,d才是指针类型。正确答案:ACD

 📖题目4:

 4、 若给定条件表达式 (M)?(a++):(a--) ,则其中表达式 M ( )

A: 和(M==0)等价

B: 和(M==1)等价

C: 和(M!=0)等价

D: 和(M!=1)等价

✨题目解析:

 这道题目考察的是对运算符的理解

给定条件表达式(M)?(a++):(a--)。 (表达式1)? (表达式2): (表达式3)为三目运算符。
计算规则为:

先判断表达式1是否为真,若为真,则计算表达式2,并将表达式2的结果作为整个表达式最终的结果,表达式3不计算;否则,表达式3的结果为最终结果,表达式2不计算。

分析:

在此表达式中,若M=0,为假,计算a--; 若M≠0,为真,计算a++; 若要求与M等价,则要满足M取0时为假,取非0数值时为真。 c选项中:假定M取0,则M表示假,当M是0时,表达式M!=0不成立,为假,计算a--; 当M取非0数值时,M为真,表达式M!=0成立,为真,计算a++; 符合题意

正确答案:C

📖题目5: 

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);


✨题目解析:

&c和c两个地址值是一样的,程序的效果相同,也没错,但同时也必须把变量b的地址给scanf,故CD错误

正确答案:AB

2. 编程题

📖题目一:

题目描述:

 题目链接:

打印从1到最大的n位数icon-default.png?t=N6B9https://www.nowcoder.com/practice/4436c93e568c48f6b28ff436173b997f?tpId=13&tqId=2273153&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目接口描述:

/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param n int整型 最大位数* @return int整型一维数组* @return int* returnSize 返回数组行数*/
int* printNumbers(int n, int* returnSize ) {}

 ✨题目解析:

        首先这道题目它是一道接口型题目,我们要先明白它的各个参数的含义,n就是输出的最大位数,而returnSize就是需要返回的数字个数

这里首先要清楚n位数中最大的数字,实际上就是 10^n - 1 。 比如:

  • 1位数: 10的1次方- 1
  • 2位数: 10的2次方- 1
  • 3位数: 10的3次方- 1

        这个规律清楚后动态申请空间,将数值填入就可以了,需要注意的是数组下标从0开始,而数值从1开始。

nt* printNumbers(int n, int* returnSize ) {*returnSize=pow(10,n)-1;int k=*returnSize+1;int* ret=(int*)malloc(sizeof(int)**returnSize);for(int i=1;i<k;i++){ret[i-1]=i;}return ret;
}

 📖题目二:

题目描述:

 题目链接:

计算日期到天数转换icon-default.png?t=N6B9https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded?tpId=37&&tqId=21296&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking✨题目解析:

 解题思路:       

        这道题简单解法其实将每个月的天数枚举出来,然后根据当前月份向前累加满月的天数,然后再加上当前月所在的天数。最终考虑平闰年的 2 月份区别是否增加一天。

        其中需要注意的是平年和闰年的判断,而且是闰年的月份大于 2 的时候,也就是 2 月走完,总天数才能加 1 (比如 2000年2月18日 ,虽然是闰年,但是 2月 都没走完那是不能加上闰年多出的一天的)

代码如下:

#include <stdio.h>
int isleapyear(int year) {if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){return 1;} return 0;
} 
int main()
{int monthday[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int year, month, day;while (~scanf("%d %d %d", &year, &month, &day)){int days = day;if (isleapyear(year) && month > 2) { days += 1;}for (int i = month - 1; i > 0; i--) {days += monthday[i];}printf("%d\n", days);} 
return 0;
}

 


总结

        好了,以上便是本期C语言刷题的全部内容,希望可以对你有所帮助。最后,感谢阅读!

相关文章:

C语言刷题指南(一)

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &am…...

VMware虚拟机Ubuntu无法连接网络的解决方法

一、解决办法 网络适配器设置 终端依次执行下面命令即可 sudo nmcli networking off sudo nmcli networking onsudo service network-manager start #或者 sudo service NetworkManager start成功出现这个图标&#xff0c;即代表网络连接成功。...

基于CentOS 7 部署社区版Haproxy

HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件&#xff0c;是一款具 备高并发(一万以上)、高性能的TCP和HTTP负载均衡器&#xff0c;支持基于cookie的持久性&#xff0c;自动故障切换&#xff0c;支 持正则表达式及web状态统计。 目录 1…...

Git和GitHub

文章目录 1.Git介绍2. 常用命令3. Git分支操作4. Git团队协作机制5. GitHub操作6. IDEA集成Git7.IDEA操作GitHub8. Gitee 1.Git介绍 Git免费的开源的分布式版本控制系统&#xff0c;可以快速高效从小到大的各种项目 Git易于学习&#xff0c;占地面积小&#xff0c;性能快。它…...

spring入门基本介绍及注入方式---详细介绍

一&#xff0c;spring的简介 Spring是一个开源框架&#xff0c;它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 提供了许多功能强大且易于使用的特性&#xff0c;使得开发者能够更加轻松地构建可维护且可扩展的应用程序&#xff0c;简单来说: Spring使用基…...

神经网络基础-神经网络补充概念-24-随机初始化

由来 在神经网络的训练过程中&#xff0c;权重和偏差的初始值对模型的性能和训练过程的收敛速度都有影响。随机初始化是一种常用的权重和偏差初始值设置方法&#xff0c;它有助于打破对称性&#xff0c;避免网络陷入局部最优解。 概念 当所有权重和偏差都被设置为相同的初始…...

K8S之存储卷

K8S之存储卷 一、emptyDir emptyDir&#xff1a;可实现Pod中的容器之间共享目录数据&#xff0c;但emptyDir存储卷没有持久化数据的能力&#xff0c;存储卷会随着Pod生命周期结束而一起删除二、hostPath hostPath&#xff1a;将Node节点上的目录/文件挂载到Pod容器的指定目录…...

8月17日,每日信息差

1、专家称无需太过担心EG.5变异株 2、快手职级体系调整&#xff0c;职级序列由双轨变单轨 3、抖音、火山引擎、中国电影资料馆发起“经典香港电影修复计划”&#xff0c;一年内将100部香港电影修复至4K版本。本次修复工作由火山引擎提供技术支持&#xff0c;与中国电影资料馆…...

VBA技术资料MF44:VBA_把数据从剪贴板粘贴到Excel

【分享成果&#xff0c;随喜正能量】人皆知以食愈饥&#xff0c;莫知以学愈愚,生命中所有的不期而遇都是你努力的惊喜.人越纯粹&#xff0c;就越能感受到美。大江、大河、大海、大山、大自然&#xff0c;这些风景从来都不会受“属于谁”的污染&#xff0c;人人都感受到它们的美…...

nestjs:nginx反向代理服务器后如何获取请求的ip地址

问题&#xff1a; 如题 参考&#xff1a; nodejsnginx获取真实ip-腾讯云开发者社区-腾讯云 「转」从限流谈到伪造 IP nginx remote_addr 解决办法&#xff1a; 1.设置nginx 对于代理部分&#xff0c;对http header添加Host、X-Real-IP、X-Forwarded-For&#xff08;最重要&…...

STM32 F103C8T6学习笔记7:双机无线串口通信

今日尝试配通俩个C8T6单片机之间的无线串口通信&#xff0c;文章提供原理&#xff0c;源码&#xff0c;测试效果图&#xff0c;测试工程下载&#xff1a; 目录 传输不规范问题&#xff1a; 串口通信资源&#xff1a; 单个串口资源理解&#xff1a; 单片机串口资源&#xf…...

开源数据库Mysql_DBA运维实战 (DDL语句)

DDL DDL语句 数据库定义语言&#xff1a;数据库、表、视图、索引、存储过程. 例如:CREATE DROP ALTER DDL库 定义库{ 创建业务数据库&#xff1a;CREAATE DATABASE ___数据库名___ ; 数据库名要求{ a.区分大小写 b.唯一性 c.不能使用关键字如 create select d.不能单独使用…...

分布式 - 消息队列Kafka:Kafka生产者发送消息的分区策略

文章目录 01. Kafka 分区的作用02. PartitionInfo 分区源码03. Partitioner 分区器接口源码04. 自定义分区器05. 默认分区器 DefaultPartitioner06. 随机分区分配 RoundRobinPartitioner07. 黏性随机分区分配 UniformStickyPartitioner08. 为什么Kafka 2.4 版本后引入黏性分区策…...

从源代码编译构建Hive3.1.3

从源代码编译构建Hive3.1.3 编译说明编译Hive3.1.3更改Maven配置下载源码修改项目pom.xml修改hive源码修改说明修改standalone-metastore模块修改ql模块修改spark-client模块修改druid-handler模块修改llap-server模块修改llap-tez模块修改llap-common模块 编译打包异常集合异常…...

探索性测试及基本用例

1 测试决策5要素 测试目标&#xff1a;所有的重要任务都完成了&#xff0c;而剩下没做的事情是比较次要的&#xff0c;我们做到这一点就可以尽早尽可能地降低发布风险。 测试方法&#xff1a;测试是一个不断抉择的过程&#xff0c;测试人员必须理解运行测试用例时和分析现有信…...

MYSQL 作业三

创建一个student表格&#xff1a; create table student( id int(10) not null unique primary key, name varchar(20) not null, sex varchar(4), birth year, department varchar(20), address varchar(50) ); 创建一个score表格 create table score( id int(10) n…...

【深度学习 | 感知器 MLP(BP神经网络)】掌握感知的艺术: 感知器和MLP-BP如何革新神经网络

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…...

Kali Linux中常用的渗透测试工具有哪些?

今天我们将继续探讨Kali Linux的应用&#xff0c;这次的重点是介绍Kali Linux中常用的渗透测试工具。Kali Linux作为一款专业的渗透测试发行版&#xff0c;拥有丰富的工具集&#xff0c;能够帮助安全专家和渗透测试人员检测和评估系统的安全性。 1. 常用的渗透测试工具 以下是…...

SpringBoot案例 调用第三方接口传输数据

一、前言 最近再写调用三方接口传输数据的项目&#xff0c;这篇博客记录项目完成的过程&#xff0c;方便后续再碰到类似的项目可以快速上手 项目结构&#xff1a; 二、编码 这里主要介绍HttpClient发送POST请求工具类和定时器的使用&#xff0c;mvc三层架构编码不做探究 pom.x…...

第三章,矩阵,08-矩阵的秩及相关性质

第三章&#xff0c;矩阵&#xff0c;08-矩阵的秩及相关性质 秩的定义1最高阶非零子式定理秩的定义2秩的性质性质1性质2性质3性质4性质5性质6性质7性质8性质9性质10性质11性质12性质12的推论 玩转线性代数(20)矩阵的秩的笔记&#xff0c;相关证明以及例子见原文 秩的定义1 设矩…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...