C语言假期作业 DAY 02

题目

一、选择题

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: 以上都不对

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

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

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: 都一样

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: 以上说法都不对

二、编程题

1、验证尼科彻斯定理

即:任何一个整数 m 的立方都可以写成 m 个连续奇数之和。例如:

1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。

例如:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=13+15+17+19

输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。

数据范围:1≤�≤100 1≤m≤100 

进阶:时间复杂度:�(�) O(m) ,空间复杂度:�(1) O(1) 

输入描述:

输入一个int整数

输出描述:

输出分解后的string

尼科彻斯定理_牛客题霸_牛客网 (nowcoder.com)【牛客网题号: HJ76 尼科彻斯定理】【难度:简单】

示例:
输入:6
输出:31+33+35+37+39+41

2、等差数列

描述

等差数列 2,5,8,11,14。。。。

(从 2 开始的 3 为公差的等差数列)

输出求等差数列前n项和

数据范围: 1≤�≤1000 1≤n≤1000 

输入描述:

输入一个正整数n。

输出描述:

输出一个相加后的整数。

等差数列_牛客题霸_牛客网 (nowcoder.com)【牛客网题号: HJ100 等差数列】

示例:
输入:2 输入:275
输出:7 输出:113575
说明:2+5=7 说明:2+5+...+821+824=113575

题解

一、选择题

1、【答案解析】

正确答案: A
这里考查转义字符,注意: \\ 表示字符 '\' , \123 表示字符 '{' , \t 表示制表符,这些都是一个字符

2、【答案解析】

正确答案: B
宏只是替换,替换后 NUM 的样子是 (2+1+1)*2+1/2 ,计算得 8

3、【答案解析】

正确答案: C
此题注意静态局部变量的使用, static 改变了 i 的生命周期,第一次调用函数: i 初值是 1 ,递归第二次调用函数时, i 还是第一次那个变量,值已经变成了2 ,再一次调用函数时 i 就是 3 ,依次类推

4、【答案解析】

正确答案: B
const 在 * 的左边,则指针指向的变量的值不可直接通过指针改变 ( 可以通过其他途径改变 ); 在 * 的右边,则指针的指向不可变。简记为" 左定值,右定向 " , (1) 和 (2)const 都在 * 的左边, (3) 中 const 在 * 的右边,所以应该选择 B 。

5、【答案解析】

正确答案: D
A 选项,没有考虑内存对齐。 B 选项,考察 double 类型的比较,由于浮点数存在误差,不能直接判断两个数是否相等,通常采用比较两数之差的绝对值是否小于一个很小的数字(具体的可自己设定这样一个数,作为误差)来确定是否相等。C 选项, a为数组首地址是常量不能改变,所以A,B,C 都是错的,选择 D

 二、编程题

1 、【答案解析】:

这道题的关键在于知道规律后,能够找到第 n 个数据立方的起始奇数,从这个起始奇数开始,组成连续的 n 个奇数项之和的表达式即可。
比如: 3^3 的起始奇数是 7 , 则 {7, 9, 11} 3 个奇数求和表达式 7 + 9 + 11 。
而起始奇数有个规则: m^3 的起始奇数值等于 m * (m - 1) + 1
奇数起始项规律:
首先所有奇数项构成一个差值为2的等差数列, 1 3 5 7 9 ....
其次,1的起始奇数是第1个等差数列项,2的起始奇数是第2个等差数列项,3的起始奇数是第4个等差数列项...
形成规律: 1 2 4 7....,而他们的差值分别是1 2 3 4 5...,所以第n项就是一个从1开始到n - 1的等差数列之和 + 1
因此当有了需求m的立方,首先计算他的第一个奇数项是总体的第几个 。
等差数列求和公式 Sn = n(a1 + an) / 2 m * (m - 1) / 2
等差数列第n项公式 an = a1 + (n - 1)d 1 + ((m * (m - 1) / 2) + 1 - 1) * 2
最终得到m的立方的表达式起始奇数: m * (m - 1) + 1

int main() 
{int n = 0;while(~scanf("%d", &n)){int i = 0;int count = 0;for(i=1; count<n-1; i+=2){printf("%d+",n*(n-1)+i);count++;}printf("%d",n*(n-1)+i);}return 0;
}

2、【答案解析】

这道题了解了等差数列求和公式 Sn=n(a1+an)/2 就简单了 ,根据题目得知 a1=2 ,而等差数列第n项也有具体公式 an=a1+(n-1)d ,而公差为3, 这时候只需要套入公式计算即可。

#include <stdio.h>int main() {int n=0;int num=0;int b=2;int i=0;scanf("%d",&n);for(i=0;i<n;i++){num+=b;b+=3;}printf("%d",num);return 0;
}

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

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

