C语言之练习题

news2025/1/15 17:20:18

在这里插入图片描述

欢迎来到我的:世界

希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 !


目录

  • 前言
  • 填空题:
    • 第一题
    • 第二题
    • 第三题
    • 第四题
  • 编程题:
    • 第一题:
    • 第二题:
  • 总结

前言


填空题:

第一题

在这里插入图片描述

题解思路:
该题考察的是我们对运算符优先级掌握+对二维数组的理解;
百度:运算符优先级详解;X[ i ][ j ] 表达式中下标引用操作符优先级是最高的;所以是先如果拆开就可以更好理解其结构:
在这里插入图片描述
接下来依次看选项:选项A:*(X[ i ]+j);
下标引用操作符“ [ ] ”是比括号“( )”的优先级高的,既然是一个二维数组,可以看成是一个一维数组的集合;而这个选项是与X[i][j] 等效的;
选项B:*X( i )[ j ]; 要知道“[ ]”是先于“ * ”的,所以先是下标引用操作符先进行操作,这本就是一个错误的表达式;
选项C:*(X+i+j); 这个选项可以理解为X[i+j] 这完全和X[i][j]不相符;
选项D:((X+i)+j);这个选项可以知道与X[i][j]相符;

第二题

在上下文及头文件均正常的情况下,下列代码的输出是( )在这里插入图片描述

解题思路:
这题看似比较简单,但是有个小细节不注意可能就一盘皆输;一个函数递归问题
递归输出“Geneius”,按理输出的是“suieneG”,但这里需要特别注意:第一次递归输入的是++s,跳过了“G”,这也就没有G的打印;
在这里插入图片描述
所以最终输出的是:suiene

第三题

下列 for 循环的次数为( )

for(int i = 0 ; i || i++ < 5;);

解题思路:
这题考察的是逻辑“或”,逻辑“或”,有真则为真,两者都为假则为假; 刚刚进入循环,i=0;进入判断条件,i为0代表的是假,则看i++<5,此表达式进行了计算,此为真,则进入循环,当第二次循环时i已经++了,则i=1 此代表为真,则不会在进入i++<5表达式了; i不会进行变化,所以该表达式会陷入死循环;

次数应该是:无限次;

第四题

在这里插入图片描述

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


编程题:

第一题:


地址:oj地址


在这里插入图片描述

解题思路:排序+双指针
首先对两个数组进行排序,然后使用两个指针遍历两个数组。 然后创造一个存放相交元素的数组 arr ;可以预见的是加入arr 数组的元素一定是递增的, 再为了保证加入元素的唯一性,我们需要额外记录变量 prve 表示上一次加入答案数组的元素。
初始时,两个指针分别指向两个数组的头部。
然后每次比较两个指针指向数组中的元素,若不相等,较小的指针向右移动一位;若相等,则判断为不等于prve,不是则将该存入用来存放相交数组arr中,并且更新一下prve的值,将prve的值改成刚刚相交元素的值; 然后两个指针同时向右移动一位,当至少有一个指针超出数组范围时,遍历结束。

代码:

int cmp (const void *e1,const void*e2)
{
    return *(int*)e1-*(int*)e2;
}

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
    //首先进行排序
    qsort(nums1,nums1Size,sizeof(int),cmp );
    qsort(nums2,nums2Size,sizeof(int),cmp );
    //创造一个数组存放相交的数组
    int *arr=(int*)malloc(sizeof(int) * (nums1Size + nums2Size));
    //设置两个指针
    int sur1=0;
    int sur2=0;
    int prve=-1;//记录上一个的相交值,判断是否要存入
    int j=0;
    while(sur1<nums1Size && sur2<nums2Size)
    {
        int num1=nums1[sur1],num2=nums2[sur2];
        if(num1==num2)
        {
            if(prve!=num1)//判断出不是相同的相交值
            {
                arr[j]=num1;
                j++;
                prve=num1;
                sur1++;
                sur2++;
            }
            else
            {
                sur1++;
                sur2++;
            }
        }
        else if(num1<num2)
        {
                sur1++;
        }
        else
        {
            sur2++;
        }
    }
    *returnSize=j;//相交数组个数
    return arr;
}

第二题:


地址:oj地址


在这里插入图片描述

解题思路:
先算出该数组中所以元素和记到total;当遍历到 i 时,其左侧元素之和为 sum ,那其右侧元素之和为 total- nums[i] - sum;当左右元素和相等的时候就有等式:2*sum + nums[i] =total;
在这里插入图片描述

代码:

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

总结

知识是无穷的,探索的路上是枯燥的,让我来分享一下乐趣:
鲁迅说过:打断你的腿,再给你一副拐杖,然后告诉你,没有他你连走路都走不了,所以要学会感恩。


到了最后:感谢支持

我还想告诉你的是:
------------对过程全力以赴,对结果淡然处之
也是对我自己讲的

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

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

相关文章

网御ACM上网行为管理系统bottomframe.cgi接口存在SQL注入漏洞 附POC

文章目录 网御ACM上网行为管理系统bottomframe.cgi接口存在SQL注入漏洞 附POC1. 网御ACM上网行为管理系统简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 网御ACM上网行为管理系统bottomframe.cgi接口存在SQL注入漏洞 附POC 免责声明&am…

three.js(九):内置的路径合成几何体

路径合成几何体 TubeGeometry 管道LatheGeometry 车削ExtrudeGeometry 挤压 TubeGeometry 管道 TubeGeometry(path : Curve, tubularSegments : Integer, radius : Float, radialSegments : Integer, closed : Boolean) path — Curve - 一个由基类Curve继承而来的3D路径。 De…

