首页 > 编程语言 >程序设计题(25-32)

程序设计题(25-32)

时间:2024-09-17 10:51:44浏览次数:10  
标签:25 int 32 void char NONO double fun 程序设计

第二十五题

题目

请编写函数fun,其功能是:在一个含有11个四位数的数组中,统计出这些数的奇数、偶数个数,然后计算出个数多的那些数的算数平均值并由函数返回,个数通过yy传回。

例如,若11个数据为:1101, 1202, 1303, 1404, 1505, 2611, 2712, 2813, 2914, 3202, 4222

则输出: yy=6, pjz=2609. 33

#include <stdio.h> 
#pragma warning (disable:4996)
#define N 11
double fun( int xx[], int *yy )
{
     
}

main()
{
    int yy, xx[N]={1101,1202,1303,1404,1505,2611,2712,2813,2914,3202,4222};
    double pjz ;
    void NONO();

    pjz = fun( xx, &yy );
    printf("yy=%d, pjz=%.2lf\n", yy, pjz);
    NONO();
}

void NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
   输出数据,关闭文件。 */
    int i, j, xx[N], yy;
    double pjz;
    FILE *rf, *wf ;

    rf = fopen("in.dat","r") ;
    wf = fopen("out.dat","w") ;
    for(i=0; i<10; i++) {
        for(j=0; j<N; j++) fscanf(rf, "%d ", &xx[j]);
        pjz = fun( xx, &yy );
        fprintf(wf, "%d, %.2lf\n", yy, pjz);
    }
   fclose(rf) ;
   fclose(wf) ;
}

解析

double fun( int xx[], int *yy )
{
	int i,j=0,k=0;
	double xx1=0.0,xx2=0.0;
    for(i=0;i<N;i++){
		if(xx[i]%2==0){
			xx1+=xx[i];
			j++;
		}
		else{
			xx2+=xx[i];
		    k++;
		}
	 }
	if(j>k){
		*yy=j;
		return xx1/j;
	}
	else{
		*yy=k;
	    return xx2/k;
	}
}

分析

第二十六题

题目

请编写函数fun,其功能是:统计出x所指数组中偶数的个数,通过函数值返回主函数;

并计算出偶数的平均值放到形参ave所指的存储单元中。

例如:当数组内容为: 12,5,9,8, 23, 4, 7, 21时,

输出结果应该是: n=3, ave=8. 000000

#include <stdio.h>
#pragma warning (disable:4996)
#define N 8
int fun(int x[],double *ave)
{



}

main()
{  int x[N]={ 12,5,9,8,23,4,7,21 }, n;
   double ave;
   void NONO();
   n=fun(x,&ave);
   printf("n=%d,ave=%lf\n",n,ave);
   NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *in, *out ;
  int i,j, x[N], n ;
  double ave;
  in = fopen("in.dat","r") ;
  out = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    for(j=0 ; j < N; j++) fscanf(in, "%d,", &x[j]) ;
	   n=fun(x,&ave);
	 fprintf(out, "n=%d,ave=%lf\n",n,ave);
  }
  fclose(in) ;
  fclose(out) ;
}

解析

int fun(int x[],double *ave)
{
	int i,j=0;
	double sum=0.0;
	for(i=0;i<N;i++){
		if(x[i]%2==0){
			sum+=x[i];
			j++;
		}
	}
	*ave=sum/j;
	return j;
}

分析

第二十七题

题目

请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。

例如,二维数组中的数据为:

w w w w

s s s s

H H H H

则字符串中的内容应是:WSHWSHWSHWSH。

#include <stdio.h>
#define     M   3
#define     N   4
void  fun(char  s[][N], char *b)
{
  int i,j,n=0;
  for(i=0; i < N;i++)  /* 请填写相应语句完成其功能 */
  {


  }
  b[n]='\0';
}
main()
{  char  a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};
   int  i,j;void NONO ();
   printf("The matrix:\n");
   for(i=0; i<M; i++)
   {  for(j=0;j<N; j++)printf("%3c",w[i][j]);
      printf("\n");
   }
   fun(w,a);
   printf("The A string:\n");puts(a);
   printf("\n\n");
   NONO();
   getchar();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf ; int i,j,k ;
  char a[100],w[M][N], b ;
  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(k = 0 ; k < 10 ; k++) {
    for(i = 0 ; i < M ; i++) {
      for(j = 0 ; j < N ; j++) fscanf(rf, "%c", &w[i][j]) ;
      fscanf(rf, "%c", &b) ;
    }
    fun(w, a) ;
    fprintf(wf, "%s\n", a) ;
  }
  fclose(rf) ; fclose(wf) ;
}

解析

void  fun(char  s[][N], char *b)
{
  int i,j,n=0;
  for(i=0; i < N;i++)  /* 请填写相应语句完成其功能 */
	  for(j=0;j < M;j++)
		  b[n++]=s[j][i];
  b[n]='\0';
}

分析

第二十八题

题目

请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,一维数组中的数据是:

