background image

1 定义一个名为 a 的单精度实型一维数组,长度为 4,所有元素的初值均为 0 的数定义

________________

【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有

元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组
长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值
为 0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动
赋 予。 空值 (对 数值 型数 组来 说, 初值 为 0),可以写出方法四(参看答案)。
【 答 案 】 方 法 一 : float   a[4] = {0 . 0 , 0 . 0 , 0 . 0 , 0 . 0} ;
          方 法 二 : float   a[] = {   0 . 0 , 0 . 0 , 0 . 0 , 0 . 0} ;
  

   

   方

float   a[4]=   {0

0}

  

   

   

 

static

 

float

 

[4]

2

 

  char   x[1]

'a'

  

   

  

auto   char   x[1]={0}

  static   char   x[l]

  

   

 

char   x[l]

【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用

花 括 号 括 住 ) , 所 以 备 选 答 案 ① 是 符 合 题 意 的 答 案 。

 

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

3

4 用"选择排序法"对 n 个数据排序,需要进行 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

4

5

 

  int   a[][]={1

, 2 , 3 , 4 , 5 , 6} ;         

 

② char   a[2] 「 3] = 'a' , 'b' ;

 int a[][3]= {1

,2,3,4,5,6};      

④ static int a[][]={{1,2,3},{4,5,6}};

【分析

C

      语言

 

 

定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错

误的。C 语言还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以
备 选 答 案 ② 也 是 错 误 的 。 显 然 备 选 答 案 ③ 符 合 题 意 。

6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是()

char   s[]={‘1'

, '2' , '3' , '\0   '} ;       ② char   s 「 」 ={"123"} ;

char   s[]={"123\n"};

                

  char   s[4]={'1'

, '2' , '3'} ;