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

这篇具有很好参考价值的文章主要介绍了拒绝摆烂!C语言练习打卡第一天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

 

🔥博客主页:小王又困了

📚系列专栏:每日一练

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

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


🗒️前言:

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

 一、选择题

📝1.第一题

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

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

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

💡解题思路:

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

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

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

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++
 

📝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 函数,结果是打印 “***”。

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

📝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。

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

 拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

二、编程题

📝1.第一题

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

 💡解题思路:

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

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

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.第二题

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

  💡解题思路:

  • 排序+双指针

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

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

拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

 拒绝摆烂!C语言练习打卡第一天,每日一练,c语言,数据结构,开发语言,算法,推荐算法,排序算法,c++

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

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

到了这里,关于拒绝摆烂!C语言练习打卡第一天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    🔥 博客主页: 小王又困了 📚 系列专栏: 每日一练 🌟 人之为学,不日近则日退  ❤️ 感谢大家点赞👍收藏⭐评论✍️   目录 一、选择题 📝1.第一题  📝2.第二题  📝3.第三题  二、编程题 📝1.第一题  📝2.第二题  🗒️前言: 在前面我们学习完C语言的所以知识,当

    2024年02月11日
    浏览(29)
  • 拒绝摆烂!C语言练习打卡第七天

    🔥 博客主页: 小王又困了 📚 系列专栏: 每日一练 🌟 人之为学,不日近则日退  ❤️ 感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题  📝2.第二题 📝3.第三题 📝4.第四题 二、编程题 📝1.第一题  📝2.第二题 🗒️前言: 在前面我们学习完C语言的所以知

    2024年02月10日
    浏览(41)
  • 力扣打卡第一天

    C++: python: 题目解释:在给出的示例中,2 - 4 - 3代表342,5 - 6 - 4代表的是465. 2+5=7,4+6=10(有进位,因此第二位为0),得到7 - 0,然后3+4=7,因为前一位有进位,所以7+1=8,得到7 - 0 - 8

    2024年04月23日
    浏览(31)
  • Day1 刷题第一天打卡

    给定一个  n  个元素有序的(升序)整型数组  nums  和一个目标值  target   ,写一个函数搜索  nums  中的  target ,如果目标值存在返回下标,否则返回  -1 。 示例 1: 示例 2: 提示: 你可以假设  nums  中的所有元素是不重复的。 n  将在  [1, 10000] 之间。 nums  的每个元素

    2024年02月07日
    浏览(40)
  • 每日打卡day8——差分练习

    输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数序列。 接下来 m 行,每行包含

    2024年02月17日
    浏览(41)
  • 蓝桥杯练习第一天--求和、灭鼠先锋

    1、求和 问题描述 给定 nn 个整数 a_1, a_2, · · · , a_na1​,a2​,⋅⋅⋅,an​ ,求它们两两相乘再相加的和,即: S=a_{1} cdot a_{2}+a_{1} cdot a_{3}+cdots+a_{1} cdot a_{n}+a_{2} cdot a_{3}+cdots+a_{n-2} cdot a_{n-1}+a_{n-2} cdot a_{n}+a_{n-1} cdot a_{n}S=a1​⋅a2​+a1​⋅a3​+⋯+a1​⋅an​+a2​⋅a3​+⋯

    2023年04月09日
    浏览(34)
  • 每日一练 | 华为认证真题练习Day50

    1、SWA和SWB的MAC地址表中,MAC地址、VLAN、端口对应关系正确的有?(多选) 2、PPP帧格式中的Flag字段的取值为? A. 0xFF B. 0x7E C. 0xEF D. 0x8E 3、ICMP报文不包含端口号,所以无法使用NAPT。 A. 对 B. 错 4、如下图所示的网络,要求主机A所在的网络通过Easy IP的方式访问Internet,则在路由

    2024年02月07日
    浏览(39)
  • 【SQL每日一练】分组过滤练习题

    题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。 代码如下: WHERE 无法与合计函数一起使用; SQL语句执行顺序 (8) SELECT (9) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GR

    2024年04月23日
    浏览(40)
  • 每日一练 | 华为认证真题练习Day54

    1、现有一台交换机通过一个端口和对端设备的指定端口直连,但是该端口不转发任何报文,却可以通过接收BPDU来监听网络变化,那么该端口的角色应该是()。 A. Root端口 B. Designated端口 C. Alternate端口 D. Disable端口 2、交换机MAC地址表如下,下列说法正确的有? A. 交换机收到

    2024年02月08日
    浏览(73)
  • 每日一练 | 华为认证真题练习Day183

    1、用于过滤路由信息以及为通过过滤的路由信息设置路由属性的是哪一个 A. AS-PATH-FILTER B. IP-PREFIX C. ROUTE-POLICY D. POLICY-BASED-ROUTE 2、AGGREATE命令的DETAIL-SUPPRESSED选项的作用是什么 A. 抑制生成的聚合路由下发IP路由表 B. 抑制被聚合的明细路由下发IP路由表 C. 仅通告聚合路由给其他

    2024年02月19日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包