当前位置: 首页 > news >正文

C语言基本知识复习浓缩版:数组

所谓数组(Array),就是一系列数据的集合。这些数据具有相同的类型,并且在内存中挨着存放,彼此之间没有缝隙。换句话说,数组用来存放多份数据,但是它有两个要求:

  • 这些数据的类型必须相同;
  • 这些数据在内存中必须连续存储。

1、数组的概念和定义

  • 数组是一种数据结构,用于存储一组相同类型的数据
  • 数组中的元素在内存中是连续存放的。
  • 数组通过下标来访问元素,下标从0开始。

int arr[5]={1, 2, 3, 4, 5};

2、数组的声明和初始化


数组的声明


数组声明格式:数组类型 数组名[数组的大小]
数组的大小必须是正整数。
数组大小不能为负数,且数组一旦声明,大小就不能改变。

int a[10];                   合法,最创建的数组声明
int a[3+3];                 合法3+3的结果是一个确定的正整数
# define X 10 int a[X];    合法,X是一个符号常量。
int n=10, a[n];           不合法,n是一个变量

数组的初始化:


全部初始化:
int arr[5]={1 ,2 ,3 ,4, 5,};
部分初始化:
int arr[5]={1, 2};
没有初始化时,数组的默认值(通常为未定义)。

  • int a[5]={1, 2, 3, 4, 5};    合法,完全初始化
  • int a[5]={1, 2, 3};        合法,部分初始化
  • int a[]={1, 2, 3, 4, 5, 6};    合法,数组的大小由初始化元素个数决定
  • int a[5]=(1, 2, 3, 4, 5);    不合法,数组的大小由初始化完全初始化
  • int a[5]={1, 2, 3, 4, 5, 6};    不合法,初始化的元素个数大于数组本身大小。


真题


以下能对一维数组a进行初始化的语句是:


A、int a[5]=(0, 1, 2, 3, 4,);
B、int a(a)={};
C、int a[3]={0, 1 ,2};
D、int a{5}={10*1};
正确答案:C

在c语言中对一维整形数组的正确定义为:


A、int a(10);        B、int n=10,a[10]
C、int n;a[n];        D、#define N 10
                 int a[N];
正确答案是:D

3、数组元素的访问

  • 使用下标访问数组中的元素:array[下标]。
  • 下标是从0开始,并且下标是一个整数。
  • 下标越界将导致未定义行为。

真题


已知:int a[10]; 则对a数组元素的正确引用是:


A、a[10]    B、a[3.5]    C、a(5)    D、a[0]
正确答案是:D

若有以下数组说明,则i=10;a[a[i]]元素数值是:


int a[12]={1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 12};
A、10    B、9    C、6    D、5
正确答案是:C

4、二维数组


二维数组可以看作是“数组的数组”,即一个包含多个一维数组的数组。
它用来表示矩阵或表格等二位数据。

二维数组的声明格式:数据类型 数据名[行数][列数];

二维数组的初始化

  • int arr[2][3]={{1, 2, 3}, {4, 5, 6}};        合法,第一行的元素是1,2,3,第二行的元素是4, 5, 6
  • int arr[2][3]={1, 2, 3,4, 5, 6};              合法,第一行的元素是1,2,3,第二行的元素是4, 5, 6
  • int arr[2][3]={1, 2, 3, 4};                     合法,第一行的元素是1,2,3,第二行的元素是4, 0, 0
  • int arr[][3]={1, 2, 3, 4};                       合法,行数可以根据初始化元素的个数推断出来
  • int arr[2][]={1, 2, 3, 4, 5};                   不合法,列数必须指定

真题


求一维数组a[10]中各元素的平均值,并输出小于平均值的元素。


假定数组内容为:1.2 7 5 1.8 1.6 0.8 4 1.0 6 2.2

#include <stdio.h>
int main()
{float a[10] = {1.2, 7, 5, 1.8, 1.6, 0.8, 4, 1.0, 6, 2.2};float sum = 0.0;float avg = 0.0;for (int i =0; i<10; i++){sum += a[i];}avg=sum /10;printf("avg= %f\n", avg);for (int i =0; i<10; i++){if (a[i] < avg){printf("%4.1f\n", a[i]);}}return 0;
}

输出:

avg= 3.060000
 1.2
 1.8
 1.6
 0.8
 1.0
 2.2

相关文章:

C语言基本知识复习浓缩版:数组

所谓数组&#xff08;Array&#xff09;&#xff0c;就是一系列数据的集合。这些数据具有相同的类型&#xff0c;并且在内存中挨着存放&#xff0c;彼此之间没有缝隙。换句话说&#xff0c;数组用来存放多份数据&#xff0c;但是它有两个要求&#xff1a; 这些数据的类型必须相…...