相关文章

实现基于UDP简易的英汉词典

文章目录 实现目标认识相关接口socketbzerobindrecvfromsendto 实现思路和注意事项完整代码Server.hppServer.ccClient.hppClient.cc 运行效果END 实现目标 实现一个服务端和一个客户端&#xff0c;客户端负责发送一个单词&#xff0c;服务端接收到后将翻译后的结果返回发送到…

Linux下C++ STL获取Mac地址

在Ubuntu下&#xff0c;你可以使用以下代码来获取MAC地址&#xff1a; #include <iostream>using namespace std;#include <iostream> #include <fstream> #include <string>std::string getMACAddress() {std::string macAddress;std::ifstream file…

蓝桥杯2023年第十四届省赛-飞机降落

题目描述 N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di 个单位时间&#xff0c;即它最早 可以于 Ti 时刻开始降落&#xff0c;最晚可以于 Ti Di 时刻开始降落。降落过程需要 Li个单位时…

Android 之 动画合集之帧动画

本节引言&#xff1a; 从本节开始我们来探究Android中的动画&#xff0c;毕竟在APP中添加上一些动画&#xff0c;会让我们的应用变得 很炫&#xff0c;比如最简单的关开Activity&#xff0c;当然自定义控件动画肯定必不可少啦~而Android中的动画 分为三大类&#xff0c;逐帧动画…

了解uuid

目录 一.认识 UUID 二.UUID 会耗尽吗 三.UUID 会重复吗 四.UUID 的版本 五.UUID的应用 六.java 如何生成UUID 一.认识 UUID uuid是经过特定的算法得到的. UUID 是 16 字节 128 位长的数字&#xff0c;通常以 36 字节的字符串表示&#xff0c;示例如下&#xff1a; 3F2…

boardmix AI:让工作效率翻倍的AI智能在线白板软件!

随着ChatGPT热度的飙升&#xff0c;AI逐步深入到各个领域&#xff0c;尤其在技术领域&#xff0c;引发了一场AI的新浪潮&#xff0c;人们谈论的焦点都与AI有关。 AI工具不仅帮助企业节约了成本&#xff0c;还极大提高了生产力。那些尚未融入AI的行业和产品&#xff0c;有着被AI…

OSI 和 TCP/IP 网络分层模型详解(基础)

OSI模型: 即开放式通信系统互联参考模型&#xff08;Open System Interconnection Reference Model&#xff09;&#xff0c;是国际标准化组织&#xff08;ISO&#xff09;提出的一个试图使各种计算机在世界范围内互连为网络的标准框架&#xff0c;简称OSI。 OSI 七层模型 OS…

Windows环境部署安装Chatglm2-6B-int4

chatglm2-6B是最近比较火爆的大模型&#xff0c;可以在消费级显卡上部署使用&#xff0c;适合学习。但是一般人也不一定有那么高的硬件配置&#xff0c;所以部署个int4版本应该是大多数人的最好选择。我就在家里部署起了int4版本的chatglm2-6B&#xff0c;记录一下免得忘了。 …

【AST抽象语法树】结构分析及特性

什么是AST? AST译名抽象语法树&#xff08;Abstract Syntax Tree&#xff09;&#xff0c;是一种用于表示源代码结构的数据结构。 它在编译器、解析器和静态代码分析等领域中被广泛使用。 AST结构分析 我们利用成熟的astexplorer来进行结构化的比较和分析。可以尝试登录以下网…

树 - 前缀树(Trie Tree)

