牛客网-《刷C语言百题》第二期

news2024/12/21 14:43:47

✅作者简介:嵌入式入坑者,与大家一起加油,希望文章能够帮助各位!!!!
📃个人主页:@rivencode的个人主页
🔥系列专栏:《C语言入门必刷百题》
💬推荐一款模拟面试、刷题神器,从基础到大厂面试题👉点击跳转开启刷题模式

在这里插入图片描述

目录

  • 一.选择题
  • 二.编程题
    • 1.BC6牛牛的第二个整数
    • 2.BC7牛牛的字符矩形
    • 3.BC8牛牛的字符菱形
    • 4.BC9字符转ASCII码
    • 5.BC10实现四舍五入
  • 三.如何高效刷题

一.选择题

试题1:

在这里插入图片描述

答案:B

解析:
其实就是考察了一个if-else语句else的匹配问题:else应该与离它最近的if进行匹配,其次是一个if语句无大括号的情况下只能执行最近邻的一行语句。
在这里插入图片描述
试题2:

在这里插入图片描述

答案:C
解析:
在这里插入图片描述
这题的关键在于p与q只是交换了内容,a与b并没有变化,要明白指针变量也是一个变量只不过指针变量用来存储地址,在32位平台上地址就是32位的,所以不管什么类型的指针变量都是4个字节。

知识点详情参考:指针从入门到熟练掌握

试题3:
在这里插入图片描述

答案:ABD

解析:
A选项:一眼能看出来
B选项:
运算法则:
同值取0,异值取1;
1^1=0
0^0=0
1^0=1
0^1=1

性质:
1.交换律 a^ b = b^a
2.结合律 a^ b ^ c = a^ (b^c)
3.对于任何数x x^x=0, x ^ 0=x

不用临时变量交换两个数:
在这里插入图片描述
C选项:
在这里插入图片描述
D选项:在这里插入图片描述

知识点详情参考:指针从入门到熟练掌握

试题4:
在这里插入图片描述
答案:C

解析:
在这里插入图片描述

试题5:
在这里插入图片描述

答案:C

解析:
i%5==0,代表当i加到5的倍数时就打印一个换行符,保证了一行5个元素。

试题6:
在这里插入图片描述

答案:A

解析:
在这里插入图片描述
在这里插入图片描述

试题7:
在这里插入图片描述
答案:C

解析:
A选项:调用函数创建栈帧出函数销毁栈帧,其实严格来说A也是错的因为在正式调用函数之前会让临时变量入栈(形成临时拷贝)。
在这里插入图片描述
我觉得学到一定程度一定要去理解函数的栈帧,从汇编角度深入理解栈的概念。

C选项: 构造函数和析构函数都没有返回类型,也没有return语句
知识点详情参考:函数栈帧的形成与释放

试题8:
在这里插入图片描述

答案:C

解析:
strlen():测字符串长度(不包括后面的’\0’字符)
strcap():无此函数
strcat():字符串连接函数
strcmp():字符串比较函数

在这里插入图片描述

知识点详情参考:字符串与内存操作函数详解与模拟实现

试题9:
在这里插入图片描述

答案:B

解析:
首先明白std[3],*p=std 是啥东西:
在这里插入图片描述
在这里插入图片描述
改成下面这样就OK了
在这里插入图片描述

试题10:
在这里插入图片描述
答案:C

解析:
在这里插入图片描述
而且还存在内存泄漏,因为开辟的动态内存,并没有free掉,而且随着退出MallocMen函数pc指针被销毁,则这一部分动态分配的内存都找都找不到了。

知识点详情参考:函数栈帧的形成与释放 指针从入门到熟练掌握

二.编程题

点击题目即可跳转刷题

1.BC6牛牛的第二个整数

1.题目描述
在这里插入图片描述

2.解题思路
输入三个变量,打印第二个就行

3.代码实现

#include <stdio.h>

int main() {
    int a=0;
    int b=0;
    int c=0;
    scanf("%d %d %d",&a,&b,&c);
    printf("%d\n",b);
    return 0;
}

2.BC7牛牛的字符矩形

1.题目描述
在这里插入图片描述

2.解题思路
利用一个双重循环打印

3.代码实现

#include <stdio.h>

