最新万维考试系统-C语言题库资料_第1页
最新万维考试系统-C语言题库资料_第2页
最新万维考试系统-C语言题库资料_第3页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

1、第 1 题 (10.0 分) 题号 :390 功能:编写函数求 1100 中奇数的平方和 结果为 166650.000000 。答案: float s=0;int i;for(i=1;i<=n;i=i+2)s=s+i*i;return(s);第 2 题 (10.0 分) 题号 :320功能:在键盘上输入一个 3 行 3 列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积 , 并在 fun() 函数中输出。答案: int sum;int i,j;sum=1;for(i=0;i<3;i+)sum=sum*aii;return sum;第 3 题 (10.0 分) 题号 :32

2、4功能:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输岀。(n是偶数) 答案: int sum,i;sum =0; for(i=2;i<=n;i=i+2) sum=sum+i*i; return(sum);第 4 题 ( 10.0 分) 题号 :345功能:将两个两位数的正整数a、 b 合并形成一个整数放在c中。合并的方式是:将a 数的十位和个位数依次放在c数的千位和十位上,b 数的十位和个位数依次放在c数的个位和百位上。例如:当a= 45, b=12。调用该函数后,c=4251。答案: *c=a/10*1000+a%10*10+b/10+b%10*1

3、00;第 5 题 (10.0 分) 题号 :366 功能:求一组数中大于平均值的数的个数。 例如:给定的一组数为 1,3,6,9,4,23,35,67,12,88 时,函 数值为 3 。答案: int i,k=0;float s=0,ave;for(i=0;i<n;i+)s+=ai;ave=s/n;printf("%f ",ave);for(i=0;i<n;i+) if(ai>ave)k+;return k;第 6 题 (10.0 分) 题号 :355功能:对长度为 8 个字符的字符串,将 8 个字符按降序排列 例如:原来的字符串为 CEAedcab, 排

4、序后输出为 edcbaECA 答案: int i,j;char t;for(i=0;i<num;i+)for(j=i+1;j<num;j+)if(si<sj) t=si;si=sj;sj=t;第 7 题 (10.0 分) 题号 :44 功能:求出二维数组周边元素之和,作为函数值返回 维数组的值在主函数中赋予。答案: int s=0;int i,j;for(i=0;i<M;i+) s=s+ai0+aiN-1;for(j=1;j<N-1;j+)s=s+a0j+aM-1j;return s;第 8 题 (10.0 分) 题号 :339功能:判断整数 x 是否是同构数。若

5、是同构数,函数返回1;否则返回 0。 x 的值由主函数从键盘读入,要求不大 于 100 。说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。例如:输入整数 5,5的平方数是 25,5是 25 中右侧的数,所 以5 是同构数。答案: int k;k=x*x;if(k%10=x)|(k%100=x)return 1;elsereturn 0;第 9 题 (10.0 分) 题号 :383功能:用函数实现字符串的复制 , 不允许用 strcpy() 函数。 答案: int i;for(i=0;str1i!='0'i+) str2i=str1i;str2i='0&

6、#39;第 10 题 ( 10.0 分) 题号 :310功能:计算并输出给定整数 n 的所有因子之和(不包括 1 与 自身)。注意: n 的值不大于 1000 。例如: n 的值为 855 时,应输出 704。答案: int s=0,i;for(i=2;i<n;i+)if(n%i=0)s=s+i;return s;第 11 题 ( 10.0 分) 题号 :354功能:求小于 lim 的所有素数并放在 aa 数组中,该函数返回 所求出素数的个数。答案: int n=0;int i,j;for(i=2;i<=lim;i+) for(j=2;j<i;j+) if(i%j=0) br

7、eak; if(j=i) aan+=i; return n;第 12 题 ( 10.0 分) 题号 :341功能:删除所有值为 y 的元素。数组元素中的值和 y 的值由 主函数通过键盘输入。答案: int i,j;for(i=0;i<*n;)if(bbi=y)for(j=i;j<*n;j+)bbj=bbj+1;*n=*n-1;elsei+;第 13 题 ( 10.0 分) 题号 :317功能:求岀NXM整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。例如:输入的数组为 :1 2 34 15 612 18 910 11 2求岀的最大数为

