自考“高级语言程序设计”习题答案详解(29)
3.阅读下列程序,写出程序运行的输出结果。
char s[]=“ABCD”;
main()
{ char * p;
for( p=s;p< s+4;p++) printf(“%sn”, p);
}
「解]程序定义了一个字符数组s,由给它所赋的字符串初值知,该数组只有五个元素。程序另定义了字符指针变量p.循环开始时,先让p指向数组的首元素。循环每次输出以p所指字符为首字符的字符串,并让它指向下一个字符。如此反复循环四次,所以程序输出以下内容:
ABCD
BCD
CD
D
4.阅读下列程序,试写出程序运行的结果。
main()
{int i,b,c,a[]={1,10,-3,-21,7,13},*p_b,*p_c;
b=C=1;p_b=p_C= a;
for(i=0;i<6; i++)
{ if(b<*(a+i)) {b=*(a+i); p_b=&a; }
if(c*(a+i)) {c=*(a+i); p_c=&a; }
}
i=*a;*a=*p_b;*p_b=i;i=*(a+5);*(a+5)=*p_c;*p_c=i;
printf(“%d,%d,%d,%d,%d,%dn”, a[O],a[1],a[2],a[3], a[4], a[5]);
}
「解]程序定义了一个整型数组。,由给它所赋的初值知,该数组有六个元素。程序另定义了三个整型变量i.b、C和两个指针变量p_b.p_c.程序首先置变量b和C都为1,p_b和p_c都指向数组a 的首元素a[0].接着执行六次循环,循环体由两个if语句。第一个if语句是当 b的值小于*(a+i)(就是a)时,将*(a+i)的值复制到b,并让p_b指向a.这是在a中找最大值,将最大值存于b,最大值元素的指针存于指针变量p_b.第二个if语句是当c的值大于*(a+i)(就是a)时,将*(a+i) 的值复制到c,并让p_c指向a.这是在a中找最小值,将最小值存于c,最小值元素的指针存于指针变量p_c.循环结束后的前三个语句实现最大元素与a[0]交换。接着三个语句是在已经过前面交换的基础上,将最小元与a[5]交换。最后程序顺序输出数组a的六个元素。所以程序输出内容是:
13, 10,-3, l, 7,-21.
若数组a的初值由输入任意指定,上述程序对一种特殊情况不能完成功能的要求,即最小元素若是a[0],p_c所指元素已被移到p_b指针所指位置,实际与a[5]交换的不再是数组中的最小元素,而是最大元素。
5.4 程序设计题
1.输人3个整数,按从大到小顺序输出。
「解」存储输入的三个整数可用三个简单变量,也可用数组。设用三个简单变量x,y,z存储输入的三个整数。另设若干个指针变量指向存储输入数据的变量。实现从大到小输出三个整数有多种方案,如通过比较交换变量的值,多次比较交换使变量满足条件x=y=z.这样,变量的输入值可能会与它的输出值不一样。如通过比较交换指针变量,当比较后发现要交换时,就交换变量的指针,而不交换变量的值,则在比较结束后,变量的值没有改变,但从指针方向来看,它们的值是从大到小排列的。下面的程序就采用这种方案。
# include
main()
{ int x,y,z;
int *big=&x,*mid=&y,*sma=&z,/*置三个指针变量分别指向x,y, z*/
*temp;
printf(“Enter x,y,z.n”);
scanf(“%d%d%d”, big,mid,sma);/*顺序为变量x,y,z输入值*/
if(*big< *mid) {temp=big;big=mid; mid=temp; }
/*使*big=*mid*/
if(*big<*sma) { temp=big;big=sma;sma=temp; }/*使*big=*sma*/
if(*mid<*sma){temp=mid;mid=sma;sma=temp; }/*使*mid=*sma*/
printf(“%dt%dt%dn”, x,y,z);/*按输入顺序输出x,y,z*/
printf(“%dt%dt%dn”,*big,*mid,*sma);/*按从大到小的顺序输出*/
}
【自考“高级语言程序设计”习题答案详解(29)】相关文章:
★ 2012年自考“高级语言程序设计”经典习题及答案(30)
★ 2012年自考“高级语言程序设计”经典习题及答案(27)
★ 2012年自考“高级语言程序设计”经典习题及答案(28)
★ 2012年自考“高级语言程序设计”经典习题及答案(29)
★ 2012年自考“高级语言程序设计”经典习题及答案(26)
热点推荐:
工学
- 2020-11-17【工学】2012年自考“工程项目管理”单选练习(9)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(1)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(18)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(34)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(35)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(38)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(41)
- 2020-11-17【工学】2012年自考“互联网及其应用”串讲笔记(1)
其他最新资讯
- 2023-12-29【自考政策】广西自考网络助学平台新增61门课程
- 2020-12-04【免考问题】哪些证书可以免考自考相关课程?
- 2020-12-04【免考问题】自考免考有哪些条件?
- 2020-12-04【综合问题】自考本科文凭有用吗?
- 2020-12-04【综合问题】自考本科需要考多少门课?
- 2020-11-17【综合问题】江苏省高等教育自学考试网上报名常见问题及解答
- 2020-11-17【经济学】2012年自考“中国税制”笔记串讲(8)
- 2020-11-17【自考政策】全国自考办领导:未来自考将大力发展网络助学
网友关注
- 【考务考籍】陕西自考全国统一命题课程《软件工程》考试说明
- 【自考报名】什么样的证书最受自考生欢迎
- 【自考报名】宁波05年10月自学考试报名通告
- 【自考报名】2005年7月安徽铜陵自考报名及工作安排
- 【自考报名】淮南市2005年7月自考报名工作通知
- 【自考报名】宣城2005年7月自考报名及工作安排
- 【考务考籍】江苏常州2011年10月自考和成考36143人参加
- 【考务考籍】辽宁大连2011下半年毕业及转考时间
网友关注视频
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 冀教版英语四年级下册第二课
- 3月2日小学二年级数学下册(数一数)
- 二年级下册数学第一课
- 人教版二年级下册数学
- 沪教版八年级下册数学练习册21.3(3)分式方程P17
- 冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》