资料中心

自考“高级语言程序设计”习题答案详解(29)

来源:  点击数:  录入时间:07-09-13 16:38:56
3.阅读下列程序,写出程序运行的输出结果。

  char s[]=“ABCD”;

  main()

  { char * p;

  for( p=s;p< s+4;p++) printf(“%s\n”, 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,%d\n”, 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(“%d\t%d\t%d\n”, x,y,z);/*按输入顺序输出x,y,z*/

  printf(“%d\t%d\t%d\

9 7 3 1 2 4 8 :
 上一篇文章: 自考“高级语言程序设计”习题答案详解(30)
 下一篇文章: 自考“高级语言程序设计”习题答案详解(28)
自考在线课堂
【 北京联合大学广告学院高教自考招 】
【 新加坡华夏管理学院2008年自主招 】
【 北大英语自考部招生日语英语专业 】
【 一年半获取国家承认自学考试证书 】
【 北京联合大学广告学院2008年自考 】
【 2008年首都联合职工大学招生简介 】
自考必读 新手入门 | 报考指南 | 免考加考 | 毕业申请 | 自考常识
自考BLOG
【 陈瑞华再次将自考生推向悬崖愤怒 】
【 让你电脑右下角显示你(爱人)名字 】
【 分享一下 一个自考生的成功经验 】
【 自考这两年半经验之谈,新手必读 】
自考专题
【 自考专题第三期:就业,我们也行 】
【 自考专题二期:晒晒我们的自考情 】
【 自考专题一期:呐喊,我们也考研 】
自考推荐
自考招生
自考知道:有问必答!
全国各省市自考办电话
各地区官方网地址大全
寻找同城异性自考朋友
欢迎您订阅北京考试报
各地10月自考报名时间
中国自考网俱乐部成立
08年10月自考成绩查询
2009年自考时间及课程
09上半年自考报名时间
08年7月自考成绩查询
新手入门

法律本科公司法还是考04版的教材吗
我错过的自学考试的报考时间怎么办
法律事务与律师自考有什么不一样?
问谁知道高教自考非教育类的专科生
我想参加自考 请问需要什么条件吗
请教关于自考新旧计划课程顶替问题
自己所在的省没有想学的专业怎么办
高等数学(一)免考 问题急盼回复

自考时间
专业课程
转考免考
学位实践
学科系别
违纪处罚
疑难杂症
自考推荐
自考论坛
资格考试·串讲资料
今日推荐
[北京] 08年10月高等教育自学考试成绩查询的通知
[广东] 清远高教自学考试的考生办理毕业登记须知
[辽宁] 09年1月起高教自学考试专业课程调整的通知
[山东] 高等教育自学考试考生违规行为处理的办法
[新疆] 09年1月高教自学考试特殊考试报名已确定
[浙江] 绍兴08下半年高教自考毕业政策调整的通知
[河北] 唐山2009上半年自学考试网上报名15日截止
[湖北] 武汉09上半年计算机基础上机实习报名安排
[天津] 08年下半年高教自学考试毕业申报即将开始
[福建] 09年4月份高教自学考试网上报名时间通知