C语言:选择+编程(每日一练Day7)

news2024/12/26 10:56:16

55f0f6eb5fef45b8b31fc561c321cc87.png

目录

选择题:

题一:

题二:

题三:

题四:

题五:

编程题:

题一:图片整理

思路一:

思路二: 

题二:寻找数组的中心下标 

思路一:

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!


选择题:

题一:

1、以下对C语言函数的有关描述中,正确的有【多选】( )
A: 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体
B: 函数的实参和形参可以是相同的名字

C: 在main()中定义的变量都可以在其它被调函数中直接使用
D: 在C程序中,函数调用不能出现在表达式语句中

答案解析:

        主函数中定义的局部变量只在主函数中有效,因为主函数也是一个函数,它与其他函数是平行关系,C错误;当函数有返回值时,可以出现在表达式中,D错误。

题二:

2、在C语言中,以下正确的说法是( )
A: 实参和与其对应的形参各占用独立的存储单元
B: 实参和与其对应的形参共占用一个存储单元
C: 只有当实参和与其对应的形参同名时才共占用存储单元
D: 形参是虚拟的,不占用存储单元

答案解析:

        在调用函数的时候,真实传递给函数的是实参,函数定义部分函数名后的参数是形参。形参和实参的名字是可以相同的,在函数调用的时候,形参是实参的一份临时拷贝,分别占用不同的内存空间,所以A正确,B错误,及时形参和实参的名字相同,也是占用不同的内存空间,所以B错误;函数如果不被调用时,函数的形参是形式上存在的,但是函数在被调用的时候,形参是要分配内存空间的,所以D错误。

题三:

3、在上下文及头文件均正常的情况下,下列代码的输出是( )(注: print 已经声明过)
int main()
{
        char str[] = "Geneius";
        print(str);
        return 0;
}
print(char *s)
{

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

A: suiene    B: neius    C: run-time error    D: suieneG

答案解析:

        代码实现了递归倒序打印字符串的功能,但是++s使得s的值发生了变化,回不到'G'的位置上,故而没有打印'G'。

题四:

4、对于函数 void f(int x); ,下面调用正确的是( )
A: int y=f(9);    B: f(9);    C: f(f(9));    D: x=f();

答案解析:

        函数f是没有返回值的,不能给int类型变量赋值,故A错误,同时需要一个整型参数,C中f(9)不能作为f的参数,也是错的,D选项没有传参,也不能接收返回值也是错误的。

题五:

5、给定 fun 函数如下,那么 fun(10) 的输出结果是( )
int fun(int x)
{
        return (x==1) ? 1 : (x + fun(x-1));
}

A: 0    B: 10    C: 55    D: 3628800

答案解析:

        代码是一个递归函数,计算x+(x-1)+(x-2)+...+2+1即等差数列的和。

编程题:

题一:图片整理

图片整理_牛客题霸_牛客网 (nowcoder.com)

fe80b2bd5c0d4e85b2c8d3bf5aeda420.png

示例:

   输入:

   Ihave1nose2hands10fingers

   输出:

   0112Iaadeeefghhinnnorsssv

思路一:

冒泡排序:

        第一步:定义数组arr,执行输入数组元素的scanf(),计算数组元素的个数;

        第二步:冒泡排序,整个数组(遍历n-1次,每次与n-1-i个元素比较,前大于后,交换位置);

        第三步:打印arr数组。

#include <stdio.h>
#include <string.h>

int main()
{
     //方法一
     //定义足够大小数组
     char arr[1000] = { 0 };
     //是否有数组输入
     while (scanf("%s", &arr) != EOF)
     {
         //计算字符串长度
         int n = strlen(arr+0);
         int i = 0;
         int j = 0;
         //冒泡排序
         for (i = 0; i < n-1; i++)
         {
             for (j = 0; j < n - 1 - i; j++)
             {
                 if (strcmp(arr + j, arr + j+1) > 0)
                 {
                     char tmp = arr[j];
                     arr[j] = arr[j+1];
                     arr[j+1] = tmp;
                 }
             }
         }
         //打印
         printf("%s\n", arr);
     }
     return 0;
}

思路二: 

qsort排序:

        第一步:定义数组arr,执行输入数组元素的scanf(),计算数组元素的个数;

        第二步:写一个让数组升序排列的my_cmp()函数,让arr直接升序排序;

        第三步:打印arr数组。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//比较函数
int my_cmp(const void* p1, const void* p2)
{
    return strcmp((char*)p1, (char*)p2);
}
int main()
{
    //方法二
    char arr[1000] = { 0 };
    scanf("%s", &arr);
    //计算长度
    int n = strlen(arr);
    //升序排序
    qsort(arr, n, sizeof(arr[0]), my_cmp);
    printf("%s\n", arr);
    return 0;
}


题二:寻找数组的中心下标 

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

7dd4402af2a14bc1bb9221ffabcaedb6.png

示例:
   输入:nums = [1, 7, 3, 6, 5, 6]
   输出:3
   解释:
   中心下标是 3 。
   左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
   右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。

思路一:

前缀和:

        第一步:将数组所有元素求和sum

        第二步:遍历数组: 当左右和相同时为2*sumleft加上中间数等于数组和,此时的中间数下标为“ i ”否则就一直加到数组结束。结束“ -1 ”。

int pivotIndex(int* nums, int numsSize)
{
    int sum = 0;
    int i = 0;
    //将数组的元素求和
    for(i = 0;i < numsSize;i++)
    {
        sum += nums[i];
    }
    //记录当前左侧的和
    int sumleft = 0;
    for(i = 0;i < numsSize;i++)
    {
        //当左右和相同时为2*sumleft加上中间数等于数组和
        //此时的中间数下标为i
        if(2 * sumleft + nums[i] == sum)
        {
            return i;
        }
        sumleft += nums[i];
    }
    return -1;
}

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

                                              c90de1178d0345148d109f22b2169307.jpeg

 

 

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

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

相关文章

软考A计划-系统集成项目管理工程师-项目风险管理-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

csdn冷知识:如何在csdn里输入公式或矩阵

目录 1 输入公式 2 输入矩阵 3 如何输入复杂公式 4 如何修改&#xff0c;已经生成的公式 1 输入公式 进入编辑模式点击右边的菜单&#xff1a;公式然后进入公式编辑器&#xff0c;选择右边的 ... 可以选择大括号等&#xff0c;右边还有矩阵符号选择后你需要创建几行几列的…

Python“牵手”唯品会商品详情API接口运用场景及功能介绍,唯品会API接口申请指南

唯品会是一家专门做特卖的网站&#xff0c;成立于2008年。唯品会网站以比零售大幅优惠的折扣价&#xff0c;向中国消费者提供优质、受欢迎的品牌正品&#xff0c;商品囊括时装、护肤品、箱包、皮具、配饰、香水等2。唯品会在中国领创"名牌折扣限时抢购正品保障"的独特…

【VS_C++基础知识】

很高兴在雪易的CSDN遇见你 &#xff0c;给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享VS_C的基础知识&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞就…

三星申请新商标:未来将应用于智能戒指,作为XR头显延伸设备

三星最近向英国知识产权局提交了名为“Samsung Curio”的新商标&#xff0c;这预示着三星正积极扩展可穿戴设备生态。该商标被分类为“Class 9”&#xff0c;这表明它有可能被用于未来的智能戒指。 据报道&#xff0c;三星计划将智能戒指作为XR头显设备的延伸&#xff0c;与苹果…

Qt应用开发(基础篇)——进度条 QProgressBar

一、前言 QProgressBar类继承于QWidget&#xff0c;是一个提供了横向或者纵向进度条的小部件。 QProgressBar进度条一般用来显示用户某操作的进度&#xff0c;比如烧录、导入、导出、下发、上传、加载等这些需要耗时和分包的概念&#xff0c;让用户知道程序还在正常的执行中。 …

tomcat更改端口号和隐藏端口号

因为默认端口:8080不会自动隐藏&#xff0c;因此为了更显格调需要将其改为:80 进入tomcat的server文件 将其改为80&#xff0c;之后将tomcat重新启动即可 tomcat启动流程 [rootshang ~]# cd /usr/local/tomcat/apache-tomcat-8.5.92 [rootshang apache-tomcat-8.5.92]# cd b…

框架分析(4)-Spring

框架分析&#xff08;4&#xff09;-Spring 专栏介绍Spring核心特点控制反转&#xff08;IoC&#xff09;面向切面编程&#xff08;AOP&#xff09;组件化集成简化开发总结 优缺点优点高度可扩展控制反转&#xff08;IoC&#xff09;面向切面编程&#xff08;AOP&#xff09;集…

7、Spring_AOP

一、Spring AOP 简介 1.概述 对于spring来说&#xff0c;有三大组件&#xff0c;IOC&#xff0c;ID&#xff0c;AOP aop概述&#xff1a;AOP(Aspect Oriented Programming)面向切面编程。 作用&#xff1a;不改变原有代码设计的基础上实现功能增强 例子 传统打印日志 使用…

常见前端面试之VUE面试题汇总六

17. MVVM 的优缺点? 优点: 分离视图&#xff08;View&#xff09;和模型&#xff08;Model&#xff09;&#xff0c;降低代码耦合&#xff0c;提⾼视图或者 逻辑的重⽤性: ⽐如视图&#xff08;View&#xff09;可以独⽴于 Model 变化和修改&#xff0c;⼀个 ViewModel 可以…

安防视频监控平台EasyCVR云存储平台基于云-端-边一体化结构在银行自助机ATM中的应用方案

随着银行ATM功能的不断完善和升级&#xff0c;人们对ATM的依赖和使用程度越来越高。然而&#xff0c;作为一个开放的公共环境&#xff0c;ATM在服务应用中容易出现各种异常情况和业务纠纷&#xff0c;一些不法分子也利用ATM进行犯罪活动。 对于银行用户来说&#xff0c;提前预警…

2021–2022年北京市丰台区典型自然保护地植物物种名录数据集

摘要 植物是自然保护地的核心组成,是维持生物多样性等生态系统功能发挥的基础资源。本文基于2021和2022年对北京市丰台区4处代表性的自然保护地(南苑森林湿地公园、绿堤公园、莲花池公园、北宫国家森林公园)中植物物种的实地调查结果,整理出丰台区典型自然保护地植物物种名…

人工智能开发板 SE5 - MB1684开发入门指南 -- 模型转换、交叉编译、开发板运行 yolov5 目标追踪

介绍 我们属于SoC模式&#xff0c;即我们在x86主机上基于tpu-nntc和libsophon完成模型的编译量化与程序的交叉编译&#xff0c;部署时将编译好的程序拷贝至SoC平台&#xff08;1684开发板/SE微服务器/SM模组&#xff09;中执行。 注&#xff1a;以下都是在Ubuntu20.04系统上操…

Unity 结构少继承多组合

为什么不推荐使用继承&#xff1f; 继承是面向对象的四大特性之一&#xff0c;用来表示类之间的 is-a 关系&#xff0c;可以解决代码复用的问题。虽然继承有诸多作用&#xff0c;但继承层次过深、过复杂&#xff0c;也会影响到代码的可维护性。所以&#xff0c;对于是否应该在…

论文详解——《Deep Color Consistent Network for Low-Light Image Enhancement》

文章目录 Abstract3. Proposed Method3.1 Network Structure3.2. Pyramid Color Embedding (PCE)3.3. Objective Function Abstract 微光图像增强(LLIE)研究了如何细化光照&#xff0c;获得自然的正常光照图像。目前的LLIE方法主要侧重于提高光照&#xff0c;而没有合理地将颜…

手机锁屏密码忘了怎么解开?4个方法,帮你解锁!

“最近新买了一部手机&#xff0c;为了保护隐私我还特意设置了密码。明明之前一直都记得&#xff0c;但昨天手机没电后重新开机&#xff0c;就怎么也想不起手机的锁屏密码了&#xff0c;有什么方法可以解决这个问题吗&#xff1f;” 随着手机在日常生活中的普及&#xff0c;手机…

uCharts 运行微信小程序时,图表放在scroll-view中点击后不能正确获取点击的currentIndex一直为-1

图表在APP和H5中的点击位置是正常的,在微信小程序中会出现点击位置不对且有部分地方点击不到,最终我的解决方法如下。 1.查看包裹图表的元素中有没有元素开启了定位,可以去除定位属性试一试。 2.为微信平台的图表添加 isScrollView="true"属性。 解决方案: 添加 …

极狐GitLab 价值流管理之「总时间图」使用指南

本文来源&#xff1a;about.gitlab.com 作者&#xff1a;Haim Snir 译者&#xff1a;极狐(GitLab) 市场部内容团队 对于软件研发管理者来说&#xff0c;了解在整个研发过程中时间都耗费在了哪些地方&#xff0c;是进行交付价值优化的关键洞察。GitLab / 极狐GitLab 新的价值流分…

基于ssm校园快递代取系统源码和论文

基于ssm校园快递代取系统源码和论文056 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;…

视频云存储平台EasyCVR视频汇聚平台关于机电设别可视化管理平台可实施设计方案

随着工业化进程的不断发展&#xff0c;机电设备在各行各业中扮演着重要的角色。然而&#xff0c;由于机电设备种类繁多、数量庞大&#xff0c;包括生产机械、建筑器械、矿用器械、制药器械、食品机械等&#xff0c;传统的手动管理方式已经无法满足对设备进行精细化管理的需求。…