8、18, 行坐标为 2,列坐标为 1。答案: int max,i,j; max=array 00;Row=0;Col=0;for(i=0;i<N;i+)for(j=0;j<M;j+)if(max<array ij)max=array ij;Row=i;Col=j;return(max);第 14 题 ( 10.0 分) 题号 :392功能:求一批数中最大值和最小值的积。 答案: int i,max,min;max=min=a0;for(i=1;i<n;i+)if(ai>max) max=ai; else if(ai<min) min=ai; return(ma

9、x*min);第 15 题 ( 10.0 分) 题号 :501 题目:从键盘输入一个大写字母,要求改用小写字母输出。 答案: c=c+32;return c;第 16 题 ( 10.0 分) 题号 :502题目:用 while语句求1100的累计和。答案: int i=1,sum=0;while(i<=n)sum=sum+i;i+;return sum;f-32 ),第 17题 (10.0 分) 题号 :409 题目:输入华氏温度求摄氏温度。转换公式为 c=5/9 输出结果取两位小数。答案: float n;n=(5.0/9.0)*(m-32);return n;第 18题 (10.0

10、分) 题号 :29 功能:对任意输入的 x ,用下式计算并输出 y 的值5 x<10y= 0 x=10-5 x>10 答案: int m;if(n<10)m=5;elseif(n=10) m=0;else m=-5; return m; 或int m;if(n>=10)if(n>10)m=-5;else m=0;else m=5; return m;第 19 题 ( 10.0 分) 题号 :382功能:给定 n 个数据 , 求最小值出现的位置(如果最小值 出现多次 , 求出第一次出现的位置即可) 。 答案: int i,k;k=0; for(i=1;i<n;

11、i+) if(si<sk) k=i;return(k);第 20 题 ( 10.0 分) 题号 :367 功能:找出一批正整数中的最大的偶数。 答案: int i,amax=-1;for(i=0;i<n;i+) if(ai%2=0) if (ai>amax) amax=ai; return amax;第 21 题 ( 10.0 分) 题号 :384a54功能:产生 20 个 30,120 上的随机整数放入二维数组 中,求每行元素的和。答案: int i,j;for(i=0;i<5;i+) bi=0;for(j=0;j<4;j+)bi=bi+aij; 第 22 题

12、( 10.0 分) 题号 :334 功能:求给定正整数 n 以内的素数之积 答案: long i,k;long s=1;for(i=2;i<=n;i+)for(k=2;k<i;k+)if(i%k=0)break;if(k=i)s=s*i;return s;第 23 题 ( 10.0 分) 题号 :363 功能:求一个给定字符串中的字母的个数。 答案: int i,k=0;for(i=0;si!='0'i+)if(si>='a'&&si<='z'|si>='A'&&si&

13、lt;='Z') k+;return k;第 24 题 ( 10.0 分) 题号 :361 功能:编写程序 , 求矩阵( 3 行 3列)与 例如:输入下面的矩阵 :100 200 300400 500 600700 800 900 程序输出 :200 400 600800 1000 12001400 1600 1800 答案: int i,j;n<28)2 的乘积for(i=0; i < 3; i+) for(j=0; j < 3; j+)arrayij=arrayij*2;第 25 题 ( 10.0 分) 题号 :400功能:编写 main 程序调用函数 f

