国家二级
C
机试培训资料
第七课
攀枝花学院计算机基础教研室
第
1
页
共
15
页
第七课
教学内容:
一维字符数组元素位置移动及二维字符数组处理类算法
教学目的:
掌握一维字符数组元素位置移动及二维字符数组处理类算法的考题
教学内容:
一、一维字符数组元素位置移动及二维字符数组处理类算法的考题特点
此类算法多以填空题和程序设计题为考试形式。常见考点:
1
、一维字符数组元素位置移动。
2
、二维字符数组排序,比较大小,连接。
二、课堂练习
第一套
1
、程序填空题
(字符数组循环左移)
给定程序的功能是把
s
串中所有的字符前移一个位置,串中的第一个字符移到最后。
例如:
s
串中
原有的字符串为:
Mn.123xyZ
,则调用该函数后,
s
串中的内容为:
n.123xyZM
。
#include
#define N 81
fun ( char *s )
{
char b[N] ;
fprintf(b, "%s%c", s + 1, *s) ;
//
把从
s+1
开始的字符串和第一个字符存入数组
b
中
/**************found**************/
strcpy(___1___) ;
//s,b
}
main( )
{
char a[ N ] ;
printf ( "Enter a string : " ); gets ( a );
printf ( "The original string is : " ); puts( a );
/**************found**************/
fun ( ___2___ );
//a
printf ( "The string after modified : ");
/**************found**************/
___3___ ( a );
//puts
}
2
、程序改错题(
将最大值之前的字符往后移动一个位置,最大值放在第一个位置
)
给定程序
modi.c
中,函数
fun
的功能是:在字符串
str
中找出
ASCII
码值最大的字符,将其放在
第一个位置上;并将该字符前的原字符向后顺序移动。
例如,调用
fun
函数之前给字符串输入:
ABCDeFGH
,调用后字符中的内容为:
eABCDFGH
。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动
main
函数。
#include
fun(char *p)
{
char max,*q; int i=0;
max=p[i];
//
先假设第一个元素是最大值
while (p[i]!=0)
{
if (max
{
max=p[i];
/************found************/