1./*请编写一个函数fun,它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它的下标通过形参返回。数组中的值随机赋予。*/
#include"stdio.h"
#include"stdlib.h"
#include "time.h"
void fun(int a[],int n,int *max,int *d)
{
int i,j;
int temp;
*max=a[0];
for(i=1;i<=n;i++)
{
if(*max {*max=a[i];
*d=i;}
}
}
void main()
{
int i,x[20],max,index,n=5;
srand((unsigned)time(NULL));
for(i=0;i<=n;i++)
{
x[i]=rand()%50;
printf("%4d",x[i]);
/*输出一个随机数*/
}
printf("/n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d/n",max,index);
getch();
}
2./*请编写函数fun,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ASCII码值升序排列*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
#include "ctype.h"
void fun(char *s,int num)
{
int i,j;
char t;
for(i=1;i
for(j=i+1;j
if(s[i]>s[j])
{ t=s[j];
s[j]=s[i];
s[i]=t;
}
}
}
}
void main()
{
char s[10];
system("CLS");
printf("输入7个字符的字符串:/n");
gets(s);
fun(s,7);
printf("/n%s",s);
getch();
}
3./*编写函数int fun(int lim,int aa[MAX]),该函数的功能是求小于或等于lim的所有素数并放入aa数组中,该函数返回所求出的素数的个数*/
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define MAX 100
int fun(int lim,int aa[MAX])
{
int i,j,k=0;
aa[0]=2;
for(i=2;i<=lim;i++)
{
for(j=2;j {if(i%j==0)
break;
else
aa[++k]=i;
break;
}
}
return k+1;
}
void main()
{
int limit,i,sum;
int aa[MAX];
system("CLS");
printf("输入一个整数");
scanf("%d",&limit);
sum=fun(limit,aa);
printf("素数的个数是:%d/n",sum);
printf("素数分别是:");
for(i=0;i<=sum;i++)
{
if(i%10==0&&i!=0)
printf("/n");
printf("%5d",aa[i]);
}
getch();
}
4./*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。*/
#include"stdio.h"
#include"conio.h"
void fun(char *a)
{ int i=0,j;
while (a[i]!='/0')
{
i++;
}
j=i-1;
while(a[j]=='*')
{
j--;
}
a[j+1]='/0';
}
void main()
{
char s[81];
printf("Enter a string:/n");
gets(s);
fun(s);
printf("The string after deleted :/n");
puts(s);
getch();
}
5./*请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放入t所指的数组中。*/
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "stdlib.h"
void fun(char *s,char t[])
{
int i,j=0;
for(i=0;s[i]!='/0';i++)
{
if(i%2==0)
{continue; }
else
{t[j++]=s[i]; }
}
t[j]='/0';
}
void main()
{
char s[100],t[100];
system("CLS");
printf("/nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("/nThe result is: %s /n",t);
getch();
}
6./*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生的数据,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)*/
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
STREC fun(STREC *a,char *b)
{
int i;
STREC str={"/0",-1};
for(i=0;i
if(strcmp(a[i].num,b)==0)
str=a[i];
}
return str;
}
void main()
{
STREC s[N]={{"05",85},{"03",76},{"02",69},{"04",85},{"01",91},{"07",72},{"08",64},{"06",87},{"15",85},{"13",91},{"12",64},{"14",91},{"11",91},{"17",64},{"18",64},{"16",72}};
STREC h;
char m[10];
int i;
printf("The original data:/n");
for(i=0;i
if(i%4==0)
printf("/n");
printf("%s %3d||",s[i].num,s[i].s);
}
printf("/n/nEnter the number:");
gets(m);
h=fun(s,m);
printf("The data:");
printf("/n%s %4d/n",h.num,h.s);
printf("/n");
getch();
}