




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目录题目一“回文”字符串3. 请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串就不是回文。#include <stdio.h>#define N 80 int fun(char *str) int i,n=0,fg=1; char *p=str; while (*p) /*将指针p置位到字符串末尾,并统计字符数*/ n+; p+; for(i=0;i<n/
2、2;i+) /*循环比较字符*/ if(stri=strn-1-i) ; /*相同,什么都不作*/ else /*不同,直接跳出循环*/ fg=0; break; return fg; main() char sN; FILE *out; char *test="","","","abcdCBA" int i; printf("Enter a string : "); gets(s); printf("nn"); puts(s); if(fun(s)printf("
3、YESn"); elseprintf("NOn"); /*/ out=fopen("out.dat","w"); for(i=0;i<4;i+) if(fun(testi)fprintf(out,"YESn");elsefprintf(out,"NOn"); fclose(out); /*/题目二迭代法求给定多项式的值3.编写函数fun,其功能是:根据以下公式求的值(要求精度0.0005,即某项小于0.0005时停止迭代)。 程序运行后,若输入精度0.0005,则程序应输出为3.
4、14。#include <stdio.h>#include <math.h>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",&x);
5、printf("neps = %lf, PI=%lfn", x, fun(x); NONO();题目三迭代法求给定方程的根3. 编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)x0的一个实根。迭代步骤如下:(1)取x1初值为0.0;(2)x0x1,将x1的值赋给x0;(3)x1cos(x0),求出一个新的x1;(4)若x0x1的绝对值小于0.,执行步聚(5),否则执行步聚(2);(5)所求x1就是方程cos(x)x0的一个实根,作为函数值返回。程序将输出结果Root0.。#include <math.h>#include <stdio.h
6、>double fun()double x0,x1;x1=0.0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)>=1e-6);return x1;main() void NONO ( ); printf("Root =%fn",fun(); NONO();题目四二维数组三角元素操作13. 程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int aN,int n),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为: 则返回主程序后a数组中的值应为: #include &l
7、t;stdio.h>#include <conio.h>#include <stdlib.h>#define N 5void fun(int a N, int n) int i,j; for(i=0;i<N;i+) for(j=0;j<=i;j+) aij=aij*n;main() int aNN,n, i,j; FILE *out; printf("* The array *n"); for(i=0; i<N; i+) for(j=0; j<N; j+) aij=rand()%10; printf("%4d&
8、quot;, aij); printf("n"); n=rand()%4; printf("n=%4dn",n); fun(a, n); printf("*THE RESULT*n"); for(i=0; i<N; i+) for (j=0; j<N; j+) printf("%4d",aij); printf("n"); /*/ out=fopen("out.dat","w"); for(i=0;i<N;i+)for(j=0;j<
9、N;j+)aij=i*j+1; fun(a,9); for(i=0;i<N;i+) for(j=0;j<N;j+)fprintf(out,"%4d",aij);fprintf(out,"n"); fclose(out);/*/题目四二维数组三角元素操作23. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int aN),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为:1 9 72 3 84 5 6则返回主程序后a数组中的值应为:0 9 70 0 80 0 0#include <
10、;conio.h>#include <stdio.h>#include <stdlib.h>#define N 5void fun (int aN) int i,j; for(i=0;i<N;i+) for(j=0;j<=i;j+) aij=0; /*将数组左下半三角元素中的值全部置成0*/void main() FILE *wf; int aNN,i,j; int bNN=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("*
11、The array*n"); for(i=0;i<N;i+) /*产生一个随机的5*5矩阵*/ for(j=0;j<N;j+) aij=rand()%10; printf("%4d", aij); printf("n"); fun(a); printf("THE RESULTn"); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%4d",aij); printf("n"); /*/ wf=fopen("out.dat
12、","w"); fun(b); for(i=0;i<N;i+) for(j=0;j<N;j+) fprintf(wf,"%4d",bij); fprintf(wf,"n"); fclose(wf);/*/题目四二维数组三角元素操作33. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a N,int m),该函数的功能是使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为: 则返回主程序后a数组中的值应为: #include <conio.h>
13、#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 5void fun(int aN, int m) int i,j; for(j=0;j<N;j+) for(i=0;i<=j;i+) aij=aij*m; /*右上半三角元素中的值乘以m*/main() int aNN,m, i, j; FILE *out; printf("*The array*n"); for(i=0;i<N;i+) for(j=0;j<N;j+) aij=rand
14、()%20; printf("%4d", aij); printf("n"); m=rand()%4; printf("m=%4dn",m); fun(a,m); printf("THE RESULTn"); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%4d",aij); printf("n"); /*/ out=fopen("out.dat","w"); for(i=0;i<N;
15、i+) for(j=0;j<N;j+)aij=i*j; fun(a,8); for(i=0;i<N;i+) for(j=0;j<N;j+)fprintf(out,"%4d",aij);fprintf(out,"n"); fclose(out); /*/题目五二维数组元素求最值3. 请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。#include <stdio.h>#define M 4int fun (int aM)int i,j,max=a00; for(i=0;i<
16、2;i+) for(j=0;j<M;j+) if(max<aij) max=aij; return max;main( ) int arr2M=5,8,3,45,76,-4,12,82 ;void NONO (); printf("max =%dn", fun(arr) ; NONO( ) ;void NONO ()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *wf ; int arrM=5,8,3,90,76,-4,12,82 ; wf = fopen("out.dat","w")
17、 ; fprintf(wf, "max=%dn", fun(arr) ; fclose(wf) ;题目六二维数组周边元素13.下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a 数组中的值为:0127919745238314568259141则返回主程序后s的值应为3.375。#include<stdio.h>#include<conio.h>#include<stdlib.h>#define N 5double fun (int
18、wN) int i,j,k=0; double av=0.0; for(i=0;i<N;i+) for(j=0;j<N;j+) if(i=0|i=N-1|j=0|j=N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/ av=av+wij; /*将周边元素求和*/ k+; return av/k; /*求周边元素的平均值*/void main() FILE *wf; int aNN=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")
19、; printf("*The array*n "); for (i=0; i<N; i+) for (j=0;j<N;j+) printf("%4d ",aij); printf("n "); s=fun(a); printf("*THE RESULT*n "); printf("The sum is : %lfn ",s);/*/ wf=fopen("out.dat","w"); fprintf (wf,"%lf",s);
20、 fclose(wf);/*/题目六二维数组周边元素23. 请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为:13579299946999813570则函数值为61。#include<conio.h>#include<stdio.h>#include<stdlib.h>#define M 4#define N 5 int fun( int a MN) int i,j,sum=0; for(i=0;i<M;i+) for(j=0;j<N;j+) if(i=0|i=M-
21、1|j=0|j=N-1) /*只要下标中有一个为0或M-1或N-1,则它一定是周边元素*/ sum=sum+aij; /*将周边元素相加*/ return sum; void main() FILE *wf; int aaMN=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<M;i+) for (j=0; j<N;j+) printf("%6d &q
22、uot;,aaij); printf("n "); y=fun(aa); printf("nThe sun: %dn ",y); printf("n ");/*/ wf=fopen("out.dat","w"); fprintf (wf,"%d",y); fclose(wf);/*/题目七二维数组转一维数组13.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的
23、数据为33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 44 55 33 44 55 33 44 55 33 44 55#include <stdio.h>void fun(int (*s)10,int *b,int *n,int mm,int nn) int i,j; for(j=0;j<nn;j+) /*将二维数组中的数据按列的顺序依次放入一维数组中*/ for(i=0;i<mm;i+) b*n=*(*(s+i)+j); *n=*n+1; /*通过指针返回元素个数*/ void main() int w1010=33,3
24、3,33,33,44,44,44,44,55,55,55,55, i, j; int a100=0,n=0 ; FILE *out; printf("The matrix:n"); for (i=0; i<3; i+) for (j=0;j<4;j+) printf("%3d",wij); printf("n"); fun(w,a,&n,3,4); /*/ out=fopen("out.dat","w"); printf("The A array:n");
25、 for(i=0; i<n; i+) printf("%3d",ai); fprintf(out,"%d ",ai); printf("nn"); fclose(out); /*/题目七二维数组转一维数组23. 请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为W W W WS S S SH H H H则字符串中的内容应是:WSHWSHWSHWSH。#include<stdio.h>#define M 3#define N 4void fun
26、(char (*s)N,char *b) int i,j,k=0; for(i=0;i<N;i+) /*按列的顺序依次放到一个字符串中*/ for(j=0;j<M;j+) bk+=sji; bk='0'void main() FILE *wf; char a100,wMN= 'W', 'W', 'W', 'W','S', 'S', 'S', 'S','H', 'H', 'H', 'H&
27、#39; int i,j; printf("The matrix:n"); for(i=0;i<M;i+) for(j=0;j<N;j+) printf("%3c",wij); printf("n"); fun(w,a); printf("The A string:n"); puts(a); printf("nn");/*/ wf=fopen("out.dat","w"); fprintf(wf,"%s",a); fclos
28、e(wf);/*/题目七二维数组转一维数组31. 请编一个函数void fun(int ttMN, int ppN), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。#include <conio.h>#include <stdio.h>#include<stdlib.h>#define M 3#define N 4void fun(int ttMN,int ppN) int i,j,max;for(j=0;j<N;j+) max=tt0j; /*假设各列中的第一个元素最大*
29、/ for(i=0;i<M;i+) if(ttij>max) /*如果各列中的元素比最大值大,则将这个更大的元素看作当前该列中最大元素*/ max=ttij; ppj=max; /*将各列的最大值依次放入pp数组中*/main( ) void NONO( );int tMN=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; i<M; i+ ) for( j=0; j<N; j
30、+ ) printf ( "%6d", tij ); printf("n"); fun ( t, p ); printf( "nThe result is:n" ); for ( k = 0; k < N; k+ ) printf ( " %4d ", p k ); printf("n"); NONO( );void NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i, j, k, m, tMN, pN ; FILE *rf
31、, *wf ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(m = 0 ; m < 10 ; m+) for( i=0; i<M; i+ ) for( j=0; j<N; j+ )fscanf (rf, "%6d", &tij ); fun ( t, p ) ; for ( k = 0; k < N; k+ ) fprintf (wf, " %4d ", p k ) ;
32、fprintf(wf, "n") ; fclose(rf) ; fclose(wf) ;题目七二维数组转一维数组43.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为:333333334444444455555555则一维数组中的内容应该是:333333334444444455555555。#include <stdio.h>void fun (int (*s)10, int *b, int *n, int mm, int nn) int i
33、,j,k=0; for(i=0;i<mm;i+) /*将二维数组s中的数据按行的顺序依次放到一维数组b中*/ for(j=0;j<nn;j+) bk+=sij; *n=k; /*通过指针返回元素个数*/void main() FILE *wf; int w1010=33,33,33,33,44,44,44,44,55,55,55,55, i, j; int a100=0,n=0 ; printf("The matrix:n"); for (i=0; i<3; i+) for (j=0;j<4;j+) printf("%3d",wi
34、j); printf("n"); fun(w,a,&n,3,4); printf("The A array:n"); for(i=0; i<n; i+) printf("%3d",ai); printf("nn");/*/ wf=fopen("out.dat","w"); for(i=0; i<n; i+) fprintf(wf,"%3d",ai); fclose(wf);/*/题目八结构体数组排序11. 学生的记录由学号和成绩组成,N
35、名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。#include <stdio.h>#define N 16typedef struct char num10; int s; STREC;void fun( STREC a ) int i,j; STREC t; for(i=1;i<N;i+) /*用冒泡法进行排序,进行N1次比较*/ for(j=0;j<N-1;j+) /*在每一次比较中要进行N1次两两比较*/ if(aj.s<aj+1.s) t=aj;aj=aj+1;aj+1=t; /*按分
36、数的高低排列学生的记录,高分在前*/main() STREC sN="GA005",85,"GA003",76,"GA002",69,"GA004",85,"GA001",91,"GA007",72,"GA008",64,"GA006",87,"GA015",85,"GA013",91,"GA012",64,"GA014",91,"GA011&qu
37、ot;,66,"GA017",64,"GA018",64,"GA016",72; int i;FILE *out ; fun( s ); printf("The data after sorted :n"); for(i=0;i<N; i+) if( (i)%4=0 )printf("n"); printf("%s %4d ",si.num,si.s); printf("n"); out = fopen("out.dat",&qu
38、ot;w") ; for(i=0;i<N; i+) if( (i)%4=0 && i) fprintf(out, "n"); fprintf(out, "%4d ",si.s); fprintf(out,"n"); fclose(out) ;题目八结构体数组排序23.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。#include <stdio
39、.h>#define N 8typedef struct char num10; double s; STREC;double fun( STREC *a, STREC *b, int *n ) int i,j=0; double av=0.0; for(i=0;i<N;i+) av=av+ai.s; av=av/N; /*求平均值*/ for(i=0;i<N;i+) if(ai.s<av) bj+=ai;/*将低于平均值的学生记录存入结构体b中*/ *n=j; /*指针传回低于平均值的学生人数*/ return av; /*返回平均值*/main() STREC sN
40、="GA05",85,"GA03",76,"GA02",69,"GA04",85, "GA01",91,"GA07",72,"GA08",64,"GA06",87; STREC hN,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",n
41、,ave); for(i=0;i<n; i+) printf("%s %4.1fn",hi.num,hi.s); printf("n"); out = fopen("out.dat","w") ; fprintf(out, "%dn%7.3fn", n, ave); for(i=0;i<n-1;i+) for(j=i+1;j<n;j+) if(hi.s>hj.s) t=hi ;hi=hj; hj=t; for(i=0;i<n; i+) fprintf(out,&qu
42、ot;%4.1fn",hi.s); fclose(out);题目八结构体数组排序33. 学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60、69,则应当把分数在6069的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。#include <stdio.h>#define N 16typedef struct char num10; int s; STREC;int fun(
43、STREC *a,STREC *b,int l, int h ) int i,j=0; for(i=0;i<N;i+) if(ai.s>=l&&ai.s<=h) /*将分数高于l,低于h的学生记录存入结构体数组b中*/ bj+=ai; return j; /*返回分数范围内的学生人数*/main() STREC sN="GA005",85,"GA003",76,"GA002",69,"GA004",85, "GA001",96,"GA007"
44、,72,"GA008",64,"GA006",87, "GA015",85,"GA013",94,"GA012",64,"GA014",91, "GA011",90,"GA017",64,"GA018",64,"GA016",72; STREC hN,tt;FILE *out ; int i,j,n,low,heigh,t; printf("Enter 2 integer number
45、low & heigh : "); scanf("%d%d", &low,&heigh); if ( heigh< low ) t=heigh;heigh=low;low=t; n=fun( s,h,low,heigh ); printf("The student's data between %d-%d :n",low,heigh); for(i=0;i<n; i+) printf("%s %4dn",hi.num,hi.s); printf("n"); ou
46、t = fopen("out.dat","w") ; n=fun( s,h,80,98 ); fprintf(out,"%dn",n); for(i=0;i<n-1;i+) for(j=i+1;j<n;j+) if(hi.s>hj.s) tt=hi ;hi=hj; hj=tt; for(i=0;i<n; i+) fprintf(out,"%4dn",hi.s); fprintf(out,"n"); fclose(out);题目八结构体数组排序41. 请编写函数fun,该函
47、数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把09岁年龄段的人数放在d0中,把1019岁年龄段的人数放在d1中,把2029岁年龄段的人数放在d2中,依此类推,把100岁(含100岁)以上年龄的人数都放在d10中。结果在主函数中输出。#include <stdio.h># define N 50# define M 11void fun(int *a, int *b) int i,j; for(j=0;j<M;j+) bj=0; /*数组b初始化为0*/ for(i=0;i<N;i+) if(ai>=100) b
48、10+; /*如果年龄大于等于100,b10自增1*/ else bai/10+; /*如果年龄小于100,则将其分别统计到bai/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 ageN, i,dM; int bN=32,45,15,12,86,49,97,3,44,52,17,95
49、,63; for(i=0; i<N; i+) agei=(int)(115*rnd(); /*产生一个随机的年龄数组*/ printf("The original data :n"); for(i=0; i<N; i+) printf(i+1)%10=0? "%4dn":"%4d",agei); /*每行输出10个数*/ printf("nn"); fun(age,d); for(i=0; i<10; i+) printf("%4d-%4d :%4dn", i*10, i*10
50、+9,di); printf("Over 100 : %4dn",d10);/*/ wf=fopen("out.dat","w"); fun(b,d); for(i=0; i<10; i+) fprintf(wf,"%4d-%4d :%4dn", i*10, i*10+9,di); fprintf(wf,"Over 100 : %4d",d10); fclose(wf);/*/题目九结构体数组求最值13.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数f
51、un,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数#include <stdio.h>#define N 16typedef struct char num10; int s; STREC;int fun( STREC *a, STREC *b ) int i,j=0,max=a0.s; /*找出最大值*/ for(i=0;i<N;i+) if(max<ai.s) max=ai.s; for(i=0;i<N;i+) if(max=ai.s) bj+=ai; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/main() STREC sN="GA05",85,"GA03",76,"GA02",69,"GA04",85,"GA01
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 32960.3-2025电动汽车远程服务与管理系统技术规范第3部分:通信协议及数据格式
- 未来汽车技术与环境保护考试题及答案
- 糯米糍测试题及答案
- 绿色金融产品创新与绿色金融产品创新市场趋势分析报告
- 技巧总结2025年商务英语考试试题及答案
- 新能源汽车技术人才培养测验及答案
- 数量与数字试题及答案一览
- 2025物流管理面试题库及答案
- 环保型汽车拆解项目经济效益与可持续发展研究报告
- 新西兰马尔堡产区葡萄酒品牌国际化策略报告2025
- 2024年四川省公安厅招聘警务辅助人员真题
- 机械制造及非标零部件加工项目突发环境事件应急预案
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- GB/T 119.1-2000圆柱销不淬硬钢和奥氏体不锈钢
- 劳动保障监察执法课件
- 小学奥数:乘法原理之染色法.专项练习及答案解析
- 西藏林芝地区地质灾害防治规划
- 入团志愿书样本(空白)
- 老年人烫伤的预防与护理课件
- 部编版小学道德与法治六年级下册《各不相同的生活环境》课件
- 国内外经济形势和宏观经济政策展望课件
评论
0/150
提交评论