设为首页 加入收藏

TOP

计算机等级考试二级C语言程序设计专项训练题——数组元素的移动(五)
2023-07-23 13:32:25 】 浏览:160
Tags:计算机 程序设 计专项 元素的
1;j++)

            w[j]=w[j+1];

        w[n-1]=t;

    }

}

二.程序设计题

1.编写函数fun,其功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。

例如,若a所指数组中的数据依次为:1 2 3 4 5 6 7 8 9,则调换后为:6 7 8 9 5 1 2 3 4。

#include  <stdio.h>

#define    N    9

void fun(int  a[], int  n)

{

}

int main()

{

    int  b[N]={1,2,3,4,5,6,7,8,9}, i;

    printf("\nThe original data  :\n");

    for (i=0; i<N; i++)  printf("%4d ", b[i]);

    printf("\n");

    fun(b, N);

    printf("\nThe data after moving  :\n");

    for (i=0; i<N; i++)  printf("%4d ", b[i]);

    printf("\n");

    return 0;

}

void fun(int  a[], int  n)
{
    int  i, t, p;
    p = (n%2==0)?n/2:n/2+1;
    for (i=0; i<n/2; i++)
    {
        t=a[i];
        a[i] = a[p+i];
        a[p+i] = t;
    }
}
参考程序

2.编写函数fun,它的功能是:对于给定的下标n,把数组arr中比元素arr[n]小的元素放在它的左边,比它大的元素放在它的右边,排列成的新数组仍然保存在原数组中。

例如,数组arr={33,67,42,58,25,76,85,16,41,65},下标n=3,则移动后数组arr={33,42,25,16,41,58,67,76,85,65}。

#include  <stdio.h>

#define    N  10

void fun(int  arr[], int  n)

{

}

int main()

{

    int  b[N]={33,67,42,58,25,76,85,16,41,65}, i,n;

    printf("\nThe original data  :\n");

    for (i=0; i<N; i++)

        printf("%d ", b[i]);

    printf("\n");

    scanf("%d",&n);

    fun(b, n);

    printf("\nThe data after moving  :\n");

    for (i=0; i<N; i++)  printf("%d ", b[i]);

    printf("\n");

    return 0;

}

void fun(int  arr[], int  n)
{
    int i,j=0,k=0,t;
    int bb[N];
    t=arr[n];
    for (i=0;i<N;i++)
    {
        if (arr[i]>t)  bb[j++]=arr[i];
        if (arr[i]<t)  arr[k++]=arr[i];
    }
    arr[k++]=t;
    for (i=0;i<j;i++)
        arr[k++]=bb[i];
}
参考程序

3.编写函数fun,它的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:41 17 34 0 19 24 28 8 12 14,平均值为:19.700000

移动后的输出为:17 0 19 8 12 14 41 34 24 28。

#include  <stdio.h>

#include  <stdlib.h>

#define   N   10

double fun(double *x)

{

}

int main()

{

     int  i;

     double  x[N];

     for(i=0; i<N; i++)

    {

        x[i]=rand()%50;

        printf("%4.0f ",x[i]);

    }

     printf("\n");

     printf("\nThe average is: %f\n",fun(x));

     printf("\nThe result :\n");

     for(i=0; i<N; i++)  printf("%5.0f ",x[i]);

     printf("

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇冷知识:预处理字符串操作符 下一篇计算机等级考试二级C语言程序设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目