资源描述
1、请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。
例如,s所指字符串中的内容是:2def35adh25 3kjsdf 7/kj8655x,
函数fun返回值为:11
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include void
int fun(char *s)
{
}
main()
{ char *s="2def35adh25 3kjsdf 7/kj8655x";
printf("%s\n",s);
printf("%d\n",fun(s));
}
1、 int count=0;
while(*s!='\0')
{
if(*s>=48 && *s<=57)
count++;
s++;
}
return count;
2、编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意: 主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考。)
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include void fun(char(*a)[81],int num,char **max)
{
/* 以下代码仅供参考 */
int i,k=0,len, maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长 */
maxlen=strlen(a[k]);
for(i=1;i {
/* 以下完成查找最长串 */
}
*max=a[k];
}
main()
{
char ss[10][81],*ps;void
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
fun(ss,n,&ps);
printf("\nmax=%s\n",ps);
}
2、len=strlen(a[i]) ;
if(maxlen {k=i ;maxlen=len ;}
3、请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include #define M 81
int fun(char *ss, char c)
{
}
main()
{ char a[M], ch;
void
printf("\nPlease enter a string:"); gets(a);
printf("\nPlease enter a char:"); ch = getchar();
printf("\nThe number of the char is: %d\n", fun(a, ch));
}
3、int count=0 ;
while(*ss != '\0')
{
if(*ss = = c)
count++ ;
ss++ ;
}
return count;
4、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include void fun( char *a )
{
}
main()
{ char s[81];
void
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after deleted:\n");puts(s);
}
4、 int i,len=0;
while(a[len] == '*')
len++;
i=len;
while(a[i]!= '\0')
{
a[i-len]=a[i];
i++;
}
5、请编写一个函数void fun (char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中, a指向原字符串, 删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。
例如,输入一个字符串: World,然后输入3,则调用该函数后的结果为: Word。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include #define LEN 20
void fun (char a[], char b[], int n)
{
}
main( )
{ char str1[LEN], str2[LEN] ;
int n ;
void
printf("Enter the string:\n") ;
gets(str1) ;
printf("Enter the index of the char deleted:") ;
scanf("%d", &n) ;
fun(str1, str2, n) ;
printf("The new string is: %s\n", str2) ;
}
5、 a[n]=0 ;
strcpy(b , a) ;
strcat(b , a + strlen(a)+1);
6、请编写一个函数 unsigned fun ( unsigned w ),w 是一个大于10的无符号整数,若 w 是 n (n ≥ 2)位的整数,函数求出w的低 n-1位的数作为函数值返回。
例如:w 值为 5923,则函数返回 923; w 值为 923 则函数返回 23。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include unsigned fun ( unsigned w )
{
}
main( )
{
void
unsigned x;
printf ( "Enter a unsigned integer number : " ); scanf ( "%u", &x );
printf ( "The original data is : %u\n", x );
if ( x < 10 ) printf ("Data error !");
else printf ( "The result : %u\n", fun ( x ) );
}
6、 unsigned num=w,n=1;
while(num!=0)
{
num=num/10;
n=n*10;
}
n=n/10;
return w%n;
7、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include void fun( char *a, char *h,char *p )
{
}
main()
{ char s[81],*t, *f;
void
printf("Enter a string:\n");gets(s);
t=f=s;
while(*t)t++;
t--;
while(*t=='*')t--;
while(*f=='*')f++;
fun( s , f,t );
printf("The string after deleted:\n");puts(s);
}
7、 char *r,*q;
for(q=p;q>h;q--)
{
if(*q == '*')
{
r=q;
while(*r!='\0')
{
*r=*(r+1);
r++;
}
}
}
8、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include #define N 10
typedef struct ss
{ char num[10]; int s; } STU;
void fun( STU a[], STU *s )
{
}
main ( )
{ STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;void
printf("***** The original data *****\n");
for ( i=0; i< N; i++ )printf("No = %s Mark = %d\n", a[i].num,a[i].s);
fun ( a, &m );
printf ("***** THE RESULT *****\n");
printf ("The lowest : %s , %d\n",m.num, m.s);
}
8、 int i;
*s=a[0];
for(i=1;i < N;i++)
{
if((*s).s > a[i].s )
*s=a[i];
}
9、请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
例如:二维数组中的值为
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0则函数值为 61。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #define M 4
#define N 5
int fun ( int a[M][N] )
{
}
main( )
{ int aa[M][N]={{1,3,5,7,9},
{2,9,9,9,4},
{6,9,9,9,8},
{1,3,5,7,0}};
int i, j, y;void
printf ( "The original data is : \n" );
for ( i=0; i { for ( j =0; j printf ("\n");
}
y = fun ( aa );
printf( "\nThe sum: %d\n" , y );
printf("\n");
}
9、 int sum=0,i;
for(i=0;i sum=sum+a[0][i]+a[M-1][i];
for(i=1;i sum=sum+a[i][0]+a[i][N-1];
return sum;
10、程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a 数组中的值为
|0 1 2 7 9|
|1 9 7 4 5|
a = |2 3 8 3 1|
|4 5 6 8 2|
|5 9 1 4 1|则返回主程序后s的值应为: 3.375。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include #define N 5
double fun ( int w[][N] )
{
}
main ( )
{ int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
int i, j;void
double s ;
printf("***** The array *****\n");
for ( i =0; i { for ( j =0; j { printf( "M", a[i][j] ); }
printf("\n");
}
s = fun ( a );
printf ("***** THE RESULT *****\n");
printf( "The sum is : %lf\n",s );
}
10、 int sum=0,i;
for(i=0;i sum=sum+w[0][i]+w[N-1][i];
for(i=1;i sum=sum+w[i][0]+w[i][N-1];
return (double)sum/(4*N-4);
11、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include void fun( char *a )
{
}
main()
{ char s[81];
void
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after deleted:\n");puts(s);
}
11、void fun( char *a )
{
char *t;
while(*a)
{
if(*a=='*')
{
t=a-1;
while(*a){ *(a) = *(a+1); a++; }
*a='\0';
a=t;
}
a++;
}
}
12、请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中, 非素数的个数通过k传回。
例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
#include void fun( int m, int *k, int xx[] )
{
}
main()
{
int m, n, zz[100];
void
printf( "\nPlease enter an integer number between 10 and 100: " );
scanf( "%d", &n );
fun( n, &m, zz );
printf( "\n\nThere are %d non-prime numbers less than %d:", m, n );
for( n = 0; n < m; n++ )
printf( "\n M", zz[n] );
}
12、void fun( int m, int *k, int xx[] )
{
int i,j,num=0;
for(i=2;i {
for(j=2;j
{
if(i%j==0){xx[num++]= i;break;}
}
}
*k=num;
}
13、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数 fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include #define N 10
typedef struct ss
{ char num[10]; int s; } STU;
void fun( STU a[], STU *s )
{
}
main ( )
{
void
STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }, m ;
int i;
printf("***** The original data *****\n");
for ( i=0; i< N; i++ )printf("No = %s Mark = %d\n", a[i].num,a[i].s);
fun ( a, &m );
printf ("***** THE RESULT *****\n");
printf ("The top : %s , %d\n",m.num, m.s);
}
13、void fun( STU a[], STU *s )
{
int i,j=0,max;
max = a[0].s;
for(i=1;i {
if(max
{max =a[i].s;
*s=a[i];}
}
}
14、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a, STREC *b )
{
}
main()
{ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;FILE *out ;
n=fun( s,h );
printf("The %d highest score :\n",n);
for(i=0;i printf("%s M\n",h[i].num,h[i].s);
printf("\n");
out = fopen("c:\\test\\out.dat","w") ;
fprintf(out, "%d\n",n);
for(i=0;i fprintf(out, "M\n",h[i].s);
fclose(out);
}
14、int fun( STREC *a, STREC *b )
{ int i,num=0,max;
max = a[0].s;
for(i=1;i {
if(max
}
for(i=0;i {
if(max==a[i].s){b[num]=a[i];num++;}
}
return num;
}
15、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。
例如, 二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容应是: WSHWSHWSHWSH。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
#include #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
printf("The matrix:\n");
for(i=0; i { for(j=0;j
15、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';
}
16、编写函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #define MAX 100
int fun(int lim, int aa[MAX])
{
/* 以下代码仅供参考 */
int i,j,k=0;
/* 其中变量k用于统计素数个数 */
for(i=2;i<=lim;i++)
{
/* 以下找出小于或等于lim的素数存入aa数组中并统计素数个数 */
}
return k;
}
main()
{
int limit, i, sum;void
int aa[MAX] ;
printf("输入一个整数:");
scanf("%d", &limit);
sum=fun(limit, aa);
for(i=0 ; i < sum ; i++) {
if(i % 10 == 0 && i != 0) printf("\n") ;
printf("]", aa[i]) ;
}
}
16、int fun(int lim, int aa[MAX])
{
/* 以下代码仅供参考 */
int i,j,k=0;
/* 其中变量k用于统计素数个数 */
for(i=2;i<=lim;i++)
{
/* 以下找出小于或等于lim的素数存入aa数组中并统计素数个数 */
for(j=2;j
if(i%j==0)break;
if(i==j)aa[k++]=i;
}
return k;
}
17、请编写函数fun,它的功能是: 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7 和 11 整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include void fun (int *a, int *n)
{
}
main( )
{ int aa[1000], n, k ;
void
fun ( aa, &n ) ;
for ( k = 0 ; k < n ; k++ )
if((k + 1) % 10 == 0) printf("\n") ;
else printf("]", aa[k]) ;
}
17、void fun (int *a, int *n)
{
int i=1;
*n=0;
while(i<1000)
{ if((i%7==0||i==0)&&(iw!=0))a[(*n)++]=i;
i++;
}
}
18、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,他的平均分应当是:78.875。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
#include #define N 8
typedef struct
{ char num[10];
double s[N];
double ave;
} STREC;
void fun(STREC *a)
{
}
main()
{ STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
int i;
void
fun( &s );
printf("The %s's student data:\n", s.num);
for(i=0;i printf("%4.1f\n",s.s[i]);
printf("\nave=%7.3f\n",s.ave);
}
18、void fun(STREC *a)
{
int i;
float sum=0;
for(i=0;is[i];}
a->ave = sum/N;
}
19、函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符C的ASCII码值为奇数,在数组中的下标为偶数, 因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。
最后t所指的数组中的内容应是"BDF12345"。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];void
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
}
19、void fun(char *s, char t[])
{
int i,j=0,len;
len = strlen(s);
for(i=0;i {
if(i%2==0&&s[i]%2!=0) ;
else{t[j]=s[i];j++;}
}
t[j]='\0';
}
20、编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0 的一个实根。
迭代步骤如下:(1)取 x1 初值为0.0;(2)x0 = x1,把x1的值赋给 x0;(3)x1 = cos(x0),求出一个新的x1;(4)若x0 - x1的绝对值小于 0.000001,执行步骤(5),否则执
行步骤(2);(5)所求x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回。
程序将输出结果Root=0.739086。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include double fun()
{
}
main()
{
void
printf("Root =%f\n", fun());
}
20、double fun()
{double x1=0.0,x0;
do{x0=x1;x1=cos(x0);}
while(fabs(x0-x1)>=1e-6);
return x1;
}
21、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做, 字符串中间和前面的*号不删除。
例如,字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include void fun( char *a,int n )
{
}
main()
{ char s[81]; int n;
void
printf("Enter a string:\n");gets(s);
printf("Enter n : ");scanf("%d",&n);
fun( s,n );
printf("The string after deleted:\n");puts(s);
}
21、void fun( char *a,int n )
{
int num=0;
char *p=a;
while(*p)p++;
p=p-1;
while(*p=='*'){num++;p--;}
if(num>n)
{
p=p+n+1;
*p=0;
}
}
22、请编写一个函数,函数的功能是删除字符串中的所有空格。
例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include #include void fun(char *str)
{
}
main()
{
char str[81];void
pr
展开阅读全文