Python贪心

贪心 贪心&#xff1a;把整体问题分解成多个步骤&#xff0c;在每个步骤都选取当前步骤的最优方案&#xff0c;直至所有步骤结束&#xff1b;每个步骤不会影响后续步骤核心性质&#xff1a;每次采用局部最优&#xff0c;最终结果就是全局最优如果题目满足上述核心性质&#xf…...

rk3568 内核态OOM内存泄漏kmemleak使用

1&#xff0c;配置&#xff0c;修改\kernel\arch\arm64\configs\rockchip_linux_defconfig&#xff0c;修改后查看.config. larkubuntu:~/Public/rk356x-linux/rk356x-linux/kernel$ cat .config | grep -i kmemleak CONFIG_HAVE_DEBUG_KMEMLEAKy CONFIG_DEBUG_KMEMLEAKy CONFI…...

ASP.NET Core - 日志记录系统(二)

ASP.NET Core - 日志记录系统&#xff08;二&#xff09; 2.4 日志提供程序2.4.1 内置日志提供程序2.4.2 源码解析 本篇接着上一篇 ASP.NET Core - 日志记录系统(一) 往下讲&#xff0c;所以目录不是从 1 开始的。 2.4 日志提供程序 2.4.1 内置日志提供程序 ASP.NET Core 包括…...

阿里云直播互动Web

官方文档&#xff1a;互动消息Web端集成方法_视频直播(LIVE)-阿里云帮助中心 以下是代码实现&#xff1a; <!-- 引入阿里云互动文件 --> <script src"https://g.alicdn.com/code/lib/jquery/3.7.1/jquery.min.js"></script> <script src&quo…...

解锁无证身份核验:开启便捷安全新征程

在当今快速发展的数字化时代&#xff0c;身份核验作为确保信息安全与交易诚信的基石&#xff0c;正经历着前所未有的变革。传统的身份核验方式&#xff0c;如携带身份证件进行现场验证&#xff0c;虽在一定程度上保障了安全&#xff0c;却也带来了诸多不便。随着科技的进步&…...

[DO374] Ansible 配置文件

[DO374] Ansible 配置文件 1. 配置文件位置2. 配置文件3. Ansible 配置4. Ansible的Ad-hoc5. Ansible 模块6. playbook段落7. 任务执行后续8. Ansible 变量8.1 ansible 变量的定义8.1.1 主机变量8.1.2 主机组变量 8.2 vars的循环 9. Ansible Collection10. Ansible-galaxy 安装…...

【杂谈】-50+个生成式人工智能面试问题(四)

7、生成式AI面试问题与微调相关 Q23. LLMs中的微调是什么&#xff1f; 答案&#xff1a;虽然预训练语言模型非常强大&#xff0c;但它们并不是任何特定任务的专家。它们可能对语言有惊人的理解能力&#xff0c;但仍需要一些LLMs微调过程&#xff0c;开发者通过这个过程提升它…...

RuoYi Cloud项目解读【四、项目配置与启动】

四、项目配置与启动 当上面环境全部准备好之后&#xff0c;接下来就是项目配置。需要将项目相关配置修改成当前相关环境。 1 后端配置 1.1 数据库 创建数据库ry-cloud并导入数据脚本ry_2024xxxx.sql&#xff08;必须&#xff09;&#xff0c;quartz.sql&#xff08;可选&…...

51c~Pytorch~合集5

我自己的原文哦~ https://blog.51cto.com/whaosoft/13059544 一、PyTorch DDP 正在郁闷呢 jetson nx 的torchvision安装~~ 自带就剩5g 想弄到ssd 项目中的 venv中又 cuda.h没有... 明明已经装好什么都对 算了说今天主题 啊对 还是搬运啊 学习之工具人而已 勿怪 Distrib…...

【芯片封测学习专栏 -- 什么是 Chiplet 技术】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 OverviewChiplet 背景UCIeChiplet 的挑战 Overview Chiplet 又称为小芯片。该技术通过将大型SoC划分为更小的芯片&#xff0c;使得每个部分都能采用不同…...

Java SpringBoot + Vue + Uniapp 集成JustAuth 最快实现多端三方登录!(QQ登录、微信登录、支付宝登录……)

注&#xff1a;本文基于 若依 集成just-auth实现第三方授权登录 修改完善&#xff0c;所有步骤仅代表本人如下环境亲测可用&#xff0c;其他环境需自辩或联系查看原因&#xff01; 系统环境 运行系统&#xff1a;Windows10专业版、Linux Centos7.6 Java 版本&#xff1a;1.8.0_…...

