C语言之数组练习题

news2024/11/29 12:42:53

第1关:数组插入元素

300

  • 任务要求
  • 参考答案
  • 评论106
  • 任务描述
  • 相关知识
    • 数组
    • 数组元素的表示方法
  • 编程要求
  • 测试说明

任务描述

本关需要你将一个数插入到一组已经排好序的数组并输出。

相关知识

数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。

数组

C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 数组说明的一般形式为:

 
  1. 类型说明符 数组名 [常量表达式],……

其中,类型说明符是任一种基本数据类型或构造数据类型。 数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。

数组元素的表示方法

数组元素是组成数组的基本单元。数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素的一般形式为: 数组名[下标] 其中的下标只能为整型常量或整型表达式。 例如,输出有10 个元素的数组必须使用循环语句逐个输出各下标变量:

 
  1. for(i=0; i<10; i++)
  2. printf("%d",a[i])

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

有一个已经排好序的整型数组{14691125314683100}。现输入一个数,要求按序将它插入数组中,并依序输出新数组。(注意,数组输出时每个数间隔一个空格)

测试说明

平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。


验货啦,验货啦,开始你的任务吧!

#include <stdio.h>
int main()
{
	//获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

 	// 请在此添加你的代码
    /********** Begin *********/
    int i,t;
    int a[11]={0,1,4,6,9,11,25,31,46,83,100};
    scanf("%d",&a[0]);
    for(i=0;i<10;i++){
        if(a[i]>a[i+1]){
            t=a[i];
            a[i]=a[i+1];
            a[i+1]=t;
        }
    }
    for(i=0;i<11;i++){
        printf("%d ",a[i]);
    }
	/********** End **********/
}

第2关:按大小排序

300

  • 任务要求
  • 参考答案
  • 评论106
  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明

任务描述

本关需要你用选择排序法对数组中的整数按由小到大排序。

相关知识

什么是选择排序?选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中 选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。所以这种排序的方法叫选择排序法。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

用选择排序法对数组中10个整数按由小到大排序。

测试说明

平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

测试输入:9 25 5 80 1 3 16 103 321 -15

预期输出:-15 1 3 5 9 16 25 80 103 321


开始你的任务吧,祝你成功!

