C语言之数组练习题

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

第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
  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明

任务描述

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

相关知识

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

头歌c语言之数组 第1关:数组插入元素,湖南工业大学(移动云启),c语言,开发语言,算法

编程要求

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

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

测试说明

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

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

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


开始你的任务吧,祝你成功!文章来源地址https://www.toymoban.com/news/detail-755401.html

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

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

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

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

相关文章

  • 单链表功能函数练习——按规定插入指定节点及删除最小值节点(C语言)

    * 函数名称: LList_DestInsert * 函数功能: 在指定值位置处,插入指定的数据data * 函数参数: ​ LList_t *Head: 需要操作的链表头节点 ​ DataType_t dest: 插入位置的值 ​ DataType_t data: 需要插入的指定的数据 * 返回结果: true or false * 注意事项: None * 函数作者: ni456xinmie@163.com * 创建日期:

    2024年04月23日
    浏览(51)
  • 【C语言练习】数组OJ题

    题目: 思路1: 数组是从0加到N,所以把0到N的数加起来减去数组中的值,结果就是消失的数字。时间复杂度为O(N) 代码: 思路2: 采用单身狗思路(异或法) 从0到N的值是依次加1,数组中消失的数字唯一出现一次,其他的数字都是成对出现 代码: 题目: 创建两个变量src和

    2024年02月11日
    浏览(32)
  • C语言之数组练习题

    第1关:数组插入元素 300 任务要求 参考答案 评论106 任务描述 相关知识 数组 数组元素的表示方法 编程要求 测试说明 任务描述 本关需要你将一个数插入到一组已经排好序的数组并输出。 相关知识 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式

    2024年02月05日
    浏览(43)
  • C语言把一个数插入到有序数组中使新数组依然有序案例讲解

    我们先看一道例题: 有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。 思路分析 1)这个数组是有序数组,升序降序题意没说 ,我们就假定这个有序数组是升序的(数字从小到大排序)。 2)要插入的数字假如比数组的任何一个数字都要小

    2024年02月04日
    浏览(31)
  • C语言:在数组中查找指定元素

    【问题描述】本题要求实现一个在数组中查找指定元素的简单函数。   函数接口定义:   如果找到,则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。 【输入形式】输入数组元素的个数n ;用户传入的数组list[ ] ; 待查找的元素 x 【输出形式】输出相应元

    2024年02月02日
    浏览(37)
  • C语言:指向数组的指针和指向数组首元素的指针

    相关阅读 C语言 https://blog.csdn.net/weixin_45791458/category_12423166.html?spm=1001.2014.3001.5482         指向数组的指针和指向数组首元素的指针常常被混淆,或者笼统地被称为数组指针,但它们之间是有差别的,本文就将对此进行讨论。         下面的代码首先创建了一个数组,然后创

    2024年02月02日
    浏览(40)
  • 【C语言】数组和指针刷题练习

    指针和数组我们已经学习的差不多了,今天就为大家分享一些指针和数组的常见练习题,还包含许多经典面试题哦! 一、求数组长度和大小 普通一维数组 字符数组 字符串数组 指向字符串的字符指针 二维数组 总节: 数组名的意义: sizeof(数组名),这里的数组名表示整个数

    2024年02月07日
    浏览(30)
  • C语言——指针和数组练习题解析

    学习了指针的初阶和进阶后,已经对指针有了一定了解。下面就需要做题目,去巩固所学的知识。 对数组名的理解: 数组名是数组首元素的地址,但是由两个例外 sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。 数组名,这里的数组名是整个数组,

    2024年02月16日
    浏览(45)
  • 【PTA-C语言】编程练习4 - 数组Ⅱ

    如果代码存在问题,麻烦大家指正 ~ ~ 有帮助麻烦点个赞 ~ ~ 作者 李民 单位 武汉理工大学 本题模拟2048游戏的规则,提供4X4个格子,输入每个格子的初始值(空白格子值为0),玩家选择向下移动,所有数字向下靠拢,相同的数字相撞时会合并。移动结束后,输出合并后的数值

    2024年02月03日
    浏览(31)
  • 【PTA-C语言】编程练习4 - 数组Ⅰ

    如果代码存在问题,麻烦大家指正 ~ ~ 有帮助麻烦点个赞 ~ ~ 作者 翁恺 单位 浙江大学 班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢? 输入格式:

    2024年02月03日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包