c语言数组习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能是将s[3]处的字符串连接到a[l]的字符串后面,所以执行该函数调用后的a「l」处的字符串为"2244",
而该函数的返回值就是a[1]的首地百度文库,puts()函数的功能就是输出这个地址存放的字符串,由此,第
1个输出的结果就是:2244。同样理由可以分析strcpy(a[0],a[2])的功能是将a[2]处的字符串 ("33") 复制到a[0]处,返回a[0]的地址,puts()输出的就是a[0]处的字符串,结果为:33。
题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组s的长度为4,其中的初值是字符串
"123",不符合题意(即正确的);备选答案③中也是给数组s赋予字符串的初值,但是字符串不是"123",
而是"123\n",所以该答案符合题意(即错误的);显然答案④也不符合题意(即正确的)。下面来分析
答案④为什么是正确的,该答案给出了数组长度为4,赋初值时仅给前3个元素赋予字符'1 '、’2'、3,
数组练习解答
1定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是
【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时
可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有
未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静
13
2
1
4
32
1
2
34
②char a[2]
「3]='a','b';
④static int a[][]
={{1,2,3},{4,5,6}}
执行第2步后的结果是
【分析】开始排序前的排列为:4
执行第1步后的排列为: 执行第2步后的排列为:
【答案】1、2、3、4
5下列数组定义语句中,正确的是()
①int a[][]={1,2,3,4,5,6};
2下列数组定义语句中,错误的是()
①char x[1]='a';②auto char x[1]={0};
③static char x[l ];④char x[l];
【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),
所以备选答案①是符合题意的答案。
【答案】①
n—1步。其中第k步的任务是:自下而上,相邻两数比
【分析】首先分析字符型数组s的初值,s的第1行中存放的字符串是"1"、第2行中存放的符串是"23"、
第3行中存放的字符串是"345"、第4行中存放的字符串是"4"。puts()函数的功能是输出从”参数”处 开始存放的字符串中有效字符。按照上的分析,第1个输出的结果是从"&S[0][0]"开始的字符串,这个 地址对应的就是数s的第1行,所以输出结果为1;第2个输出的结果是从“s[]”开始的字符串,这个 址对应的也是数组s的第1行,所以输出结果也为1。
n-k次。现在假设有4个数据:4、I、3、2要排序,假定4为上、2为
2步后的结果是。
1步后的排列执行第2步后的排列
1
2
4
34用"选择排序法”对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数
据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用
O
【答案】1
1
9设有下列数据定义语句:
char a[4][10]={"11","22","33","44"};
则puts(strcat(a[1],a[3]))的输出结果是;
putS(strcpy(a[0],a[2]))的输出结果是—。
【分析】字符数组a共有4行,每行存放一个字符串。这4行的首地址依次为:a[0]、a[1]、a[2]、a[3],从这4个地址开始存放的字符串依次为:"11"、"22"、"33"、"44"。strcat(a[1],a[3])函数调用的
态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为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];
【答案】224433
10设有下列数据定义语句:
char str[2][10]={"abc","ABC"};
则printf("%d",strcmp(str[1],str[0]))的输出结果是;
数组x的第4个元素。从定义语句中可以看出数组x的前3个元素的初值依次为1、2、3,第4个元素没
有赋初值,其初值自动设为空值,对整型数组来说,空值是0,显然x[3」的值是0.【答案】0
8设有下列数据定义语句,则puts(&s[0][0])的输出结果是;puts(s[0]〕
输出结果是。
char s[4][5]={{T,'\0'},{"23"},"345","4\0"};
①char s[]={'1','2','3','\0'};②char s「」={"123"};
③char s[]={"123\n"};④char s[4]={'1','2','3'};
【分析】备选答案①中省略了数组长度,所以每个元素都赋了初值, 共计4个元素,初值依次为T、’2'、
3、’\0',最后一个元素的值为字符串结束标记,所以数组S中存放的是字符串"123",该答案不符合
第4个元素没有赋初值,按照C语言的规定,也有初值,且初值为空值,对字符型数组来说,空值就
是'\0',即字符率结束标记,所以数组S中存放的也是字符串"123"。【答案】③
7设有下列数据定义语句,则数组元素x[i]的值是。
int i=3,x[4]={1,2,3};
【分析】由于i的初值为3,所以x[i]就是x[3]。由于数组的下标是从0开始的,所以x[3]实际上是
③int a[][3]= {1,2,3,4,5,6};
【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还
规定,定义字符型数组时不允许直接使用”字符常量”的方式赋初值,所以备选答案②也是错误的。显然
备选答案③符合题意。【答案】③
6定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是()
而该函数的返回值就是a[1]的首地百度文库,puts()函数的功能就是输出这个地址存放的字符串,由此,第
1个输出的结果就是:2244。同样理由可以分析strcpy(a[0],a[2])的功能是将a[2]处的字符串 ("33") 复制到a[0]处,返回a[0]的地址,puts()输出的就是a[0]处的字符串,结果为:33。
题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组s的长度为4,其中的初值是字符串
"123",不符合题意(即正确的);备选答案③中也是给数组s赋予字符串的初值,但是字符串不是"123",
而是"123\n",所以该答案符合题意(即错误的);显然答案④也不符合题意(即正确的)。下面来分析
答案④为什么是正确的,该答案给出了数组长度为4,赋初值时仅给前3个元素赋予字符'1 '、’2'、3,
数组练习解答
1定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是
【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时
可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有
未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静
13
2
1
4
32
1
2
34
②char a[2]
「3]='a','b';
④static int a[][]
={{1,2,3},{4,5,6}}
执行第2步后的结果是
【分析】开始排序前的排列为:4
执行第1步后的排列为: 执行第2步后的排列为:
【答案】1、2、3、4
5下列数组定义语句中,正确的是()
①int a[][]={1,2,3,4,5,6};
2下列数组定义语句中,错误的是()
①char x[1]='a';②auto char x[1]={0};
③static char x[l ];④char x[l];
【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),
所以备选答案①是符合题意的答案。
【答案】①
n—1步。其中第k步的任务是:自下而上,相邻两数比
【分析】首先分析字符型数组s的初值,s的第1行中存放的字符串是"1"、第2行中存放的符串是"23"、
第3行中存放的字符串是"345"、第4行中存放的字符串是"4"。puts()函数的功能是输出从”参数”处 开始存放的字符串中有效字符。按照上的分析,第1个输出的结果是从"&S[0][0]"开始的字符串,这个 地址对应的就是数s的第1行,所以输出结果为1;第2个输出的结果是从“s[]”开始的字符串,这个 址对应的也是数组s的第1行,所以输出结果也为1。
n-k次。现在假设有4个数据:4、I、3、2要排序,假定4为上、2为
2步后的结果是。
1步后的排列执行第2步后的排列
1
2
4
34用"选择排序法”对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数
据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用
O
【答案】1
1
9设有下列数据定义语句:
char a[4][10]={"11","22","33","44"};
则puts(strcat(a[1],a[3]))的输出结果是;
putS(strcpy(a[0],a[2]))的输出结果是—。
【分析】字符数组a共有4行,每行存放一个字符串。这4行的首地址依次为:a[0]、a[1]、a[2]、a[3],从这4个地址开始存放的字符串依次为:"11"、"22"、"33"、"44"。strcat(a[1],a[3])函数调用的
态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为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];
【答案】224433
10设有下列数据定义语句:
char str[2][10]={"abc","ABC"};
则printf("%d",strcmp(str[1],str[0]))的输出结果是;
数组x的第4个元素。从定义语句中可以看出数组x的前3个元素的初值依次为1、2、3,第4个元素没
有赋初值,其初值自动设为空值,对整型数组来说,空值是0,显然x[3」的值是0.【答案】0
8设有下列数据定义语句,则puts(&s[0][0])的输出结果是;puts(s[0]〕
输出结果是。
char s[4][5]={{T,'\0'},{"23"},"345","4\0"};
①char s[]={'1','2','3','\0'};②char s「」={"123"};
③char s[]={"123\n"};④char s[4]={'1','2','3'};
【分析】备选答案①中省略了数组长度,所以每个元素都赋了初值, 共计4个元素,初值依次为T、’2'、
3、’\0',最后一个元素的值为字符串结束标记,所以数组S中存放的是字符串"123",该答案不符合
第4个元素没有赋初值,按照C语言的规定,也有初值,且初值为空值,对字符型数组来说,空值就
是'\0',即字符率结束标记,所以数组S中存放的也是字符串"123"。【答案】③
7设有下列数据定义语句,则数组元素x[i]的值是。
int i=3,x[4]={1,2,3};
【分析】由于i的初值为3,所以x[i]就是x[3]。由于数组的下标是从0开始的,所以x[3]实际上是
③int a[][3]= {1,2,3,4,5,6};
【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还
规定,定义字符型数组时不允许直接使用”字符常量”的方式赋初值,所以备选答案②也是错误的。显然
备选答案③符合题意。【答案】③
6定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是()