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

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加上中间数等于数组和//此时的中间数下标为iif(2 * sumleft + nums[i] == sum){return i;}sumleft += nums[i];}return -1;
}

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

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

                                              c90de1178d0345148d109f22b2169307.jpeg

 

 

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

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

相关文章

高阶数据结构跳表

"想象为翼&#xff0c;起飞~" 跳表简介&#xff1f; skiplist本质上是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树和哈希表的价值是 一样的&#xff0c;可以作为key或者key/value的查找模型。 跳表由来 skiplist是由美国计算…

Matplotlib数据可视化(五)

目录 1.绘制折线图 2.绘制散点图 3.绘制直方图 4.绘制饼图 5.绘制箱线图 1.绘制折线图 import matplotlib.pyplot as plt import numpy as np %matplotlib inline x np.arange(9) y np.sin(x) z np.cos(x) # marker数据点样式&#xff0c;linewidth线宽&#xff0c;li…

Fegin异步情况丢失上下文问题

在微服务的开发中&#xff0c;我们经常需要服务之间的调用&#xff0c;并且为了提高效率使用异步的方式进行服务之间的调用&#xff0c;在这种异步的调用情况下会有一个严重的问题&#xff0c;丢失上文下 通过以上图片可以看出异步丢失上下文的原因是不在同一个线程&#xff0c…

基于React实现日历组件详细教程

前言 日历组件是常见的日期时间相关的组件&#xff0c;围绕日历组件设计师做出过各种尝试&#xff0c;展示的形式也是五花八门。但是对于前端开发者来讲&#xff0c;主要我们能够掌握核心思路&#xff0c;不管多么奇葩的设计我们都能够把它做出来。 本文将详细分析如何渲染一…

C++ vector详解

vector是C STL库中最常用的容器类&#xff0c;实际上它是一种模板&#xff08;template&#xff09;。它支持动态扩容&#xff0c;十分方便&#xff0c;不像数组需要新建空间来扩容。 vector支持大部分类型的对象作为其元素&#xff0c;甚至组成vector的元素可以是vector&…

【Python原创毕设|课设】基于Python Flask的上海美食信息与可视化宣传网站项目-文末附下载方式以及往届优秀论文,原创项目其他均为抄袭

基于Python Flask的上海美食信息与可视化宣传网站&#xff08;获取方式访问文末官网&#xff09; 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 随着大数据和人工智能技术的迅速发展&#xff0c;我们设…

解决Oracle中XML插入数据时的空格问题

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

2.含电热联合系统的微电网运行优化

含电热联合系统的微电网运行优化 MATLAB代码&#xff1a;含电热联合系统的微电网运行优化 关键词&#xff1a;微网 电热联合系统 优化调度 参考文档&#xff1a;《含电热联合系统的微电网运行优化》完全复现 仿真平台&#xff1a;MATLAB yalmipcplex [火]主要内容&#xf…

k8s 常用命令(三)

1、查看版本信息&#xff1a;kubectl version [rootmaster ~]# kubectl version [rootmaster ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f7952…

antd5源码分析之classnames库

代码仓库 https://github.com/JedWatson/classnames 可以找到rec/index.js文件 var hasOwn {}.hasOwnProperty;function classNames() {var classes [];for (var i 0; i < arguments.length; i) {var arg arguments[i];if (!arg) continue;var argType typeof arg;if…

代码随想录打卡—day38—【DP】— 8.24 DP基础

1 DP理论基础 1.1 什么是DP 如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 动规是由前一个状态推导出来的&#xff0c;而贪心是局部直接选最优的。 1.2 DP解题步骤 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定状态转移公式 / 递推…

Day14-1-NodeJS后端工程化

一 前端和后端概念 前端 前端:指运用html+css+JavaScript等技术实现用户体验良好的web应用界面工作 根据设计原稿高保真实现页面及交互和后端人员协同完成项目的接口设计与编写文档。和测试人员协同工作,完成bug的修复和跟踪根据产品需求完成对应的功能(nodejs)技术栈 基础…

JAVA开发环境接口swagger-ui使用总结

一、前言 swagger-ui是java开发中生产api说明文档的插件&#xff0c;这是后端工程师和前端工程师联调接口的桥梁。生成的文档就减少了很多没必要的沟通提高开发和测试效率。 二、 swagger-ui的使用 1、引入maven依赖 <dependency><groupId>io.springfox</grou…

cpolar+JuiceSSH实现手机端远程连接Linux服务器

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

keepalived+lvs(DR)(四十六)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、作用 二、调度器配置 三、web节点配置 一、作用 使用keepalived解决lvs的单点故障 高可用集群 二、调度器配置 安装keepalived yum install -y k…

评测PlayStation Portal:价格、设计、连接选项等

PlayStation Portal发出PlayStation手持设备返回的信号。这款新设备最初在2023年3月的PlayStation Showcase上被宣布为Project Q&#xff0c;它将允许你通过强大的Wi-Fi信号在任何地方播放最好的PS5游戏。 虽然PlayStation Portal可能不是PlayStation Portable和PlayStation G…

leetcode几个数组题

数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合 因为数组的在内存空间的地址是连续的&#xff0c;所以我们在删除或者增添元素的时候&#xff0c;就难免要移动其他元素的地址 二分查找 移除元素 有序数组的平方 209.长度最小的子数组

Ubuntu22.04部署OpenStack-zed all-in-one

一.环境准备 本文以VMWare中创建的虚拟机为例 硬件 规格 备注 网卡1 已分配内网IP,以ens33为例 网卡2 不需要分配IP,以ens37为例 系统盘 60G 用于安装系统及挂载存储 数据盘 100G 初始不需要分区,后续操作用 二.开启ROOT远程登录 使用现有账号…

Mybatis查询in的字段过多不走索引

mybatis查询in的字段有索引&#xff0c;比如说是主键查询&#xff0c; 但是in的字段过多导致索引失效&#xff0c; 这个时候可以考虑将in的数量变少&#xff0c; 200以内都可以&#xff0c; 在数据库方面采用 foreach unionall 的方式将数据集合查询出来 Service层: List<…

jenkins 日志输出显示时间戳的方式

网上很多方式比较片面&#xff0c;最新版插件直接使用即可无需更多操作。 使用方式如下&#xff1a; 1.安装插件 Timestamper 2.更新全局设置 系统设置-找到 Timestamper 勾选 Enabled for all Pipeline builds 也可修改时间戳格式。 帮助信息中显示 When checked, timesta…