编程汇总2010.doc_第1页
编程汇总2010.doc_第2页
编程汇总2010.doc_第3页
编程汇总2010.doc_第4页
编程汇总2010.doc_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

一、计算问题1、 多项式公式求值 9,1,6,31,32,43, 59,71,72,73, 74,75 2、 素数问题 39 , 80,83、 求方程的解124、 数的分离与合并 38,78,79 , 5,(36,37),(46,57,58, )5、 四舍五入 106、 整数及奇偶判断问题 7,33,34二、数组问题 复习:31,32, 741、求数组元素最大值、最小值、和平均值。44,26,612、构造数组。4,8,35,40,42, 76,95,223、移动数组元素。934、把指定数组元素移到字符串或数组中去。135、元素分段存放。26、数组元素的排序选择排序:21 ,0扩展7、统计数组中指定元素的个数。3二维数组8、 11, 23,24,25,41,55,97, ,64,65,90,91,92,96.字符数组9、字符串查找字符,替换字符17,14,15, 48,49,50,6310、字符串变成数字 1611、子字符串查找 18 ,19,4512、字符串连接 2013、字符串比较 5114、删字符串中字符 52,53,54,56,60,62,81,82,83,84,85,86,87,88,8915、结构体 27,28,29,30,66,67,68,69,70,98,99,1001)、求最大值、最小值、平均值 27,28,67,69,702)、排序 30,68,98,99,100,3)、元素分段存放 29,69,70,98,99,1004)、查找元素15套-1请编一个函数fun(char *s),该函数的功能是把字符串中的小写字母变成大写其他不变。 例如,字符串中原有的字符串为ab12eABCfg,则调用该函数后,串中的内容为ABC12EABCFG。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include #define N 81void fun(char *s) int i,m,n; i=0; while(si!=0) if(si=a & si=z) si=si-32; i+; main() char aN; 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,w); fprintf(out,%s,a); fclose(out); /*/第26-1套请编写函数fun,其功能是:计算并输出给定10个数的平均值。 其中: 例如,给定的10个数为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,则输出为s=79.700000。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include#includedouble fun(double x10) double xp=0.0;int i;for (i=0;i10;i+)xp+=xi;return xp/=10; void main() FILE *wf; double s,x10=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;i10;i+) printf(%6.1f ,xi); printf(nn ); s=fun(x); printf(s=%fnn ,s);/*/ wf=fopen(out.dat,w); fprintf(wf,%f,s); fclose(wf);/*/第0-1套 通过函数将数组按升序排序,主函数调用并输出结果。#include /* 函数定义 */* 参数1:x无下标数组,用于传递数组的首地址 */* 参数2:num数组元素的个数 */* 返回值:无 */void fun(int x , int num) int i,j; for(i=0 ; i num-1 ;i+) for(j=i+1;jxj) int temp; /* 说明局部临时变量,用于交换 */temp = xi;xi = xj;xj = temp; void main(void) int i; int a10 = 51,99,80,75,66,30,95,86,74,68; for(i=0;i10;i+) printf(%4d,ai); /* 输出原始数据 */ printf(n); fun(a,10); /* 调用函数对数组排序 */ for(i=0;i10;i+) printf(%4d,ai); /* 输出排序结果 */ printf(n);第0-2套 通过函数将数组按升序排序(两端元素不动),主函数调用并输出结果。#include /* 函数定义 */* 参数1:x无下标数组,用于传递数组的首地址 */* 参数2:num数组元素的个数 */* 返回值:无 */void fun(int x , int num) int i,j; for(i=1 ; i num-2 ;i+) for(j=i+1;jxj) int temp; /* 说明局部临时变量,用于交换 */temp = xi;xi = xj;xj = temp; void main(void) int i; int a10 = 51,99,80,75,66,30,95,86,74,68; for(i=0;i10;i+) printf(%4d,ai); /* 输出原始数据 */ printf(n); fun(a,10); /* 调用函数对数组排序 */ for(i=0;i10;i+) printf(%4d,ai); /* 输出排序结果 */ printf(n);21套第21套扩展请编写函数fun,对输入的字符串,除首、尾字符外,将其余字符按ASCII码值升序排列。 例如,原来的字符串为Bdsihad,则排序后输出为Badhisd。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include #include #include void fun(char *s) int i,j,n; char t; for(n=0;sn!=0;n+) ;for(i=1;in-2;i+) for(j=i+1;jsj) t=si; si=sj; sj=t; void main() FILE *wf; char s80; char b10=Bdsihad; system(CLS); printf(输入7个字符的字符串:); gets(s); fun(s,7); printf(n%s,s);/*/ wf=fopen(out.dat,w); strcpy(s,Bdsihad); fun(b,7); fprintf(wf,%s,b); fclose(wf);/*/第1套编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n) 例如,若n的值为11时,函数的值为1.833333。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include #include float fun(int n)float s=0.0,s1=0.0; int i; for(i=1;i=n;i+) s1+=i; /*相当于 s1=s1+( i) */ s+=1/s1; /*相当于 s=s+( 1/s1 ) */ return s; void main() FILE *wf; int n; float s; system(CLS); printf(nPlease enter N: ); scanf(%d,&n); s=fun(n); printf(The result is:%fn , s);/*/ wf=fopen(out.dat,w); fprintf (wf,%f,fun(11); fclose(wf);/*/第2套请编写一个函数 void fun(char *tt,int pp),统计在tt字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串abcdefghabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include void fun(char *tt,int pp )int i; for(i=0;i=a&*tt=z) pp*tt-a+; /*将tt字符串中a到z26个字母各自出现的次数,依次放在pp数组中,任一个小写字母减去a后所得结果正好是它对应的下标*/ void main( ) FILE *wf; char aa1000; int bb26, k; system(CLS); printf(nPlease enter a char string : ) ; scanf(%s,aa); fun(aa,bb); for (k=0 ;k26 ; k+) printf(%d ,bbk) ; printf(n );/*/ wf=fopen(out.dat,w); fun (abcdefgabcdeabc,bb) ; for (k=0 ;k26 ; k+) fprintf(wf,%d ,bbk) ; fclose(wf);/*/第3套请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include #define M 81int fun(char *ss, char c) int i=0; for(;*ss!=0;ss+) if(*ss=c) i+; /*求出ss所指字符串中指定字符的个数*/ return i; void main() FILE *wf; char aM, ch; system(CLS); printf(nPlease enter a string: ); gets(a); printf(nPlease enter a char: ); ch=getchar(); printf(nThe number of the char is: %dn, fun(a,ch);/*/ wf=fopen(out.dat,w); fprintf(wf,%d,fun(123412132,1); fclose(wf);/*/第4套请编写一个函数fun,它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 例如,若传给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include#include#include#define M 100void 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中*/ aj+=i; *n=j; /*返回这些数的个数*/ void main() FILE *wf; int aaM,n,k; system(CLS); fun(50,aa,&n); for(k=0;kn;k+) if(k+1)%20=0) /*每行输出20个数*/ printf(%4d,aak); printf(n); else printf(%4d,aak); printf(n);/*/ wf=fopen(out.dat,w); for(k=0;kn;k+) fprintf(wf,%4d,aak); fclose(wf);/*/第5套请编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。 例如,当a=45,b=12,调用该函数后,c=5241。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include void fun(int a ,int b,long *c) *c=a%10*1000+b%10*100+a/10*10+b/10;void main() int a,b; long c; FILE *out; printf(Input a ,b: ); scanf(%d,%d,&a,&b); fun(a,b,&c); printf(The result is :%ldn,c); /*/ out=fopen(out.dat,w); fun(a+11,b+22,&c); fprintf(out,%ldn,c); fclose(out); /*/第6套请编写函数fun,它的功能是计算: s=(ln(1)+ln(2)+ln(3)+ln(m)0.5 在C语言中可调用log(n)函数求ln(n)。 例如,若m的值为20,则fun函数值为6.506583。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include #include double fun(int m) int i; double s=0.0; for(i=1;i=m;i+) s+=log(i); return sqrt(s); void main() FILE *wf; system(CLS); printf(%fn ,fun(20);/*/ wf=fopen(out.dat,w); fprintf(wf,%f,fun(20); fclose(wf);/*/第7套编写函数fun,它的功能是:求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。 例如,n为1000时,函数值应为s=96.979379。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include #includedouble fun(int n) double s=0.0; int i; for(i=0;in;i+) /*从0 n中找到既能被5整除同时又能被11整除的数,并将这些数求和*/ if(i%5=0&i%11=0) s=s+i; s=sqrt(s); /*对s求平方根*/ return s; void main() FILE *wf; system(CLS); printf(s=%fn, fun(1000);/*/ wf=fopen(out.dat,w); fprintf(wf,%f,fun(1000); fclose(wf);/*/第8套请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include#include#includevoid fun(int m, int *k, int xx) int i,j,n=0; for(i=4;im;i+) /*找出大于1小于整数m的非素数*/ for(j=2;ji;j+) if(i%j=0) break; if(ji)xxn+=i; *k=n; /*返回非素数的个数*/ void main() FILE *wf; int m, n, zz100; system(CLS); printf(nPlease enter an integer number between 10 and 100: ); scanf(%d,&n); fun(n,&m,zz); printf(nnThere are %d non-prime numbers less than %d: ,m,n); for(n=0;nm;n+) printf(n %4d,zzn);/*/ wf=fopen(out.dat,w); fun(17,&m,zz); for(n=0;nn。P=m!/(n!(m-n)!),例如,m=12,n=8时,运行结果为495.000000。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include float fun (int m, int n) int i; double p=1.0; for(i=1;i=m;i+) p=p*i; /*求m!*/ for(i=1;i=n;i+) p=p/i; /*求m!/n!*/ for(i=1;i=m-n;i+) p=p/i;/*求m!/(n!(m-n)!)*/ return p; void main () FILE *wf; system(CLS); printf (p=%fn,fun (12,8) ) ;/*/ wf=fopen(out.dat,w); fprintf (wf,%f,fun(12,8); fclose(wf);/*/第10套请编一个函数 float fun(double h),函数的功能是:对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。 例如,若h 值为8.32433,则函数返回8.32;若h值为8.32533,则函数返回8.33。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#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,&a); printf(The original data is : ); printf(%fnn, a); printf(The result : %fn, fun(a);/*/ wf=fopen(out.dat,w); fprintf(wf,%f,fun(8.32533); fclose(wf);/*/第11套请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include#include#include#define M 4#define N 5int fun( int a MN) int i,j,sum=0; for(i=0;iM;i+) for(j=0;jN;j+) if(i=0|i=M-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; iM;i+) for (j=0; jN;j+) printf(%6d ,aaij); printf(n ); y=fun(aa); printf(nThe sun: %dn ,y); printf(n );/*/ wf=fopen(out.dat,w); fprintf (wf,%d,y); fclose(wf);/*/第12套编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0 的一个实根。 xn+1=cos(xn) 迭代步骤如下: (1)取x1初值为0.0; (2)x0=x1,把x1的值赋给x0; (3)x1=cos(x0),求出一个新的xl; (4)若x0-x1,的绝对值小于0.000001,则执行步骤 (5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739085。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include float fun( ) float x1=0.0,x0; /*for(; ;) x0=x1; x1=cos(x0); if(fabs(x0-x1)=1e-6); return x1; main( ) FILE *out; float f=fun(); printf(Root=%fn,f); /*/ out =fopen(out.dat,w); fprintf(out,%f,f); fclose(out); /*/13套假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。 例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是A*BC*DEF*G*。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include void fun (char *a) char *p=a; while(*p=*) p+; /*指针p指向字符串第一个字母*/ for(;*p!=0;p+,a+) *a=*p; /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/ *a=0; /*在字符串最后加上结束标记符*/ void main() FILE *wf; char s81,t81=*A*BC*DEF*G*; printf(Enter a string :n); gets(s); fun(s); printf(The string after deleted:n);puts(s);/*/ wf=fopen(out.dat,w); fun(t); fprintf(wf,%s,t); fclose(wf);/*/14套请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #define N 80int fun(char *str)char *p,*q; p=q=str; while(*q) q+; q=q-1; while(pq) if(*p != *q) return 0;else p+;q-;return 1;/* =int i,n=0,fg=1; char *p=str; while (*p) /*将指针p置位到字符串末尾,并统计字符数*/ n+; p+; for(i=0;in/2;i+) /*循环比较字符*/ if(stri=strn-1-i); /*相同,什么都不作*/ else /*不同,直接跳出循环*/ fg=0; break; return fg; */=main() char sN; FILE *out; char *test=1234321,123421,123321,abcdCBA; int i; printf(Enter a string : ); gets(s); printf(nn); puts(s); if(fun(s)printf(YESn); elseprintf(NOn); /*/ out=fopen(out.dat,w); for(i=0;i4;i+) if(fun(testi)fprintf(out,YESn);elsefprintf(out,NOn); fclose(out); /*/15套请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。 例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include #define N 81void fun(char *s) char ch; int i,m,n; i=0; m=n=strlen(s)-1; while(i(n+1)/2) ch=si; si=sm; sm=ch; i+; m-; main() char aN; 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,w); fprintf(out,%s,a); fclose(out); /*/16套请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。 例如,若输入字符串-1234,则函数把它转换为整数值-1234。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#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; void main() FILE *wf; char s6; long n; printf(Enter a string:n); gets(s); n=fun(s); printf(%ldn,n);/*/ wf=fope

温馨提示

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

评论

0/150

提交评论