IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 写给大一的C语言--数组 -> 正文阅读

[数据结构与算法]写给大一的C语言--数组

数组

请根据提示完成下列程序:

第一题:指示器可能会对同一个数组元素进行多次初始化操作。考虑下面的数组声明:

int a[] = {4, 9, 1, 8, [0] = 5, 7};
这个声明是否合法?如果合法,数组的长度是多少?
答: 这个声明是合法的。下面是它的工作原理:编译器在处理初始化器列表时,会记录下一个待初始化的数组元素的位置。正常情况下,下一个元素是刚被初始化的元素后面的那个。但是,当列表中出现指示器时,下一个元素会被强制为指示器指定的元素,即使该元素已经被初始化了。

下面逐步分析编译器处理数组a 的初始化器的操作:
? 用4 初始化元素0,下一个待初始化的是元素1;
? 用9 初始化元素1,下一个待初始化的是元素2;
? 用1 初始化元素2,下一个待初始化的是元素3;
? 用8 初始化元素3,下一个待初始化的是元素4;
? [0]指示符导致下一个元素是元素0,所以用5 初始化元素0(替换先前存储的4)。下一个待
初始化的是元素1;
? 用7 初始化元素1(替换先前存储的9)。下一个待初始化的是元素2(跟本例不相关,因为已
经到达列表的末尾)。
最终效果跟下面的声明一样:
int a[] = {5, 7, 1, 8};
因此,数组的长度为4。

第二题:斐波那契数为0, 1, 1, 2, 3, 5, 8, 13, …,其中从第三个数开始,每个数是其前面两个数的和。

编写一个程序片段,声明一个名为fib_number 的长度为40 的数组,并填入前40 个斐波那契数。提示:先填入前两个数,然后用循环计算其余的数。

第三题:计算器、电子手表和其他电子设备经常依靠七段显示器进行数值的输出。

为了组成数字,这类设备需要“打开”7 个显示段中的某些部分,同时“关闭”其他部分: 假设需要设置一个数组来记住显示每个数字时需要“打开”的显示段。各显示段的编号如下所示:

在这里插入图片描述
下面是数组的可能形式,每一行表示一个数字:
const int segments[10][7] = {{1, 1, 1, 1, 1, 1, 0}, …};
上面已经给出了初始化器的第一行,请填充余下的部分。

第四题:为一个8×8 的字符数组编写声明,数组名为checker_board。然后用一个循环把下列数据写入数组

(每个字符对应一个数组元素):
B R B R B R B R
R B R B R B R B
B R B R B R B R
R B R B R B R B
B R B R B R B R
R B R B R B R B
B R B R B R B R
R B R B R B R B
提示:如果i + j 为偶数,则i 行j 列的元素为B。

第五题:有一个名叫B1FF 的人,是典型的网络新手,他有一种独特的编写消息的方式。下面是一条常见的B1FF 公告:

H3Y DUD3, C 15 R1LLY C00L!!!
编写一个“B1FF 过滤器”,它可以读取用户输入的消息并把此消息翻译成B1FF 的表达风格:
Enter message: Hey dude, C is rilly cool
In B1FF-speak: H3Y DUD3, C 15 R1LLY C00L!!!
程序需要把消息转换成大写字母,用数字代替特定的字母(A→4、B→8、E→3、I→1、O→0、S→5),然后添加10 个左右的感叹号。提示:把原始消息存储在一个字符数组中,然后从数组头开始逐
个翻译并显示字符。

第六题:编写程序读取一个5×5 的整数数组,然后显示出每行的和与每列的和。

Enter row 1: 8 3 9 0 10
Enter row 2: 3 5 17 1 1
Enter row 3: 2 8 6 23 1
Enter row 4: 15 7 3 2 9
Enter row 5: 6 14 2 6 0
Row totals: 30 27 40 36 28
Column totals: 34 37 37 32 21

第七题:编写程序颠倒句子中单词的顺序:

Enter a sentence: you can cage a swallow can’t you?
Reversal of sentence: you can’t swallow a cage can you?
提示:用循环逐个读取字符,然后将它们存储在一个一维字符数组中。当遇到句号、问号或者感叹号(称为“终止字符”)时,终止循环并把终止字符存储在一个char 类型变量中。然后再用一个循环反向搜索数组,找到最后一个单词的起始位置。显示最后一个单词,然后反向搜索倒数第二个单词。重复这一过程,直至到达数组的起始位置。最后显示出终止字符。

第八题:一维数组的应用。

定义一个一维整型数组a[],此数组有10个元素,并使用for循环进行初始化,{1,2,3,4,5,6,7,8,9,10}.使用sizeof求出此数组占用的空间和a[0]与a[9]的位置。

祝同学们学习愉快,感谢CSDN平台。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 16:14:34  更:2021-12-18 16:16:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:24:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码