我是靠谱客的博主 外向向日葵,最近开发中收集的这篇文章主要介绍二级C语言操作例题(十五),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、程序填空题

在此程序中,函数fun的功能是:将a所指3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。

例如,有下列矩阵:

若k=2,程序执行结果为

#include  <stdio.h>

#define   M   3

#define   N   5

void fun(int  (*a)[N],int  k)

{ int  i,j,p,temp;

/**********found**********/

  for(p=1; p<= __1__; p++)

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

     {  temp=a[i][0];

/**********found**********/

        for(j=0; j< __2__ ; j++) a[i][j]=a[i][j+1];

/**********found**********/

        a[i][N-1]= __3__;

     }

}

void main( )

{ int  x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j;

  printf("The array before moving:nn");

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

  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);

     printf("n");

  }

  fun(x,2);

  printf("The array after moving:nn");

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

  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);

     printf("n");

  }

}

答案:(1) k (2) N-1 (3) temp

二、程序修改题

在此程序中,函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。

#include <conio.h>

#include <stdio.h>

#define  M 10

int  a[M][M] = {0} ;

/**************found**************/

void fun(int **a, int m)

{  int j, k ;

   for (j = 0 ; j < m ; j++ )

        for (k = 0 ; k < m ; k++ )

/**************found**************/

          a[j][k] = k * j ;

}

void main ( )

{  int  i, j, n ;

   printf ( " Enter n : " ) ;  scanf ("%d", &n ) ;

   fun ( a, n ) ;

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

   {    for (j = 0 ; j < n ; j++)

          printf ( "%4d", a[i][j] ) ;

        printf ( "n" ) ;

   }

}

答案:(1) void fun(int a[][M], int m) (2) a[j][k] = (k+1)*(j+1);

三、程序设计题

在此程序中,函数fun的功能是:将a、b中的两个正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。

例如,当a=45,b=12。调用该函数后,c=5241。

#include <stdio.h>

void fun(int  a, int  b, long  *c)

{

}

void main()

{  int  a,b; long  c;void NONO ();

   printf("Input a, b:");

   scanf("%d%d", &a, &b);

   fun(a, b, &c);

   printf("The result is: %ldn", c);

   NONO();

}

void NONO ()

{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

  FILE *rf, *wf ;

  int i, a,b ; long c ;

  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  for(i = 0 ; i < 10 ; i++) {

    fscanf(rf, "%d,%d", &a, &b) ;

    fun(a, b, &c) ;

    fprintf(wf, "a=%d,b=%d,c=%ldn", a, b, c) ;

  }

  fclose(rf) ;

  fclose(wf) ;

}

答案:

*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);

最后

以上就是外向向日葵为你收集整理的二级C语言操作例题(十五)的全部内容,希望文章能够帮你解决二级C语言操作例题(十五)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部