🔥个人主页:艾莉丝努力练剑

❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题、洛谷刷题、C/C++基础知识知识强化补充、C/C++干货分享&学习过程记录

🍉学习方向:C/C++方向

⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平

前言:距离学完C语言已经过去一段时间了,在学习了初阶的数据结构之后,博主要更新的内容是C语言16天强化训练,之前博主更新过一个【C语言刷题12天IO强训】的专栏,那个是从入门到进阶的IO模式真题的训练。今天依然是训练五道选择题和两道编程算法题,希望大家能够有所收获!



目录

正文

一、五道选择题

1.1  题目1

1.2  题目2

1.3  题目3

1.4  题目4

1.5  题目5

二、两道算法题

2.1  尼科彻斯定理

题目理解:

2.2  等差数列

题目理解:

结尾


正文

一、五道选择题

1.1  题目1

题干:以下程序段的输出结果是( )

#include<stdio.h>
int main()
{char s[] = "\\123456\123456\t";printf("%d\n", strlen(s));return 0;
}

A. 12     B. 13     C. 16     D. 以上都不对

解析:主要注意以下这几个点——

(1)\\ 是一个转义字符,表示一个反斜\字符;

(2)\123(\ddd)是一个八进制转义字符,\123表示ASCII码值为83的字符('S');

(3)\t 是一个转义字符,“tab对齐”,表示制表符。

这样一来实际上就只有\ddd,1,2,3,4,5,6,S,4,5,6,\t 这12个字符啦。

1.2  题目2

题干:若有以下程序,则运行后的输出结果是( )

#include <stdio.h>
#define N 2
#define M N + 1
#define NUM (M + 1) * M / 2
int main()
{printf("%d\n", NUM);return 0;
}

A. 4      B. 8      C. 9      D. 6

解析:这道题非常简单,我们之间展开宏,宏展开后为((N+1)+1)*(N+1)/2,我们再代入N=2,我们得到((2+1)+1)*(2+1)/2,即D

1.3  题目3

题干:如下函数的 f(1) 的值为( )

int f(int n)
{static int i = 1;if(n >= 5)return n;n = n + i;i++;return f(n);
}

A. 5     B. 6     C. 7     D. 8

解析:这道题中的递归过程是f(1)->f(2)->f(4)->f(7),当n=7的时候,满足n>=5,返回7。

因为每次n=n+i,i++,在函数递归调用f(n),最终结果就是返回7。static int i 在递归过程中会持续累加(每次调用i++),递归终止条件是n >= 5,最后一次返回的是n = 7选择C

1.4  题目4

题干:下面3段程序代码的效果一样吗( )

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;

A. (2)=(3)     B. (1)=(2)     C. 都不一样     D. 都一样

解析:(1)const int *a = &b;(2)int const *a = &b;等价,即指针指向的int是常量;而(3)int *const a = &b;是指针本身变成了常量,两者效果不一样。即一个选择B. (1)=(2)。 

1.5  题目5

题干:对于下面的说法,正确的是( )

A. 对于 struct X{short s;int i;char c;},sizeof(X)等于sizeof(s) + sizeof(i) + sizeof(c)

B. 对于某个double变量 a,可以使用 a == 0.0 来判断其是否为零

C. 初始化方式 char a[14] = "Hello, world!"; 和char a[14]; a = "Hello, world!";的效果相同

D. 以上说法都不对

解析:A选项错误——结构体有内存对齐,B选项错误——浮点数直接比较不精确,C选项错误——数组不能直接赋值字符串,排除法,我们选择D. 以上说法都不对

选择题答案如下:

1.1  A

1.2  D

1.3  C

1.4  B

1.5  D

大家都做对了吗?

二、两道算法题

2.1  尼科彻斯定理

题目链接:HJ76 尼科彻斯定理

题目描述:

题目理解:

对任意正整数 n,输出由 n 个连续奇数组成的数列,其和等于 n 的立方。数列元素用加号连接。

这道题也是IO型的,下面是C语言的模版(IO型就不用管它们了)——

代码演示:

#include <stdio.h>int main() 
{int n;scanf("%d", &n);int start = n * n - n + 1; // 计算起始奇数for (int i = 0; i < n; i++) {printf("%d", start + 2 * i); // 输出当前奇数if (i < n - 1) {printf("+"); // 非最后一个元素时输出加号}}printf("\n");return 0;
}

这道题是C语言中一道比较经典的题目。

时间复杂度O(n)

空间复杂度O(1)

我们如果学习了C++也可以尝试用C++实现一下——