14、act 求解从 m 个元素选 n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。要求:m不能小于n,否则应有容错处理。说明:函数 fact(x) 的功能是求 x! 。答案: while(m<n)printf("m 和 n 输入错!请重新输入 :n");scanf("%d%d",&m,&n);zhsgs=fact(m)/(fact(n)*fact(m-n);第 26题 (10.0 分) 题号 :411功能:对任意输入的x ,用下式计算并输出 y 的值-1 x<0y= 0 x=01 x>0 答案:

15、 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;第 27题 (10.0 分) 题号 :509功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1 + 1/3 + 1/5 + 1/7 + 1/(2m+1)例如:若 m=9,则应输岀:2.133256答案: double y=1;int i;for(i=1; i<=m; i+) y+=1.0/(2*i+1); return(y);第 28

16、 题 ( 10.0 分) 题号 :394功能:产生 20 个 30,120 上的随机整数放入二维数组 a54 中 , 求其中的最小值。答案: int i,j,s;s=a00;for(i=0;i<5;i+)for(j=0;j<4;j+)if(s>aij)s=aij;return(s);第 29 题 ( 10.0 分) 题号 :330功能:计算出 k 以内最大的 10 个能被 13 或 17 整除的自然数之 和。( k 3000 )。答案: int a=0,b=0; while(k>=2)&&(b<10) if(k%13=0)|(k%17=0)a=a+

17、k;b+;k-;return a;第 30 题 ( 10.0 分) 题号 :364 功能:求一个四位数的各位数字的立方和 答案: int d,s=0;while (n>0) d=n%10; s+=d*d*d; n/=10; return s;第 31 题 ( 10.0 分) 题号 :348 功能:从低位开始取出长整型变量 s 中偶数位上的数,依次构成一个新数放在 t 中。例如:当 s 中的数为: 7654321 时, t 中的数为: 642。 答案: long sl=10;s /= 10;t = s % 10;while(s > 0) s = s/100;t = s%10*sl +

18、 t;sl = sl * 10;第 32 题 ( 10.0 分) 题号 :313 功能:从键盘为一维整型数组输入 10 个整数,调用 fun 函数 找出其中最小的数,并在 main 函数中输出。答案: int min,i;min=x0;for(i=1;i<n;i+)if(xi<min) min=xi;return min;第 33 题 ( 10.0 分) 题号 :391 功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。答案: int i;for(i=0;stri!='0'i+)if(stri>='a' && st

19、ri<='z') stri=stri-32;第 34 题 ( 10.0 分) 题号 :397功能:编写函数 fun(str,i,n) ,从字符串 str 中删除第 i 个 字符开始的连续 n 个字符(注意 :str0 代表字符串 的第一个字符) 。答案: while(stri+n-1)stri-1=stri+n-1;i+;stri-1='0'第 35 题 ( 10.0 分) 题号 :325 功能:在键盘上输入一个 3 行 3 列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的平方和 , 并在 fun() 函数中输出。答案: int sum;int

20、i;sum=0;for(i=0;i<3;i+)sum=sum+aii*aii;return sum;第 36 题 ( 10.0 分) 题号 :388 功能:编写函数判断一个整数能否同时被3 和 5 整除,若能则返回值为 1 ,否则为 0。调用该函数求出 15300 之间能同时被 3 和 5 整除的数的个数。答案: if(n%3=0&&n%5=0) return(1);return(0);第 37 题 ( 10.0 分) 题号 :399功能:编写程序求无理数 e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+1/n!当 1/n!<0.000001 时

21、 e=2.718282 。答案: long int j;int i,k; double e,jc;i=1;e=0.0;jc=1.0;while(jc>=0.000001)e=e+jc;j=1;for(k=1;k<=i;k+)j=j*k;jc=1.0/j;i+;return e;第 38 题 ( 10.0 分) 题号 :312 功能:调用函数 fun 判断一个三位数是否 " 水仙花数 "。在 main 函数中从键盘输入一个三位数,并输 出判断结果。请编写 fun 函数。说明:所谓 "水仙花数 "是指一 3 位数,其各位数字立方和 等于该数本身。

22、例如: 153 是一个水仙花数,因为 153=1+125+27 。 答案: int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;else return 0;第 39 题 ( 10.0 分) 题号 :335功能:求一个n位自然数的各位数字的积。(n是小于10的自然数)答案: long d,s=1;while (n>0) d=n%10; s*=d;n/=10;return s;第 40 题 ( 10.0 分) 题号 :379功能:给定 n 个数据 , 求最大值出现的位

23、置(如果最大值出 现多次,求出第一次出现的位置即可 ) 。答案: int i,k;k=0;for(i=1;i<=n;i+)if(si>sk) k=i;return(k+1);第 41 题 ( 10.0 分) 题号 :22 功能:从键盘为一维整型数组输入 10 个整数,调用 fun 函数找出其中最小的数,并在 main 函数中输出。 请编写 fun 函数。答案: int min,i; min=x0; for(i=1;i<n;i+) if(xi<min) min=xi; return min;第 42 题 ( 10.0 分) 题号 :381功能:求一批数中小于平均值的数的个

24、数答案: int i,sum=0,k=0;double average;for(i=0;i<n;i+)sum=sum+ai;average=sum*1.0/n;for(i=0;i<n;i+)if(average>ai) k+;return(k);第 43 题 ( 10.0 分) 题号 :352功能:根据整型形参m,计算如下公式的值: y=1/2 + 1/4 +1/6 . 1/2m 。例如:若 m=9,则应输岀:1.414484答案: double y=0;int i;for(i=1; i<=m; i+)y+=1.0/(2*i); return(y);第 44 题 (10

25、.0 分) 题号 :33功能:用do-while 语句求1100的累计和 答案: int i =1, sum =0;do sum = sum + i;i+; while ( i <= n );return sum;第 45 题 ( 10.0 分) 题号 :347功能:把 20 个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在 fun 函数中 实现,请给出该函数的定义。答案: int i,min=0; for(i=1; i <size; i+) if(listmin>listi) min=i; return min;第 46 题 ( 10.0 分)

26、 题号 :343功能:将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。合并的方式是: 将 a 数的十位和个位数依次放 在c数的个位和百位上,b数的十位和个位数依次放 在c数的十位和千位上。例如:当 a=45, b=12, 调用该函数后, c=2514 。答案: *c=a/10+a%10*100+b/10*10+b%10*1000;第 47 题 ( 10.0 分) 题号 :504 功能:编写程序打印如图 1 所示图形。*要求:要求使用 abs() 。答案:for(m=-i;m<=i;m+)for(n=0;n<abs(m);n+) printf(" ")

27、; for(n=0;n<7-2*abs(m);n+) printf("*"); printf("n");第 48 题 ( 10.0 分) 题号 :365 功能:求 1 到 100 之间的偶数之积 答案: double y=1;int i;for(i=1;i<=m;i+)if(i%2=0)y*=i;return y;第 49 题 ( 10.0 分) 题号 :410功能:编写函数 fun 将一个数组中的值按逆序存放,并在 main() 函数中输出。例如:原来存顺序为 8,6,5,4,1 。要求改为: 1,4,5,6,8 答案: int i,t;f

28、or(i=0;i<n/2;i+) t=arri;arri=arrn-1-i; arrn-1-i=t;第 50 题 ( 10.0 分) 题号 :373功能:用函数求 fibonacci 数列前 n 项的和。说明: fibonacci 数列为数列的第一项值为 1 ,第二项值也 为 1 ,从第三项开始,每一项均为其前面相邻两项 的和。例如:当 n=28 时,运行结果: 832039答案: long f,k=f1+f2;int i;for(i=3;i<=28;i+)f=f1+f2;k=k+f;f1=f2;f2=f;return(k);第 51 题 ( 10.0 分) 题号 :378功能:编

29、写函数用冒泡排序法对数组中的数据进行从小到大的排序。 答案: int i,j,t; for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+) if(aj>aj+1) t=aj;aj=aj+1;aj+1=t;第 52 题 ( 10.0 分) 题号 :323功能:求1到w之间的奇数之和。(w是大于等于100小于等 于 1000 的整数)答案: long y=0;int i;for(i=1;i<=w;i+)if(i%2=1)y+=i;return y;第 53 题 ( 10.0 分) 题号 :380 功能:用辗转相除法求两个整数的最大公约数。 答案: int

