拒绝摆烂!C语言练习打卡第一天

 

🔥博客主页:小王又困了

📚系列专栏:每日一练

🌟人之为学,不日近则日退 

❤️感谢大家点赞👍收藏⭐评论✍️


🗒️前言:

在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。俗话说:“无财之谓贫,学而不能行之谓病。”可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。

 一、选择题

📝1.第一题

在上下文及头文件均正常的情况下,下列代码的输出是()

print(char* s)
{
    if (*s)
    {
        print(++s);
        printf("%c", *s);
    }
}

int main()
{
    char str[] = "Geneius";
    print(str);
    return 0;
}

💡解题思路:

这道题用到的是函数递归的思想,所以我们就要考虑递归什么时候结束。本题传递的字符串,字符串结尾有 ‘/0’ ,可以作为结束的标志。

字符串传递的是首元素的地址,所以 *s 存储的是 G 的地址,进入 if 条件判断为真,继续调用 print 函数。但这里要注意“++s” 前置 ++,要先++再使用,所以传递过去的就是 ‘e’ 的地址,经过一次次的调用,直到 ‘/0’ 不符合条件,跳出循环,开始打印,由与 “++s” 走到洗下一个字符,所以 *s 打印的也是这个字符,,无法打印第一个字符。


 

📝2.第二题

以下程序的输出结果为( )

#include <stdio.h>
//全局变量
int i;

void prt()
{
    for (i = 5; i < 8; i++)
    {
        printf("%c", '*');
    }
    printf("\t");
}

int main()
{
    for (i = 5; i <= 8; i++)
    {
        prt();
    }
    return 0;
}

💡解题思路:

想要正确的解决这道题,我们就要理解全局变量。

  • 全局变量:在函数外部定义的变量就是全局变量,全局变量为该源文件所有函数共有,它的作用域是从该文件定义的位置到源文件结束。

在 main 函数中,将 i 赋值为5,进入循环调用 ptr 函数,每次循环打印一个 ‘*’ ,当 i=8,不符合条件跳出循环,回到 main 函数中 “i++” 变为9,再次进入 main 函数的 for 循环条件不成立,无法在调用 prt 函数,结果是打印 “***”。

📝3.第三题

有如下代码,则 *(p[0]+1) 所代表的数组元素是( )

int a[3][2] = { 1, 2, 3, 4, 5, 6 };
int* p[3];
p[0] = a[1];

💡解题思路:

  • p 先与 [] 结合,所以p是数组,它的类型是 int*[] ,所以p是存放指针的指针数组
  • a[1]表示的是第二行首元素的地址,第二行的元素是3,4,所以存放的是3的地址。
  • p[0]中存放的就是3的地址,p[0]+1表示指针向后挪动一位,指向4,然后再解引用就可以得到4。

 

二、编程题

📝1.第一题

 💡解题思路:

通过题意我们得知,中心下标左侧的数据之和与右侧的数据之和相等。我们可以的到左侧数据之和加右侧数据之和加中心元素就是整个数组的和。所以当左侧数据这和乘2加下一个数据之和等于数组之和,那么这个数据就是中心元素。满足num*2+nums[i]==sum返回下标,没有符合条件的返回-1。

int pivotIndex(int* nums, int numsSize)
{
    int sum=0;
    int leftsum=0;
    int i=0;
    //计算数组之和
    for(i=0;i<numsSize;i++)
    {
        sum+=nums[i];
    }

    for(i=0;i<numsSize;i++)
    {
        if(leftsum*2+nums[i]==sum)
        {
            return i;
        }
        leftsum+=nums[i];
    }
    return -1;
}

📝2.第二题

  💡解题思路:

  • 排序+双指针

我们先将两个数组进行排序,在这里使用快速排序。然后使用两个指针遍历两个数组,如果两个数据相等,就拷贝到新的数组中;如果两个数不相等,就将较小数据的指针向后挪一位,直到一个指针超出数组范围,遍历结束。

