c++实例 编写函数int fun(int lim,int aa[MAX])
- 格式:docx
- 大小:12.83 KB
- 文档页数:2
程序设计题汇总一、产生20个[30,120]上的随机整数放入二维数组a[5][4]中, 求其中的最小值。
二、求一个n位自然数的列位数字的积。
(n 是小于10的自然数)3、求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和例如:求前20项之和的值为。
4、依照整型形参m,计算如下公式的值:y=1/2+1/4+1/6+...+1/2m 。
例如:假设m=9,那么应输出:五、输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包括的字母个数。
例如:输入的字符串为ab234$df4,新生成的串为abdf 。
六、将字符串中的小写字母转换为对应的大写字母,其它字符不变。
7、编写函数fun(str,i,n),从字符串str中删除第i个字符开始的持续n个字符(注意:str[0]代表字符串的第一个字符)。
八、求k!(k〈13),所求阶乘的值作为函数值返回。
(要求利用递归)九、编写函数求表达式的和(n的值由主函数输入)。
1-1/2+1/3-1/4+......+1/m例如:当n=20时,表达式的值为。
10、编写main程序挪用函数fact求解从m个元素选n个元素的组合数的个数。
计算公式是:组合数=m!/(n!.(m-n)!)。
要求:m不能小于n,不然应有容错处置。
说明:函数fact(x)的功能是求x!。
1一、求出N×M整型数组的最大元素及其所在的行坐标及列坐标(若是最大元素不唯一,选择位置在最前面的一个)。
1二、编写一个函数,该函数能够统计一个长度为2的字符串在另一个字符串中显现的次数。
13、用函数实现字符串的复制, 不许诺用strcpy()函数。
14、从字符串s中删除指定的字符c。
1五、将字符串中的大写字母转换为对应的小写字母,其它字符不变。
1六、依照整型形参m,计算如下公式的值: y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)例如:假设m=9,那么应输出:17、求出菲波那契数列的前一项与后一项之比的极限的近似值。
1.功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。
注意:n的值不大于1000。
例如:n的值为12时,除了1和12外的因子有2、3、4、6,和为15,应输出15int s=0,i;for(i=2;i<n;i++)if(n%i==0)s=s+i;return s;2.功能:求大于lim(lim小于100的整数)并且小于100的所有素数并放在aa数组中,该函数返回所求出素数的个数。
int n=0;int i,j;for(i=lim;i<=100;i++){for(j=2;j<i;j++)if(i%j==0) break;if(j==i) aa[n++]=i;}return n;3.功能:求1到w之间的奇数之和。
(w是大于等于100小于等于1000的整数)。
long y=0;int i;for(i=1;i<=w;i++)if(i%2==1)y+=i;return y;4.功能:能计算从1开始到n的自然数的和,n由键盘输入,并在main()函数中输出。
请使用for循环实现int sum,i;sum =0;for(i=1;i<=n;i++){sum=sum+i;}return(sum);5.功能:编写程序, 使用循环将矩阵(3行3列)各元素值乘2 。
例如:输入下面的矩阵:100 200 300400 500 600700 800 900程序输出:200 400 600800 1000 12001400 1600 1800int i,j;for(i=0; i < 3; i++)for(j=0; j < 3; j++)array[i][j]=array[i][j]*2;6.功能:把20个随机数存入一个数组,然后输出该数组中的最大值int i,max=0;for(i=1; i <size; i++)if(list[max]<list[i])max=i;return max;7.功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m+1)例如:若m=9,则应输出:2.133256double y=1;int i;for(i=1; i<=m; i++){y+=1.0/(2*i+1); }return(y);8.功能:判断m是否为素数。
1.找出二维数组中最大的数.int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}2. 求出迭代法中的和,精度为epd。
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;3.求出能被整除的个数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;}4.求出字符串中只有字母的字符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';}5.实现两个字符串的连接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';}6.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
1◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】下列给定程序中,函数fun 的功能是计算如下公式。
直到,并且把计算结果作为函数值返回。
例如,若形参e的值为1e-3,则函数返回值为0.551690。
【答案】【1】3.0 【2】> 【3】(t+1) 【改错】下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。
和值通过函数值返回。
例如,若n=5,则应输出8.391667。
【答案】【1】double fun(int n)【2】s=s+(double)a/b;【编程】请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
【答案】int fun (int a[ ][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}2◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】下列给定程序中,函数fun 的功能是:计算如下公式前n项的和并作为函数值返回。
例如,当形参n 的值为10时,函数返回值为9.612558。
【答案】【1】 0【2】 n 【3】 (t*t)【改错】下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。
例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。
【答案】【1】for(i=0;str[i];i++)【2】if(substr[k+1]== ′\0′) 【编程】编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
【答案】Double fun(double eps){double s=1.0,s1=1.0;int n=1;while(s1>=eps){ s1=s1]s=s+s1;n++;}return 2}3◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】给定程序中函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。
一、选择题(共30分,每小题2分)题目1在下面的函数声明语句中,存在着语法错误的是()。
选择一项:a. AA(int a, int b)b. AA(int, int)c. AA(int a; int b)d. AA(int a, int)正确答案是:AA(int a; int b)题目2在下面的保留字中,不能作为函数的返回值类型的是()。
选择一项:a. voidb. intc. enumd. long正确答案是:enum题目3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。
选择一项:a. 1b. 2c. 4d. 8正确答案是:4题目4假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。
选择一项:a. a[i]b. *a++c. *ad. *(a+1)正确答案是:*a++题目5用calloc函数创建具有10个整型元素的一维数组的正确语句是()。
选择一项:a. int *p=calloc(10,2);b. int *p=calloc(10);c. int *p=calloc(10,4);d. int *p=malloc(10)正确答案是:int *p=calloc(10,4);题目6假定变量m定义为“int m=7;”,则下面正确的语句为()。
选择一项:a. int p=&m;b. int *p=&m;c. int &p=*m;d. int *p=m;正确答案是:int *p=&m;题目7假定k是一个double类型的变量,则定义变量p的正确语句为()。
选择一项:a. double p=&k;b. int *p=&k;c. double &p=*k;d. char *p="Thank you!";正确答案是:char *p="Thank you!";题目8若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
函数fun的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。
例如:n=120时,函数值为239。
#include<conio.h>#include<stdio.h>int fun(int n){int_1__,s=0;/*能整除n的自然数即称为因子*/for(i=2;i<n;i++)if(n%i==0)s=___2__;return(s);}main()/*主函数*/{printf("%d\n",fun(120));}(2011年2月)解析:本题的考核点是计算n所有因子的算法。
解题思路:判断因子的方法是:能被n整除的数。
由于题意中指明需将1和n除外,所以循环的范围应从2至n-1。
答案:1:i2:s+i答案:【1】i【2】s+i【真题2】已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。
给定程序modi.c中函数fun的功能是:计算并输出该数列前n项的平方根之和sum。
n的值通过形参传入。
例如,当n=10时,程序的输出结果应为:23.197745。
请改正函数fun中的错误,使程序能输出正确的结果。
注意:不要改动main函数,#include<conio.h>#include<stdio.h>#include<math.h>/************found************/fun(int n){double sum,s0,s1,s2,s;int k;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}/************found************/return sum}main(){int n;clrscr();printf("Input N=");scanf("%d",&n);printf("%f\n",fun(n));}(2011年2月)解析:本题的考核点是C语言中的函数的入口参数和类型转换。
功能:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
int i;floatf1=1,f2=1,f3,s=0;for(i=1;i<=n;i++){f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;}return s;功能:从键盘上输入任意实数x,求出其所对应的函数值。
float z;if(x>4)z=sqrt(x-4);else if(x>-4)z=pow(x,8);else if(x>-10)z=4/(x*(x+1));else z=fabs(x)+20; return(z);功能:对任意输入的x,用下式计算并输出y 的值。
【参考代码】int m;if(n<0)m=-1;elseif(n==0) m=0; else m=1;return m;或int m;if(n>=0)if(n>0)m=1;else m=0;else m=-1;return m; 功能:将字符串中的大写字母转换为对应的小写字母,其它字符不变。
【参考代码】int i;for(i=0;str[i]!='\0';i++)if(str[i]>='A' &&str[i]<='Z')str[i]=str[i]+32;功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。
(【参考代码】int s=0,i;for(i=2;i<n;i++)if(n%i==0)s=s+i;return s;)功能:求1到100之间的偶数之积。
(【参考代码】double y=1;int i;for(i=1;i<=m;i++)if(i%2==0)y*=i;return y;)功能:找出一批正整数中的最大的偶数【参考代码】int i,amax=-1;for(i=0;i<n;i++)if(a[i]%2==0)if (a[i]>amax)amax=a[i];return amax;功能:求一个四位数的各位数字的立方和【参考代码】int d,k,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;功能:计算出k以内最大的10个能被13或17整除的自然数之和。
第四章函数一、单项选择1. 有以下程序,程序运行的输出结果( A )#include <stdio.h>int f(int x);int main(){ int n=1,m;m=f(f(f(n))); printf(“%d\n”,m);return 0 ;}int f(int x){ return x*2;}A.8 B.4 C.1 D.22. 有以下程序,程序执行后变量w中的值是( C )#include<stdio.h>int funl(double a){return a*=a;}int fun2(double x,double y){ double a=0,b=0;a=funl(x);b=funl(y);return (int)(a+b);}int main(){double w;w=fun2(1.1,2.0);……}3. 有以下程序,程序运行后的输出结果是( B )#include <stdio.h>void fun(int p){ int d=2; p=d++; printf(“%d”,p);}int main(){ int a=1;fun(a); printf(“%d\n”,a);return 0;}4. 有以下程序,程序运行后的输出结果是( B )#include<stdio.h>int fun(){ static int x=1;x*=2;return x;}int main(){ int i,s=1;for(i=1;i<=3;i++) s*=fun();printf("%d\n",s);}5. 有以下程序,程序运行后的输出结果是( B ) #include<stdio.h>int fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}int main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));return 0;}6. 有以下程序,程序运行后的输出结果是( D )#include<stdio.h>int f(int x,int y){return ((y-x)*x);}int main(){ int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}7. 有以下程序:程序运行后的输出结果是( A ) #include <stdio.h>int f(){ static int x=1;x+=1; return x;}int main(){ int i,s=1;for(i=1;i<=5;i++) s+=fun();printf("%d\n",s);return 0;}8. 设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是( D )9. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( C )10. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( B )。