请编写一个函数fun
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
1.请编写一个函数fun,其功能是:删除字符串中的数字字符。
例如,输入字符串为:48CTYP9R6,则输出:CTYPR。
部分源程序已经给出,请勿改动主函数的内容。
main(){ char item[100];gtes(item);fun(item);printf(“The string:%s\n”,item);}解答:#include<stdio.h>#include<string.h>void fun(char s[]){int i,j;for(i=j=0;s[i]!='\0';i++)if(s[i]>='0' && s[i]<='9') i++;elses[j++]=s[i]; s[j]='\0';}main(){ char item[100];gets(item);fun(item);printf("The string:%s\n",item); }2. 从键盘上读入一字符串存入字符数组xx中,请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应位置上,最后调用函数WriteDat()将结果xx输出。
替代关系如下:f(p)=p*11%256其中,p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于32,则该字符不变,否则用f(p)所对应的字符进行替代。
设字符串的长度小于80个字符,部分源程序已给出。
除增加必要的数据定义、函数参数外,请勿改动主函数的内容。
#include <stdio.h>main(){ char xx[80];gets(xx);encryptChar();WriteDat();}解答:#include<stdio.h>#include<string.h>void encryptChar(char a[]) {int i,j;for(i=j=0;a[i]!='\0';i++) if(a[i]%2==0 ||(a[i]*11%256<32))a[j++]=a[i];elsea[j++]=a[i]*11%256; } WriteDat(char a[]) {puts(a);}main(){ char xx[80];gets(xx);encryptChar(xx); WriteDat(xx);} _3. 设有数组:int a[10]={6012,5099,9012,7025,8088,9096,8080,3046,5082,2345};请编制函数jssort(),其功能是:要求按每个数的后三位的大小进行升序排序,然后调用函数WriteDat()将结果输出。
1. 请编写一个函数fun ,它的功能是:根据以下公式求∏的值(要求满足精度0.0005,即 某项小于O .0005时停止迭代):程序运行后,如果输入精度O .0005,则程序输出为3.14…。
)12(...753...321 (97534)32175332153213112+⨯⨯⨯⨯⨯⨯⨯⨯++⨯⨯⨯⨯⨯⨯+⨯⨯⨯⨯+⨯⨯++=n nπ#include <stdio.h>#include <math.h>double fun ( double eps){}main( ){ double x;printf("Input eps:") ;scanf("%lf",&x);printf("\neps = %lf, PI=%lf\n", x, fun(x));}2.请编写一个函数fun ,它的功能是:计算并输出给定整数n 的所有因子(不包括l 与自身)之和。
规定n 的值不大于1000。
例如,若主函数从键盘给n 输入的值为856,则输出为sum=763。
#include <stdio.h>int fun(int n){ }main(){ int n,sum;printf("input n: ");scanf("%d",&n);sum=fun(n);printf("sum=%d\n",sum);}3.请编写函数fun ,其功能是:计算并输出下列多项式值:)21121(...)4131()211(nn S n --++-+-= 例如,若主函数从键盘给n 输入8后,则输出为S=O .662872。
注意:n 的值要求大于l 但不大于100。
部分源程序给出如下。
#include <stdio.h>double fun(int n){ }main(){ int n; double s;printf("\ninput n: ");scanf("%d",&n);s=fun(n);printf("\ns=%f\n",s);}4.请编写函数fun ,它的功能是计算下列级数和,和值由函数值返回。
1.1题目:请编写函数fun,该函数的功能是: 将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如: 若字符串数组中的M个字符串为{AAAA",“BBBBBB","CC"则合并后的字符串内容应该是“AAABBBBBBCC"注意: 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语可。
int i,j, k=0;for (i=0;i<M;i++)for (j=0;a[i][j]!=’\0’;j++)b[k++]=a[i][j];b[k]=’\0’;1.2题目:题目: 请编写fun函数程序,从键盘输入某一年,判断该年是否为闰年。
闰年的条件是: (1) 能被4整除但不能被100整除。
(2) 能被400整除。
符合任何一个条件就是闰年。
输入年份为整型if ((year%4==0&&year%100!=0)||year%400==0)return 1;elsereturn 0;1.3题目:(待议)题目: 编写函数fun; 其功能是: 根据以下公式求的值,结果由函数值带回。
m与n为两个正整数且要求m>n.如“样张”。
P=m!/n!(m-n)!)例如: m=12,n=8时,运行结果为495 000000注意请勿改动主函数main和其他函数中的任何内容。
仅在函数fun的花括号中填入你编写的若干语句。
(参考百度)float p ;p=1.0*jc(m)/jc(n)/jc(m-n);return p;2.1功能: 对长度为8个字符的字符串,将8个字符按降序排列。
例如: 原来的字符串为CEAedcab,排序后输出为edcbaECAint i,j;char t;for(i=0;i<mum; i++)for (j=i+1;j<num;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}2.2编写程序,实现矩阵(3 行、3 列)的转置(即行列互换)。
1、程序填空题目:请编写函数void fun (int x, int pp[ ], int *n),它的功能是求出能整除x 且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如:若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
#include <stdio.h>#include <conio.h>void fun(int x, int pp[], int *n){ int i,j=0;for( i=1;i<=x; i=i+2)if(x%i == 0)pp[j++]=i;*n=j;}void main(){ int x, aa[1000], n, i;printf("\nplease enter an integer number:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;i<n;i++)printf("%d ", aa[i]);printf("\n");}2、程序填空题目:请编写一个函数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<stdio.h>#include<conio.h>void fun(char *tt,int pp[]){ int i;for(i=0; i<26; i++)pp[i]=0;for( ; *tt; tt++)if(*tt<='z'&&*tt>='a')pp[*tt-97]++;}void main(){ char aa[1000];int bb[26],k;printf("\nPlease enter a char string:");scanf("%s",aa);fun(aa,bb);for(k=0; k<26; k++) printf("%d",bb[k]);printf("\n");}3、程序填空题目:请编写一函数void fun(int m, int k, int xx[ ]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。
3月全国计算机等级考试二级C语言上机题库(20~30套)3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。
第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。
ss所指字符串数组中共有N个字符串,且串小于M。
第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。
例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。
/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。
请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
函数fun中给出的语句仅供参考。
void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。
例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。
1、请编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。
例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。
注意:部分源程序存在考生文件夹下的文件prog.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <string.h>#include <conio.h>#include <stdio.h>#define N 81fun(char *s){int i, j;char t;for (i=0,j=strlen(s)-1; i<j; i++,j--){ t=s[i]; s[i]=s[j]; s[j]=t; }}main(){ char a[N];printf("Enter a string: ");gets(a);printf("The original string is: ");puts(a);fun(a);printf("\n");printf("The string after modified: ");puts(a);}2、请编一个函数fun(char *s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到最后。
例如:原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为:n.123xyZM。
注意:部分源程序存在考生文件夹下的文件prog16.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <conio.h>#include <stdio.h>#include <stdlib.h>#define N 81fun(char *s){int i;char t=s[0];for (i=0; s[i]!='\0'; i++)s[i]=s[i+1];s[--i]=t;}main(){ char a[N];system("cls");printf("Enter a string: ");gets(a);fun(a);printf("The string after modified: ");puts(a);}3、请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
一、编程题:1、程序定义了N×N的二维数组,并在主函数中自动赋值。
请编写函数fun(int a[][N]),函数的功能是:使数组右上半三角元素中的值乘以m。
例如:若m的值为2,a数组中的值为|1 9 7|a= |2 3 8|,则返回主程序后a数组中的值应为|4 5 6||2 18 14||2 6 16||4 5 12|注意:部分源程序存在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>#include <conio.h>#include <stdlib.h>#define N 5void fun(int a[][N],int m){int i,j ;for(i=0;i<N;i++)for(j=0;j<N;j++)if(j>=i)a[i][j]=a[i][j]*m;}main( ){ int a[N][N],m,i,j;printf("***** The array *****\n");for (i=0;i<N;i++){ for (j=0;j<N;j++){ a[i][j]=rand()%20;printf("%4d",a[i][j]);}printf("\n");}do m=rand()%10;while (m>=3);printf("m=%4d\n",m);fun(a,m);printf("THE RESULT\n");for(i=0;i<N;i++){ for (j=0;j<N;j++) printf("%4d",a[i][j]);printf("\n");}}2、程序定义了N×N的二维数组,并在主函数中自动赋值。
C语言编程(函数)100道题C10027 1、编写函数fun, 函数的功能是:根据以下公式计算 s,计算结果作为函数值返回;n 通过形参传入。
S = 1 + 1/ (1+2) + 1/ (1+2+3) + …… + 1/ (1+2+3+……+n) float fun ( int n ){ int i ;float s = 0.0 , t = 0.0 ;for ( i = 1 ; i <= n ; i++ ) { t += i ; s += 1 / t ; }return s ;}2、编写函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。
m 与 n 为两个正整数且要求 m > n。
m!P = ?????n!(m-n)!float fun ( int m , int n ){ int i ;float p , t ;for ( t = 1.0 , i = 1 ; i <= m ; i++ ) t *= i ;p = t ;for ( t = 1.0 , i = 1 ; i <= n ; i++ ) t *= i ;p = p / t ;for ( t = 1.0 , i = 1 ; i <= m – n ; i++ ) t *= i ;p = p / t ;return p ;}3、请编写一个函数fun, 它的功能是:根据以下公式求л 的值,(要求满足精度 0.0005,即某项小于 0.0005 时停止迭代):π 1 1×2 1×2×3 1×2×3×4 1×2×…×n? = 1 + ? + ?? + ???? + ????? + …… + ????????2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1) double fun ( double eps ){ int n = 0 ;double t = 1.0 , pi = 0.0 ;while ( t >= eps ){ pi += t ; n++ ; t *= ( double ) n / (2 * n + 1) ; }return pi * 2 ;}4、请编写函数fun, 其功能是:计算并输出下列多项式值:1 1 1 1s = 1 + ?? + ?? + ?? + …… + ??1! 2! 3! n!1double fun ( int n ){ int i ;double t = 1.0 , sn = 1.0 ;for ( i = 1 ; i <= n ; i++ ){ t *= i ; sn += 1 / t ; }return sn ;}5、请编写函数fun,它的功能是:计算并输出下列级数和:1 1 1s = ??? + ??? + …… + ?????1×2 2×3 n×(n+1) double fun ( int n ){ int i ;double s = 0.0 ;for ( i = 1 ; i <= n ; i++ ) s += 1.0 / i / ( i + 1 ) ;return s ;}6、请编写函数fun, 其功能是:计算并输出当 x < 0.97 时下列多项式的值,直到?Sn-(Sn-1)?< 0.000001 为止。
65-3请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。
fun (int a[][M]){int max=a[0][0],i,j;for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}26-3请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。
double fun(int n){inti,j;double s=0;for(i=3;i<=n;i++)//产生3-n之间的所有数{ for(j=2;j<i;j++)//判断i是否为素数if(i%j==0) break;if(i==j) s+=sqrt(i);//为素数时,对其开平方求和}return s;}30-3int fun(intlim,int aa[MAX]){inti,c=0,j;for(i=2;i<=lim;i++){ for(j=2;j<i;j++)if(i%j==0) break;if(i==j) aa[c++]=i;} return c; }36-3请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。
void fun(intm,int *k,int xx[]) {inti,c=0,j;for(i=2;i<=m;i++) { for(j=2;j<i;j++)if(i%j==0) break;if(i>j) xx[c++]=i;}*k=c;}2-3请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):double fun ( double eps){double s=1,t,fz,fm;inti;fz=fm=1; for(i=1;fz/fm>=eps;i++){fz=fz*i;fm=fm*(2*i+1);t=(double)fz/fm;s+=t;}return 2*s;}47-3编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
类型一数列规律编程1、编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)例如:若n的值为11时,函数的值为1.833333。
#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <string.h>float fun(int n){}void main(){int n;float s;system("CLS");printf("\nPlease enter N: ");scanf("%d",&n);s=fun(n);printf("The result is:%f\n " , s);}【参考答案】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;}【解析】本题中s1用来表示式中每一项的分母,而每一项的分母都是由前一项分母加项数。
注意:由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。
2、请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.005,即某项小于0.005时停止迭代)。
π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1)) 程序运行后,如果输入精度0.0005,则程序输出3.14…。
#include <stdio.h>#include <conio.h>#include <math.h>double fun(double eps){}void main(){double x;printf("Input eps: ");scanf("%lf",&x);printf("\neps=%1f,PI=%1f\n",x,fun(x));}【参考答案】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;}【解析】从第2项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s来表示求和后的结果。
试题1 请编写一个函数fun,它的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c 数的千位和十位上,b数的十位和个位数分别放在c数的个位和百位上。
例如;当a=45,b=12,调用该函数后c=4251。
函数形式void fun(int a,int b,long *c)。
并写主函数验证,a,b两数从键盘输入。
#include <stdio.h>
void fun(int a,int b,long *c){
}
void main()
{
int a,b;
long c;
printf(“Input a,b:”);
scanf(“%d%d”,&a,&b);
此处函数调用,请填空;
printf(“The result is:%d”,c);
}
试题2 编写函数int f(int lim,int aa[ ]),该函数的功能是求出小于或等于1im的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
并写主函数验证。
#include <stdio.h>
#define MAX 100
int f(int lim,int aa[]){
}
void main()
{
int limit,i,sum;
int aa[MAX];
printf(“输入一个整数”);
scanf(“%d”,&limit);
此处函数调用,请填空,用sum保存函数调用返回的结果;
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)
printf(“\n”);
printf(“%5d”,aa[i]);
}
}
试题3 请编写一个函数long convert(char *p),它的功能是:将一个数字字符串转换为一个整数。
并写主函数验证。
例如,若输入字符串“—1234”,则函数把它转换为整数值—1234。
#include <stdio.h>
#include <string.h>
long convert(char *p)
{
}
void main()
{
char s[6];
long n;
printf(“Enter a string:\n”);
gets(s);
此处函数调用,请填空,用sum保存函数调用返回的结果;
printf(“%ld\n”,n);
}。