C语言试题、学习、考试大全16.doc_第1页
C语言试题、学习、考试大全16.doc_第2页
C语言试题、学习、考试大全16.doc_第3页
C语言试题、学习、考试大全16.doc_第4页
C语言试题、学习、考试大全16.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学公式的题目:1. 编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+.+1/(1+2+3+4+.+n),例如:若n的值为11时,函数的值为1.833333。float fun(int n) int i,sum=1; float s=1; for(i=2;i=n;i+) sum=sum+i; s=s+1.0/sum; return s; long chsdc(int n) int i,s; s=0; for(i=0;in;i+) s=s+i; return(s); 改:1double sum=0.0; 2sum/= c;填:1 0 2 0 3 i2. 请编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)例如:当t=1000时,函数值为1597。int fun (int t) int i,s=0; for(i=0;s=t;i+) s=f(i); return s;改:1s=s+(double)(n+1)/n; 2return t;填:1N 2N-1 303. 请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。void fun(int *a,int *n) int i,m=0;for(i=1;i1e-006); return x1;改:1 void fun(char *a) 2 printf(%c,*a);填:1i+ 2m 3m5. 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。 double fun( double x, int n) int i; float p=1; long q=1; double t,s=1.0; for( i=1; i=n; i+) p*=x; q*=i; t=p/q; s+=t; return s;改:1 double fun(int n) 2 return sum;填:1i 2psj 3tp6. 请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+1n(3)+ln(m)0.5 s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是:double log(double x)。例如,若m的值为20,则fun函数值为6.506583。double fun(int m) double i;double r,s; double log(double i); for(i=1;i=eps) pi+=s; t=n/(2*n+1); s*=t; n+; pi=pi*2; return pi;改:1 int fun(char*str,char*substr) 2 for(i=0;stri;i+)填:10 2n 3(t*t)8. 编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求mn。p=m!/n!(m-n)!。例如:m=12,n=8时,运行结果为495.000000。float fun( int m,int n) int i,j,k; long int t=1,s=1,p=1; float q; for(i=1;i=m;i+) t*=i; for(j=1;j=n;j+) s*=j; for(k=1;k= xa)填:1*s 2s+ 3n9. 编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。例如,若n为1000时,函数值应为s=153.909064。double fun(int n) int sum,i;sum=0; for(i=0;in;i+) if(i%3=0&i%7=0) sum=sum+i; return (sqrt(sum);改:1 if (k%13 = 0) | (k%17 = 0) 2 填:10 2s+ 3sum10. 编写函数fun,它的功能是:计算并输出下列级数和:S=1/1*2+1/2*3+.+1/n(n+1)例如,当n=10时,函数值为0.909091。doublefun(int n) int i; double s=0.0; for(i=1;i=2)位的整数,函数求出w的低n-1位的数作为函数值返回。如w值为5923,则函数返回923,w值为923,则函数返回23unsigned fun ( unsigned w ) int i, j, sqr = 1; unsigned result; char * str,ch5; str=ch; for (i = 1; (i = 1); i+) stri - 1 = 0 + w % 10; w /= 10; stri - 1 = 0; result = str0 - 0; for (j = 1; j n) while(*p&pt+n) ai=*p;i+;p+; ai=0;改:1 int fun(int n) 2 if(n=1)填:1ai%2 2aj 3j14. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是*ABCDEFC*。void fun (char *a, char *h, char *p) int i=0; char *q=a ; while(qh) ai=*q; q+; i+; while(q0.001)填:1sum=0 2tii 3115. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的则内容应当是ABCDEFG*。void fun(char *a,char *p) char *t=a; for(;t amid)填:1tNN 2i=0;iN 3s16. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是ABCDEFG。void fun(char *a) int i,j=0; for(i=0;ai!=0;i+) if(ai!=*) aj+=ai; aj=0; 改:1 t=a;a=b;b=t; 2 return(b);填:11 2j+ 3j数组的题目17. 请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。例如,若输入17,则应输出:9和4 6 8 9 10 12 14 15 16。void fun( int m, int *k, int xx ) int i,j; *k=0; for( i=2; im; i+) for( j=2; j= a)&(tti=z) 2 tti -=32;填:1M 2 3k18. 请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。void fun(char (*s)N,char *b) int i,j,k=0; for(i=0;iN;i+) for(j=0;jM;j+) bk+= sji ; bk=0;改:1 sj+=si; 2 sj= 0;填:1FILE * 2fp 3ch19. 请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1int fun( int *s, int x)int i=0;for(i=0;iN;i+) if(si=x) return i;return -1; 改:1 return t; 2 for(i=0;iN;i+) ti=xi; 3 xi+1=findmid(a,b,c);填:1 i%5=0 2 n 3 ai20. 请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。void fun (int (*s)10, int *b, int *n, int mm, int nn) int i,j,k=0; for(i=0;imm;i+) for(j=0;jnext;填:1h 2p-next 321. 请编写函数void fun(int x,int pp,int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。void fun(int x,int pp,int *n) int i,j=0; for( i=1;i= i)填:1t,s 2si 3022. 请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。void fun(int a, int n , int *max, int *d ) int i; *max=a0; *d=0; for(i=0;i*max) *max=ai; *d=i;改:1 k+; 2 if (m = k)填:11 22*i 3-123. 请编写一个函数void fun(int m,int k,int xx),该函数的功能是:将大于整数m且紧靠m 的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。void fun(int m,int k,int xx) int i,j=0,p=m+1; do for( i=2;i=p) xxj+=p; p+; while(jk); 改:1 double fun(int n) 2 s=s + (double)a/ b;填:1s 2- 3return 024. 请编写函数fun,该函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到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。void fun(int *w, int p, int n) int i,k=0,bN; for(i=p+1; in; i+) bk+=wi; for(i=0; i = p; i+) bk+=wi; for(i=0; inext 2q!=NULL 3p-next25. 请编写函数fun,该函数的功能是:实现B=A+A,即把矩阵A加上矩阵A的转置,存放在矩阵B中。计算结果在main函数中输出。void fun(int a33,int b33) int i,j; for(i=0;i3;i+) for(j=0;j3;j+) bij=aij+aji;改:1 for(i=2;i=m;i+) 2 y += 1.0/ (i*i);填:1& 20 3sj26. 请编写一个函数fun,它的功能是:求出个2M整型二维数组中最大元素的值,并将此值返回调用函数。fun (int aM ) int i,j,max= a00 ; for(i=0;i2;i+) for(j=0;jM;j+) if(maxaij) max=aij; return max;改:1 double fun (int n) 2 c=a; a += b;b=c;填:1 3 2 = 3 k*(t+1)27. 请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为:6,980。int fun(int *s,int t,int *k) int i,max; max=s0; for( i=0;imax) max=si;*k=i; 改:1 t+= sk; 2 *aver=ave;填:1n+ 20 3s+字符串的题目28. 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出N0。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。int fun(char *str)int i,n=0,fg=1; char *p=str; while (*p) n+; p+; for (i=0;inext; 2p=p-next;填:1double 2f1 3f229. 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3。int fun(char *ss,char c) int num=0; while(*ss!=0) if(*ss=c) num+; ss+; return(num);改:1 for (j=i + 1;j6;j+) 2 *(pstr + i)=*(pstr + j);填:1tt 2tt.scorei 3std30. 请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。void void fun (char *w,int m) int i,j; char t; for(i=1;i=m;i+) t=w0; for(j=1;wj!=0;j+) wj-1= wj ; wj-1 =t; 改:1 ss+; 2 tt+;填:1double 2f1 3f231. 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。void fun (char *s, char t ) int i, j=0, n; n=strlen(s); for( i=0; i=0&si=9) num+;return num;改:1 int tN ,i, num; 2 tnum+=bi;3 for(i=0; inum; i+)填:1 bk 2 i 333. 请编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。void fun ( char *s, char t ) int i, j=0, n=strlen(s); for(i=0; idata 3p-next35. 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。long fun ( char *p) long s=0,t; int i=0,j,n=strlen(p),k,s1; if(p0=-) i+; for(j=i;j=n-1;j+) t=pj-0; s1=10; for (k=j;k= num) 2 t=s/ n;填:1t=i 2i+2 3037. 请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。void fun(char aMN,char *b) int i,j, k=0; for(i=0;iM;i+) for(j=0;aij!=0;j+) bk+=aij; bk=0;改:1 r=t; 2 if(*r= 0)填:1NODE * 2q!=NULL 3r38. 请编写一个函数void fun(char *tt,int pp),统计在字符串中a到z26个字母各自出现的次数,并依次放在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 0void fun(char *tt,int pp) int i; for(i=0;i26;i+) ppi=0; for(;*tt;tt+) if(*tt=a) pp*tt-97+;改:1 long s=0, t=0; 2 t=t/ 10;填:1n-1 2sk 3c39. 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4Efg,则应输出aBc4EFg。void fun(char *ss) int i; for(i=0;ssi!=0;i+) if(i%2=1&ssi=a&ssi0;i-) 2 if(tj t j + 1 )填:1k 2N 3aki40. 编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。例如,分别输入下面两个字符串:FirstString、SecondString,则程序输出:FirstStringSecondStringvoid fun(char p1,char p2) int i,j; for(i=0;p1i;i+); for(j=0;p2j;j+) p1i+=p2j; p1i=0;改:1 sum=0.0; 2 if(i+1)%5=0)填:10 2x*10 3n/10学生记录的题(结构题和链表)41. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。STRUC fun(STRUC *a, char *b) int i; STRUC str=0,-1; for(i=0;iN;i+) if(strcmp(ai.num,b)=0) str=ai; return str; 改:1 n= *p-0; 2 n=n*8+*p-0;填:1n/2 2an-1-i 3t42. m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。int fun(int score,int m,int below) int i,j=0,aver=0; for(i=0;im;i+) aver+=scorei; aver/=m; for(i=0;im;i+) if(scoreiaver) belowj+=scorei; return j;改:1 for(i=2;inext; while(p!=NULL) av=av+ p-s; p=p-next; return av/N; 改:1 bk=*p; 2 bk= ;填:1char 2ch=9 3044. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。void fun (STRUC a) int i,j; STRUC t; for(i=1 ;iN;i+) for(j=0;j N-1;j+) if(aj.s 0)填:1999 2t/10 3x45. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。int fun (STREC *a, STREC *b) int i,j=0, n=0, min ; min=a0.s ; for (i=0 ; iN ; i+) if( ai.smin) min=ai.s ; for (i=0 ; iN ;i+) if( ai.s=min) *(b+j)=ai ; j+; n+; return n ;改:1 float k; 2 if(*p*s)填:12+1 2i 3p+i46. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。double fun(STRUC *a, STRUC *b, int *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论