C语言程序设计教程清华大学出版社陈明主编第5章答案

上传人:鲁** 文档编号:486712925 上传时间:2022-12-22 格式:DOCX 页数:16 大小:46.11KB
返回 下载 相关 举报
C语言程序设计教程清华大学出版社陈明主编第5章答案_第1页
第1页 / 共16页
C语言程序设计教程清华大学出版社陈明主编第5章答案_第2页
第2页 / 共16页
C语言程序设计教程清华大学出版社陈明主编第5章答案_第3页
第3页 / 共16页
C语言程序设计教程清华大学出版社陈明主编第5章答案_第4页
第4页 / 共16页
C语言程序设计教程清华大学出版社陈明主编第5章答案_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C语言程序设计教程清华大学出版社陈明主编第5章答案》由会员分享,可在线阅读,更多相关《C语言程序设计教程清华大学出版社陈明主编第5章答案(16页珍藏版)》请在金锄头文库上搜索。

1、第5章习题解答、选择题i以下叙述中错误的是。A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)在程序执行中,当数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数解析:对于double类型数组,不能直接用数组名对数组进行整体输入或输出。所以选项A的说法是正确的。数组名代表数组所占内存区的首地址,是一个固定指针,其值不可改变,因此选项B也是正确的。在C语言一维数组定义时可以不指定数组长度,由赋初值的初值个数决定数组的长度。因此选项D也是正确的。C语言程序在执

2、行时,不检查数组元素的下标是否越界,如果出现越界,可能会引起系统死机,因此选项C不正确。答案:C2有以下程序:/*文件路径名:ex5_1_2main.c*/#includeintmain(void)chars=abcde;s+=2;printf(%dn,s0);return0;/*标准输入/出头文件*/*主函数main()*/*定义字符数组*/*s自加2*/*输出s0*/*返回值0,返回操作系统*/执行后的结果是。A)输出字符a的ASCII码C)输出字符cB)输出字符c的ASCII码D)程序出错解析:数组s的首地址值s是不可改变的,故该程序编译时会出错。答案:D3有以下程序:/*文件路径名:e

3、x5_1_3main.c*/#include/*标准输入/出头文件*/intmain(void)/*主函数main()*/inta10=1,2,3,4,5,6,7,8,9,10,*p=&a3,*q=p+2;/*定义数组及变量*/printf(%dn,*p+*q);/*输出*p+*q之值*/return0;/*返回值0,返回操作系统*/程序运行后的输出结果是。A) 16B)10C)8D)6解析:数组a各元素a0-a9的值依次为110,语句“*p=&a3”把指针变量p初始化为&a3,即*p的值为4,指针变量q初始化为“*q=p+2”,所以*q的值为6,从而*p+*q=l0。答案:B4.有以下程序:

4、/*文件路径名:ex5_1_4main.c*/#includevoidSort(inta,intn)inti,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;intmain(void)/*标准输入/出头文件*/*将a中元素从大到小进行排序*/*定义变量*/*主函数main()*/inta10=1,2,3,4,5,6,7,8,9,10,i;/*定义数组及变量*/Sort(a+2,5);/*输出ai*/*换行*/*返回值0,返回操作系统*/for(i=0;i10;i+)printf(%d,ai);printf(n);retur

5、n0;程序运行后的输出结果是。A) 1,2,3,4,5,6,7,8,9,10B)1,2,7,6,3,4,5,8,9,10,C) 1,2,7,6,5,4,3,8,9,10D)1,2,9,8,7,6,5,4,3,10,解析:函数Sort()的功能是将数组a中的元素按照从大到小的顺序排列。但主函数调用Sort()时,实参是a+2和5,即是将数组a中a2-a6共5个元素进行从大到小的排序。所以得至曲勺输出结果应该是1,2,7,6,5,4,3,8,9,10答案:C5以下数组定义中错误的是。A)intx3=0;B)intx23=1,2,3,4,5,6;C)intx3=1,2,3,4,5,6;D)intx2

6、3=1,2,3,4,5,6;解析:二维数组赋初值时,第一个维数,即行数可以省略,但是列数不能省略。因此选项A,C正确。选项D是按数据在二维数组中的顺序初始化。在选项B中,行维数的初始化格式跟定义的维数不一致,为错误选项。答案:B6. 有以下程序:/*文件路径名:ex5_1_6main.c*/*标准输入/出头文件*/*主函数main()*/定义变量及数组*/*输岀元素值*/*换行*/*返回值0,返回操作系统*/#includeintmain(void)inti,t3=9,8,7,6,5,4,3,2,1;/*for(i=0;i3;i+)printf(%d,t2-ii);printf(n);retu