30、 r,t;if(n<m) t=n;n=m;m=t; r=n%m;while(r!=0) n=m;m=r;r=n%m; return(m);第 54 题 ( 10.0 分) 题号 :503 题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于 80)。答案: int i;for(i=0;ci!='0'i+) if(ci>='A'&&ci<='Z')|(ci>='a'&&ci<='z')a=a+1;else if (ci>='

31、;0'&&ci<='9')num=num+1;else if (ci=' ')b=b+1;elseother=other+1;第 55 题 ( 10.0 分) 题号 :395功能:求 n 阶方阵主、副对角线上的元素之积。答案: int i,j;float t=1;for(i=0;i<N;i+)for(j=0;j<N;j+)if(i=j|i+j=N-1)t=t*arrij;return(t);第 56 题 ( 10.0 分) 题号 :318 功能:输入一个字符串,过滤此串,只保留串中的字母字 符,并统计新生成串中包含的字母

32、个数。例如:输入的字符串为 ab234$df4 ,新生成的串为 abdf 答案: int i,j;for(i=0,j=0;*(ptr+i)!='0'i+) if(*(ptr+i)<='z'&& *(ptr+i)>='a'|*(ptr+i)<='Z' && *(ptr+i)>='A') *(ptr+j)=*(ptr+i);j+; *(ptr+j)='0'return(j);第 57 题 ( 10.0 分) 题号 :311功能:计算 n 门课程的平

33、均值,计算结果作为函数值返回。例如:若有 5 门课程的成绩是: 92,76,69, 58,88, 则函数的值为 76.600000 。答案: int i;float y=0;for(i=0;i<n;i+) y+=ai; y=y/n;return y;第 58 题 ( 10.0 分) 题号 :358功能:根据整型形参m,计算如下公式的值:y=si n( m)*10例如:若 m=9,则应输岀:4.121185答案: double y=0;y=sin(m)*10;return(y);第 59 题 (10.0 分) 题号 :23功能:从键盘输入一个大于 3 的整数,调用函数 fun 判断例如:其

34、是否素数,然后在 main 函数中输岀相应的结论 信息。7 是素数, 8 不是素数。请编写 fun 函数。素数是 仅能被 1 和自身整除的数答案: int i;int j;j= 1; for(i=2;i<n;i+) if(n%i=0) j= 0; return j;第 60 题 (10.0 分) 题号 :349 功能:从低位开始取岀长整型变量 s 奇数位上的数,依次构成一个新数放在 t 中。例如:当 s 中的数为: 7654321 时, t 中的数为: 7531 。 答案: long sl=10;t = s % 10;while(s > 0) s = s/100;t = s%10*

35、sl + t;sl = sl * 10;第 61 题 (10.0 分) 题号 :332功能:根据整型参数n,计算如图公式的值。答案: double a=1;int i;for(i=1;i<n;i+) a=1.0/(1+a);return a;第 62 题 ( 10.0 分) 题号 :327功能:能计算从1开始到n的自然数的和,n由键盘输入,并在 main() 函数中输出。答案: int sum,i;sum =0;for(i=1;i<=n;i+) sum=sum+i; return(sum);第 63题 (10.0 分) 题号 :351功能:请编一个函数 void fun(int t

36、tMN,int ppN)tt 指向一个 M行N列的二维数组,求岀二维数组每列 中最大元素,并依次放入 pp 所指一维数组中。二维 数组中的数已在主函数中赋予。答案: int i,j;for(j=0;j<N;j+)ppj=tt0j;for(i=1;i<M;i+)if(ttij>ppj)ppj=ttij;第 64题 (10.0 分) 题号 :389功能:编写函数求表达式的和( n 的值由主函数输入) 1-1/2+1/3-1/4+1/m例如:当n=20时,表达式的值为 0.668771。答案: float s=0;int i,k=1;for(i=1;i<=n;i+) s=s+

37、k*1.0/i;k=-k;return(s);第 65 题 ( 10.0 分) 题号 :54 功能:求 1 到 100 之间的偶数之积 答案: double y=1;int i;for(i=1;i<=m;i+)if(i%2=0)y*=i;return y;第 66 题 ( 10.0 分) 题号 :353功能:对长度为 7 个字符的字符串,除首、尾字符外,将其 余5 个字符按降序排列。例如:原来的字符串为 CEAedca, 排序后输出为 CedcEAa。 答案: int i,j;char t;for(i=1;i<num-1;i+)for(j=i+1;j<num-1;j+)if(

38、si<sj) t=si;si=sj;sj=t;第 67 题 ( 10.0 分) 题号 :328功能:求 k!( k 13),所求阶乘的值作为函数值返回 (要求使用递归)答案: if (k>0) return(k*fun(k-1);else if(k=0)return 1L;第 68 题 ( 10.0 分) 题号 :346 功能:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用' 结束输入。答案: if (*c= ' ') return 1;elseif(status && *c <= 'z

39、9; && *c >= 'a')*c += 'A' - 'a'return 0; 第 69 题 ( 10.0 分) 题号 :403功能:编写函数 fun ,求任一整数 m 的 n 次方。 答案: long int x=1;int i;for(i=1;i<=n;i+) x=x*m;return x;第 70 题 ( 10.0 分) 题号 :387 功能:求一批数中最大值和最小值的差。 答案: int i,max,min; max=min=a0; for(i=1;i<n;i+) if(ai>max) max=a

40、i; else if(ai<min) min=ai; return(max-min);第 71 题 ( 10.0 分) 题号 :336 功能:从字符串中删除指定的字符。同一字母的大、小写 按不同字符处理。例如:若程序执行时输入字符串为: turbocandborlandc+ 从键盘上输入字符:n,则输岀后变为:turbocadbo rladc+ ,如果输入的字符在字符串中不存在,则字 符串照原样输岀。答案: char *q=s;for(; *q; q+)if(*q != c) *(s+)=*q;*s=0;第 72 题 ( 10.0 分) 题号 :338功能:编写程序,实现矩阵( 3行 3

41、 列)的转置(即行列互换) 例如:输入下面的矩阵:100 200 300400 500 600700 800 900 程序输出:100 400 700200 500 800300 600 900 答案: int i,j,t; for(i=0; i < 3; i+) for(j=0; j < i; j+) t=arrayij; arrayij=arrayji; arrayji=t; 第 73 题 ( 10.0 分) 题号 :42 功能:从字符串 s 中删除指定的字符 c 答案: int i,k=0;for(i=0;si!='0'i+) if(si!=c) sk+=si

42、; sk='0'第 74 题 ( 10.0 分) 题号 :342 功能:在键盘上输入一个 3 行 3 列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在 fun() 函数中输出。答案: int sum;int i,j;sum=0;for(i=0;i<3;i+=2)for(j=0;j<3;j+)sum=sum+aij;return sum;第 75 题 ( 10.0 分) 题号 :359 功能:实现两个整数的交换。例如:给 a 和 b 分别输入: 60 和 65,输入为: a=65 b=60 答案: int t;t=*a;*a=*b;*b=

43、t;第 76 题 ( 10.0 分) 题号 :374 功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。 答案: int k;k=*a;*a=*b;*b=k;第 77 题 ( 10.0 分) 题号 :356功能:求大于 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) aan+=i;return n;第 78

