C语言二级-第八套

程序填空题

问:在此程序中,函数fun的功能是:找出NxN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。

#include  <stdio.h>
#define  N  4
void fun(int  (*a)[N], int  *b)
{ int  i,j;
  for(i=0; i<N; i++) {
/**********found**********/
    b[i]=__1__;
    for(j=1; j<N; j++)
/**********found**********/
        if(b[i]__2__ a[j][i])
		   b[i]=a[j][i];
  }
}
void main()
{ int  x[N][N]={ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[N],i,j;
  printf("\nThe matrix :\n");
  for(i=0;i<N; i++)
  {  for(j=0;j<N; j++) printf("%4d",x[i][j]);
     printf("\n");
  }
/**********found**********/
  fun(__3__);
  printf("\nThe result is:");
  for(i=0; i<N; i++)  printf("%3d",y[i]);
  printf("\n");
}

简答: 

#include  <stdio.h>
#define  N  4
void fun(int  (*a)[N], int  *b)
{ int  i,j;
  for(i=0; i<N; i++) {
/**********found**********/
    b[i]=a[0][i];

    for(j=1; j<N; j++)
/**********found**********/
        if(b[i]< a[j][i])
		   b[i]=a[j][i];
  }
}
void main()
{ int  x[N][N]={ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[N],i,j;
  printf("\nThe matrix :\n");
  for(i=0;i<N; i++)
  {  for(j=0;j<N; j++) printf("%4d",x[i][j]);
     printf("\n");
  }
/**********found**********/
  fun(x,y);
  printf("\nThe result is:");
  for(i=0; i<N; i++)  printf("%3d",y[i]);
  printf("\n");
}

填空1:数组b用于存放每列元素中的最大值,首先将第i列的第一个数赋给b[i], 然后用b[i]与 其他数进行比较,因此此空应填a[0][i]。
填空2: if条件 表达式表示当b[i]小于a[j][i]时,就把a[j][i]的 值赋给b[i],因此此空应该填<。
填空3: fun函数的调用,通过fun(int (*a)[N],int *b)可知,此空应该填x,y。

程序修改题

问:在此程序中,函数fun的功能是:将主函数中两个变量的值进行交换。

例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

#include <stdio.h>
/*************found**************/
void fun(int x,int y)
{ int t;
/*************found**************/
  t=x;x=y;y=t;
}
void main()
{ int a,b;
  a=8;
  b=3;
  fun(&a, &b);
  printf("%d  %d\n ", a,b);
}

简答:  

#include <stdio.h>
/*************found**************/
void fun(int *x,int *y)
{ int t;
/*************found**************/
  t=*x;*x=*y;*y=t;
}
void main()
{ int a,b;
  a=8;
  b=3;
  fun(&a, &b);
  printf("%d  %d\n ", a,b);
}

忒简单了!
 

程序设计题

问:在此程序中,编写函数int fun(int lim, int aa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
  
}
void main()
{
  FILE *wf;
  int limit,i,sum;
  int aa[MAX];
  system("CLS");
  printf("输入一个整数:");
  scanf("%d",&limit);
  sum=fun(limit,aa);        
  for(i=0;i<sum;i++)
     {
      if(i%10==0&&i!=0)    /*每行输出10个数*/
         printf("\n ");
      printf("%5d ",aa[i]);
    }
/******************************/
  wf=fopen("out.dat","w");
  sum=fun(15,aa);        
  for(i=0;i<sum;i++)
     {
      if(i%10==0&&i!=0)    /*每行输出10个数*/
         fprintf(wf,"\n");
      fprintf(wf,"%5d ",aa[i]);
    }
  fclose(wf);
/*****************************/
}

简答:  

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
	int i,j;
	int n=0;
  for(i=2;i<=lim;i++){
  	for(j=2;j<i;j++){
  		if(i%j==0){
  			break;
		  }
	}
	if(j>=i){
	aa[n]=i; 
	n++; 
	}
  }
  return n;
}
void main()
{
  FILE *wf;
  int limit,i,sum;
  int aa[MAX];
  system("CLS");
  printf("输入一个整数:");
  scanf("%d",&limit);
  sum=fun(limit,aa);        
  for(i=0;i<sum;i++)
     {
      if(i%10==0&&i!=0)    /*每行输出10个数*/
         printf("\n ");
      printf("%5d ",aa[i]);
    }
/******************************/
  wf=fopen("out.dat","w");
  sum=fun(15,aa);        
  for(i=0;i<sum;i++)
     {
      if(i%10==0&&i!=0)    /*每行输出10个数*/
         fprintf(wf,"\n");
      fprintf(wf,"%5d ",aa[i]);
    }
  fclose(wf);
/*****************************/
}

其实就是求素数的方法...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-沫_

感谢、感谢,感谢大佬的打赏!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值