#include <stdio.h>
int main()
{
	//获取参数方式 scanf
    //int x  =0;
    //int y = 0;
    //scanf("%d", &x);

    //结果输出使用prinf
    //printf("%d",x);

 	// 请在此添加你的代码
    /********** Begin *********/
    int i,j,t;
    int a[10];
    for(i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++){
        for(j=0;j<10;j++){
            if(a[j]>a[j+1]){
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    for(i=0;i<10;i++){
        printf("%d ",a[i]);
    }
	/********** End **********/
}

第3关:找最小值

100

  • 任务要求
  • 参考答案
  • 评论106
  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明

任务描述

本关需要你编写自定义函数fun,找到数组中最小的值。

相关知识

一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。

当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。

从键盘输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写函数fun,返回找到的最小值。

测试说明

平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

测试输入:21 34 10 2 34 56 9 0 29 11

预期输出:0


开始你的任务吧,祝你成功!

#include "stdio.h"
//参数x[]表示要查找的数组,n表示该数组的元素数目。
int fun(int x[],int n)
{
    // 请在此添加你的代码
    /********** Begin *********/
    int i,t;
    for(i=0;i<n;i++){
        if(x[i]<x[i+1]){
            t=x[i];
            x[i]=x[i+1];
            x[i+1]=t;
        }
    }
    return t;
    /**********  End  **********/
}

int main()
{
    int a[10],i,min;
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    min=fun(a,10);
    printf("%d\n",min);
    return 0;
}

第4关:求二维数组的最小值

300

  • 任务要求
  • 参考答案
  • 评论106
  • 任务描述
  • 相关知识
    • 二维数组
  • 编程要求
  • 测试说明

任务描述

本关需要你求一个二维数组的最小值。

相关知识

前面学做的题目都是一维数组,本关来点不一样的,做一个二维数组的题目。

二维数组

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。 二维数组定义的一般形式是:

 
  1. 类型说明符 数组名[常量表达式1][常量表达式2]。

二维数组又称为矩阵,行列数相等的矩阵称变方阵。所以在初始化二维数组时可以通过在括号内为每行指定值来进行初始化。 下面是一个带有 3 4 列的数组:

 
  1. int a[3][4] = {
  2. {0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
  3. {4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
  4. {8, 9, 10, 11} /* 初始化索引号为 2 的行 */
  5. };

内部嵌套的括号是可选的,下面的初始化与上面是等同的:

 
  1. int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

完成函数main(),求二维数组a[5][4]中的最小值并返回。

测试说明

平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。 测试输入:13 34 51 678 212 345 543 765 8906 23 1 34 -1 12 23 90 123 45 324 9

预期输出:min=-1


开始你的任务吧,祝你成功!

#include <stdio.h>
int amin(int a[5][4])
{
    // 请在此添加你的代码
    /********** Begin *********/
    int i,j,t;
    for(i=0;i<5;i++){
      for(j=0;j<4;j++){
        if(a[i][j]<a[i][j+1]){
            t=a[i][j];
            a[i][j]=a[i][j+1];
            a[i][j+1]=t;
        }
      }
    }
    return t;
    /**********  End  **********/
}

int main()
{
  int a[5][4],i,j;
  for(i=0;i<5;i++)
    for(j=0;j<4;j++)
      scanf("%d",&a[i][j]);
  printf("min=%d\n",amin(a));
  return 0;
}

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

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

相关文章

【C++】多态 — 多态的原理 (下篇)

文章目录&#x1f4d6; 前言1. 虚函数表1.1 虚函数表的引入&#xff1a;1.2 基类的虚表&#xff1a;1.3 派生类虚表&#xff1a;2. 多态的原理2.1 多态虚函数的调用和普通函数的调用&#xff1a;2.1 - 1 到底什么是多态&#xff08;重点&#xff09;2.1 - 2 父类的指针实现多态…

Allegro基本规则设置指导书之Analysis Modes

Allegro基本规则设置指导书之Analysis Modes 下面介绍基本规则设置指导书之Analysis Modes 点击set-up-constrains-Modes 调出Analysis Modes,这个是所有DRC的总开关 下面介绍常用的一些开关设置 Design Options (Soldermask) 从上往下 阻焊到阻焊的间距 阻焊到pad和走线…

EasyCVR及智能分析网关在校园视频融合及明厨亮灶项目中的应用方案设计

随着校园智能化需求的不断增长&#xff0c;越来越多的校园逐渐开始升级校园监控视频平台&#xff0c;将原先传统的视频监控系统&#xff0c;逐渐升级转变为灵活性强、视频能力丰富、具备AI检测能力、并能支持视频汇聚与统一管理的智能化校园综合管理平台。 在某学校的视频监控…

MapReduce概述

MapReduce概述 MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一个Hadoop集群上。 MapReduce…

【优化算法】鹈鹕优化算法(POA)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑…

ARMv7/ARMv8/ARMv9架构你不知道的那些事

快速链接: . &#x1f449;&#x1f449;&#x1f449; 个人博客笔记导读目录(全部) &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 以下仅代表个人观点&…

七大排序算法——快速排序

AcWing算法专题——快速排序 文章目录AcWing算法专题——快速排序前言一、快速排序的核心二、算法图示三、算法代码四、算法详解1.递归停止的条件2.下标移动的实现3.下标初始值的设定4.边界情况分析4.1区间划分4.2 do while循环条件五、思考题总结前言 现在我们开始进入算法模块…

【第一章 虚拟机】

第一章 虚拟机 1. 虚拟机VM ①虚拟机就是一台虚拟的计算机&#xff0c;它是一款软件&#xff0c;用来执行一系列虚拟计算机指令。 ②虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机&#xff08;比如VMware&#xff09;,它们完全是对物理计算机的仿真&#xff0c;提供了一个可运…

瑞芯微rk3568移植openbmc(三)

2022.11.04 更新 1、关于h264 novnc openbmc中使用的ipkvm其server端调用的是libvncserver库&#xff0c;而其web client端调用的则是novnc的库&#xff0c;既上篇研究修改了libvncserver后&#xff0c;再次继续研究了一下novnc。 Github搜索一圈以后&#xff0c;发现https://…

Java设计模式之单例模式详细讲解

设计模式与单例模式 1、什么是单例模式 ​ 单例模式是指保证某个类在整个软件系统中只有一个对象实例&#xff0c;并且该类仅提供一个返回其对象实例的方法&#xff08;通常为静态方法&#xff09; 2、单例模式的种类 ​ 经典的单例模式实现方式一般有五种 2.1 饿汉式 //…

【SpringBoot】SpringBoot整合SpringSecurity+thymeleaf实现认证授权(配置对象版)

一.概述 1.框架概述 Spring Security 是 Spring 家族中的一个安全管理框架&#xff0c;Spring Security 的两大核心功能就是认证&#xff08;authentication&#xff09;和授权&#xff08;authorization&#xff09;。 认证 &#xff1a;你是什么人。授权 &#xff1a;你能…

RHCE学习 --- 第一次作业

RHCE学习 — 第一次作业 首先我们先设置网卡开机自动启动 vi /etc/sysconfig/network-scripts/ifcfg-ens160 最下面修改ONBOOTyes 然后安装好chrony&#xff0c;配置/etc/chrony.conf文件&#xff0c;添加题目要求的时间服务器 然后设置一个例行性工作&#xff0c;每天早上九…

美国FBA海运专线究竟是什么?美国fba海运专线都有那些?

美国FBA海运专线究竟是什么?美国FBA特别航运线&#xff0c;顾名思义就是海运发送的特别货运线&#xff0c;那么它的收费标准是什么呢?一、美国FBA海运专线究竟是什么 美国FBA特别航运线&#xff0c;顾名思义就是海运发送的特别货运线&#xff0c;那么它的收费标准是什么呢? …

猿创征文|『编程与创作』10款颜值颇高的宝藏工具

&#x1f31f;个人主页&#xff1a;Mymel_晗&#xff0c;一名喜欢鼓捣 Java 的在校学生。 &#x1f31f;撸代码本来是一件枯燥的事情&#xff0c;而一款高颜值工具加持可能会让你事半功倍&#xff0c;今天就给大家推荐一下我在大学学习中发现的几款颜值工具~ 从写代码&#xff…

录音m4a怎么转换成mp3

有小伙伴问手机录音文件电脑上播放不了怎么办&#xff1f;这是很多小伙伴在用手机录完音后遇到最多的问题&#xff0c;尤其是那些第一次遇到这个问题的人&#xff0c;根本不知道这是什么原因导致的&#xff0c;还总以为自己的录音文件出了问题&#xff0c;回去检查发现手机上还…

03-Nginx性能调优与零拷贝

目录 Nginx 性能调优 零拷贝&#xff08;Zero Copy&#xff09; 零拷贝基础 A、 实现细节 B、 总结 零拷贝方式 A、 实现细节 B、 总结 A、 实现细节 B、 总结 A、 实现细节 B、 总结 Nginx 性能调优 在 Nginx 性能调优中&#xff0c;有两个非常重要的理论点&#xff08;面试点…

【C++红黑树】带图详细解答红黑树的插入,测试自己的红黑树是否正确的代码

目录 1.红黑树的概念 1.1红黑树的特性&#xff08;41&#xff09; 2.红黑树的框架 3.红黑树的插入 3.1parent在grandfather的左边 3.1parent在grandfather的右边 4.测试自己的红黑树是不是平衡的 1.红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个…

米联客FDMA3.1数据缓存方案全网最细讲解,自创升级版,送3套视频和音频缓存工程源码

米联客的FDMA数据缓存方案发布也有五六年了&#xff0c;但真正能熟练使用的兄弟却很少&#xff0c;其实还是没有好的例程作为参考和同熟易懂的讲解&#xff0c;这里我做如下解析&#xff1a; FDMA部分&#xff1a;这部分是米联客封装了用户接口的AXI4-FULL协议代码&#xff0c;…

xhs-web校验流程分析

经测试&#xff0c;cookie中需携带gid和timestamp2。参数整理有点乱&#xff0c;仅供参考。 xhsFingerprintV3&#xff0c;VERSION: ‘2.1.2’ 文章目录流程概述timestamp2滑块验证参数Params轨迹FNcaptcha deviceIdProfileDatax-s-commonx5生成x8生成x9生成smidV2a1x-b3-trac…

Jenkins配置linux节点

之前在Windows下安装Jenkins 但是通过windows节点进行构建有诸多的不便&#xff0c;于是想到通过Jenkins里添加linux节点&#xff0c;让构建的时候&#xff0c;使用远程的linux服务器构建 目录一、配置凭据二、配置节点一、配置凭据 Manage Jenkins → Manage Credentials→Je…