西北农林科技大学 c语言上机 实习5答案_c语言上机题答案大全

实习报告 时间:2020-02-28 14:55:00 收藏本文下载本文
【www.daodoc.com - 实习报告】

西北农林科技大学 c语言上机 实习5答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言上机题答案大全”。

实习五答案

1、用指针实现排序

/* exer 5-1 由键盘输入 10个整数,将它们按由小到大顺序排列 */ #include void main(void){

int a[10],*p = NULL;

/* 说明数组和指针 */

int i, j, temp;

for(p = a;p

/* 指针从数组首到尾 */

{

scanf(“%d”, p);

/* 利用指针依次输入 */

}

p = a;

for(i = 0;i

/* 利用指针依次比较 */

{

for(j = i + 1;j

if(*(p + i)> *(p + j))

{

temp = *(p + i);

*(p + i)= *(p + j);

*(p + j)= temp;

}

}

for(p=a;p

printf(“%d ”, *p);

printf(“%dn”, *p);}

2、用指针实现字符串排序

/*exer 5-2 将 10个长度小于20的字符串排序*/ #include #include void main(void){

char szStr[10][20],*psz[10],szTemp[20];

int i,j;

for(i = 0;i

{

psz[i] = szStr[i];

/*指针数组的每个元素指向各行串*/

}

for(i = 0;i

{

gets(psz[i]);

/*输入10个字符串*/

}

for(i = 0;i

/*字符串排序*/

{

for(j = i + 1;j

{

if(strcmp(psz[i], psz[j])> 0)

{

strcpy(szTemp, psz[i]);

strcpy(psz[i], psz[j]);

strcpy(psz[j], szTemp);

}

}

}

for(i = 0;i

{

puts(psz[i]);

/*输出字符串*/

} }

3、数据倒置

/*exer 5-3 将具有10个元素的一维数组中的数据倒置 */ #include void main(void){

int a[10], iTemp, *p, *q;

int i;

for(i = 0;i

{

scanf(“%d”, a + i);

/*输入数组*/

}

p = a;

q = a + 9;

for(p = a, q = a + 9;p

/*首尾交换*/

{

iTemp = *p;

*p = *q;

*q = iTemp;

}

for(i = 0;i

{

printf(“%d ”, *(a + i));

/*输出*/

} }

4、用指针实现数据位置调整 /*exer 5-4 输入 10个整数,将最大的调到最后,最小的调到最前*/ #include

void swap(int *px, int *py);

int main(void){

int a[10], iTemp, *pMax, *pMin;

int i;

for(i = 0;i

{

scanf(“%d”, a + i);/*输入数组*/

}

pMax = a;

/*最大值指针指向数组首地址*/

pMin = a;

/*最小值指针指向数组首地址*/

for(i = 1;i

{

if(*(a+i)> *pMax)

pMax = a + i;

if(*(a+i)

pMin = a + i;

}

/*最大值是第1个元素,最小值是最后一个元素*/

if(pMax == a && pMin == a + 9)

{

swap(pMax, pMin);

}

else

{

/*最小值与第一个元素交换*/

swap(a, pMin);

/*最大值与最后一个元素交换*/

swap(a + 9, pMax);

}

for(i = 0;i

{

printf(“%d ”, *(a + i));

/*输出*/

}

return 0;}

void swap(int *px, int *py){

int temp;

temp = *px;

*px = *py;

*py = temp;}

5、用指针实现查找二维数组中最大数及其位置

/*exer 5-5 找出二维数组(设3行4列)中的最大数及其位置 */ #include void main(void){

int a[3][4],(*p)[4], iCol, iRow;

int i, j;

p = a;

for(i = 0;i

{

for(j = 0;j

scanf(“%d”, *(p + i)+ j);

/*输入数组*/

}

iCol = 0;

/*设最大数及其位置 */

iRow = 0;

for(i = 0;i

{

for(j = 0;j

{

if(*(*(p + i)+ j)> *(*(p + iRow)+ iCol))

{

iRow = i;

iCol = j;

/*修改位置*/

}

}

}

printf(“%d %d %dn”, iRow, iCol, a[iRow][iCol]);}

6、用指针实现子字符串提取

/*exer 5-6 由键盘输入一串字符,从字符串下标为m开始

取出n个字符(m和n由键盘输入),形成一个新的字符串

*/ #include #include void main(void){

char szStrSour[80], szStrDest[80], *pszSour, *pszDest;

int i, m, n;

gets(szStrSour);

/* 输入字符串 */

scanf(“%d%d”, &m, &n);

/* 输入位置和长度 */

pszSour = szStrSour + m;

/* 确定起始位置 */

pszDest = szStrDest;

for(i = 0;i

/* 依次取n个字符 */

{

*pszDest = *pszSour;

pszDest++;

pszSour++;

}

*pszDest = '';

puts(szStrDest);}

/* 在字符串末尾追加结束标志 */

下载西北农林科技大学 c语言上机 实习5答案word格式文档
下载西北农林科技大学 c语言上机 实习5答案.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文