支持向量回归(SVR:Support Vector Regression)用于A股数据分析、预测

简单说明 支持向量回归是一种用来做预测的数学方法,属于「机器学习」的一种。 它的目标是找到一条「最合适的线」,能够大致描述数据点的趋势,并允许数据点离这条线有一定的误差(不要求所有点都完全落在这条线上)。 可以把它想象成:找到一条「宽带」或「隧道」,大部分…...

ZYNQ初识10(zynq_7010)UART通信实验

基于bi站正点原子讲解视频&#xff1a; 系统框图&#xff08;基于串口的数据回环&#xff09;如下&#xff1a; 以下&#xff0c;是串口接收端的波形图&#xff0c;系统时钟和波特率时钟不同&#xff0c;为异步时钟&#xff0c;&#xff0c;需要先延时两拍&#xff0c;将时钟同…...

专题 - STM32

基础 基础知识 STM所有产品线&#xff08;列举型号&#xff09;&#xff1a; STM产品的3内核架构&#xff08;列举ARM芯片架构&#xff09;&#xff1a; STM32的3开发方式&#xff1a; STM32的5开发工具和套件&#xff1a; 若要在电脑上直接硬件级调试STM32设备&#xff0c;则…...

2 XDMA IP中断

三种中断 1. Legacy 定义&#xff1a;Legacy 中断是传统的中断处理方式&#xff0c;使用物理中断线&#xff08;例如 IRQ&#xff09;来传递中断信号。缺点&#xff1a; 中断线数量有限&#xff0c;通常为 16 条&#xff0c;限制了可连接设备的数量。中断处理可能会导致中断风…...

自然语言转 SQL:通过 One API 将 llama3 模型部署在 Bytebase SQL 编辑器

使用 Open AI 兼容的 API&#xff0c;可以在 Bytebase SQL 编辑器中使用自然语言查询数据库。 出于数据安全的考虑&#xff0c;私有部署大语言模型是一个较好的选择 – 本文选择功能强大的开源模型 llama3。 由于 OpenAI 默认阻止出站流量&#xff0c;为了简化网络配置&#…...

抖音矩阵是什么

抖音矩阵是指在同一品牌或个人IP下&#xff0c;通过创建多个不同定位的抖音账号&#xff08;如主号、副号、子号等&#xff09;&#xff0c;形成一个有机的整体&#xff0c;以实现多维度、多层次的内容覆盖和用户互动。以下是关于抖音矩阵的详细介绍&#xff1a; 抖音矩阵的类…...

怎么抓取ios 移动app的https请求?

怎么抓取IOS应用程序里面的https&#xff1f; 这个涉及到2个问题 1.电脑怎么抓到IOS手机流量&#xff1f; 2.HTTPS怎么解密&#xff1f; 部分app可以使用代理抓包的方式&#xff0c;但是正式点的app用代理抓包是抓不到的&#xff0c;例如pin检测&#xff0c;证书双向校验等…...

pyqt鸟瞰

QApplication‌是Qt框架中的一个类&#xff0c;专门用于管理基于QWidget的图形用户界面&#xff08;GUI&#xff09;应用程序的控制流和主要设置。QApplication类继承自QGuiApplication&#xff0c;提供了许多与GUI相关的功能&#xff0c;如窗口系统集成、事件处理等。 QAppli…...

【Docker】入门教程

目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …...

Token和JWT的关系详细讲解

Token 和 JSON Web Token (JWT) 是两个相关但概念上不同的术语&#xff0c;它们在现代 Web 应用程序的身份验证和授权中扮演着重要角色。下面将详细介绍两者之间的关系以及 JWT 的具体工作原理。 1. Token 概述 Token 是一种广义的概念&#xff0c;指的是任何可以证明用户身份…...

【Linux系列】Curl 参数详解与实践应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

解决 Git SSL 连接错误:OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno

问题描述 在执行 git pull 命令时遇到以下错误&#xff1a; > git pull --tags origin main fatal: unable to access github仓库: OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0这个错误通常表示 Git 在尝试通过 HTTPS 连接到 GitHub 时遇到了 SSL 连接问题。 解决方案…...

《Vue3 八》<script setup> 语法

<script setup> 是在单文件中使用 Composition API 的编译时语法糖&#xff0c;里面的代码会被编译成组件 setup() 函数的内容。 <script setup> 中的代码在每次组件实例被创建的时候都都会被执行。 定义数据&#xff1a; 在 <script setup> 语法糖的写法中…...

51单片机和STM32集成蓝牙模块实用指南