44、 题 ( 10.0 分) 题号 :53 功能:求一个四位数的各位数字的立方和 答案: int d,k,s=0;while (n>0) d=n%10; s+=d*d*d; n/=10; return s;第 79 题 ( 10.0 分) 题号 :322功能:判断一个整数 w的各位数字平方之和能否被5整除,可以被 5 整除则返回 1,否则返回 0。答案: int k,s=0;dos=s+(w%10)*(w%10); w=w/10;while(w!=0);if(s%5=0)k=1;else k=0;return(k);第 80 题 ( 10.0 分) 题号 :326功能:求一个大于 10 的

45、n 位整数的后 n-1 位的数,并作为函 数值返回。答案: int n=0;int i=1; while(w>10) n=n+i*(w%10); w/=10;i*=10; return n;第 81 题 ( 10.0 分) 题号 :321功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2!+1/4!+ +1/m! (m是偶数)答案: double y=0.0;int i,j;double s=1;for (i=2;i<=m;i+=2)for(j=i-1;j<=i;j+)s=s*j;y=y+1.0/s;return y;第 82 题 ( 10.0 分)

46、题号 :337 功能:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将 a 数的十位和个位数依次放 在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a= 45, b=12。调用该函数后,c=2415。答案: *c=a/10*100+a%10+b/10*10+b%10*1000;第 83 题 ( 10.0 分) 题号 :396功能:编写函数 fun 对主程序中用户输入的具有 10个数据的数组 a 按由大到小排序,并在主程序中输出排序结果。答案: int k,j,t;for (k=0;k<n-1;k+) for (j=k+1;j<n;

47、j+) if (arrayk<arrayj) t=arrayk; arrayk=arrayj; arrayj=t;第 84 题 ( 10.0 分) 题号 :407功能:编写函数 fun 求 sum=d+dd+ddd+dd.d(n 个 d), 其中 d 为 1-9 的数字。例如: 3+33+333+3333+33333( 此时 d=3,n=5) , d 和 n 在主函 数中输入。答案: long int s=0,t=0;int i;for(i=1;i<=n;i+) t=t+d;s=s+t;d=d*10;return s;第 85题 (10.0 分) 题号 :50 功能:求出菲波那契数

