分站导航

热点关注

当前位置:

首页 > 专业大全

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

来源:本站整理 时间:2020-02-13 15:55:24

5.输入一个3 6的二维整型数组,输出其中的最大值、最小值及其所在的行列下标。

解 找出其最大值和最小值,及它们的行列位置。采用按行按列顺序遍历数组的方法找出数组的最大值、最小值,以及它们在数组中的位置指针。输出时,将位置指针转换成行下标和列下标。程序如下:

# include

# define N 3

# define M 6

main()

{ int a[N][M],*maxp,*minp,*q,t;

printf( 输入%d个整数\n , N*M);

for(q=a[0];q *a+N*M;q++) {

scanf( %d , t);*q=t;

}

maxp=minp=*a;

for(q=a[0];q *a+ N*M; q++) {

if(*maxp *q) maxp=q;

if(*minp *q) minp=q;

}

printf( 最大值:%d它的行下标是%d它的列下标是%d\n ,

*maxp,(maxp-*a)/M,(maxp-*a)%M);

printf( 最小值:%d它的行下标是%d它的列下标是%d\n ,

*minp,(minp-*a)/M,(minp-*a)%M;

}

6.输入三个字符串,找出其中最大的字符串。

解 将输入的三个字符率分别存于三个一维字符数组中,另用一个字符指针数组,分别指向这三个字符串,然后用循环控制这三个字符串的比较,找出最大的字符串。两字符串比较时,程序不用标准库函数,而用两字符串的对应字符比较来实现。完整程序如下:

# include

# define N 120

# define M 3

mian()

{ char s1[N], s2[N],s3[N],*strs[M]={s1,s2,s3},*p,*q,*ms;

int i;

printf( 输入%d个字符串\n , M) ;

for(i= 0; i

scanf( %s ,strs);

ms=strs[0];

for(i=1;i

for( p=ms,q=strs;*p! = \0 *p==*q;p++,q++);

if(*p *q) ms=strs;

}

printf( 最大字符串:%s\n ,ms);

}

7.输入两个字符串,将它们连接后输出。

解 程序设有两个存储字符串的数组,先输入两个字符串,然后找到第一个字符串的末尾,接着将第二个字符串复制在第一个字符串的后面,然后输出。程序如下:

# include

# define N 120

main()

{ char s1[N+N],s2[N],*p,*q;

printf( 输入2个字符串\n );

scanf( %s%s ,s1,s2);

for(p=sl;* p!= \0 ; p++);

for(q=s2;*p++=*q++;);

printf( 两字符串连接后:%s\n ,sl);

}

8.比较两个字符串是否相等。

解 程序设两个存储字符串的数组,先输入两个字符串,两字符率比较时,直接用两字符串的对应字符比较来实现。完整程序如下:

# include

# define N 120

main()

{ char sl[N] ,s2[N],*p,*q;

char *result[]={ 小于 , 相等 , 大于 };

int comp;

printf( 输入 2个字符串\n );

scanf( %s%s ,s1,s2);

for(p=sl,q=s2;*q!= \0 *p==*q; p++, q++);

comp=*P * q? 0:*P==*q? l:2;

printf( 字符串1与字符串2比较:%s\n ,result[comp]);

}

9.输入10个整数,将其中最大数与最后一个数交换,最小数与第一个数交换。

解 程序设一个一维数组存储输入的10个整数。然后遍历数组,找出最大元素和最小元素的指针。接着按要求先将最大元素与最后一个元素交换,然后将最小元素与第一个元素交换。最后,输出数组中的全部整数。程序应考虑到这样一种特殊情况,即最后一个元素正是最小元素,它在与最大元素交换后,位置已移到原先存储最大元素的位置。程序应保证最大元素移到末尾,最小元素移到最前端。

程序如下:

# include

# define N 10

main()

{ int a[N],*maxp,*minp,*q,t;

printf( 入%d个整数\n,N);

for(q=a;q

scanf( %d , t);*q=t;

}

maxp= minp= a;

for(q=a;q

if(*maxp *p) maxp=q;

if(*minp *q) minp=q;

}

t=*maxp; *maxp=a[N-1]; a[N-l]=t;

if(minp== a[N-l]) minp=maxp;

t=* minp;*minp= a[0]; a[0]= t;

for(q=a;q

printf( %d ,*q);

printf( \n );

}

分享:

qq好友分享 QQ空间分享 新浪微博分享 微信分享 更多分享方式

上一篇:<上一篇

下一篇:

(c)2024 www.diying.com All Rights Reserved SiteMap 联系我们 | 豫ICP备2022007582号