51单片机和STM32集成蓝牙模块实用指南 蓝牙模块&#xff08;如HC-05、HC-06、JDY-31等&#xff09;是嵌入式开发中常用的无线通信模块&#xff0c;广泛应用于智能家居、物联网、机器人等领域。本文将详细介绍如何将蓝牙模块集成到 51单片机 和 STM32 中&#xff0c;并提供一个…...

Transformer:深度学习的变革力量

深度学习领域的发展日新月异&#xff0c;在自然语言处理&#xff08;NLP&#xff09;、计算机视觉等领域取得了巨大突破。然而&#xff0c;早期的循环神经网络&#xff08;RNN&#xff09;在处理长序列时面临着梯度消失、并行计算能力不足等瓶颈。而 Transformer 的横空出世&am…...

sql 函数

# 四则运算 - * / # 函数 distinct 、count、sum、max、min、avg、sum、round select concat(device_id 是,device_id ) device_id from device_id_apply_factor where device_id D6A42CE6A0; select concat_ws(|||,device_id ,factor_a ,module_type) from 、device_id_app…...

C# OpenCV机器视觉:OCR产品序列号识别

在一个看似平常却又暗藏玄机的工作日&#xff0c;阿明正坐在办公室里&#xff0c;对着堆积如山的文件唉声叹气。突然&#xff0c;电话铃声如炸雷般响起&#xff0c;吓得他差点从椅子上摔下来。原来是公司老板打来的紧急电话&#xff1a;“阿明啊&#xff0c;咱们刚生产出来的那…...

2012wtl,学习活扩

原文 WTL学习注意–活扩 在Win32下,活扩控件已是个成熟的概念了,即使对COM不太了解,使用活扩控件仍是件容易的事情.既然是控件,无非要关注两个方面,第一是如何调用它的函数,其次是如何接收它的事件. 看看在WTL中,如何使用活扩控件(基本对话框): 1.创建项目时,让对话框支持活…...

有什么网站可以做投票功能吗/国际国内新闻最新消息今天

(?iLmsux)iLmsux每个字符代表一个匹配模式(?!abc)Abc, abc, ......(?#...)#之后的内容作为注释被忽略 (?...)之后的字符串内容需要匹配表达式&#xff0c;不消耗字符串内容a(?d)后面是数字的a (?!...)之后的字符串内容需要不匹配表达式&#xff0c;不消耗字符串内容a(?!…...

可以兼职做翻译的网站或app/360优化大师官网

作者&#xff1a;吕小鸣https://zhuanlan.zhihu.com/p/143884250本文将之前采用Vue2.6开发的todoList小项目改造成为Vue3.0编写&#xff0c;并介绍一下2.x和3.x之间写法的不同之处。点击体验[1] Github地址&#xff1a;Vue.js2.6版本todoList[2]&#xff0c;Vue.js3.0版本todoL…...

网站开发要学什么语言/重庆旅游seo整站优化

PHP 生成中文验证码乱码问题解决//将要处理的汉字,先由UTF8的汉字转成html实体形式再使用.//示例代码://ini_set(JIS-mapped Japanese Font Support,false);$picimagecreate(250,30);$blackimagecolorallocate($pic,0,0,0);$whiteimagecolorallocate($pic,255,255,255);$font&q…...

网站如何免费做SEO优化/怎么去营销自己的产品

查看JVM各个参数值方式 1. HotSpot vm中的各个globals.hpp文件 查看jvm初始的默认值及参数 globals.hpp globals_extension.hpp c1_globals.hpp c1_globals_linux.hpp c1_globals_solaris.hpp c1_globals_sparc.hpp c1_globals_windows.hpp c1_globals_x86.hpp c2_glo…...

减肥网站开发目的/无锡百度快照优化排名

在i386文件夹里有一个eula.txt&#xff0c;最后有一行EULAID&#xff0c;就是你的版本 OEM:WX.2_PRO_OEM_TW(or.WX.2_PRE_OEM_TW) EVAL:WX.2_PRO_RVL_TW(or.WX.2_PRE_RAL_TW) RTL.:WX.4_PRO_RTL_TW中文正式版的版本是EULAID:WX.4_PRO_RTL_CN 1.如果是WX.开头是正式版&#xff0…...

淘宝内部卷怎么做网站/特色产品推广方案

ChartDirector是一个非常理想的图表工具&#xff0c;它拥有广泛的图表类型、分层架构、实时互动的大数据表、普遍适应于各种应用程序以及支持PDF和SVG图标等的优点。此系列连载旨在介绍ChartDirector的实用教程&#xff0c;供大家学习讨论。一、简单条形图&#xff08;一&#…...