48、列的前一项与后一项之比的极限的 近似值。例如:当误差为 0.0001 时,函数值为 0.618056 。 答案: float f1=1,f2=1,f3;float r1=2,r2;dor2=r1;r1=f1/f2;f3=f1+f2;f1=f2;f2=f3;while(fabs(r1-r2)>1e-4);return r1;第 86 题 ( 10.0 分) 题号 :372题目:用函数求一个 N 阶方阵右下三角元素的和(包括副 对角线上的元素) 。答案: int i,j,k=0;for(i=0;i<N;i+)for(j=N-1-i;j<N;j+)k=k+aij;return(k)

49、;第 87 题 ( 10.0 分) 题号 :401y 为偶的值,功能:若 x 、 y 为奇数,求 x 到 y 之间的奇数和;若 x 、 数,则求 x 到 y 之间的偶数和。答案: int i,s=0;for(i=x;i<=y;i+=2) s=s+i;return s;第 88 题 ( 10.0 分) 题号 :398功能:编写函数fun求s=1Ak+2Ak +3Ak +NAk(1的K次方到N的K次方的累加和)。答案: long power,sum=0;int i,j; for(i=1;i<=n;i+) power=i; for(j=1;j<k;j+) power *= i; s

50、um += power;return sum;第 89 题 ( 10.0 分) 题号 :315 功能:将主函数中输入的字符串反序存放。 例如:输入字符串“ abcdefg ”,则应输出“ gfedcba ”。 答案: int i,j; char c; for(i=0,j=n-1;i<j;i+,j-)/*或者 for(i=0,j=n-1;i<n/2;i+,j-)*/c=*(str+i);*(str+i)=*(str+j);*(str+j)=c;第 90 题 ( 10.0 分) 题号 :329 功能:对某一正数的值保留 2 位小数,并对第三位进行四舍 五入。答案: int i;i=(i

51、nt)(h*1000)%10;if(i>=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;第 91 题 ( 10.0 分) 题号 :333 功能:计算并输出给定整数的所有因子之积(包括自身)规定这个整数的值不大于 50。 答案: long s=1,i;for(i=2;i<=n;i+)if(n%i=0)s=s*i;return s;第 92 题 ( 10.0 分) 题号 :62功能:求 5 行 5 列矩阵的主、副对角线上元素之和。注意, 两条对角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为 45

52、。 答案: int s=0;int i,j;for(i=0;i<M;i+)s=s+aii+aiM-1-i; s=s-a(M-1)/2(M-1)/2; return s;第 93 题 ( 10.0 分) 题号 :375 功能:从键盘上输入任意实数 , 求出其所对应的函数值。z=e 的 x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/(cos(x)+4) 答案: double z;if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z)