2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后数组中的内容应该是:2 3 4 5 6 7 8 9 10。

#include <stdio.h>
#define    N    80
int  fun(int  a[], int  n)
{



}
main()
{  int  a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;void NONO ();
   printf("The original data :\n");
   for(i=0; i<n; i++)printf("%3d",a[i]);
   n=fun(a,n);
   printf("\n\nThe data after deleted :\n");
   for(i=0;i<n;i++)printf("%3d",a[i]); printf("\n\n");
   NONO();
   getchar();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf; int a[N], n, i, j ;
  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(i = 0 ; i < 5 ; i++) {
    fscanf(rf, "%d", &n) ;
    for(j = 0 ; j < n ; j++) fscanf(rf, "%d", &a[j]) ;
    n = fun(a, n) ;
    for(j = 0 ; j < n ; j++) fprintf(wf, "%4d", a[j]) ;
    fprintf(wf, "\n") ;
  }
  fclose(rf) ; fclose(wf) ;
}

解析

int  fun(int  a[], int  n)
{
	int i=0,j=1;
	for(i=0;i<N;i++)
		if(a[i]!=a[i+1])
			a[j++]=a[i+1];
	return j;
}

分析

数组中的删除,就是指数据覆盖,让后一个覆盖前一个,不要想着让元素消失

第二十九题

题目

函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为: "ABCDEFG12345",其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:"135"。

#include <stdio.h>
#include <string.h>

void fun(char *s, char t[])
{




}

main()
{
  char   s[100], t[100];void NONO ();
  printf("\nPlease enter string S:"); scanf("%s", s);
  fun(s, t);
  printf("\nThe result is: %s\n", t);
  NONO();
  getchar();
}

void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  char s[100], t[100] ;
  FILE *rf, *wf ;
  int i ;

  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(rf, "%s", s) ;
    fun(s, t) ;
    fprintf(wf, "%s\n", t) ;
  }
  fclose(rf) ;
  fclose(wf) ;
}

解析

void fun(char *s, char t[])
{
	int i,j=0;
	for(i=0;i<strlen(s);i++)
		if(i%2==1&&s[i]%2==1)
			t[j++]=s[i];
}

分析

第三十题

题目

请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如,字符串数组中的M个字符串为:

AAAA

BBBBBBB

CC

则合并后的字符串的内容应是: AAAABBBBBBBCC。

提示: strcat (a, b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。

#include <stdio.h>
#include <string.h>
#define   M   3
#define   N   20
void  fun(char  a[M][N], char  *b)
{
  /* 以下代码仅供参考 */
  int i; *b=0;


}
main()
{  char  w[M][N]={"AAAA","BBBBBBB","CC"}, a[100];
   int i ;void NONO ();
   printf("The string:\n");
   for(i=0; i<M; i++)puts(w[i]);
   printf("\n");
   fun(w,a);
   printf("The A string:\n");
   printf("%s",a);printf("\n\n");
   NONO();
  getchar();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf ;
  char w[M][N], a[100] ; int i ;
  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(rf, "%s %s %s", w[0], w[1], w[2]) ;
    fun(w, a) ;
    fprintf(wf, "%s\n", a) ;
  }
  fclose(rf) ; fclose(wf) ;
}

解析

void  fun(char  a[M][N], char  *b)
{
  /* 以下代码仅供参考 */
  int i; *b=0;
  for (int i = 0; i < M; i++) 
      strcat(b, a[i]);
}

分析

我只能说一句厉害

第三十一题

题目

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。

#include <stdio.h>
#include <stdlib.h>
#define   N   8
struct  slist
{  double   s;
   struct slist  *next;
};
typedef  struct slist  STREC;
double  fun( STREC *h  )
{


}

STREC * creat( double *s)
{ STREC  *h,*p,*q;   int  i=0;
  h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
  while(i<N)
  { q=(STREC*)malloc(sizeof(STREC));
    q->s=s[i]; i++; p->next=q; p=q;
  }
  p->next=0;
  return  h;
}
outlist( STREC *h)
{ STREC  *p;
  p=h->next;   printf("head");
  do
  { printf("->%2.0f",p->s);p=p->next;}
  while(p!=0);
  printf("\n\n");
}
main()
{  double  s[N]={85,76,69,85,91,72,64,87}, max;void NONO ();
   STREC  *h;
   h=creat( s );   outlist(h);
   max=fun( h );
   printf("max=%6.1f\n",max);
   NONO();
  getchar();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *in, *out ;
  int i,j ; double  s[N],max;
  STREC *h ;
  in = fopen("in.dat","r") ;
  out = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    for(j=0 ; j < N; j++) fscanf(in, "%lf,", &s[j]) ;
    h=creat( s );
    max=fun( h );
    fprintf(out, "%6.1lf\n", max) ;
  }
  fclose(in) ;
  fclose(out) ;
}

解析

double  fun( STREC *h  )
{
	double temp=0.0;
	STREC *p;
	p=h;
	while(p){
	if(p->s>temp)
		temp=p->s;
	p=p->next;
	}
	return temp;
}