注意:再插入时,我们要考虑插入的唯一性,所以我们要找一个 tmp 来判断插入的值是否重复,如果插入的值不等于 tmp ,将该数字插入,并且要更新 tmp 的值。

 

int cmp_int(const void* p1, const void* p2)
{
    return *((int*)p1) - *((int*)p2);
}

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize)
{
    qsort(nums1, nums1Size, sizeof(int), cmp_int);
    qsort(nums2, nums2Size, sizeof(int), cmp_int);
    *returnSize = 0;
    //开辟存放相同元素的空间
    int* destnum = malloc(sizeof(int) * (nums1Size + nums2Size));
    if (destnum == NULL)
    {
        perror("malloc");
        exit(-1);
    }

    int n = 0;
    int m = 0;

    while (n < nums1Size && m < nums2Size)
    {
        if (nums1[n] == nums2[m])
        {
            //保证唯一性   
            //当新的数组中插入第一个元素或要插入的元素与之前插入的元素不同
            if (!(*returnSize) || nums1[n] != destnum[(*returnSize) - 1])
            {
                destnum[(*returnSize)++] = nums1[n];
            }
            n++;
            m++;
        }
        else if (nums1[n] < nums2[m])
        {
            n++;
        }
        else
        {
            m++;
        }
    }
    return destnum;
}

本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSql 备份恢复

一、概述 数据库备份一般可分为物理备份和逻辑备份&#xff0c;其中物理备份又可分为物理冷备和物理热备&#xff0c;下面就各种备份方式进行详细说明&#xff08;一般情况下&#xff0c;生产环境采取的定时物理热备逻辑备份的方式&#xff0c;均是以下述方式为基础进一步研发编…

pytorch单机多卡后台运行

nohup sh ./train_chat.sh > train_chat20230814.log 2>1&参考资料 Pytorch单机多卡后台运行的解决办法

学C的第三十三天【C语言文件操作】

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 学C的第三十二天【动态内存管理】_高高的胖子的博客-CSDN博客 1 . 为什么要使用文件 以前面写的通讯录为例&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删…

DolphinDB 入选 Gartner《中国数据库市场指南》代表厂商

近日&#xff0c;国际知名研究机构 Gartner 发布2023年《中国 DBMS 市场指南&#xff08;Market Guide for DBMS, China&#xff09;》研究报告&#xff0c;在中国范围内评估并重点推荐了36家极具实力的企业&#xff0c;DolphinDB 以领先的技术和商业能力顺势入榜。 DolphinDB …

Python批量给excel文件加密

有时候我们需要定期给公司外部发邮件&#xff0c;在自动化发邮件的时候需要对文件进行加密传输。本文和你一起来探索用python给单个文件和批量文件加密。    python自动化发邮件可参考【干货】用Python每天定时发送监控邮件。 文章目录 一、安装pypiwin32包二、定义给excel加…

Vue.js 生命周期详解

Vue.js 是一款流行的 JavaScript 框架&#xff0c;它采用了组件化的开发方式&#xff0c;使得前端开发更加简单和高效。在 Vue.js 的开发过程中&#xff0c;了解和理解 Vue 的生命周期非常重要。本文将详细介绍 Vue 生命周期的四个阶段&#xff1a;创建、挂载、更新和销毁。 …

“中国软件杯”飞桨赛道晋级决赛现场名单公布

“中国软件杯”大学生软件设计大赛是由国家工业和信息化部、教育部、江苏省人民政府共同主办&#xff0c;是全国软件行业规格最高、最具影响力的国家级一类赛事&#xff0c;为《全国普通高校竞赛排行榜》榜单内赛事。今年&#xff0c;组委会联合百度飞桨共同设立了“智能系统设…

Profibus-DP转modbus RTU网关modbus rtu和tcp的区别