53、;第 94 题 ( 10.0 分) 题号 :452 功能:有一个一维数组 score ,内放 10 个学生的成绩,用一 个函数来求平均成绩。例如:如果 10 个学生的成绩分别为 92, 87,68,56, 92,84, 70 , 65,90,60 则平均成绩为: 76.400000答案: int i;float aver,sum=array0; for(i=1;i<10;i+) sum=sum+arrayi;aver=sum/10;return aver;第 95 题 ( 10.0 分) 题号 :377 功能:编写函数用选择排序法对数组中的数据进行从小到 大的排序。答案: int i,j

54、,k,t;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+) if(ak>aj) k=j;if(k!=i)t=ai; ai=ak; ak=t;第 96 题 ( 10.0 分) 题号 :357功能:根据整型形参m,计算如下公式的值:y=1/5+1/6 1/7 1/8 1/9+1/10.例如:若 m=9,则应输岀:1.168229 答案: double y=0;int i;for(i=0; i<=m; i+) y+=1.0/(i+5); return(y);第 97题 (10.0 分) 题号 :56 功能:找岀一批正整数中的最大的偶数。 答案: int i,amax=-1;for(i=0;i<n;i+) if(ai%2=0) if (ai>amax) amax=ai; return amax;第 98 题 (10.0 分) 题号 :319 功能:判断 m是否为素数。 答案: int i,k=1;if(m<=1) k=0;for(i=2;i<m;i+)if(m%i=0) k=0;return k;第 99 题 (10.0 分) 题号 :368 功能:求一分数序列 2/1 , 3/2 , 5/3 , 8/5 , 的前 n 项之和。 1/(m+5)13/8 , 21/13 分数

温馨提示

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

评论

0/150

提交评论