int main()
{
    int i=0;
    int j=0;
    char ch=getchar();
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
          printf("%c",ch);
        }
      printf("\n");
    }
    return 0;
}

3.BC8牛牛的字符菱形

1.题目描述
在这里插入图片描述

2.解题思路
这里提供两种解题方式

  • 第一种:直接用printf函数按照格式进行打印。
  • 第二种:通用方式可以打印具有n行的菱形:

字符菱形可以被视作是上三角加上最中间的一行以及下三角三个部分,分别进行打印。
菱形一般都为奇数层,即一共有奇数行。
假设我们要打印一个一共n行的菱形,比如n=5,则上三角有2行,中间一行,下三角2行,上三角的是行数一定等于下三角的行数=n/2。

我们先打印一个上三角,一行一行进行打印,而打印一行(一行包括打印空格与打印字符 )
上三角:空格数即为上三角的行数n/2,且逐行递减,而字符数则是2*i -1。
中间行直接打印n个字符即可

下三角:可以认为是上三角的对称图形,直接反过来打印就行看代码就懂了。

3.代码实现
解法一:

int main() 
{
    char ch=getchar();
    printf("  %c      \n",ch);
    printf(" %c%c%c   \n",ch,ch,ch);
    printf("%c%c%c%c%c\n",ch,ch,ch,ch,ch);
    printf(" %c%c%c   \n",ch,ch,ch);
    printf("  %c      \n",ch);
    return 0;
}

解法二:


void  PrintRhombus(int n,char ch )
{
	int i, j = 0;
	int num = n / 2;
    //打印上三角:一行一行进行打印,一次循环打印一行
	for (i = 1; i <= num; i++)
	{
        //打印空格
		for (j = i; j <= num; j++)
		{
			printf(" ");
		}
        //打印字符
		for (j = 1; j <= i * 2 - 1; j++)
		{
			printf("%c", ch);
		}
        //换行
		printf("\n");
	}
	for (i = 0; i<n; i++)
	{
		printf("%c", ch);
	}
	printf("\n");
    //打印下三角:一行一行进行打印,一次循环打印一行
	for (i = num; i >= 1; i--)
	{
        //打印空格
		for (j = i; j <= num; j++)
		{
			printf(" ");
		}
        //打印字符
		for (j = 1; j <= i * 2 - 1; j++)
		{
			printf("%c", ch);
		}
        //换行
		printf("\n");
	}
}

int main() 
{
   char ch = getchar();
	PrintRhombus(5,ch);
    return 0;
}

4.BC9字符转ASCII码

1.题目描述

在这里插入图片描述

2.解题思路
字符在内存中也是以二进制的形式进行存储的,比如说十进制97代表字符a,而这个97看存储97的这个变量是什么类型如果是int那它就是97,如果char那它就代表字符a,其实在内存中的存储形式是一模一样的,只是看你以上面类型去解释这段二进制序列(97的二进制)
利用printf函数对内置类型变量按照想要的格式输出如%d可以将变量按整形值输出 %c则输出其对应字符。

3.代码实现

#include <stdio.h>

int main() 
{
    char ch =getchar();
    printf("%d\n",(int)ch);   
    return 0;
}

5.BC10实现四舍五入

1.题目描述
在这里插入图片描述

2.解题思路
看代码叭

3.代码实现
解法一:

当浮点型强制转化为整形,则直接忽略小数


int main()
{
    double d=0;
    scanf("%lf",&d);
    //判断d正负
    if(d>0)
    printf("%d",(int)(d+0.5));
    else
    printf("%d",(int)(d-0.5));
    return 0;    
}

解法二:
0.lf:保留一位小数自带四舍五入

int main()
{
    double d=0;
    scanf("%lf",&d);
    printf("%0.lf",d);
}

解法三:
利用round四舍五入函数


int main()
{
	double d = 0;
	scanf("%lf", &d);
	printf("%d\n",(int )round(d) );

}

在这里插入图片描述在这里插入图片描述

三.如何高效刷题

如何刷题:
1.如果你是基础不太好,可以先按照题解,跟着手打代码,重点理解题目思路,将题目所用到的知识点,解题技巧提炼出来(锻炼代码能力,解题思路)。在这里插入图片描述
2.当有一定的代码能力之后,但是看题还是没有思路,可以先看解题思路理解它,然后尝试用代码去实现它。(主要锻炼代码能力,进一步锻炼解题思维)

