您的当前位置:首页全国计算机二级C语言程序设计题 (( 100%全中必过)

全国计算机二级C语言程序设计题 (( 100%全中必过)

2022-12-19 来源:爱问旅游网


目录

题目一“回文”字符串 .................................................................................................................................................................. 3 题目二迭代法求给定多项式的值 .............................................................................................................................................. 7 题目三迭代法求给定方程的根 .................................................................................................................................................. 9 题目四二维数组三角元素操作1 ............................................................................................................................................. 11 题目四二维数组三角元素操作2 ............................................................................................................................................. 15 题目四二维数组三角元素操作3 ............................................................................................................................................ 19 题目五二维数组元素求最值 .................................................................................................................................................... 24 题目六二维数组周边元素1 ..................................................................................................................................................... 26 题目六二维数组周边元素2 .................................................................................................................................................... 29 题目七二维数组转一维数组1 ................................................................................................................................................ 33 题目七二维数组转一维数组2 ................................................................................................................................................ 36 题目七二维数组转一维数组3 ................................................................................................................................................ 39 题目七二维数组转一维数组4 ................................................................................................................................................ 43 题目八结构体数组排序1 ........................................................................................................................................................ 46 题目八结构体数组排序2 ........................................................................................................................................................ 49 题目八结构体数组排序3 ........................................................................................................................................................ 52 题目八结构体数组排序4 ........................................................................................................................................................ 56 题目九结构体数组求最值1 .................................................................................................................................................... 60 题目九结构体数组求最值2 .................................................................................................................................................... 63 题目九结构体数组求最值3 .................................................................................................................................................... 66 题目九结构体数组求最值4 .................................................................................................................................................... 66 题目十结构体数组筛选 ............................................................................................................................................................ 69 题目十一结构体数组字符串比较 ............................................................................................................................................ 73 题目十二矩阵操作1 ................................................................................................................................................................ 76 题目十二矩阵操作2 ................................................................................................................................................................ 78 题目十三类似素数判断1 ........................................................................................................................................................ 82 题目十三类似素数判断2 ........................................................................................................................................................ 83 题目十四累加累乘求和1 ........................................................................................................................................................ 85 题目十四累加累乘求和2 ........................................................................................................................................................ 87 题目十四累加累乘求和3 ........................................................................................................................................................ 88 题目十四累加累乘求和4 ........................................................................................................................................................ 90 题目十四累加累乘求和5 ........................................................................................................................................................ 92 题目十四累加累乘求和6 ........................................................................................................................................................ 95 题目十四累加累乘求和7 ........................................................................................................................................................ 97 题目十四累加累乘求和8 ........................................................................................................................................................ 99 题目十四累加累乘求和9 ...................................................................................................................................................... 101 题目十四累加累乘求和10 .................................................................................................................................................... 103

题目十四累加累乘求和11 .................................................................................................................................................... 105 题目十四累加累乘求和12 .................................................................................................................................................... 107 题目十四累加累乘求和13 .................................................................................................................................................... 109 题目十四累加累乘求和14 .................................................................................................................................................... 111 题目十四累加累乘求和15 .................................................................................................................................................... 114 题目十四累加累乘求和16 .................................................................................................................................................... 116 题目十五链表1 ...................................................................................................................................................................... 119 题目十五链表2 ...................................................................................................................................................................... 123 题目十六删除整数位某数位 .................................................................................................................................................. 126 题目十七删除字符串中指定字符1 ...................................................................................................................................... 129 题目十七删除字符串中指定字符2 ...................................................................................................................................... 131 题目十七删除字符串中指定字符3 ...................................................................................................................................... 133 题目十七删除字符串中指定字符4 ...................................................................................................................................... 135 题目十七删除字符串中指定字符5 ...................................................................................................................................... 137 题目十七删除字符串中指定字符6 ...................................................................................................................................... 139 题目十七删除字符串中指定字符7 ...................................................................................................................................... 140 题目十七删除字符串中指定字符8 ...................................................................................................................................... 142 题目十七删除字符串中指定字符9 ...................................................................................................................................... 144 题目十七删除字符串中指定字符10 .................................................................................................................................... 146 题目十七删除字符串中指定字符11 .................................................................................................................................... 148 题目十七删除字符串中指定字符12 .................................................................................................................................... 150 题目十七删除字符串中指定字符13 .................................................................................................................................... 153 题目十七删除字符串中指定字符14 .................................................................................................................................... 155 题目十七删除字符串中指定字符15 .................................................................................................................................... 158 题目十七删除字符串中指定字符16 .................................................................................................................................... 160 题目十七删除字符串中指定字符17 .................................................................................................................................... 163 题目十七删除字符串中指定字符18 .................................................................................................................................... 166 题目十八数字字符串转整数1 .............................................................................................................................................. 168 题目十八数字字符串转整数2 .............................................................................................................................................. 170 题目十九素数判定1 .............................................................................................................................................................. 172 题目十九素数判定2 .............................................................................................................................................................. 174 题目十九素数判定3 .............................................................................................................................................................. 176 题目二十统计问题 .................................................................................................................................................................. 180 题目二十一小数位操作 .......................................................................................................................................................... 183 题目二十二一维数组或字符串排序1 .................................................................................................................................. 185 题目二十二一维数组或字符串排序2 .................................................................................................................................. 187 题目二十二一维数组元素的筛选1 ...................................................................................................................................... 190 题目二十二一维数组元素的筛选2 ...................................................................................................................................... 192

题目二十二一维数组元素的筛选3 ...................................................................................................................................... 194 题目二十二一维数组元素的筛选4 ...................................................................................................................................... 196 题目二十二一维数组元素的筛选5 ...................................................................................................................................... 198 题目二十二一维数组元素的筛选6 ...................................................................................................................................... 201 题目二十二一维数组元素的筛选7 ...................................................................................................................................... 203 题目二十二一维数组元素的筛选8 ...................................................................................................................................... 206 题目二十二一维数组元素的筛选9 ...................................................................................................................................... 208 题目二十三一维数组元素筛选 .............................................................................................................................................. 210 题目二十五一维数组最值求解1 .......................................................................................................................................... 212 题目二十五一维数组最值求解2 .......................................................................................................................................... 215 题目二十五一维数组最值求解3 .......................................................................................................................................... 217 题目二十六移动问题1 .......................................................................................................................................................... 219 题目二十六移动问题2 .......................................................................................................................................................... 221 题目二十七整数合并1 .......................................................................................................................................................... 224 题目二十七整数合并2 .......................................................................................................................................................... 225 题目二十七整数合并3 .......................................................................................................................................................... 226 题目二十七整数合并4 .......................................................................................................................................................... 228 题目二十七整数合并5 .......................................................................................................................................................... 229 题目二十七整数合并6 .......................................................................................................................................................... 230 题目二十七整数合并7 .......................................................................................................................................................... 231 题目二十七整数合并8 .......................................................................................................................................................... 233 题目二十八字符串长度比较1 .............................................................................................................................................. 234 题目二十八字符串长度比较2 .............................................................................................................................................. 236 题目二十九字符串的逆置 ...................................................................................................................................................... 239 题目三十字符串计数 .............................................................................................................................................................. 242 题目三十一字符串连接1 ...................................................................................................................................................... 244 题目三十一字符串连接2 ...................................................................................................................................................... 246 题目三十一字符串连接3 ...................................................................................................................................................... 249 题目三十二字符串中指定字符查找 ...................................................................................................................................... 250 题目三十三字母大小的判断及转换 ...................................................................................................................................... 252

题目一“回文”字符串

3. 请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,

主函数中输出\"YES\",否则返回0,主函数中输出\"NO\"。回文是指顺读和倒读都一样的字符串。

例如,字符串LEVEL是回文,而字符串123312就不是回文。

#include

#define N 80

int fun(char *str)

{

int i,n=0,fg=1;

char *p=str;

while (*p) {

n++;

p++;

}

/*将指针p置位到字符串末尾,并统计字符数*/

for(i=0;iif(str[i]==str[n-1-i]) ; /*相同,什么都不作*/

else /*不同,直接跳出循环*/

{

fg=0;

break;

}

return fg;

}

main()

{

char s[N];

FILE *out;

char *test[]={\"1234321\

int i;

printf(\"Enter a string : \");

gets(s);

printf(\"\\n\\n\");

puts(s);

if(fun(s))

printf(\"YES\\n\");

else

printf(\"NO\\n\");

/************************************/

out=fopen(\"out.dat\

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

if(fun(test[i]))

fprintf(out,\"YES\\n\");

else

fprintf(out,\"NO\\n\");

fclose(out);

/************************************/

}

题目二迭代法求给定多项式的值

3.编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

112123123412…n1……2335357357935…2n1 程序运行后,若输入精度

0.0005,则程序应输出为3.14…。

#include

#include

double fun ( double eps)

{

double s=1.0,s1=1.0;

int n=1;

while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/

{s1=s1*n/(2*n+1); /*求多项式的每一项*/

s=s+s1; /*求和*/

n++;

}

return 2*s;

}

main( )

{ double x;void NONO ();

printf(\"Input eps:\") ;

scanf(\"%lf\

NONO();

}

题目三迭代法求给定方程的根

3. 编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。

xn1cos(xn)

迭代步骤如下:

(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。

#include

#include

double fun()

{

double x0,x1;

x1=0.0;

do

{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>=1e-6);

return x1;

}

main()

{

void NONO ( );

printf(\"Root =%f\\n\

NONO();

}

题目四二维数组三角元素操作1

3. 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为:

则返回主程序后a数组中的值应为:

1a24935786

3612 99157818

#include

#include

#include

#define N 5

void fun(int a[ ][N], int n)

{

int i,j;

for(i=0;ifor(j=0;j<=i;j++)

a[i][j]=a[i][j]*n;

}

main()

{

int a[N][N],n, i,j;

FILE *out;

printf(\"***** The array *****\\n\");

for(i=0; i{

for(j=0; j{

a[i][j]=rand()%10;

printf(\"%4d\

}

printf(\"\\n\");

}

n=rand()%4;

printf(\"n=%4d\\n\

fun(a, n);

printf(\"*****THE RESULT*****\\n\");

for(i=0; i{

for (j=0; jprintf(\"%4d\

printf(\"\\n\");

}

/******************************/

out=fopen(\"out.dat\

for(i=0;ifor(j=0;ja[i][j]=i*j+1;

fun(a,9);

for(i=0;i{

for(j=0;jfprintf(out,\"%4d\

fprintf(out,\"\\n\");

}

fclose(out);

/******************************/

}

题目四二维数组三角元素操作2

3. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为:

1 9 7

2 3 8

4 则返回主程序后a数组中的值应为:

0 0 0 #include

#include

#include

#define N 5

void fun (int a[][N])

5 6

9 7

0 8

0 0

{

int i,j;

for(i=0;ifor(j=0;j<=i;j++)

a[i][j]=0; /*将数组左下半三角元素中的值全部置成0*/

}

void main()

{

FILE *wf;

int a[N][N],i,j;

int b[N][N]={1,9,7,2,4,2,3,8,1,2,4,5,6,7,5,4,0,6,8,0,2,7,1,6,4};

system(\"CLS\");

printf(\"*****The array*****\\n\");

for(i=0;i{ for(j=0;j{a[i][j]=rand()%10;

printf(\"%4d\

}

printf(\"\\n\");

}

fun(a);

printf(\"THE RESULT\\n\");

for(i=0;i{ for(j=0;jprintf(\"%4d\

printf(\"\\n\");

}

/******************************/

wf=fopen(\"out.dat\

fun(b);

for(i=0;i{ for(j=0;jfprintf(wf,\"%4d\

fprintf(wf,\"\\n\");

}

fclose(wf);

/*****************************/

}

题目四二维数组三角元素操作3

3. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。

例如,若m的值为2,a数组中的值为:

197 则返回主程序后a数组中的值应为:

#include

#include

#include

#include

#define N 5

void fun(int a[][N], int m)

{

2182645a2 4141612

3856

int i,j;

for(j=0;jfor(i=0;i<=j;i++)

a[i][j]=a[i][j]*m; /*右上半三角元素中的值乘以m*/

}

main()

{

int a[N][N],m, i, j;

FILE *out;

printf(\"*****The array*****\\n\");

for(i=0;i{ for(j=0;j{a[i][j]=rand()%20;

printf(\"%4d\

}

printf(\"\\n\");

}

m=rand()%4;

printf(\"m=%4d\\n\

fun(a,m);

printf(\"THE RESULT\\n\");

for(i=0;i{ for(j=0;jprintf(\"%4d\

printf(\"\\n\");

}

/******************************/

out=fopen(\"out.dat\

for(i=0;ifor(j=0;ja[i][j]=i*j;

fun(a,8);

for(i=0;i{ for(j=0;jfprintf(out,\"%4d\

fprintf(out,\"\\n\");

}

fclose(out);

/******************************/

}

题目五二维数组元素求最值

3. 请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。

#include

#define M 4

int fun (int a[][M])

{

int i,j,max=a[0][0];

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

for(j=0;jif(maxmax=a[i][j];

return max;

}

main( )

{ int arr[2][M]={5,8,3,45,76,-4,12,82} ;void NONO ();

printf(\"max =%d\\n\

NONO( ) ;

}

void NONO ()

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

int arr[][M]={5,8,3,90,76,-4,12,82} ;

wf = fopen(\"out.dat\

fprintf(wf, \"max=%d\\n\

fclose(wf) ;

*/

}

题目六二维数组周边元素1

3.下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a 数组中的值为:

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

则返回主程序后s的值应为3.375。

#include

#include

#include

#define N 5

double fun (int w[][N])

{

int i,j,k=0;

double av=0.0;

for(i=0;ifor(j=0;jif(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/

{av=av+w[i][j]; /*将周边元素求和*/

k++;

}

return av/k; /*求周边元素的平均值*/

}

void main()

{

FILE *wf;

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;

double s;

system(\"CLS\");

printf(\"*****The array*****\\n \");

for (i=0; i{ for (j=0;j{printf(\"%4d \

printf(\"\\n \");

}

s=fun(a);

printf(\"*****THE RESULT*****\\n \");

printf(\"The sum is : %lf\\n \

/******************************/

wf=fopen(\"out.dat\

fprintf (wf,\"%lf\

fclose(wf);

/*****************************/

}

题目六二维数组周边元素2

3. 请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

例如,若二维数组中的值为:

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

则函数值为61。

#include

#include

#include

#define M 4

#define N 5

int fun( int a [M][N])

{

int i,j,sum=0;

for(i=0;ifor(j=0;jif(i==0||i==M-1||j==0||j==N-1) /*只要下标中有一个为0或M-1或N-1,则它一定是周边元素*/

sum=sum+a[i][j]; /*将周边元素相加*/

return sum;

}

void main()

{

FILE *wf;

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;

system(\"CLS\");

printf (\"The original data is :\\n \");

for(i=0; i{for (j=0; jprintf(\"%6d \

printf(\"\\n \");

}

y=fun(aa);

printf(\"\\nThe sun: %d\\n \

printf(\"\\n \");

/******************************/

wf=fopen(\"out.dat\

fprintf (wf,\"%d\

fclose(wf);

/*****************************/

}

题目七二维数组转一维数组1

3.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。

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

33 33 33 33

44 44 44 44

55 55 55 55

则一维数组中的内容应是:

33 44 55 33 44 55 33 44 55 33 44 55

#include

void fun(int (*s)[10],int *b,int *n,int mm,int nn)

{

int i,j;

for(j=0;jfor(i=0;i{

b[*n]=*(*(s+i)+j);

*n=*n+1; /*通过指针返回元素个数*/

}

}

void main()

{

int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}, i, j;

int a[100]={0},n=0 ;

FILE *out;

printf(\"The matrix:\\n\");

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

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

printf(\"%3d\

printf(\"\\n\");

}

fun(w,a,&n,3,4);

/******************************/

out=fopen(\"out.dat\

printf(\"The A array:\\n\");

for(i=0; i{ printf(\"%3d\

fprintf(out,\"%d \

}

printf(\"\\n\\n\");

fclose(out);

/******************************/

}

题目七二维数组转一维数组2

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

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

W W W W

S S S S

H H H H

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

#include

#define M 3

#define N 4

void fun(char (*s)[N],char *b)

{

int i,j,k=0;

for(i=0;ifor(j=0;jb[k++]=s[j][i];

b[k]='\\0';

}

void main()

{

FILE *wf;

char a[100],w[M][N]={{ 'W', 'W', 'W', 'W'},{'S', 'S', 'S', 'S'},{'H', 'H', 'H', 'H'}};

int i,j;

printf(\"The matrix:\\n\");

for(i=0;i{ for(j=0;jprintf(\"%3c\

printf(\"\\n\");

}

fun(w,a);

printf(\"The A string:\\n\");

puts(a);

printf(\"\\n\\n\");

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%s\

fclose(wf);

/*****************************/

}

题目七二维数组转一维数组3

1. 请编一个函数void fun(int tt[M][N], int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

#include

#include

#include

#define M 3

#define N 4

void fun(int tt[M][N],int pp[N])

{

int i,j,max;

for(j=0;j{

max=tt[0][j]; /*假设各列中的第一个元素最大*/

for(i=0;iif(tt[i][j]>max) /*如果各列中的元素比最大值大,则将这个更大的元素看作当前该列中最大元素*/

max=tt[i][j];

pp[j]=max; /*将各列的最大值依次放入pp数组中*/

}

}

main( )

{

void NONO( );

int t[M][N]={{68, 32, 54, 12},{14, 24, 88, 58},{42, 22, 44, 56}};

int p [ N ], i, j, k;

printf ( \"The original data is : \\n\" );

for( i=0; ifor( j=0; jprintf ( \"%6d\

printf(\"\\n\");

}

fun ( t, p );

printf( \"\\nThe result is:\\n\" );

for ( k = 0; k < N; k++ ) printf ( \" %4d \

printf(\"\\n\");

NONO( );

}

void NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,

输出数据,关闭文件。 */

int i, j, k, m, t[M][N], p[N] ;

FILE *rf, *wf ;

rf = fopen(\"in.dat\

wf = fopen(\"out.dat\

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

for( i=0; ifor( j=0; jfscanf (rf, \"%6d\

}

fun ( t, p ) ;

for ( k = 0; k < N; k++ ) fprintf (wf, \" %4d \

fprintf(wf, \"\\n\") ;

}

fclose(rf) ;

fclose(wf) ;

}

题目七二维数组转一维数组4

3.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。

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

33 33 33 33

44 44 44 44

55 55 55 55

则一维数组中的内容应该是:33 33 33 33 44 44 44 44 55 55 55 55。

#include

void fun (int (*s)[10], int *b, int *n, int mm, int nn)

{

int i,j,k=0;

for(i=0;ifor(j=0;jb[k++]=s[i][j];

*n=k; /*通过指针返回元素个数*/

}void main()

{

FILE *wf;

int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}, i, j;

int a[100]={0},n=0 ;

printf(\"The matrix:\\n\");

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

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

printf(\"%3d\

printf(\"\\n\");

}

fun(w,a,&n,3,4);

printf(\"The A array:\\n\");

for(i=0; iprintf(\"%3d\

printf(\"\\n\\n\");

/******************************/

wf=fopen(\"out.dat\

for(i=0; ifprintf(wf,\"%3d\

fclose(wf);

/*****************************/

}

题目八结构体数组排序1

1. 学生的记录由学号和成绩组成,N名学生的数

据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。

#include

#define N 16

typedef struct

{ char num[10];

int s;

} STREC;

void fun( STREC a[] )

{

int i,j;

STREC t;

for(i=1;ifor(j=0;jif(a[j].s{t=a[j];a[j]=a[j+1];a[j+1]=t;} /*按分数的高低排列学生的记录,高分在前*/

}

main()

{ STREC s[N]={{\"GA005\

{\"GA001\

{\"GA015\

{\"GA011\

int i;FILE *out ;

fun( s );

printf(\"The data after sorted :\\n\");

for(i=0;i{ if( (i)%4==0 )printf(\"\\n\");

printf(\"%s %4d \

}

printf(\"\\n\");

out = fopen(\"out.dat\

for(i=0;i{ if( (i)%4==0 && i) fprintf(out, \"\\n\");

fprintf(out, \"%4d \

}

fprintf(out,\"\\n\");

fclose(out) ;

}

题目八结构体数组排序2

3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

#include

#define N 8

typedef struct

{ char num[10];

double s;

} STREC;

double fun( STREC *a, STREC *b, int *n )

{

int i,j=0;

double av=0.0;

for(i=0;iav=av+a[i].s;

av=av/N; /*求平均值*/

for(i=0;iif(a[i].s*n=j; /*指针传回低于平均值的学生人数*/

return av; /*返回平均值*/

}

main()

{ STREC s[N]={{\"GA05\

{\"GA01\

STREC h[N],t;FILE *out ;

int i,j,n; double ave;

ave=fun( s,h,&n );

printf(\"The %d student data which is lower than %7.3f:\\n\

for(i=0;iprintf(\"%s %4.1f\\n\

printf(\"\\n\");

out = fopen(\"out.dat\

fprintf(out, \"%d\\n%7.3f\\n\

for(i=0;ifor(j=i+1;jif(h[i].s>h[j].s) {t=h[i] ;h[i]=h[j]; h[j]=t;}

for(i=0;ifprintf(out,\"%4.1f\\n\

fclose(out);

}

题目八结构体数组排序3

3. 学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

例如,输入的分数是60、69,则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。

#include

#define N 16

typedef struct

{ char num[10];

int s;

} STREC;

int fun( STREC *a,STREC *b,int l, int h )

{

int i,j=0;

for(i=0;iif(a[i].s>=l&&a[i].s<=h)

/*将分数高于l,低于h的学生记录存入结构体数组b中*/

b[j++]=a[i];

return j; /*返回分数范围内的学生人数*/

}

main()

{ STREC s[N]={{\"GA005\

{\"GA001\

{\"GA015\

{\"GA011\

STREC h[N],tt;FILE *out ;

int i,j,n,low,heigh,t;

printf(\"Enter 2 integer number low & heigh : \");

scanf(\"%d%d\

if ( heigh< low ){ t=heigh;heigh=low;low=t; }

n=fun( s,h,low,heigh );

printf(\"The student's data between %d--%d :\\n\

for(i=0;iprintf(\"%s %4d\\n\

printf(\"\\n\");

out = fopen(\"out.dat\

n=fun( s,h,80,98 );

fprintf(out,\"%d\\n\

for(i=0;ifor(j=i+1;jif(h[i].s>h[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=tt;}

for(i=0;ifprintf(out,\"%4d\\n\

fprintf(out,\"\\n\");

fclose(out);

}

题目八结构体数组排序4

1. 请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。

#include

# define N 50

# define M 11

void fun(int *a, int *b)

{

int i,j;

for(j=0;jb[j]=0; /*数组b初始化为0*/

for(i=0;iif(a[i]>=100)

b[10]++; /*如果年龄大于等于100,b[10]自增1*/

else

b[a[i]/10]++; /*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/

}

double rnd()

{

static t=29,c=217,m=1024,r=0;

r=(r*t+c)%m;

return((double)r/m);

}double rnd()

{

static t=29,c=217,m=1024,r=0;

r=(r*t+c)%m;

return((double)r/m);

}

void main()

{

FILE *wf;

int age[N], i,d[M];

int b[N]={32,45,15,12,86,49,97,3,44,52,17,95,63};

for(i=0; iage[i]=(int)(115*rnd()); /*产生一个随机的年龄数组*/

printf(\"The original data :\\n\");

for(i=0; iprintf((i+1)%10==0? \"%4d\\n\":\"%4d\ /*每行输出10个数*/

printf(\"\\n\\n\");

fun(age,d);

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

printf(\"%4d---%4d :%4d\\n\

printf(\"Over 100 : %4d\\n\

/******************************/

wf=fopen(\"out.dat\

fun(b,d);

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

fprintf(wf,\"%4d---%4d :%4d\\n\

fprintf(wf,\"Over 100 : %4d\

fclose(wf);

/*****************************/

}

题目九结构体数组求最值1

3.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数

#include

#define N 16

typedef struct

{ char num[10];

int s;

} STREC;

int fun( STREC *a, STREC *b )

{

int i,j=0,max=a[0].s;

/*找出最大值*/

for(i=0;iif(maxfor(i=0;iif(max==a[i].s)

b[j++]=a[i]; /*找出成绩与max相等的学生的记录,存入结构体b中*/

return j; /*返回最高成绩的学生人数*/

}

main()

{ STREC s[N]={{\"GA05\

{\"GA01\

{\"GA015\

{\"GA011\

STREC h[N];

int i,n;FILE *out ;

n=fun( s,h );

printf(\"The %d highest score :\\n\

for(i=0;iprintf(\"%s %4d\\n\

printf(\"\\n\");

out = fopen(\"out.dat\

fprintf(out, \"%d\\n\

for(i=0;ifprintf(out, \"%4d\\n\

fclose(out);

}

题目九结构体数组求最值2

3. 学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。

#include

#define N 16

typedef struct

{ char num[10];

int s;

} STREC;

int fun( STREC *a, STREC *b )

{

int i,j=0,min=a[0].s;

for(i=0;iif(min>a[i].s)

min=a[i].s; /*找出最小值*/

for(i=0;iif(min==a[i].s)

b[j++]=a[i]; /*找出成绩与min相等的学生的记录,存入结构体b中*/

return j;

}

main()

{ STREC s[N]={{\"GA05\

{\"GA01\

{\"GA015\

{\"GA011\

STREC h[N];

int i,n;FILE *out ;

n=fun( s,h );

printf(\"The %d lowest score :\\n\

for(i=0;iprintf(\"%s %4d\\n\

printf(\"\\n\");

out = fopen(\"out.dat\

fprintf(out, \"%d\\n\

for(i=0;ifprintf(out, \"%4d\\n\

fclose(out);

}

题目九结构体数组求最值3

1. 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。

fun(STU a[], STU *s)

{

int i;

*s=a[0];

for(i=0;iif(s->s*s=a[i];

}

题目九结构体数组求最值4

3.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只

有一个最低分)。已给出函数的首部,请完成该函数。

#include

#include

#include

#include

#define N 10

typedef struct ss

{ char num[10];

int s;

} STU;

fun(STU a[], STU *s)

{

int i;

*s=a[0]; /*先认为第1个值最小*/

for(i=0;iif(s->s>a[i].s)

*s=a[i];

}

void main()

{

FILE *wf;

STU a[N]={{ \"A01\

{ \"A06\

int i;

system(\"CLS\");

printf(\"*****The original data*****\\n\");

for(i=0;iprintf(\"No=%s Mark=%d\\n\

fun(a,&m);

printf(\"*****THE RESULT*****\\n\");

printf(\"The lowest :%s, %d\\n\

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%s, %d\

fclose(wf);

/*****************************/

}

题目十结构体数组筛选

3.学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等

于平均分的学生人数通过形参n传回,平均分通过函数值返回。

#include

#define N 12

typedef struct

{ char num[10];

double s;

} STREC;

double fun( STREC {

int i;

double av=0.0;

*n=0;

for(i=0;i*a, STREC *b, int *n )

av=av+a[i].s;

av=av/N; /*求平均值*/

for(i=0;iif(av<=a[i].s)

{ b[*n]=a[i];*n=*n+1;} /*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/

return av; /*返回平均分*/

}

main()

{ STREC s[N]={{\"GA05\

{\"GA01\

{\"GA09\

STREC h[N], t;FILE *out ;

int i,j,n; double ave;

ave=fun( s,h,&n );

printf(\"The %d student data which is higher than %7.3f:\\n\

for(i=0;iprintf(\"%s %4.1f\\n\

printf(\"\\n\");

out = fopen(\"out.dat\

fprintf(out, \"%d\\n%7.3f\\n\

for(i=0;ifor(j=i+1;jif(h[i].sfor(i=0;ifprintf(out,\"%4.1f\\n\

fclose(out);

}

题目十一结构体数组字符串比较

3.学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。

#include

#include

#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;iif(strcmp(a[i].num,b)==0) /*找到指定学号的学生数据*/

str=a[i];

return str; /*返回学生记录*/

}

main()

{ STREC s[N]={{\"GA005\

{\"GA001\

{\"GA015\

{\"GA011\

STREC h;

char m[10];

int i;FILE *out ;

printf(\"The original data:\\n\");

for(i=0; i{ if(i%4==0) printf(\"\\n\");

printf(\"%s %3d \

}

printf(\"\\n\\nEnter the number: \");gets(m);

h=fun( s,m );

printf(\"The data : \");

printf(\"\\n%s %4d\\n\

printf(\"\\n\");

out = fopen(\"out.dat\

h=fun(s,\"GA013\");

fprintf(out,\"%s %4d\\n\

fclose(out);

}

题目十二矩阵操作1

3. 编写函数fun,其功能是:实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。

例如,输入下面的矩阵:其转置矩阵为:

1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9

程序输出:

26610101418

1014#include

void fun ( int a[3][3], int b[3][3])

{

int i,j;

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

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

b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/

}

main( ) /* 主程序 */

{ int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ;

int i, j ;

void NONO ( );

fun(a, t) ;

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

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

printf(\"%7d\

printf(\"\\n\") ;

}

NONO () ;

}

题目十二矩阵操作2

3. 编写程序,实现矩阵(3行、3列)的转置(即行列互换)。

例如,若输入下面的矩阵:

100 200 300

400 500 600

700 800 900

则程序输出:

100 400 700

200 500 800

300 600 900

#include

#include

#include

void fun (int array[3][3])

{

int i,j,t;

for(i=0;i<3;i++) /*将右上三角和左下三角对换,实现行列互换*/

for(j=i+1;j<3;j++)

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

}

void main()

{

FILE *wf;

int i,j;

int array [3][3]={{100,200,300},{400,500,600},{700,800,900}};

system(\"CLS\");

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

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

printf(\"%7d \

printf(\"\\n \");

}

fun(array);

printf(\"Converted array:\\n \");

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

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

printf(\"%7d \

printf(\"\\n \");

}

/******************************/

wf=fopen(\"out.dat\

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

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

fprintf(wf,\"%7d \

fprintf(wf,\"\\n\");

}

fclose(wf);

/*****************************/

}

题目十三类似素数判断1

3. 编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

#include

void fun (int *a, int *n)

{

int i,j=0;

for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/

if((i%7==0||i%11==0)&&i%77!=0)

a[j++]=i;

*n=j;

}

main( )

{ int aa[1000], n, k ;

void NONO ( );

fun ( aa, &n ) ;

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

if((k + 1) % 10 == 0) printf(\"\\n\") ;

else printf(\"%5d\

NONO( );

}

题目十三类似素数判断2

3编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。

例如,若n为1000时,程序输出应为:s=153.909064。

#include

#include

double fun( int n)

{

double sum=0.0;

int i;

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

if((i % 3==0) && (i % 7==0)) sum+=i;

return sqrt(sum);

}

main() /* 主函数 */

{ void NONO ();

printf(\"s =%f\\n\

NONO();

}

题目十四累加累乘求和1

3某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。

#include

#define N 8

typedef struct

{ char num[10];

double s[N];

double ave;

} STREC;

void fun(STREC *a)

{

int i;

a->ave=0.0;

for(i=0;ia->ave=a->ave+a->s[i]; /*求各门成绩的总和*/

a->ave/=N; /*求平均分*/

}main()

{ STREC s={\"GA005\

int i;

void NONO ( );

fun( &s );

printf(\"The %s's student data:\\n\

for(i=0;iprintf(\"%4.1f\\n\

printf(\"\\nave=%7.3f\\n\

NONO();

}

题目十四累加累乘求和2

编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。

例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。

#include

float fun ( float *a , int n )

{

int i;

float av=0.0;

for(i=0; iav=av+a[i];

return(av/n); /*返回平均值*/

}

main()

{ float score[30]={90.5, 72, 80, 61.5, 55}, aver;

void NONO ( );

aver = fun( score, 5 );

printf( \"\\nAverage score is: %5.2f\\n\

NONO ( );

}

题目十四累加累乘求和3

3. 编写函数fun,其功能是计算:

sln(1)ln(2)ln(3)……ln(m)s作为函数值返回。

在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。

例如,若m的值为20,则fun函数值为6.506583。

#include

#include

double fun( int m )

{

int i;

double s=0.0;

for(i=1;i<=m;i++)

s=s+log(i); /*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/

return sqrt(s); /*对s求平方根并返回*/

}

main()

{

void NONO ( );

printf(\"%f\\n\

NONO();

}

题目十四累加累乘求和4

3. 编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。

111…12123123…n

s1 例如:若n的值为11时,函数的值为1.833333

#include

float fun(int n)

{

int i,s1=0;

float s=0.0;

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

{s1=s1+i; /*求每一项的分母*/

s=s+1.0/s1; /*求多项式的值*/

}

return s;

}

main()

{ int n; float s;

void NONO ( );

printf(\"\\nPlease enter N:\"); scanf(\"%d\

s = fun(n);

printf(\"the result is: %f\\n\

NONO();

}

题目十四累加累乘求和5

3. 请编写函数fun,其功能是:计算并输出当x<0.97时,如下多项式的值,直到|Sn-Sn-1|<0.000001为止。

0.5(0.51)20.5(0.51)(0.52)3xx2!3!0.5(0.51)(0.52)n!(0.5n1)

Sn10.5xxn

例如,若主函数从键盘给x输入0.21后,则输出为S=1.100000。

#include

#include

double fun(double x)

{

double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;

int n=1;

do

{

s0=s1;

sum+=s0;

t*=n;

p*=(0.5-n+1)*x;

s1=p/t;

n++;

}while(fabs(s1-s0)>=1e-6);

return sum;

}

void main()

{ int i;

double x,s;

FILE *out;

printf(\"Input x: \");

scanf(\"%lf\

s=fun(x);

printf(\"s=%f\\n \

/******************************/ out=fopen(\"out.dat\

for(i=20;i<30;i++)

fprintf(out,\"%f\\n\

fclose(out);

/******************************/

/*这里包含输出文件程序*/

}

题目十四累加累乘求和6

3. 请编写函数fun,其功能是:计算并输出给定10个数的方差。

S[((XxX')2)/10]0.5x110

其中:

X'(Xx)/10x110

例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S=11.730729。

#include

#include

double fun(double x[10])

{

double x1=0.0,s=0.0;

int i;

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

x1=x1+x[i];

x1=x1/10; /*求10个数的平均值*/

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

s=s+(x[i]-x1)*(x[i]-x1);

return sqrt(s/10); /*求10个数的方差*/

}

void main()

{

FILE *wf;

double s,x[10]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0};

int i;

printf(\"\\nThe original data is:\\n\");

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

printf(\"%6.1f \

printf(\"\\n\\n \");

s=fun(x);

printf(\"s=%f\\n\\n \

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%f\

fclose(wf);

/*****************************/

}

题目十四累加累乘求和7

3. 请编写函数fun,其功能是:计算并输出下列多项式的值,

S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)

例如,若主函数从键盘给n输入8后,则输出为S=0.662872。

#include

double fun(int n)

{

int i;

double s=0.0;

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

s=s+(1.0/(2*i-1)-1.0/(2*i)); 1/(2n-1)-1/2n)*/

return s;

}

main()

/*计算S=1-1/2)(1/3-1/4)(++(

{ int n; double s;

void NONO( );

printf(\"\\nInput n: \"); scanf(\"%d\

s=fun(n);

printf(\"\\ns=%f\\n\

NONO();

}

题目十四累加累乘求和8

3. 请编写函数fun,其功能是:计算并输出下列多项式的值。

11121231123S150

例如,在主函数中从键盘为n输入50后,输出为S=1.718282。

#include

double fun(int n)

{

double sum=0,tmp=1;

int i;

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

{

tmp=tmp*i;

sum+=1.0/tmp;

}

return sum;

}

main()

{ int n; double void NONO( );

s;

printf(\"\\nInput n: \"); scanf(\"%d\

s=fun(n);

printf(\"\\n\\ns=%f\\n\\n\

NONO();

}

题目十四累加累乘求和9

3. 请编写函数fun,该函数的功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。

例如,若主函数中从键盘给n输入20后,则输出为S= 0.583333。

#include

double fun(int n)

{

int i;

double sum=0.0;

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

if(i%5==0||i%9==0)

sum+=1.0/i;

return sum;

}

main()

{

int n;

double s;

FILE *out;

printf(\"\\nInput n:\");

scanf(\"%d\

s=fun(n);

printf(\"\\n\\ns=%f\\n\

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%f\\n\

fclose(out);

/******************************/

}

题目十四累加累乘求和10

3. 请编写函数fun,该函数的功能是:计算并输出

S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)

的值。

例如,若主函数从键盘给n输入20后,则输出为S=534.188884。

#include

#include

double fun(int n)

{

int i;

double s=0.0,s1=0.0;

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

{s1=s1+pow(i,0.5); /*求每一项*/

s=s+s1; /*按公式求出s*/

}

return s;

}void main()

{

FILE *wf;

int n;

double s;

printf(\"\\n\\nInput n: \");

scanf(\"%d\

s=fun(n);

printf(\"\\n\\ns=%f\\n\\n\

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%f\

fclose(wf);

/*****************************/

}

题目十四累加累乘求和11

3. 编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。

m!n!(mn)!

p例如:m=12,n=8时,运行结果为495.000000。

#include

long jc(int m)

{

long s=1;

int i ;

for(i=1;i<=m;i++) s=s*i ;

return s;

}

float fun(int m, int n)

{

float p;

p=1.0*jc(m)/jc(n)/jc(m-n) ;

return p;

}

main() /* 主函数 */

{ void NONO ();

printf(\"P=%f\\n\

NONO();

}

题目十四累加累乘求和12

3. 请编写函数fun,其功能是:计算并输出下列多项式的值。

S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))

例如,当n=10时,函数值为0.909091。

#include

#include

#include

double fun(int n)

{

int i;

double s=0.0;

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

s=s+1.0/(i*(i+1)); return s;

}

void main()

{

/*求级数的和*/

FILE *wf;

system(\"CLS\");

printf(\"%f\\n\

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%f\

fclose(wf);

/*****************************/

}

题目十四累加累乘求和13

3. 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

S=1+x+x2/2!+x3/3!+…+xn/n!

例如,当n=10,x=0.3时,函数值为1.349859。

#include

#include

#include

#include

double fun(double x, int n)

{

int i;

double s=1.0,s1=1.0;

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

{s1=s1*i; /*各项中的阶乘*/

s=s+pow(x,i)/s1; /*按公式求出*/

}

return s;

}void main()

{

FILE *wf;

system(\"CLS\");

printf(\"%f \

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%f\

fclose(wf);

/*****************************/

}

题目十四累加累乘求和14

请编写函数fun,其功能是计算并输出如下多项式的值。

Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!

例如,若主函数从键盘给n输入15,则输出为S=2.718282。

#include

double fun(int n)

{

double t,sn=1.0;

int i,j;

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

{

t=1.0;

for(j=1;j<=i;j++)

t*=j;

sn+=1.0/t;

}

return sn;

}

void main()

{

int n;

double s;

FILE *out;

printf(\"\\nInput n: \");

scanf(\"%d\

s=fun(n);

printf(\"s=%f\\n\

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%f\\n\

fclose(out);

/******************************/

}

题目十四累加累乘求和15

请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。

例如,若主函数从键盘给n输入的值为856,则输出为sum=763。

#include

int fun(int n)

{

int s=0,i;

for(i=2;i<=n-1;i++) /*将n减1累加*/

if(n%i==0)

s+=i;

return s;

}

void main()

{

int n,sum;

FILE *out;

printf(\"Input n:\");

scanf(\"%d\

sum=fun(n);

printf(\"sum=%d\\n\

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%d\\n\

fprintf(out,\"%d\\n\

fprintf(out,\"%d\\n\

fprintf(out,\"%d\\n\

fprintf(out,\"%d\

fclose(out);

/******************************/

}

题目十四累加累乘求和16

请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。

例如,若给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,则输出应为S=35.951014。

#include

#include

double fun(double x[9])

{

double sum=0.0;

int i,j=1;

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

if(j<=8)

{

sum+=sqrt((x[i]+x[i+1])/2.0);j++; }

return sum;

}

/*相邻两个元素之平均值的平方根之和*/

main()

{double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};

int i;

FILE *out;

printf(\"\\nThe original data is : \");

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

printf(\"%6.1f\

printf(\"\\n\\n\");

s=fun(a);

printf(\"s=%f\\n\\n\

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%f\

fclose(out);

/******************************/

}

题目十五链表1

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

例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。

#include

#include

#define N 8

struct slist

{ double s;

struct slist *next;

};

typedef struct slist STREC;

double fun( STREC *h )

{

double ave=0.0;

STREC *p=h->next;

while(p!=NULL)

{ ave=ave+p->s;

p=p->next;

}

return ave/N;

}

STREC * creat( double *s)

{ STREC *h,*p,*q; int i=0;

h=p=(STREC*)malloc(sizeof(STREC));p->s=0;

while(i{ 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(\"->%4.1f\

while(p!=0);

printf(\"\\n\\n\");

}

main()

{ double s[N]={85,76,69,85,91,72,64,87},ave;

void NONO ( );

STREC *h;

h=creat( s ); outlist(h);

ave=fun( h );

printf(\"ave= %6.3f\\n\

NONO();

}

题目十五链表2

1.

N名学生的成绩已在主函数中放入一个带有头

节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:找出学生的最高分,并由函数值返回。

#include

#include

#define N 8

struct slist

{ double s;

struct slist *next;

};

typedef struct slist STREC;

double fun( STREC *h )

{

double max=h->s;

while(h!=NULL) /*通过循环找到最高分数*/

{if(maxs) max=h->s;

h=h->next;

}

return max;

}

STREC * creat( double *s)

{ STREC *h,*p,*q; int i=0;

h=p=(STREC*)malloc(sizeof(STREC));p->s=0;

while(i{ 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\

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\

NONO();

}

题目十六删除整数位某数位

编写函数fun,w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回。

1. 例如,w值为5923,则函数返回923;若w值为923,则函数返回23。#include

#include

#include

unsigned fun(unsigned w)

{

int n=1,j,s=1;

unsigned t;

t=w;

/*首先确定w的位数,用变量n保存*/

while(t>=10)

{

/*每次循环使s的位数减1,同时n加1*/

t=t/10;

n++;

}

/*求10的n-1次方*/

for(j=1;js=s*10;

/*用w对10的n-1次方求余即可得到所求*/

return w%s;

}

void main()

{

FILE *wf;

unsigned x;

system(\"CLS\");

printf(\"Enter a unsigned integer number: \");

scanf (\"%u\

printf(\"The original data is:%u\\n\

if(x<10)

printf(\"Data error! \");

else

printf (\"The result :%u\\n\

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%u\

fclose(wf);

/*****************************/

}

题目十七删除字符串中指定字符1

3. 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:

ABCDEFG。

#include

void fun( char *a )

{

int i,j=0;

for(i=0;a[i]!='\\0';i++)

if(a[i]!='*')

a[j++]=a[i]; /*若不是要删除的字符'*'则留下*/

a[j]='\\0';

}

main()

{ char s[81];

void NONO ( );

printf(\"Enter a string:\\n\");gets(s);

fun( s );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符2

1. 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。

#include

void fun( char *a )

{

int i=0;

char *p=a;

while(*p&&*p=='*')

{

a[i]=*p;

i++;

p++;

}

while(*p)

{

if(*p!='*')

{a[i]=*p;i++;}

p++;

}

a[i]='\\0';

}

main()

{ char s[81];void NONO ();

printf(\"Enter a string:\\n\");gets(s);

fun( s );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符3

3. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:\"****A*BC*DEF*G*******\",删除后,字符串中的内容应当是:\"****A*BC*DEF*G\"。在编写函数时,不得使用C语言提供的字符串函数。规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:\"****A*BC*DEF*G*******\",删除后,字符串中的内容应当是:\"****A*BC*DEF*G\"。在编写函数时,不得使用C语言提供的字符串函数。

#include

void fun( char *a )

{

while(*a!='\\0')

a++;

a--; /*指针a指向字符串的尾部*/

while(*a=='*')

a--; /*指针a指向最后一个字母*/

*(a+1)='\\0'; /*在字符串最后加上结束标志符*/

}

main()

{ char s[81];void NONO ();

printf(\"Enter a string:\\n\");gets(s);

fun( s );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符4

3. 函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。

例如,若s所指字符串中的内容为\"ABCDEFG123456\其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是\"246\"。

#include

#include

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

{

int i,j=0;

for(i=0;s[i]!='\\0';i++)

if(i%2==0 && s[i]%2==0) /*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/

t[j++]=s[i];

t[j]='\\0'; /*在字符串最后加上结束标识*/

}

main()

{

char s[100], t[100];

void NONO ( );

printf(\"\\nPlease enter string S:\"); scanf(\"%s\

fun(s, t);

printf(\"\\nThe result is: %s\\n\

NONO();

题目十七删除字符串中指定字符5

3. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:\"****A*BC*DEF*G*******\",删除后,字符串中的内容应当是:\"A*BC*DEF*G\"。

#include

void fun( char *a, int n,int h,int e )

{

int i,j=0;

for(i=h;ia[j++]=a[i];

a[j]='\\0'; /*在字符串最后加上结束标识*/

}

main()

{ char s[81],*t,*f; int m=0, tn=0, fn=0;void NONO ();

printf(\"Enter a string:\\n\");gets(s);

t=f=s;

while(*t){t++;m++;}

t--;

while(*t=='*'){t--;tn++;}

while(*f=='*'){f++;fn++;}

fun( s , m,fn,tn );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符6

3. 函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。

例如,当s所指字符串中的内容为\"ABCDEFGHIJK\"时,在t所指数组中的内容应是:\"BDFHJ\"。

#include

#include

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

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

{

int i,j=0,k=strlen(s); /*k为字符串的长度*/

for(i=1;it[j++]=s[i];

t[j]='\\0';

}

main()

{

char s[100], t[100];

void NONO ( );

printf(\"\\nPlease enter string S:\"); scanf(\"%s\

fun(s, t);

printf(\"\\nThe result is: %s\\n\

NONO();

}

题目十七删除字符串中指定字符7

3. 假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是ABCDEFG*******。

#include

void fun( char *a, char *p )

{

char *t=a;

for(;t<=p;t++)

if(*t!='*')

*(a++)=*t;

for(;*t!='\\0';t++)

*(a++)=*t;

*a='\\0';

/*在字符串最后加上字符串结束标识*/

}

main()

{ char s[81],*t;

void NONO ( );

printf(\"Enter a string:\\n\");gets(s);

t=s;

while(*t)t++;

t--;

while(*t=='*')t--;

fun( s , t );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符8

3. 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

例如,字符串中的内容为:\"*******A*BC*DEF*G****\",删除后字符串中的内容应当是:\"A*BC*DEF*G****\"。编写函数时,不得使用C语言提供的字符串函数。

#include

void fun( char *a )

{

char *p=a;

while(*p=='*') p++; /*指针p指向字符串第一个字母*/

for(;*p!='\\0';p++,a++)

*a=*p; /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/

*a='\\0'; /*在字符串最后加上字符串结束标识*/

}

main()

{ char s[81];

void NONO ( );

printf(\"Enter a string:\\n\");gets(s);

fun( s );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符9

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

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

#include

#include

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

{

int i,j=0,n;

n=strlen(s);

for(i=0;iif(i%2!=0&&s[i]%2!=0)

{t[j]=s[i]; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/

j++;

}

t[j]='\\0'; /*最后加上结束标识符*/

}

main()

{

char s[100], t[100];void NONO ();

printf(\"\\nPlease enter string S:\"); scanf(\"%s\

fun(s, t);

printf(\"\\nThe result is: %s\\n\

NONO();

}

题目十七删除字符串中指定字符10

3. 编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存指定的下标。

例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。

#include

#include

#define LEN 20

void fun (char a[], char b[], int n)

{

int i,k=0;

for(i=0;a[i]!='\\0';i++)

if(i!=n) /*将不是指定下标的字符存入数组b中*/

b[k++]=a[i];

b[k]='\\0'; /*在字符串最后加上结束标识*/

}

main( )

{ char str1[LEN], str2[LEN] ;

int n ;

void NONO ( );

printf(\"Enter the string:\\n\") ;

gets(str1) ;

printf(\"Enter the position of the string deleted:\") ;

scanf(\"%d\

fun(str1, str2, n) ;

printf(\"The new string is: %s\\n\

NONO() ;

}

题目十七删除字符串中指定字符11

3. 编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。

例如,若s所指字符串中的内容为:\"ABCDEFG12345\",其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:\"BDF24\"。

#include

#include

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

{

int i,j=0,n;

n=strlen(s);

for(i=0;i{ t[j]=s[i];

j++;

}

t[j]='\\0';

}

main()

{

/*找出ASCII码值为偶数的字符依次存入数组中*/

char s[100], t[100];void NONO ();

printf(\"\\nPlease enter string S:\"); scanf(\"%s\

fun(s, t);

printf(\"\\nThe result is: %s\\n\

NONO();

}

题目十七删除字符串中指定字符12

3. 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。

#include

void fun( char *a, char *h,char *p )

{ int i=0;

char *q=a;

while(q{ a[i]=*q; q++;i++;}

while(q{ if(*q!='*')

{ a[i]=*q;

i++;

}

q++;

}

while(*q)

{ a[i]=*q; i++; q++;}

a[i]='\\0';

}

main()

{ char s[81],*t, *f;

void NONO ( );

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);

NONO();

}

题目十七删除字符串中指定字符13

3. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。

例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。

#include

void fun( char *a, int n )

{

int i=0;

int k=0;

char *p,*t;

p=t=a; /*开始时,p与t同时指向数组的首地址*/

while(*t=='*') /*用k来统计前部星号的个数*/

{k++;t++;}

if(k>n) /*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/

{ while(*p)

{ a[i]=*(p+k-n);

i++;

p++;

}

a[i]='\\0'; /*在字符串最后加上结束标识位*/

}

}

main()

{ char s[81]; int n;void NONO ();

printf(\"Enter a string:\\n\");gets(s);

printf(\"Enter n : \");scanf(\"%d\

fun( s,n );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符14

3. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。

例如,字符串中的内容为\"****A*BC*DEF*G*******\若n的值为4,删除后,字符串中的内容应为\"****A*BC*DEF*G****\";若n的值为7,则字符串中的内容仍为\"****A*BC*DEF*G*******\"。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。

#include

void fun( char *a,int n )

{

int i=0,k=0;

char *p, *t;

p=t=a; /*将指针移动到字符串末尾*/

while(*t)

t++;

t--; /*从后往前如果是'*' 则使k++,找到最后一个*所在的位置,并记录'*'的个数*/

while(*t=='*')/*指针t指向前一个,同时标量k增加一*/

{k++;t--;}

if(k>n)

{while(*p&&p{ a[i]=*p;

i++;p++;

}

a[i]='\\0';

}

}

main()

{ char s[81]; int n;

void NONO ( );

printf(\"Enter a string:\\n\");gets(s);

printf(\"Enter n : \");scanf(\"%d\

fun( s,n );

printf(\"The string after deleted:\\n\");puts(s);

NONO();

}

题目十七删除字符串中指定字符15

3. 请编写函数fun,该函数的功能是:将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为\"ABCDEFG12345\其中字符B的ASCII码值为偶数,字符2的ASCII码值为偶数,都应当删除,其他依此类推。最后t所指的数组中的内容应是\"ACEG135\"。

#include

#include

#include

#include

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

{

int i=0;

for(;*s!='\\0';s++) /*找出ASCII值为奇数的字符依次存入数组t中*/

if(*s%2==1)

t[i++]=*s;

t[i]='\\0'; /*在字符串的末尾加上串结束符*/

}

void main()

{

FILE *wf;

char s[100],t[100];

system(\"CLS\");

printf(\"\\nPlease enter string S: \");

scanf(\"%s\

fun(s,t);

printf(\"\\nThe result is :%s\\n\

/******************************/

wf=fopen(\"out.dat\

fun(\"ABCDEFG12345\

fprintf(wf,\"%s\

fclose(wf);

/*****************************/

}

题目十七删除字符串中指定字符16

3. 编写函数fun,其功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符处理。

例如,若程序执行时输入字符串为

\"turbo c and borland c++\"

从键盘上输入字符n,则输出为

\"turbo c ad borlad c++\"

如果输入的字符在字符串中不存在,则字符串照原样输出。

#include

#include

void fun( char s[],int c)

{

int i=0;

char *p;

p=s;

while(*p) /*判断是否为结束符*/

{

if(*p!=c) /*判断字符串中字符是否与指定字符相同*/

{

s[i]=*p;/*不同将重新组合字符串,*/

i++;

}

p++; /*相同则处理下一个字符。*/

}

s[i]='\\0';

}

main()

{

static char str[]=\"turbo c and borland c++\";

char ch;

FILE *out;

printf (\"原始字符串:%s\\n \

printf(\"输入一个字符串:\\n\");

scanf(\"%c\

fun(str,ch);

printf(\"str[]=%s\\n\

strcpy(str,\"turbo c and borland c++\");

fun(str,'a');

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%s\

fclose(out);

/******************************/

}

题目十七删除字符串中指定字符17

3. 请编写一个函数,用来删除字符串中的所有空格。

例如,输入asd af aa z67,则输出为asdafaaz67。

#include

#include

#include

#include

void fun (char *str)

{

int i=0;

char *p=str;

while(*p)

{

if(*p!=' ') {

str[i]=*p;

/*删除空格*/

i++;

}

p++;

}

str[i]='\\0'; /*加上结束符*/

}main()

{

char str[81];

char Msg[]=\"Input a string:\";

int n;

FILE *out;

printf(Msg);

gets(str);

puts(str);

fun(str);

printf(\"*** str: %s\\n\

/******************************/

out=fopen(\"out.dat\

fun(Msg);

fprintf(out,\"%s\

fclose(out);

/******************************/

}

题目十七删除字符串中指定字符18

3. 函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。

例如,若s所指字符串中的内容为\"ABCDEFG12345\",其中字符C的ASCII码值为奇

数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是\"BDF12345\"。

#include

#include

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

{

int i, j = 0 ;

for(i = 0 ; i < strlen(s) ; i++)

if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ;

t[j] = 0 ;

}

main()

{

char s[100], t[100];void NONO ();

printf(\"\\nPlease enter string S:\"); scanf(\"%s\

fun(s, t);

printf(\"\\nThe result is: %s\\n\

NONO();

}

题目十八数字字符串转整数1

1. 请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串\"-1234\",则函数把它转换为整数值-1234。

#include

#include

long fun ( char *p)

{

long n=0;

int flag=1;

if(*p=='-') /*负数时置flag为-1*/

{p++;flag= -1;}

else if(*p=='+') /*正数时置flag为1*/

p++;

while(*p!='\\0')

{n=n*10+*p-'0'; /*将字符串转成相应的整数*/

p++;

}

return n*flag;

}

main() /* 主函数 */

{ char s[6];void NONO ();

long n;

printf(\"Enter a string:\\n\") ;

gets(s);

n = fun(s);

printf(\"%ld\\n\

NONO ( );

}

题目十八数字字符串转整数2

3请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如:在键盘输入字符串2345210,函数返回长整型数2345210。

#include

#include

void NONO();

long fun( char *s )

{

int i,sum=0,len;

len=strlen(s);

for(i=0;i{

sum=sum*10+*s-48;

s++;

}

return sum;

}

main()

{ char s[10]; long

r;

printf(\"请输入一个长度不超过9个字符的数字字符串 : \"); gets(s);

r = fun( s );

printf(\" r = %ld\\n\" , r );

NONO();

}

题目十九素数判定1

编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。

#include

void fun( int m, int *k, int xx[] )

{

int i,j,n=0;

for(i=4;i{ for(j=2;jif(i%j==0) break;

if(j}

*k=n; /*返回非素数的个数*/

}

main()

{

int m, n, zz[100];

void NONO ( );

printf( \"\\nPlease enter an integer number between 10 and 100: \" );

scanf( \"%d\

fun( n, &m, zz );

printf( \"\\n\\nThere are %d non-prime numbers less than %d:\

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

printf( \"\\n %4d\

NONO();

}

题目十九素数判定2

3. 请编写函数fun,其功能是:计算并输出3~n之间所有素数的平方根之和。

例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。

#include

#include

double fun(int n)

{

int m,k,i;

double s=0.0;

for(m=3;m<=n;m++)

{

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0) break;

if(i>=k+1)

s+=sqrt(m);

}

return s;

}

main()

{int n;

double sum;

FILE *out;

printf(\"Input N=\");

scanf(\"%d\

sum=fun(n);

printf(\"\\n\\nsum=%f\\n\\n\

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%f\\n\

fclose(out);

/******************************/

}

题目十九素数判定3

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

#include

#include

#include

#define MAX 100

int fun(int lim, int aa[MAX])

{

int i,j,k=0;

for(i=2;i<=lim;i++) /*求出小于或等于lim的全部素数*/

{ for(j=2;jif(i%j==0) break;

if(j>=i)

aa[k++]=i; /*将求出的素数放入数组aa中*/

}

return k; /*返回所求出的素数的个数*/

}

void main()

{

FILE *wf;

int limit,i,sum;

int aa[MAX];

system(\"CLS\");

printf(\"输入一个整数:\");

scanf(\"%d\

sum=fun(limit,aa);

for(i=0;i{

if(i%10==0&&i!=0) /*每行输出10个数*/

printf(\"\\n \");

printf(\"%5d \

}

/******************************/

wf=fopen(\"out.dat\

sum=fun(15,aa);

for(i=0;i{

if(i%10==0&&i!=0) /*每行输出10个数*/

fprintf(wf,\"\\n\");

fprintf(wf,\"%5d \

}

fclose(wf);

/*****************************/

}

题目二十统计问题

3. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为\"asd asasdfg asd as zx67 asd mklo\",子字符串为\"as\",则应当输出6。

#include

#include

#include

#include

int fun(char *str, char *substr)

{

int i,j=0;

for(i=0;str[i+1]!='\\0';i++) /*如果一个长度为2的子字符串在主字符串中出现一次,则j+1,如此循环*/

if(str[i]==substr[0]&&str[i+1]==substr[1])

j++;

return j; /*返回子字符串在主字符串中出现的次数*/

}

void main()

{

FILE *wf;

char str[81],substr[3];

int n;

system(\"CLS\");

printf(\"输入主字符串: \");

gets(str);

printf(\"输入子字符串: \");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf(\"n=%d\\n \

/******************************/

wf=fopen(\"out.dat\

n=fun(\"asd asasdfg asd as zx67 asd mklo\

fprintf(wf,\"%d\

fclose(wf);

/*****************************/

}

题目二十一小数位操作

3. 请编一个函数 float fun(double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。

例如,若h 值为1234.567,则函数返回1234.570000;若h值为 1234.564,则函数返回1234.560000。

#include

#include

#include

float fun (float h )

{

long t;

t=(h*1000+5)/10; /*单精度数h乘以1000后再加5,相当于对h中的第三位小数进行四舍五入

除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/

return (float)t/100; /*除以100,保留2位小数*/

}

void main()

{

FILE *wf;

float a;

system(\"CLS\");

printf(\"Enter a: \");

scanf (\"%f\

printf(\"The original data is : \");

printf(\"%f\\n\\n\

printf(\"The result : %f\\n\

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%f\

fclose(wf);

/*****************************/

}

题目二十二一维数组或字符串排序1

3.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为\"CEAedca\",排序后输出为\"CedcEAa\"。

#include

#include

#include

void fun(char *s,int num)

{ char ch ;

int i, j ;

for(i = 1 ; i < 6 ; i++)

for(j = i + 1 ; j < 6 ; j++)

{

if(*(s + i) < *(s + j))

{

ch = *(s + j) ;

*(s + j) = *(s +i) ;

*(s + i) = ch ;

}

}

}

main()

{

void NONO( );

char s[10];

printf(\"输入7个字符的字符串:\");

gets(s);

fun(s,7);

printf(\"\\n%s\

NONO();

}

题目二十二一维数组或字符串排序2

3.请编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为\"ABCDEFGHIJK\",m的值为3,移动后,字符串中的内容应该是\"DEFGHIJKABC\"。

#include

#include

#define N 80

void fun (char *w,int m)

{

int i,j;

char t;

for(i=1;i<=m;i++) /*进行m次的循环左移*/

{t=w[0];

for(j=1;w[j]!='\\0';j++) /*从第2个字符开始以后的每个字符都依次前移一个字符*/

w[j-1]=w[j];

w[j-1]=t; /*将第1个字符放到最后一个字符中*/

}

}void main()

{

FILE *wf;

char a[N]= \"ABCDEFGHIJK\

int m;

printf(\"The origina string :\\n\");

puts(a);

printf(\"\\n\\nEnter m: \");

scanf(\"%d\

fun(a,m);

printf(\"\\nThe string after moving :\\n\");

puts(a);

printf(\"\\n\\n\");

/******************************/

wf=fopen(\"out.dat\

fun(b,3);

fprintf(wf,\"%s\

fclose(wf);

/*****************************/

}

题目二十二一维数组元素的筛选1

3. 编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为1,则输出3。

#include

#include

#define M 81

int fun(char *ss, char c)

{

int i=0;

for(;*ss!='\\0';ss++)

if(*ss==c)

i++;/*求出ss所指字符串中指定字符的个数*/

return i;

}

main()

{ char a[M], ch;

void NONO ( );

printf(\"\\nPlease enter a string:\"); gets(a);

printf(\"\\nPlease enter a char:\"); ch = getchar();

printf(\"\\nThe number of the char is: %d\\n\

NONO ( );

}

题目二十二一维数组元素的筛选2

3. 编写函数void fun(char *tt,int pp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。

例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:

3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

#include

#include

void fun(char *tt, int pp[])

{

int i;

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

pp[i]=0; /*初始化pp数组各元素为0*/

for(;*tt!='\\0';tt++)

if(*tt>='a'&&*tt<='z')

pp[*tt-'a']++;

}

main( )

{ char aa[1000] ;

int bb[26], k ;

void NONO ( );

printf( \"\\nPlease enter a char string:\" ) ; scanf(\"%s\

fun(aa, bb ) ;

for ( k = 0 ; k < 26 ; k++ ) printf (\"%d \

printf( \"\\n\" ) ;

NONO ( ) ;

题目二十二一维数组元素的筛选3

3. 请编写函数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

#define N 80

int fun(int a[], int n)

{

int i,j=1;

for(i=1;iif(a[j-1]!=a[i]) /*若该数与前一个数不相同,则要保留*/

a[j++]=a[i];

return j; /*返回不相同数的个数*/

}

void main()

{

FILE *wf;

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;

printf(\"The original data :\\n\");

for(i=0; iprintf(\"%3d\

n=fun(a,n);

printf(\"\\n\\nThe data after deleted :\\n\");

for(i=0; iprintf(\"%3d\

printf(\"\\n\\n\");

/******************************/

wf=fopen(\"out.dat\

for(i=0; ifprintf(wf,\"%3d\

fclose(wf);

/*****************************/

}

题目二十二一维数组元素的筛选4

3. 编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为:

F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如,当t=1000时,函数值为1597。

#include

#include

int fun( int t)

{

int f0 = 0, f1 = 1, f ;

do {

f = f0 + f1 ;

f0 = f1 ;

f1 = f ;

} while(f < t) ;

return f ;

}

main() /* 主函数 */

{ int n;

void NONO ( );

n=1000;

printf(\"n = %d, f = %d\\n\

NONO();

}

题目二十二一维数组元素的筛选5

3. m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。

#include

#include

#include

#include

int fun(int score[],int m, int below[])

{

int i,j=0;

float av=0.0;

for(i=0;iav=av+score[i]/m; /*求平均值*/

for(i=0;iif(score[i]below[j++]=score[i];

return j; /*返回低于平均分的人数*/

}void main()

{

FILE *wf;

int i, n, below[9];

int score[9]={10,20,30,40,50,60,70,80,90};

system(\"CLS\");

n=fun(score, 9, below);

printf(\"\\nBelow the average score are: \");

for(i=0;iprintf(\"%d \

/******************************/

wf=fopen(\"out.dat\

for(i=0;ifprintf(wf,\"%d \

fclose(wf);

/*****************************/

}

题目二十二一维数组元素的筛选6

3. 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入\"abc4Efg\",则应输出\"aBc4EFg\"。

#include

#include

#include

#include

void fun(char *ss)

{

int i;

for(i=0;ss[i]!='\\0';i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/

if(i%2==1&&ss[i]>='a'&&ss[i]<='z')

ss[i]=ss[i]-32;

}

void main()

{

FILE *wf;

char tt[81],s[81]=\"abc4Efg\";

system(\"CLS\");

printf(\"\\nPlease enter an string within 80 characters:\\n\");

gets(tt);

printf(\"\\n\\nAfter changing, the string\\n %s\

fun(tt);

printf(\"\\nbecomes\\n %s\\n\

/******************************/

wf=fopen(\"out.dat\

fun(s);

fprintf (wf,\"%s\

fclose(wf);

/*****************************/

}

题目二十二一维数组元素的筛选7

3. 请编写函数void fun (int x, int pp[], int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。

#include

#include

#include

void fun (int x, int pp[], int *n)

{

int i,j=0;

for(i=1;i<=x;i=i+2) /*i的初始值为1,步长为2,确保i为奇数*/

if(x%i==0) /*将能整除x的数存入数组pp中*/

pp[j++]=i;

*n=j; /*传回满足条件的数的个数*/

}

void main ()

{

FILE *wf;

int x,aa[1000], n, i ;

system(\"CLS\");

printf(\"\\nPlease enter an integer number : \\n \") ;

scanf (\"%d\

fun (x, aa, &n) ;

for (i=0 ; iprintf (\"%d \

printf (\"\\n \") ;

/******************************/

wf=fopen(\"out.dat\

fun (30, aa, &n) ;

for (i=0 ; ifprintf (wf,\"%d \

fclose(wf);

/*****************************/

}

题目二十二一维数组元素的筛选8

3. 请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19、23、29、31、37。

#include

#include

#include

void fun(int m,int k,int xx[])

{

int i,j,n;

for(i=m+1,n=0;n素数*/

{for(j=2;jif(i%j==0) break;

if(j>=i) /*如果是素数,放入数组xx中*/

xx[n++]=i;

}

}void main()

{

FILE *wf;

int m,n,zz[1000];

system(\"CLS\");

printf(\"\\nPlease enter two integers: \");

scanf(\"%d%d\

fun(m, n, zz);

for(m=0;mprintf(\"%d \

printf(\"\\n \");

/******************************/

wf=fopen(\"out.dat\

fun(17,5,zz);

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

fprintf(wf,\"%d \

fclose(wf);

/*****************************/

}

题目二十二一维数组元素的筛选9

3.请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回-1。

#include

#include

#define N 15

void NONO();

int fun( int *s, int x)

{ int i;

for(i=0;iif(x==s[i]) return i;

return -1;

}

main()

{ int a[N]={ 29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index;

printf(\"a数组中的数据 :\\n\");

for(i=0; iprintf(\"给x输入待查找的数 : \"); scanf(\"%d\

index=fun( a, x );

printf(\"index=%d\\n\

NONO();

}

题目二十三一维数组元素筛选

3. 编写函数fun,其功能是:将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出:

7 11 14 21 22 28 33 35 42 44 49

#include

void fun ( int m, int *a , int *n )

{

int i,j=0;

for(i=1;i<=m;i++)

if(i%7==0||i%11==0) /*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/

a[j++]=i;

*n=j; /*返回这些数的个数*/

}

main( )

{ int aa[M], n, k;

void NONO ( );

fun ( 50, aa, &n );

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

if((k+1)%20==0) printf(\"\\n\");

else printf( \"%4d\

printf(\"\\n\") ;

NONO( );

题目二十五一维数组最值求解1

3. 请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。

主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

#include

#include

#include

void fun(int a[],int n, int *max, int *d)

{

int i;

*max=a[0];

*d=0;

for(i=0;iif(*max{*max=a[i];*d=i;}

}

void main()

{

FILE *wf;

int i, x[20], max, index, n=10;

int y[20]={4,2,6,8,11,5};

srand((unsigned)time(NULL));

for(i=0;i{

x[i]=rand()%50;

printf(\"%4d\ /*输出一个随机数组*/

}

printf(\"\\n\");

fun(x,n,&max,&index);

printf(\"Max=%5d,Index=%4d\\n\

/******************************/

wf=fopen(\"out.dat\

fun(y,6,&max,&index);

fprintf(wf,\"Max=%5d,Index=%4d\

fclose(wf);

/*****************************/

}

题目二十五一维数组最值求解2

3. 请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。

例如,输入如下整数:

876 675 896 101 301 401 980 431 451 777

则输出结果为6,980。

#include

#include

#include

int fun(int *s,int t,int *k)

{

int i;

*k=0; /*k所指的数是数组的下标值*/

for(i=0;iif(s[*k]return s[*k]; /*返回数组的最大元素*/

}void main()

{

FILE *wf;

int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;

system(\"CLS\");

fun(a, 10, &k);

printf(\"%d, %d\\n \

/******************************/

wf=fopen(\"out.dat\

fprintf (wf,\"%d, %d\

fclose(wf);

/*****************************/

}

题目二十五一维数组最值求解3

请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。

例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。

#include

void NONO();

double fun(double a[ ] , int n)

{

double sum=0,max,min;int i;

max=min=a[0];

for(i=0;i{

sum=sum+a[i];

if(maxif(min>a[i])min=a[i];

}

sum=sum-max-min;

return(sum/(n-2));

}

main()

{ double b[10], r; int i;

printf(\"输入10个分数放入b数组中 : \");

for (i=0; i<10; i++) scanf(\"%lf\

printf(\"输入的10个分数是 : \");

for (i=0; i<10; i++) printf(\"%4.1lf \ printf(\"\\n\");

r = fun(b, 10);

printf(\"去掉最高分和最低分后的平均分 : %f\\n\

NONO();

}

题目二十六移动问题1

3. 规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。

例如,字符串中的内容为:\"*******A*BC*DEF*G****\",移动后,字符串中的内容应当是:\"A*BC*DEF*G***********\"。在编写函数时,不得使用C语言提供的字符串函数。

#include

void fun( char *a )

{

int i=0,n=0;

char *p;

p=a;

while (*p=='*') /*判断*p是否是*号,并统计*号的个数*/

{

n++;p++;

}

while(*p) /*将前导*号后的字符传递给a*/

{

a[i]=*p;i++;p++;

}

while(n!=0)

{

a[i]='*';i++;n--;

}

a[i]='\\0';

}

main()

{ char s[81]; int n=0; void NONO ();

printf(\"Enter a string:\\n\");gets(s);

fun( s );

printf(\"The string after moveing:\\n\");puts(s);

NONO();

}

题目二十六移动问题2

3.请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于 等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中

的内容应为: 5,6,7,8,9,10,1,2,3,4。

#include

#define N 80

void fun(int *w, int p, int n)

{ int x,j,ch;

for(x=0;x<=p;x++)

{ ch=w[0];

for(j=1;j{

w[j-1]=w[j];

}

w[n-1]=ch; /*将0到p个数组元素逐一赋给数组w[n-1]*/

}

}

main()

{ int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

int i,p,n=15;void NONO ();

printf(\"The original data:\\n\");

for(i=0; iprintf(\"\\n\\nEnter p: \");scanf(\"%d\

fun(a,p,n);

printf(\"\\nThe data after moving:\\n\");

for(i=0; iprintf(\"\\n\\n\");

NONO();

}

题目二十七整数合并1

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

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

#include

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

{

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

}

main()

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

printf(\"Input a, b:\");

scanf(\"%d%d\

fun(a, b, &c);

printf(\"The result is: %ld\\n\

NONO();

}

题目二十七整数合并2

3. 编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

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

#include

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

{

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

}

main()

{ int a,b; long c;

void NONO ( );

printf(\"Input a, b:\");

scanf(\"%d %d\

fun(a, b, &c);

printf(\"The result is: %ld\\n\

NONO();

}

题目二十七整数合并3

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

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

#include

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

{

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

}

main() /* 主函数 */

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

printf(\"Input a, b:\");

scanf(\"%d%d\

fun(a, b, &c);

printf(\"The result is: %ld\\n\

NONO();

}

题目二十七整数合并4

3.编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

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

#include

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

{

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

}

main()

{ int a,b; long c;

void NONO ( );

printf(\"Input a, b:\");

scanf(\"%d %d\

fun(a, b, &c);

printf(\"The result is: %ld\\n\

NONO();

}

题目二十七整数合并5

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

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

#include

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

{ /*b%10 获取b的个位,a/10 获取a的十位,a%10 获取a的个位,b/10 获取b的十位*/

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

}

main()

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

printf(\"Input a, b:\");

scanf(\"%d%d\

fun(a, b, &c);

printf(\"The result is: %ld\\n\

NONO();

}

题目二十七整数合并6

3. 编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

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

#include

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

{

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

}main()

{ int a,b; long c;

void NONO ( );

printf(\"Input a, b:\"); scanf(\"%d%d\

fun(a, b, &c);

printf(\"The result is: %d\\n\

NONO();

}

题目二十七整数合并7

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

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

#include

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

{ /*b%10 获取b的个位,a/10 获取a的十位,a%10 获取a的个位,b/10 获取b的十位*/

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

}

main()

{ int a,b; long c;

void NONO ( );

printf(\"Input a, b:\"); scanf(\"%d %d\

fun(a, b, &c);

printf(\"The result is: %d\\n\

NONO();

}

题目二十七整数合并8

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

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

#include

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

{

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

}main()

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

printf(\"Input a, b:\");

scanf(\"%d%d\

fun(a, b, &c);

printf(\"The result is: %ld\\n\

NONO();

}

题目二十八字符串长度比较1

3. 编写函数fun,其功能是:比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。

例如,输入beijingshanghai(为回车键),函数将返回shanghai。

#include

char *fun ( char *s, char *t)

{

int i,j;

for(i=0;s[i]!= '\\0';i++); /*求字符串的长度*/

for(j=0;t[j]!= '\\0';j++);

if(i<=j) /*比较两个字符串的长度*/

return t; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/

else

return s;

}

main ( )

{ char a[20],b[20];

void NONO ( );

printf(\"Input 1th string:\");

gets( a);

printf(\"Input 2th string:\");

gets( b);

printf(\"%s\\n\

NONO ();

}

题目二十八字符串长度比较2

3. 编写一个函数,其功能是:从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标识)。

#include

#include

#include

#include

char *fun(char (*a)[81], int num, char *max)

{

int i=0;

max=a[0];

for(i=0;iif(strlen(max)max=a[i];

return max; /*传回最长字符串的地址*/

}

void main()

{

FILE *wf;

char ss[10][81],*ps=NULL;

char s[3][81]={\"abcd\

int i=0,n;

system(\"CLS\");

printf(\"输入若干个字符串:\");

gets(ss[i]);

puts(ss[i]);

while(!strcmp(ss[i], \"****\")==0) {

i++;

gets(ss[i]);

puts(ss[i]);

}

n=i;

ps=fun(ss,n,ps);

printf(\"\\nmax=%s\\n\

/******************************/

/*用4个星号作为结束输入的标志*/

wf=fopen(\"out.dat\

p=fun(s,3,p);

fprintf(wf,\"%s\

fclose(wf);

/*****************************/

}

题目二十九字符串的逆置

3. 请编一个函数fun(char *s),该函数的功能是:把字符串中的内容逆置。

例如,字符串中原有的字符串为\"abcdefg\",则调用该函数后,串中的内容为\"gfedcba\"。

#include

#include

#include

#define N 81

void fun(char*s)

{

char ch;

int i,m,n;

i=0;

m=n=strlen(s)-1;

/*将第i个和倒数第i个数互换,但循环的次数为数组长度的一半*/

while(i<(n+1)/2)

{

/*使用中间变量叫唤*/

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++; m--;

}

}

main()

{

char a[N];

FILE *out;

printf(\"Enter a string:\");

gets(a);

printf(\"The original string is:\");

puts(a);

fun(a);

printf(\"\\n\");

printf(\"The string after modified:\");

puts(a);

strcpy(a,\"Hello World!\");

fun(a);

/******************************/

out=fopen(\"out.dat\

fprintf(out,\"%s\

fclose(out);

/******************************/

}

题目三十字符串计数

3. 请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。

例如,s所指字符串中的内容是:2def35adh25 3kjsdf 7/kj8655x,

函数fun返回值为:11

#include

void NONO();

int fun(char *s)

{ int n=0;

char *p;

for(p=s;*p!='\\0';p++)

if((*p>='0')&&(*p<='9'))

n++;

return n;

}

main()

{ char *s=\"2def35adh25

3kjsdf 7/kj8655x\";

printf(\"%s\\n\

printf(\"%d\\n\

NONO();

}

题目三十一字符串连接1

3. 编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。

例如,分别输入下面两个字符串:

FirstString--

SecondString

程序输出:

FirstString--SecondString

#include

void fun(char p1[], char p2[])

{

int i,j;

for(i=0;p1[i]!='\\0';i++) ;

for(j=0;p2[j]!='\\0';j++)

p1[i++]=p2[j];

p1[i]='\\0';

}

main()

{ char s1[80], s2[40] ;void NONO ();

printf(\"Enter s1 and s2:\\n\") ;

scanf(\"%s%s\

printf(\"s1=%s\\n\

printf(\"s2=%s\\n\

printf(\"Invoke fun(s1,s2):\\n\") ;

fun(s1, s2) ;

printf(\"After invoking:\\n\") ;

printf(\"%s\\n\

NONO() ;

}

题目三十一字符串连接2

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

例如,若字符串数组中的M个字符串为{\"AAAA\则合并后的字符串内容应该是\"AAAABBBBBBBCC\"

#include

#include

#define M 3

#define N 20

void fun(char a[M][N],char *b)

{

int i,j,k=0;

for(i=0;ifor(j=0;a[i][j]!='\\0';j++)

b[k++]=a[i][j];

b[k]='\\0'; /*在字符串最后加上字符串结束标记符*/

}

void main()

{

FILE *wf;

char w[M][N]={\"AAAA\

char a[100]={ \" ##############################\

printf(\"The string:\\n \");

for(i=0;iputs(w[i]);

printf(\"\\n \");

fun(w,a);

printf(\"The A string:\\n \");

printf(\"%s \

printf(\"\\n\\n \");

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%s\

fclose(wf);

/*****************************/

}

题目三十一字符串连接3

1. 请编写函数fun,其功能是将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。

#include

#define N 20

void NONO();

void fun( char *a , char *s)

{ while(*s!='\\0')

{ *a=*s;

a++;

s++;

}

*a='\\0';

}

main()

{ char s1[N], *s2=\"abcdefghijk\";

fun( s1,s2);

printf(\"%s\\n\

printf(\"%s\\n\

NONO();

}

题目三十二字符串中指定字符查找

3. 请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。

#include

#include

#define N 80

int fun(char *s)

{

int i,j=0;

for(i=0;s[i]!='\\0';i++)

if(s[i]!=' '&&(s[i+1]==' '||s[i+1]=='\\0')) 格或者结束标记,则表示一个单词结束*/

j++;

return j; /*返回单词个数*/

}

void main()

{

FILE *wf;

/*如果一个字母的下一个字符为空

char line[N];

int num=0;

printf(\"Enter a string:\\n \");

gets(line);

num=fun(line);

printf(\"The number of word is:%d\\n\\n \

/******************************/

wf=fopen(\"out.dat\

fprintf(wf,\"%d\

fclose(wf);

/*****************************/

}

题目三十三字母大小的判断及转换

3. 编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入\"abc4EFg\",则应输出\"aBc4EFg\"。

#include

#include

void fun ( char *ss )

{

int i;

for(i=0;ss[i]!='\\0';i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/

if(i%2==1&&ss[i]>='a'&&ss[i]<='z')

ss[i]=ss[i]-32;

}

main( )

{ char tt[81] ;

void NONO ( );

printf( \"\\nPlease enter an string within 80 characters:\\n\" ); gets( tt );

printf( \"\\n\\nAfter changing, the string\\n fun( tt );

printf( \"\\nbecomes\\n \\\"%s\\\"\\n\ tt );

NONO ( );

}

\\\"%s\\\"\

因篇幅问题不能全部显示,请点此查看更多更全内容