关于Linux系统时间的问题

关于Linux系统时间的问题 当我们进行一些特定的业务需求时&#xff0c;需要修改当前Linux系统的系统时间。我们可以用以下命令进行修改时间。 data -s "2022-08-31 15:00:00"当我们将时间设置为某个时间点后&#xff0c;Linux系统的时间会出现一个问题&#xff1a;…

React原理 - React Reconciliation-上

目录 扩展学习资料 React Reconciliation Stack Reconciler【15版本、栈协调】 Stack Reconciler-事务性 事务性带来的弊端&#xff1a; 扩展学习资料 名称 链接 备注 官方文档 Reconciliation – React 英文 stack reconciler Implementation Notes – React 英文…

IntelliJ IDEA 2023.2.1使用Git时弹出“使用访问令牌登录”问题解决

这里写目录标题 一、内网Git环境GitLabGogsGitea 二、外网Git环境GitHubGitee 升级为IntelliJ IDEA 2023.2.1后&#xff0c;使用Git时弹出“使用访问令牌登录”的窗口&#xff0c;习惯使用Git帐号密码登录的用户&#xff0c;面对这个突如其来的弹窗真的很懵。 一、内网Git环境 …

虚拟化技术原理

计算虚拟化 介绍 把物理主机上物理资源&#xff08;CPU&#xff0c;内存&#xff0c;IO外设&#xff09;&#xff0c;通过虚拟化层抽象成超量、等量的逻辑资源&#xff08;虚拟CPU&#xff0c;虚拟内存&#xff0c;虚拟IO设备&#xff09;&#xff0c;然后重新组合形成新的虚…

大数据学习:impala基础

impala基础 1. impala介绍 1.1 impala概述 Impala是Cloudera公司推出&#xff0c;提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。官方测试性能比hive快10到100倍&#xff0c;其sql查询比sparkSQL还要更加快速&#xff0c;号称是当前大数据领域最快的查询sq工具…

【排序】快排非递归

模拟递归的下标&#xff0c;让他们入栈

投票同款特效样式

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>import url("https://fonts.…

vant2 van-calendar组件增加清除按钮和确定按钮

利用自定义插槽增加一个清除按钮 <van-calendar ref"fTime1" select"selectTimePicker" confirm"changeTimePicker" :default-date"null" :show-confirm"false" v-model"timePickerShow" type"range&quo…

《用行动打造满意的服务》考试答案

中电金信新员工入职培训选修课程《用行动打造满意的服务》考试答案

数据结构day08(树、算法)

今日任务&#xff1a; 二叉树&#xff1a; 今日思维导图 链接&#xff1a; 快排&#xff1a;快速排序法&#xff08;详解&#xff09;_李小白~的博客-CSDN博客图画挺好啊 常见款&#xff1a;https://www.runoob.com/w3cnote/quick-sort.html

18.2 【Linux】rsylog.service:记录登录文件的服务

rsyslogd 可以负责主机产生的各个信息的登录&#xff0c;而这些信息本身是有“严重等级”之分的。每个 Linux distributions 放置的登录文件文件名可能会有所差异。 基本上&#xff0c; rsyslogd 针对各种服务与讯息记录在某些文件的配置文件就是 /etc/rsyslog.conf&#xff0…

掌握逻辑漏洞复现技术,保护您的数字环境

环境准备 这篇文章旨在用于网络安全学习&#xff0c;请勿进行任何非法行为&#xff0c;否则后果自负。 1、支付逻辑漏洞 攻击相关介绍 介绍&#xff1a; 支付逻辑漏洞是指攻击者利用支付系统的漏洞&#xff0c;突破系统的限制&#xff0c;完成非法的支付操作。攻击者可以采…

c# - - - 安装.net core sdk

如图&#xff0c;安装的是.Net Core 2.2版本 查看安装成功

游戏报错xinput1_3.dll丢失的解决方法,xinput1_3.dll修复步骤

今天&#xff0c;我将和大家探讨一个与我们日常生活息息相关的话题——电脑丢失xinput1_3.dll文件怎么办。作为一位老师&#xff0c;我深知电脑技术对于现代人的重要性&#xff0c;而xinput1_3.dll文件的丢失则是许多电脑用户在游戏、办公等方面遇到的问题。因此&#xff0c;我…

android开发google账号一键登录和注册

一、官网的使用说明 开始使用一键登录和注册 | Authentication | Google for Developers 二、先到API控制台注册应用添加web应用凭证&#xff0c;注意一定是web应用凭证&#xff0c;如果用android凭证使用时会报错“10: Developer console is not set up correctly”不知…

排序之插入排序

文章目录 前言一、直接插入排序1、基本思想2、直接插入排序的代码实现3、直接插入排序总结 二、希尔排序1、希尔排序基本思想2、希尔排序的代码实现3、希尔排序时间复杂度 前言 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大…

【STM32单片机】FATS文件系统,写入字符串到文件,读取文件内容

基于正点原子的库函数版本的FATS文件系统&#xff0c;实现向文件写入字符串&#xff0c;读取文件内容&#xff0c;这里是指txt文件&#xff0c;其余文件其实也一样&#xff0c;读取成字节。 #include "led.h" #include "delay.h" #include "sys.h&qu…

IDEA 性能优化

前言 IDEA 基于JVM&#xff0c;是内存紧张型的应用&#xff0c;即使是16GB内存也很一般。 机器配置&#xff1a; win10 proi7-4720hq 3.2G 4c8tddr3-1600IDEA 2023.2.1 本文优化在不升级硬件的前提下使用 优化 调整JVM堆内存及GC IDEA 自身的JVM运行时配置&#xff0c;启动…