#include <iostream>
using namespace std;int main() 
{int n;while (cin >> n) { // 处理多组输入int start = n * n - n + 1; // 计算起始奇数for (int i = 0; i < n; i++) {cout << start + 2 * i;  // 输出当前奇数if (i < n - 1) {cout << "+";        // 非最后一个元素时输出加号}}cout << endl;               // 这里要记得换行}return 0;
}

时间复杂度:O(n),空间复杂度:O(1)

这个目前要写出来非常考验C++的学习情况,大家可以尝试去写一写,优先掌握C语言的写法,博主还没有介绍C++的算法题,之后会涉及的,敬请期待!

2.2  等差数列

题目链接:HJ100 等差数列

题目描述:

题目理解:

本题就是要求计算首项为2,公差为3的等差数列前n项的和。

这道题也是IO型的,下面是C语言的模版(IO型就不用管它们了)——

代码演示:

#include <stdio.h>int main() 
{int n;scanf("%d", &n);int sum = n * (2 * 2 + (n - 1) * 3) / 2; // 等差数列求和公式printf("%d\n", sum);return 0;
}

这道题是C语言中一道比较经典的题目。

当然博主还有一个更加简单的解法,这个解法大家理解起来就简单了——

#include <stdio.h>int main()
{int n = 0;scanf("%d", &n);int Sn = n * (2 + 3 * n - 1) / 2;printf("%d", Sn);return 0;
}

我们如果学习了C++也可以尝试用C++实现一下——

#include <iostream>
using namespace std;int main() 
{int n;while (cin >> n) { // 处理多组输入int sum = n * (2 * 2 + (n - 1) * 3) / 2; // 等差数列求和公式cout << sum << endl;}return 0;
}

时间复杂度:O(1);

空间复杂度:O(1)。

目前要写出来C++的写法是比较考验前面C++的学习情况的,当然大家可以尝试去写一写,优先掌握C语言的写法,博主还没有介绍C++的算法题,之后会涉及的,敬请期待!


结尾

往期回顾:

【C语言16天强化训练】从基础入门到进阶:Day 1

结语:感谢大家的阅读,记得给博主“一键四连”,感谢友友们的支持和鼓励!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93534.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93534.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/93534.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】面向AI安全的26个缓解措施

一、Mitre Atlas矩阵概述 ATLAS 矩阵从左到右以列形式显示了攻击中使用的策略的进展&#xff0c;ML 技术属于上面的每种策略。& 表示从 ATT&CK 改编而来。 详见&#xff1a;ATLAS Matrix | MITRE ATLAS™ 注&#xff1a;机翻的效果不是太好&#xff0c;对照理解用吧。 …

AI出题人给出的Java后端面经(十八)(日更)

链接双端链表 前一篇&#xff1a;AI出题人给出的Java后端面经&#xff08;十七&#xff09;&#xff08;日更&#xff09; 后一篇&#xff1a;null 目录 &#x1f535; 一、Java基础&#xff08;Java 17&#xff09; 答案&#xff1a; &#x1f5c3;️ 二、持久化层&…

【音视频】瑞芯微、全志芯片在运动相机和行车记录仪产品分析

文章目录开头总结详细分析**1. 瑞芯微芯片的典型型号及特性****2. 运动相机场景的适用性****优势****劣势****3. 行车记录仪场景的适用性****优势****劣势****4. 与竞品芯片对比****5. 推荐方案选择****总结****1. 全志芯片的典型型号及特性****2. 运动相机场景的适用性****优势…

《清华级防护,了解一下?》

前言讲到渗透&#xff0c;我们不可避免会遇到有waf拦截咱们的攻击许多朋友在渗透测试中因为遇到WAF而束手无策&#xff0c;实际上所谓的BYPASS WAF实际上是去寻找位于WAF设备之后处理应用层数据包的硬件/软件的特性。利用特性构造WAF不能命中&#xff0c;但是在应用程序能够执行…

CANDB++中的CAN_DBC快速编辑方法,使用文本编辑器(如notepad++和VScode)

前言:在做工程机械CAN协议相关的软件开发与调试时&#xff0c;经常接触到DBC的使用&#xff0c;可以在CAN分析仪中加载DBC文件从而快速查看某条CAN报文或信号的含义&#xff0c;以及使用图形化的调试。而编辑DBC文件&#xff0c;正常是用CANDB来一条条添加&#xff0c;比较费时…

Tmux Xftp及Xshell的服务器使用方法

Tmux&#xff1a; Tmux是什么&#xff1a; 会话与进程&#xff1a; 命令行的典型使用方式是&#xff0c;打开一个终端窗口&#xff0c;在里面输入命令。用户与计算机的这种临时的交互&#xff0c;称为一次“会话”&#xff08;session&#xff09;。 会话的一个重要特点是&…

微服务远程调用完全透传实现:响应式与非响应式解决方案

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

Kotlin集合概述

Kotlin 的集合类同样由两个接口派生&#xff1a; Collection 和 Map&#xff0c; Collection 和 Map 是 Java 集合框架的根接口&#xff0c;这两个接口又包含了 一些子接口或实现类Kotlin 集合与 Java 集合不同&#xff0c; Java 集合都是可变集合一一开发者可以向集合中添加、…

Mysql核心框架知识

Mysql核心框架 本文旨在梳理和理解 MySQL 的一些核心知识点&#xff0c;并结合常见面试题进行思考和总结。这些内容主要来源于我的个人学习与理解。 1. 事务 概念 事务指的是满足 ACID 特性的一组操作&#xff0c;可以通过 Commit 提交一个事务&#xff0c;也可以使用 Rollback…

C# NX二次开发:字符串控件StringBlock讲解

大家好&#xff0c;今天介绍ug二次开发过程中的一个叫字符串的控件&#xff0c;这个控件在块UI编辑器中可以使用。 下面是这个控件中的一些属性和方法&#xff1a; 1、 protected internal StringBlock(); // // 摘要: // Returns or sets the WideValue.…

【datawhale组队学习】n8n TASK01

教程地址&#xff1a;https://github.com/datawhalechina/handy-n8n/ 文章目录n8n节点的类别local-pc-deployn8n n8n 意思是 nodemation&#xff0c;是 node 与 automation 的组合词&#xff0c;读作 n-eight-n。 n8n 是一个开源的、基于节点的自动化工具&#xff0c;官方站点…

海洋牧场项目融资新曙光:绿色金融赋能蓝色经济发展

在海洋经济蓬勃发展的时代浪潮中&#xff0c;海洋牧场作为新兴的海洋产业模式&#xff0c;承载着保障国家粮食安全、促进海洋生态保护与可持续利用的重要使命。然而&#xff0c;海洋牧场项目的建设是一项庞大而复杂的系统工程&#xff0c;从前期的基础设施搭建、种苗培育&#…

51c大模型~合集170

自己的原文哦~ https://blog.51cto.com/whaosoft/14132244 #4DNeX 一张图&#xff0c;开启四维时空&#xff1a;4DNeX让动态世界 「活」起来 仅凭一张照片&#xff0c;能否让行人继续行走、汽车继续飞驰、云朵继续流动&#xff0c;并让你从任意视角自由观赏&#…

深入剖析以太坊虚拟机(EVM):区块链世界的计算引擎

引言&#xff1a;EVM——区块链世界的"计算引擎" 以太坊虚拟机&#xff08;Ethereum Virtual Machine&#xff0c;EVM&#xff09;是以太坊网络的核心创新&#xff0c;它不仅仅是一个执行环境&#xff0c;更是整个区块链生态系统的"计算引擎"。作为智能合…

深入分析 Linux PCI Express 子系统

深入分析 Linux PCI Express 子系统 一、PCI Express 工作原理 PCIe 是一种高速串行点对点互连协议&#xff0c;采用分层架构&#xff1a; #mermaid-svg-rsh0SW87JPR0aUxA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…

MySQL 运算符详解:逻辑、位运算与正则表达式应用

MySQL 运算符详解&#xff1a;逻辑、位运算与正则表达式应用 在 MySQL 中&#xff0c;运算符是构建复杂查询条件的基础。除了基础的算术和比较运算符&#xff0c;逻辑运算符、位运算符以及正则表达式的灵活运用&#xff0c;能让数据筛选更加精准高效。本文将系统讲解这些运算符…

<数据集>遥感飞机识别数据集<目标检测>

数据集下载链接https://download.csdn.net/download/qq_53332949/91702190数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3842张 标注数量(xml文件个数)&#xff1a;3842 标注数量(txt文件个数)&#xff1a;3842 标注类别数&#xff1a;20 标注类别名称&#xf…

Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南

目录Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南前言第一部分&#xff1a;安装前准备1.1 系统要求检查1.2 下载安装包1.3 验证安装包完整性第二部分&#xff1a;安装KingbaseES2.1 启动安装程序2.2 接受许可协议2.3 选择授权文件2.4 设置安装目录2.5 选择安装…

Git+Jenkins 基本使用

一、什么是 JenkinsJenkins 是一个功能强大的应用程序&#xff0c;允许持续集成和持续交付项目&#xff08;持续部署&#xff09;&#xff0c;无论用的是什么平台。这是一个免费的源代码&#xff0c;可以处理任何类型的构建或持续集成。集成 Jenkins 可以用于一些测试和部署技术…

Linux第十三讲:线程同步和互斥

Linux第十三讲&#xff1a;线程同步和互斥1.线程互斥1.1进程线程间的互斥背景概念1.2什么是锁1.2.1认识锁&#xff0c;理解锁2.线程同步2.1条件变量2.2生产和消费模型2.3基于阻塞队列(blockqueue)的生产消费模型2.3.1单生产&#xff0c;单消费的阻塞队列模拟实现2.3.2多生产&am…