捷米JM-DPM-RTU网关在Profibus总线侧实现主站功能&#xff0c;在Modbus串口侧实现从站功能。可将ProfibusDP协议的设备&#xff08;如&#xff1a;EH流量计、倍福编码器等&#xff09;接入到Modbus网络中&#xff1b;通过增加DP/PA耦合器&#xff0c;也可将Profibus PA从站接入…

探究使用HTTP代理ip后无法访问网站的原因与解决方案

目录 访问网站的原理是什么 1. DNS解析 2. 建立TCP连接 3. 发送HTTP请求&#xff1a; 4. 服务器响应&#xff1a; 5. 浏览器渲染&#xff1a; 6. 页面展示&#xff1a; 使用代理IP后访问不了网站&#xff0c;有哪些方面的原因 1. 代理IP的可用性&#xff1a; 2. 代理…

VVIC-商品详情

一、接口参数说明&#xff1a; item_get-根据ID取商品详情&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/vvic/item_get 名称类型必须描述keyString是调用key&#xff08;点击获取测试k…

【编码魔法师系列_六大原则5】迪米特原则(Law of Demeter Principle)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

Es、kibana安装教程-ES(二)

上篇文章介绍了ES负责数据存储&#xff0c;计算和搜索&#xff0c;他与传统数据库不同&#xff0c;是基于倒排索引来解决问题的。Kibana是es可视化工具。 分布式搜索ElasticSearch-ES&#xff08;一&#xff09; 一、ElasticSearch安装 官网下载地址&#xff1a;https://www…

Android JNI实现锅炉压力显示系统详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 第一步创建GuoLu.c文件 // // Created by DELL on 2023/8/13. // #include <stdio.h…

Flume拦截器

实现 Interceptor接口 方法1 是初始化: 方法2和3重载 拦截: 方法3 是关闭: 但是flume是通过内部类创建对象的

类加载过程和类加载器

类加载的过程 加载->连接&#xff08;验证->准备->解析&#xff09;->初始化 加载 1.获得二进制字节流&#xff08;可以从本地jar 网络或者动态代理获得&#xff09; 2.转化成方法区中的运行时数据 3.获得类对应的Class对象 加载的过程由类加载器完成&…

【node】用node爬取网页文本内容,并创建文本 将内容存储到文本中,附带源码

用node爬取网页并没有大家想象的困难&#xff0c;下面我就向大家讲述如何爬取&#xff1a; 序幕&#xff1a; 首先大家要了解cheerio&#xff0c;这是我们在node中编辑爬取内容的关键 Cheerio 是一个基于核心 jQuery 库的快速、灵活的服务器端 HTML 解析工具。它可以让你使用…

htmlCSS-----案例展示

目录 前言 作品效果 html代码 CSS代码 图片资源 前言 在学习html过程中我们要试着去写写一些案例&#xff0c;通过这些案例让我们更加熟悉代码以及丰富我们的经验&#xff0c;下面是我个人写的一个案例&#xff0c;代码和图片也给出了大家&#xff0c;你们可以参考参考。…

获取 Android 的 SHA1 值

1、调试版&#xff0c;可以直接在 Android studio 中的 gradle 中查看。也可以用下面方法进行 前提要先确定签名文件所在的路径&#xff1a;调试版默认使用的签名文件是debug.keystore&#xff0c;文件处于 C 盘用户目录下的.android文件夹下。打开命令行工具&#xff0c; 1、…

2个电压源组成回路导致的物理学悖论

看这是一个由直流电压源和电容器直接串联组成的回路&#xff1a; 根据平时的分析可以知道 UaUc; UbUd; 根据电容相关定律可以知道&#xff1a; 电容电压不能够跳变&#xff0c;所以如果是从完全放电状态开始充电&#xff0c;开始2端电压一定是0,。 推理&#xff1a; 当接…

Spring 使用注解开发、代理模式、AOP

使用注解开发 在Spring4之后&#xff0c;要使用注解开发&#xff0c;必须要保证AOP的包导入了 项目搭建&#xff1a; 在配置文件中导入约束&#xff0c;增加注解支持 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…