7、rn0;程序的执行后的输出结果是。A)753B)357C)369D)751解析:定义二维数组时第一维的长度可以不指定,该程序中t3通过赋初值等价于t33,并且其数组按行进行赋值,通过for循环输出的分别是t20、t11和t02。答案:B7. 若有语句char*line5;”,以下叙述中正确的是。A) 定义line是一个数组,每个数组元素是一个基类型为char的指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为取址运算符D) 定义line是一个指向字符型函数的指针解析:在语句char*line5;”中,遵照运算符的优

8、先级,的优先级高于*号,因此line先与结合,构成一个数组,数组的基类型为char*”,所以line为指针数组,它的每个元素都是基类型为char的指针。所以选项A叙述正确。答案:A8有以下程序:/*文件路径名:ex5_1_8main.c*/#includeintmain(void)inta33,*p,i;p=&a00;for(i=0;i9;i+)pi=i;for(i=0;i3;i+)printf(%d,a1i);printf(n);return0;/*标准输入/出头文件*/*主函数main()*/*定义数组及变量*/*p指向数组a的首元素*/*为pi赋值*/*输出a1i*/*换行*/*返回值0

9、,返回操作系统*/程序运行后的输出结果是。A)012B)123C)234D)345解析:p指向二维数组a的首元素,而二维数组是按行存放的。因此for(i=0;i9;i+)pi=i;”的结果是等价于a33=0,1,2,3,4,5,6,7,&,也就是a33=10,1,2,3,4,5,16.7,8。因此a1i(i=0,1,2)的结果是3,4,5。答案:D9. 若有定义语句“inta23,*p3;”,则以下语句中正确的是。A)p0=a;B)p0=a;C)p0=&a12;D)p1=&a解析:因为*p3定义成指针数组,指针数组中的任何元素都是基类型为int的指针,只有选项B是正确的。答案:B设已有定义“f

10、loatx;”,则以下对指针变量p进行定义且赋初值的语句中正确的A)float*p=1024;B) int*p=(float)x;C) floatp=&x;D)float*p=&x;解析:指针的值是变量的地址而不能是数值常量,所以选项A错;选项B同样是将float类型的值赋给指针而不是地址,所以选项B也错。定义指针变量前面必须有星号(*),所以选项C不正确。答案:D10. 若有定义“shortinta=10,20,30,*p=&a;”,当执行“p+;”后,下列说法错误的A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+l等价解析:“*p=&a”将数组

11、a的首地址赋给指针p,通过对指针变量加上一个整数可以移动指针,移动的单位为存储单元,shortint型变量在存储器中占两个字节。答案:A11. 有以下程序:/*文件路径名:e5_1_12main.c*/#includeintmain(void)inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(%dn,c);return0;/*标准输入/输岀头文件*/*主函数main()*/*定义变量*/*为指针变量赋值*/*修改p2指向的变量的值*/*输岀c*/*返回值0,返回操作系统*/执行后的输出结果是。A)1B)2C)3D)4解析:指针p

12、l指向变量a,指针p2指向变量b,指针p指向变量c,“*p=*p1*(*p2);”等价于“c=a*b”,故正确选项为C。答案:C12. 己定义以下函数:f()函数返回值是。A)不确定的值C)形参p中存放的值解析:p中存放的是地址值,intf(int*p)return*p;B)一个整数D)形参p的地址值*p间接引用了p指向的整数值。因此返回一个整数。答案:B己有定义“chara=xyz,b=x,y,z;”,以下叙述中正确的是A)数组a和b的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对解析:对于定义“chara=xyz,b=x,y,z;”,由于字符串xyz串长

13、为3,连同隐含的结束符0,占4个字节,所以a数组的长度为4。而b数组由单个字符赋初值,个数是3,因此b数组长度为3。答案:C13. 有以下程序:/*文件路径名:ex5_1_15main.c*/#includeintmain(void)charch=uvwxyz,*pc;pc=ch;printf(%cn,*(pc+5);return0;/*标准输入/输岀头文件*/*主函数main()*/*定义字符数组与字符指针*/*pc指向字符数组ch的首字符*/*输出*(pc+5)*/*返回值0,返回操作系统*/程序运行后的输出结果是。A)zB)0C)元素ch5地址D)字符y的地址解析:字符指针pc指向字符串数组ch的的首字符,*(pc+5)就是pc的值。答案:A14. 有以下程序:/*标准输入/输岀头文件*/*主函数main()*/*定义数组与指针*/*文件路径名:ex5_1_16main.c*/#includeintmain(void)chars=159,*p;p=s;printf(%c,*p+);printf(%cn,*p+);return0;/*p指向s的首字符*/*输出*p+*/*输出*p+*/*返回值0,返回操作系统*/程序运行后的输出结果是D)59A)15B)16C)12解析:数组s中存放字符串159,p指向s的首字符。因此语句print

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号