3.拿到一个题目自己先尝试解题,最好是能将解题思路用画图的方式体现出来,这样更能加深印象,然后用代码实现,实现之后再看看题解,或者别人的解题方法,进行对比,找到最优解题思路
在这里插入图片描述
最后:在解题过程中,碰到问题如下图(题目提交后通不过,报错(代码可能有bug),尽量独立思考,可以先尝试用它的测试用例,一步一步走读代码,看看问题出现在那个地方,如果实在是没有看出来,可以将该函数拷贝到VS中进行调试代码,一定能找出来。(锻炼自己的代码调试能力)

在这里插入图片描述

最后的最后为了前途也为了钱途刷起来:

点击跳转开启刷题模式

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

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

相关文章

[每周一更]-(第18期):Postman全局配置token信息,加速测试接口进度

Postman作为API调试工具&#xff0c;对于后端开发至关重要&#xff0c;开发、测试、写文档&#xff0c;都必不可少&#xff0c;但是日常使用过程中都是token校验&#xff0c;不同接口之间都会携带token头信息&#xff0c;但是接口的情况&#xff0c;除了写请求参数也要一个个配…

FCOS相关

因为用到了某家带bpu的(懂的都懂) 他们支持这个只是demo做的有点差 还没有c的~~ 因为他们用所以就搬来了 勿怪啊 基于昨天和他们相关的tops 又说说这个!! FCOS是一种基于全卷积的单阶段目标检测算法&#xff0c;并且是一种Anchor box free的算法。其实现了无Anchor&#xff…

该反省了!元数据管理平台为什么会被当成一件“摆设”?

尽管企业越来越意识到元数据管理的重要性&#xff0c;但是在实际中很多应用并没有发挥应有的价值。 前不久与一个行业客户沟通&#xff0c;他提出让他们帮着总结一下元数据管理到底有哪些应用场景&#xff0c;他感觉元数据管理平台就是一种摆设呢&#xff1f; 说者无意听者有心…

1978,1990,2020,2026,2041,2051

文章目录总结1978. 上级经理已离职的公司员工1990. 统计实验的数量[建立两个临时表并笛卡尔积]2020. 无流量的帐户数2026. 低质量的问题2041. 面试中被录取的候选人2051.商店中每个成员的类别总结 多表左连接转2051题【重点】 其他待补充 1978. 上级经理已离职的公司员工 # Wr…

【前端】HTML入门 —— HTML的常见标签

JavaEE传送门JavaEE 网络原理——No.4 传输层_TCP协议中的延迟应答, 捎带应答, 面向字节流与TCP的异常处理 网络原理——网络层与数据链路层 目录网站HTML认识 HTML 标签HTML 常见标签注释标签标题标签段落标签换行标签格式化标签图片标签超链接标签表格标签列表标签表单标签…

【Java学习笔记】第三章 数组知识点大全

文章目录3. 数组3.1 数组的概述3.2 一维数组的使用3.2.1 一维数组初始化3.2.2 一维数组内存解析3.3 多维数组的使用3.3.1 多维数组初始化3.3.2 多维数组的注意事项&#xff1a;3.3.3 int[] x,y[]3.3.4 多维数组的内存解析3.4 数组中涉及到的常见算法3.4.1 线性查找3.4.2 二分法…

【PCL】PCL点云库介绍及VS环境配置

文章目录PCL介绍Windows PCL环境配置PCL介绍 PCL是跨平台点云处理库&#xff0c;用来点云可视化、分割、聚类等应用。 PCL官网在这&#xff1a;https://pointclouds.org/ Github库在这&#xff08;这里用1.8.1&#xff09;&#xff1a;https://github.com/PointCloudLibrary…

DASCTF X GFCTF 2022十月挑战赛 - pwn

DASCTF X GFCTF 2022十月挑战赛 - pwn 简单题&#xff0c;自己做了一下发现要比官方wp思路麻烦一点&#xff0c;所以这里就用官方wp的思路 高版本编译出来的&#xff0c;所以没有csu这种万能的gadget&#xff0c;果断看一下汇编 看完之后仔细思考了一下发现这里完全可以使用…

案例篇:Python爬虫的多重领域使用

大家好呀&#xff01; 相信大家早有体会&#xff0c;大数据时代已到&#xff0c;数据的获取和分析已被应用于各行各业&#xff0c;在诸多领域承担着重要决策的作用&#xff0c;如互联网就业选择。 Python爬虫作为最好的数据采集技术&#xff0c;市场对它需求一直在增涨&#xf…

vue3-tauri-chat:基于tauri聊天实例|tauri仿微信客户端

Vue3.jsTauri桌面端聊天实例|tauri仿微信/QQ聊天TauriChat。 基于taurivite3.xvue3element-plus等技术开发客户端仿微信/QQ聊天实战案例。实现发送消息、预览图片/视频/网址链接、拖拽/粘贴发送图片、朋友圈等功能。 使用技术 编辑器&#xff1a;VScode使用技术&#xff1a;ta…

【C++笔试强训】第十五天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6;&a…

C++模板

目录 ​一、认识模板 1.什么是模板 2.模板的分类 二、函数模板 1.泛型和函数模板 2.函数模板的格式 三、类模板 四、实例化 1.隐式实例化 2.显式实例化 3.隐式类型转换 4.模板参数的匹配原则 一、认识模板 1.什么是模板 模板&#xff08;Template&#xff09;指C…

Java笔记(十一)

文献种类&#xff1a;专题技术总结文献 开发工具与关键技术&#xff1a; IntelliJ IDEA、Java 语言 作者&#xff1a; 方建恒 年级&#xff1a; 2020 撰写时间&#xff1a; 2022 年 10 月 28 日 Java笔记(十一) 今天我给大家继续分享一下我的Java笔记&#xff0c; 我们来了解…

CTFHub | 报错注入

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

第二站:分支与循环(第二幕)

目录 三、循环 1.while循环 &#xff08;1&#xff09;基本原理与用法 &#xff08;2&#xff09;break在while循环中的作用 &#xff08;3&#xff09;continue在while循环中的作用 &#xff08;4&#xff09;一图总结while循环 2.for循环 &#xff08;1&#xff09;基…

[SpringBoot] 多模块统一返回格式带分页信息

✨✨个人主页:沫洺的主页 &#x1f4da;&#x1f4da;系列专栏: &#x1f4d6; JavaWeb专栏&#x1f4d6; JavaSE专栏 &#x1f4d6; Java基础专栏&#x1f4d6;vue3专栏 &#x1f4d6;MyBatis专栏&#x1f4d6;Spring专栏&#x1f4d6;SpringMVC专栏&#x1f4d6;SpringBoot专…

算法刷题路线总结与相关资料分享

算法刷题路线总结与相关资料分享前言一、算法刷题路线总结二、算法题刷题步骤三、基础数据结构与算法知识1、时间复杂度2、空间复杂度3、线性表4、栈与队列5、树四、算法学习相关资料推荐1.数据结构与算法基础2.专项刷题路线资料3.算法课程视频资料后记前言 本文为算法刷题路线…

双十一数码产品哪些值得买?双十一好物产品分享

双十一必然是数码产品最值得买的&#xff0c;因为这类产品的优惠力度往往是最大的&#xff0c;所以每年的双十一都是升级数码设备的好时机&#xff0c;今天为大家带来的是便是个人推荐的双十一数码好物。好了&#xff0c;废话不再多说&#xff0c;我们开车吧。 一、不伤耳的骨…

postman 实用教程(含带 token 访问需登录权限的接口)

下载安装 Postman 访问官网下载安装 Postman https://www.postman.com/downloads/?utm_sourcepostman-home 新建文档 右键菜单可以重命名 新建接口 选择接口类型输入接口若传入参数格式为 json &#xff0c;则选择 Body 中的 raw 和 JSON输入传入的参数&#xff08;json格式&a…

计算机网络--数据链路层

今天来讲网络协议栈的最后一层&#xff0c;数据链路层(物理层我们不考虑了)&#xff0c;我们之前学到&#xff0c;TCP协议提供了数据传输的可靠性&#xff0c;IP层决定数据报从哪到哪&#xff0c;那么数据报是如何从一个结点到下一个结点呢&#xff1f;得到相应如何返回呢&…