分析

第三十二题

题目

#include <stdio.h>
#pragma warning (disable:4996)
double fun(int  n)
{


}
main()
{ int  n;    double  s;
  void NONO( );
  printf("\nInput n:  ");  scanf("%d",&n);
  s=fun(n);
  printf("\n\ns=%f\n\n",s);
  NONO();
}
void NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf ; int n, i ; double s ;
  rf = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(rf, "%d", &n) ;
    s = fun(n) ;
    fprintf(wf, "%lf\n", s) ;
  }
  fclose(rf) ; fclose(wf) ;
}

解析

double fun(int  n)
{
	int i;
	double sum=0.0,t=1.0;
	for(i=1;i<=n;i++){
		t*=i;
		sum+=1/t;
	}
	return sum;
}

分析

标签:25,int,32,void,char,NONO,double,fun,程序设计
From: https://blog.csdn.net/2401_82772407/article/details/142300525

相关文章

  • [proteus仿真]基于51单片机,74hs373,8255A扩展 流水灯设计
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于51单片机,74hs373,8255A扩展流水灯设计二、硬件资源基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。三、程序编程#include<reg52.h>#include<intrins.h>#include......
  • python多线程程序设计 之一
    python多线程程序设计之一全局解释器锁线程APIsthreading.active_count()threading.current_thread()threading.excepthook(args,/)threading.get_native_id()threading.main_thread()threading.stack_size([size])线程对象成员函数构造器start/runjoin线程子类实列......
  • 3295:【例50.1】陶陶摘苹果(C、C++、python)
    3295:【例50.1】陶陶摘苹果信息学奥赛一本通-编程启蒙(C++版)在线评测系统[例50.1]陶陶摘苹果1930:【05NOIP普及组】陶陶摘苹果信息学奥赛一本通(C++版)在线评测系统陶陶摘苹果(非数组版)陶陶摘苹果(非数组版)_哔哩哔哩_bilibili陶陶摘苹果(非数组版)_哔哩哔哩_bilibili......
  • esp32之micropython 配网代码
    esp32之micropython配网代码最近学习esp32的时候想着能不能给设备自动配网,查了下网上有smartconfig配网但是我无法配置成功所以自己写了AP配网。AP配网代码importnetworkimportsocket,jsonfrommachineimportPin,Timerimporttimeled_pin=Pin(4,Pin.OUT)#配置热......
  • STM32入门教程:智能电机控制
    智能电机控制是STM32入门教程中的重要内容之一。本教程将以详细的代码案例来介绍如何使用STM32来控制智能电机。在开始之前,我们需要了解一些基本概念。智能电机通常由电机与控制器组成,控制器使用STM32等微控制器来实现对电机的控制。电机控制的最常见方式是使用PWM(脉宽调制)信......
  • STM32入门教程:身份证识别
    身份证识别是一种常见的图像处理应用,能够通过识别身份证上的文字信息,以获取身份证号码、姓名等重要个人信息。在本教程中,我们将使用STM32微控制器和相关的图像处理算法,来实现身份证识别功能。硬件准备首先,我们需要准备一块STM32开发板,以及相应的图像传感器。你可以选择使用......
  • 学习STM32的陀螺仪传感器
    陀螺仪是一种用于测量角速度的传感器,广泛应用于飞行器、机器人控制等领域。STM32系列微控制器具有丰富的外设资源,可用于连接和读取陀螺仪传感器。本文将介绍如何使用STM32连接陀螺仪传感器,并使用代码案例详细讲解。硬件准备首先,我们需要准备以下硬件:STM32开发板:本文以STM32F......
  • STM32入门教程:LCD触摸屏控制
    STM32是一款广泛应用于嵌入式系统开发的微控制器系列,拥有强大的处理能力和丰富的外设接口。LCD触摸屏是一种通过触摸来控制显示内容的交互设备,常用于嵌入式系统中的人机交互界面。本教程将详细介绍如何使用STM32控制LCD触摸屏。一、硬件准备首先,我们需要准备以下硬件设备:STM......
  • 基于AG32 的USB转以太网方案
    如何通过USB转以太网标准模块?AG32支持USBFS+OTG和以太网MAC,并且提供了标准例程,包括网络Lwip和USB的开发例程,上层应用调tinyUSB的接口即可。   以下是AG32VF407VG的引脚定义,支持USB外设。LQFP-100PinnameAG32VFxxxVAGRV2KL1001PIN_1IOIO2PIN_2IOIO3PIN_3IOIO4PIN_4......
  • CRE6255MS (5V2.1A电源芯片方案)
    CRE6255MS产品是一款内置高压MOS功率开关管12W原边控制的开关电源芯片。CRE6255MS较少的外围元器件、较低的系统成本设计出高性能的交直流转换开关电源。CRE6255MS提供了极为全面和性能优异的智能化保护功能,包括逐周期过流保护、软启动、芯片过温保护、输出过压保护功能、VD......