欢迎来到天天文库
浏览记录
ID:33946113
大小:62.01 KB
页数:8页
时间:2019-03-02
《c语言数组典型例题分析与解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数组练习解答1定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是________________【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。【答案】方法一:floata[4]
2、={0.0,0.0,0.0,0.0}; 方法二:floata[]={0.0,0.0,0.0,0.0}; 方法三:floata[4]={0.0}; 方法四:staticfloat[4];2下列数组定义语句中,错误的是()①charx[1]='a'; ②autocharx[1]={0};③staticcharx[l]; ④charx[l];【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。【答案】①3用"冒泡排
3、序法"对n个数据排序,需要进行n一1步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列 4 1 1 1 4 2 3 2 4 2 3 3【答案】l、2、4、34用"选择排序法"对n个数据排序,需要
4、进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。【分析】 开始排序前的排列为: 4 1 3 2 执行第1步后的排列为: 1 4 3 2 执行第2步后的排列为: 1 2 3 4【答案】1、2、3、45下列数组定义语句中,正确的是()①inta[][]={1,2,3,4,5,6}; ②
5、chara[2]「3]='a','b';③inta[][3]={1,2,3,4,5,6}; ④staticinta[][]={{1,2,3},{4,5,6}};【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以备选答案②也是错误的。显然备选答案③符合题意。【答案】③6定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是()①chars[]={‘1','2','3',' '}; ②chars「」=
6、{"123"};③chars[]={"123"}; ④chars[4]={'1','2','3'};【分析】备选答案①中省略了数组长度,所以每个元素都赋了初值,共计4个元素,初值依次为'l'、'2'、'3'、'\0',最后一个元素的值为字符串结束标记,所以数组S中存放的是字符串"123",该答案不符合题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组s的长度为4,其中的初值是字符串"123",不符合题意(即正确的);备选答案③中也是给数组s赋予字符串的初值,但是字符串不是"123",而是"123\
7、n",所以该答案符合题意(即错误的);显然答案④也不符合题意(即正确的)。下面来分析答案④为什么是正确的,该答案给出了数组长度为4,赋初值时仅给前3个元素赋予字符'1'、'2'、'3',第4个元素没有赋初值,按照C语言的规定,也有初值,且初值为空值,对字符型数组来说,空值就是'\0',即字符率结束标记,所以数组S中存放的也是字符串"123"。【答案】③7设有下列数据定义语句,则数组元素x[i]的值是__________________。inti=3,x[4]={1,2,3};【分析】由于i的初值为3,所以x[i]就是x[3]。由于
8、数组的下标是从0开始的,所以x[3]实际上是数组x的第4个元素。从定义语句中可以看出数组x的前3个元素的初值依次为1、2、3,第4个元素没有赋初值,其初值自动设为空值,对整型数组来说,空值是0,显然x[3」的值是0.【答案】08设有下列数据定义语句
此文档下载收益归作者所有