了解湖南/长沙自考资讯,从湖南自考网开始!湖南自考报名湖南自考本科
您当前的位置:首页 > 湖南自考考前练习

自考“高级语言程序设计”经典习题及答案(22)

自考“高级语言程序设计”经典习题及答案(22)

 

  3.阅读下列程序,写出程序运行的输出结果。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  char s[]=“ABCD”;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  main()tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  { char * p;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for( p=s;p< s+4;p++) printf(“%s/n”, p);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  “解]程序定义了一个字符数组s,由给它所赋的字符串初值知,该数组只有五个元素。程序另定义了字符指针变量p.循环开始时,先让p指向数组的首元素。循环每次输出以p所指字符为首字符的字符串,并让它指向下一个字符。如此反复循环四次,所以程序输出以下内容:tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  ABCDtEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  BCDtEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  CDtEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  DtEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  4.阅读下列程序,试写出程序运行的结果。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  main()tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  {int i,b,c,a[]={1,10,-3,-21,7,13},*p_b,*p_c;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  b=C=1;p_b=p_C= a;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(i=0;i<6; i++)tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  { if(b<*(a+i)) {b=*(a+i); p_b=&a; }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(c>*(a+i)) {c=*(a+i); p_c=&a; }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  i=*a;*a=*p_b;*p_b=i;i=*(a+5);*(a+5)=*p_c;*p_c=i;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“%d,%d,%d,%d,%d,%d/n”, a[O],a[1],a[2],a[3], a[4], a[5]);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  “解]程序定义了一个整型数组。,由给它所赋的初值知,该数组有六个元素。程序另定义了三个整型变量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的六个元素。所以程序输出内容是:tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  13, 10,-3, l, 7,-21.tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  若数组a的初值由输入任意指定,上述程序对一种特殊情况不能完成功能的要求,即最小元素若是a[0],p_c所指元素已被移到p_b指针所指位置,实际与a[5]交换的不再是数组中的最小元素,而是最大元素。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  5.4 程序设计题tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  1.输人3个整数,按从大到小顺序输出。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  “解”存储输入的三个整数可用三个简单变量,也可用数组。设用三个简单变量x,y,z存储输入的三个整数。另设若干个指针变量指向存储输入数据的变量。实现从大到小输出三个整数有多种方案,如通过比较交换变量的值,多次比较交换使变量满足条件x>=y>=z.这样,变量的输入值可能会与它的输出值不一样。如通过比较交换指针变量,当比较后发现要交换时,就交换变量的指针,而不交换变量的值,则在比较结束后,变量的值没有改变,但从指针方向来看,它们的值是从大到小排列的。下面的程序就采用这种方案。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  # includetEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  main()tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  { int x,y,z;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  int *big=&x,*mid=&y,*sma=&z,/*置三个指针变量分别指向x,y, z*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  *temp;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“Enter x,y,z./n”);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  scanf(“%d%d%d”, big,mid,sma);/*顺序为变量x,y,z输入值*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(*big< *mid) {temp=big;big=mid; mid=temp; }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  /*使*big>=*mid*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(*big<*sma) { temp=big;big=sma;sma=temp; }/*使*big>=*sma*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(*mid<*sma){temp=mid;mid=sma;sma=temp; }/*使*mid>=*sma*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“%d/t%d/t%d/n”, x,y,z);/*按输入顺序输出x,y,z*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“%d/t%d/t%d/n”,*big,*mid,*sma);/*按从大到小的顺序输出*/tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  2.编一个程序,输入15个整数存入一维数组,再按逆序重新存放后再输出。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  “解”输入数组的元素,并重新颠倒存放后输出。将存储于数组中的元素颠倒存储,只要首尾相对应的元素两两交换即可。若用指针实现,可让一个指针p指向前端的元素,另一个指针q指向与前端元素对应的后端的元素。循环前,让p指向数组的首元素,让q指向数组的末元素。循环时,让p和q所指两个元素交换,并让p增1,q减l.循环条件是p所指元素在前,q所指元素在后,即ptEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  # includetEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  main()tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  { int a[15],*p,*q, temp;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“Enter 15 numbers./n”);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(p=a;ptEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  scanf(“%d”, p);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(p=a,q=a+14;ptEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  temp=*p; *p=*q;*q=temp;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(p=a;ptEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“%d/t”,*p);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“/n”);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  3.输入一个字符串,按相反的次序输出其中的全部字符。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  “解”要相反的次序输出字符串的全部字符,可用一个字符指针变量,从指向字符串的本字符开始,逆序遍历字符串,输出指针所指字符即可。但为了让字符指针指向字符串的末字符,若不用字符串处理库函数,得用一个循环,让它从字符串的首字符开始,顺序移至字符串的结束标记符,然后倒退一个字符,就能让它指向字符串的末字符。程序如下:tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  # includetEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  # define N 200tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  main()tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  { char s[N],*p;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“Enter a string./n”);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  scanf(“%s”, s);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(p=s;*p; p++);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(p——; p>=s; p——)tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“%c”,*p);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“/n”);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  4.输入一个一维实型数组,输出其中的最大值、最小值和平均值。tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  “解”设实型数组的元素个数n不超过20.程序输入n,并用循环输入数组的元素,再用循环遍历数组,求出数组的最大值和最小值、数组元素的和。然后求出数组元素的平均值,最后输出结果。程序如下:tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  # includetEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  # define N 20tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  main()tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  { double a[N],max,min,ave,*p, t;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  int n;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“Enter n(0tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  do{tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  scanf(“%d”,&n);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(n>0 && n<20) break;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“n值不合要求,请重新输入!/n”);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  } while(l);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“输入%d个实数/n”, n);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(n=a;ntEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  scanf(“%lf”,&t);*p=t;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  max=min=ave=*a;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  for(p=p+l;ptEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(max<*p) max=*p;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  if(min>*p) min=*p;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  ave+=*p;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  ave/=n;tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  printf(“最大值:%f/t最小值:%f/t平均值:%f/n”,max,min,ave);tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

  }tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

 tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

tEZ湖南自考网_湖南自考本科_湖南自考报名_首页

 

自考“高级语言程序设计”经典习题及答案(22)

    湖南自考网——致力于打造湖南自考网第一网,以努力服务于广大湖南自考学子、提供最全的湖南自考资讯为己任,发布湖南自考最新的新闻资讯,提供湖南自考专科湖南自考本科湖南自考报名湖南自考成绩查询等综合信息

 

湖南自考
相关文章
    无相关信息
湖南网站主页
湖南自考政策
自考30年大事
湖南自考专业
湖南自考问答
名家访谈
湖南自考故事
湖南自考院校
湖南自考大纲
自考复习方法
自考笔记串讲
自考应试技巧
湖南自考真题
湖南自考就业
湖南论文指导
湖南自考实践
湖南自考学位
自考成绩查询
自考考籍查询
自考学历查询


咨询QQ:137847917
13548661633(微信同号)