树 - 前缀树(Trie Tree&#xff09; 什么是前缀树前缀树的实现节点数据结构定义插入方法●非递归方式●递归方式 查询单词方法●非递归方式●递归方式 查询前缀方法●非递归方式●递归方式 前缀树的复杂度前缀树有哪些应用前缀树的压缩&#xff1a;基数树双数组Trie树(DoubleAr…

Spring Security安全配置

使用Spring Boot与Spring MVC进行Web开发时&#xff0c;如果项目引入spring-boot- starter-security依赖启动器&#xff0c;MVC Security 安全管理功能就会自动生效&#xff0c;其默认的安全配置是在SecurityAutoConfiguration和UserDetailsServiceAutoConfiguration中实现的。…

探讨ChatGPT的强化学习:AI学习与交互的未来

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Python中的正则表达式是什么,如何使用正则表达式?

正则表达式是一种强大的文本模式匹配工具&#xff0c;它提供了一种灵活的方法来查找、替换和提取文本中特定模式的内容。Python中使用内置的re模块来处理正则表达式。 下面是使用正则表达式的基本步骤&#xff1a; 导入re模块&#xff1a;在使用正则表达式之前&#xff0c;首…

ES6基础知识八:你是怎么理解ES6中Proxy的?使用场景?

一、介绍 定义&#xff1a; 用于定义基本操作的自定义行为 本质&#xff1a; 修改的是程序默认形为&#xff0c;就形同于在编程语言层面上做修改&#xff0c;属于元编程(meta programming) 元编程&#xff08;Metaprogramming&#xff0c;又译超编程&#xff0c;是指某类计算…

ChatGPT和搜索引擎哪个更好用

目录 ChatGPT和搜索引擎的概念 ChatGPT和搜索引擎的作用 ChatGPT的作用 搜索引擎的作用 ChatGPT和搜索引擎哪个更好用 总结 ChatGPT和搜索引擎的概念 ChatGPT是一种基于对话的人工智能技术&#xff0c;而搜索引擎则是一种用于在互联网上查找和检索信息的工具。它们各自具…

kaggle新赛:Bengali.AI 语音识别大赛赛题解析

赛题名称&#xff1a;Bengali.AI Speech Recognition 赛题链接&#xff1a;https://www.kaggle.com/competitions/bengaliai-speech 赛题背景 竞赛主办方 Bengali.AI 致力于加速孟加拉语&#xff08;当地称为孟加拉语&#xff09;的语言技术研究。Bengali.AI 通过社区驱动的…

7p透明屏的制造过程复杂琐屑吗?

7p透明屏是一种新型的显示技术&#xff0c;它可以使屏幕变得透明&#xff0c;让用户可以透过屏幕看到背后的物体。这种技术在科幻电影中经常出现&#xff0c;但现在已经成为现实。 7p透明屏的工作原理是利用液晶显示技术和透明材料。液晶显示技术是一种通过控制液晶分子的排列…

【Qt】安装Qt 5.7.1 MSVC2013 64bit版本的说明

【Qt】安装Qt 5.7.1 MSVC2013 64bit版本的说明 1、背景2、安装Qt 5.7.13、运行Qt Creator 1、背景 刚开始Qt是C库&#xff0c;后来Qt发展就越来越强大了。后来Qt 发展成为一套跨平台C图形用户界面应用程序开发框架。 注意它不但可以开发GUI程序&#xff0c;而且也可用于开发非…

safari浏览器连调手机控制台闪退

仅仅对mac电脑 1、尝试清楚所有Safari缓存 打开Safari浏览器。 单击菜单栏中的Safari并打开“首选项” 选择“隐私”选项卡 单击管理网站数据 单击“全部删除”&#xff0c;然后单击下一个对话框中的“立即删除”进行确认2、清理系统缓存 &#xff1a;在 Finder 中&#xff…

【Linux】查看指定端口的UDP、TCP是否收到数据【2023.07.24】

简介 场景是终端上报数据给服务端&#xff0c;会有前端进行展示。通过wireshark看到终端给服务端发送数据了&#xff0c;但是UDP无法确定服务端是否正确收到&#xff0c;于是需要在Linux执行一些命令查看是否收到数据。 命令 这个命令会抓取发往或从端口12222的UDP数据报文。…