c语言上机作业5 数组 答案,C语言上机5数组.doc

C语言上机5数组

C语言上机五 数组

一、上机目的

熟练;

熟练掌握。

熟练使用实现程序设计

以下程序定义了三个数组并分别打印出来:

一个含有5个元素的整型数组,值分别为10,20,30,40,

一个含有8个元素的字符型数组,第2、4、6、8个元素分别为gdut四个字符。

一个含有15个元素的浮点型数组,其中第1个和第4个元素的值为3.14,第2个和第5个的值为6.18,其余的元素值为0。

程序的运行结果如下,请将源程序补充完整。

2)伪随机数与数组元素赋值

伪随机数函数rand() 可以用来产生0-32767 之间的伪随机数.

它是根据一个数(称为种子)为基准以某个递推公式推算出来的一个数列,当这个数列很大的时候,符合正态公布,从而相当于产生了随机数。

用法:

#include "stdlib.h" //包含C语言标准库函数

int randNum; //定义一个变量randNum

randNum = rand() // randNum的值0-32767

运行以下程序5次,观察每一次的结果是否相同?

3)srand( )获得随机数种子,用于产生随机数

用法:srand( int x );

运行以下程序5次,每次都改变Seed的值,观察每一次的结果是否相同?

4)产生真正随机数的办法

利用time() 函数根据系统时间获得一个数,做为随机数的种子。由于系统时间是变化的,所以获得的随机数种子也是变化的。

time(NULL)或time(0): 利用time函数返回unsigned int,值为1970年1月1日

午夜到现在所经历的时间。

用法:

#include "time.h" //包含时间库函数

srand(time(NULL)): 以time函数的返回值为种子。

运行以下程序5次,观察每一次的结果是否相同?

编写一段语句加入以上程序,统计生成的随机数中奇数和偶数的个数。

5)数组元素的查找

分析以下程序,学习如何在数组中查找元素

6)在数组中插入元素

输入一个正整数x,把x插入到组数据中,使该组数据仍然有序。

7)数组的排序

i) 比较交换排序法

算法步骤:

1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

2)再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

3)重复第二步,直到所有元素均排序完毕。

分析以下程序,掌握比较交换排序法。

ii) 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地比较数组中的两个相邻元素,如果顺序错误就交换。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

算法步骤:

1)比较相邻的元素a[j]和a[j+1]。如果a[j]比a[j+1]大,就交换a[j]和a[j+1]。

2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

3)针对所有的元素重复以上的步骤,除了最后一个。

4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

三、上机作业

选择题:

1. 以下关于数组的描述正确的是( )。

A. 数组的大小是固定的,但可以有不同的类型的数组元素

B. 数组的大小是可变的,但所有数组元素的类型必须相同

C. 数组的大小是固定的,所有数组元素的类型必须相同

D. 数组的大小是可变的,可以有不同的类型的数组元素

2. 以下对一维整型数组a的正确说明是( )。

A.int a(10); B. int n=10,a[n];

C.int n; D. #define SIZE 10

scanf("%d",&n); int a[SIZE]; int a[n];

3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A. 整型常量

B. 整型表达式

C. 整型常量或整型表达式

D. 任何类型的表达式

4. 以下对一维数组m进行正确初始化的是( )。

A. int m[10]=(0,0,0,0) ; B. int m[10]={ };

C. int m[ ]={0}; D. int m[10]={10*2};

5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( )。

A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值