分享
分销 收藏 举报 申诉 / 30
播放页_导航下方通栏广告

类型机试练习4(3140套含答案).doc

  • 上传人:精****
  • 文档编号:10697474
  • 上传时间:2025-06-10
  • 格式:DOC
  • 页数:30
  • 大小:135.01KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    练习 3140 答案
    资源描述:
    第三十一套 请补充main函数,该函数的功能是:求n!。 例如,7!=5040。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdlib.h> #include <stdio.h> #include <conio.h> void main() { int I,n; long f=1; system("CLS"); printf("Input n: "); scanf("%d",【1】); for(【2】;I<=n;I++) 【3】; printf("%d!=%ld\n",n,f); } 【参考答案】 (1) &n (2) i=1或i=2 (3) f*=i 下列给定程序中,函数fun的功能是:求表达式s=aa…aa-…-aa-aa-a(此处aa…aa表示n个a,a和n的值在1至9之间)的值。例如a=3,n=6,则以上表达式为: s=333333-33333-3333-333-33-3 其值是296298。a和n是函数fun的形参,表达式的值作为函数值传回main函数。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <stdio.h> long fun(int a,int n) { int j; /*************found**************/ long s=0,t=1; /*************found**************/ for(j=0;j<=n;j++) t=t*10+a; s=t; for(j=1;j<n;j++) { /*************found**************/ t=t%10; s=s-t; } return(s); } main() { int a,n; printf("\nPlease enter a and n: "); scanf("%d%d",&a,&n); printf("\nThe value of function is %ld\n", fun(a,n)); } 【参考答案】 (1)错误:long s=0,t=1; 正确:long s=0, t=0; (2)错误:for (j=0;j<=n;j++) 正确:for (j=0;j<n;j++) (3)错误:t=t%10; 正确:t=t/10; 请编写函数fun,其功能是计算并输出如下多项式的值: Sn=l+1/1!+1/2!+1/3!+1/4!+…+1/n! 例如,若主函数从键盘给n输入15,则输出为S=2.718282。 注意:n的值要求大于1但不大于100。部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> double fun(int n) { } void main() { int n; double s; FILE *out; printf("\nInput n: "); scanf("%d",&n); s=fun(n); printf("s=%f\n",s); /******************************/ out=fopen("out.dat","w"); fprintf(out,"%f\n",fun(n)); fclose(out); /******************************/ } 【参考答案】 double fun(int n) { double t,sn=1.0; int i,j; for(i=1;i<=n;i++) { t=1.0; for(j=1;j<=i;j++) t*=j; sn+=1.0/t; } return sn; } 第三十二套 请补允函数fun,该函数的功能是:计算并输出下列多项式的值。 例如,若主函数从键盘给n输入50后,则输出为S=1.960784。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填若干表达式或语句。 试题程序: #include <stdio.h> 【1】 fun(int n) { int i,j; double sum=0.0,t; for(i=1;i<=n;i++) { t=0.0; for(j=1;j<=i;j++) t+=【2】; sum+=【3】; } return sum; } void main() { int n; double s; printf("\nInput n: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n\n",s); } 【参考答案】 (1) double (2) j (3)1.0/t或(double)1/t 下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值。 例如,若m的值为5,则应输出:1.463611。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <stdio.h> double fun (int m) { double y=1.0; int i; /*************found**************/ for(i=2;i<m;i++) /*************found**************/ y+=1/(i*i); return (y); } void main() { int n=5; system("CLS"); printf("\nThe result is %1f\n",fun(n)); } 【参考答案】 (1)错误:for (i=2;i<m;i++) 正确:for(i=2;i<=m;i++) (2)错误:y+=1/(i*i) ; 正确:y+=1.0/(i*i) ; 请编写函数fun,该函数的功能是:计算并输出 S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5) 例如,若主函数从键盘给n输入20后,则输出为S=534.188884。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<math.h> #include<stdio.h> double fun(int n) { } void main() { FILE *wf; int n; double s; printf("\n\nInput n: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n\n",s); /******************************/ wf=fopen("out.dat","w"); fprintf(wf,"%f",fun(20)); fclose(wf); /*****************************/ } 【参考答案】 double fun(int n) { int i; double s=0.0,s1=0.0; for(i=1;i<=n;i++) { s1=s1+pow(i,0.5); /*求每一项*/ s=s+s1; /*按公式求出s*/ } return s; } 第三十三套 程序的功能是计算。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> long fun(int n) { int I; long s; s=【1】; for(I=1;I<=n;I++) s=【2】; return s; } void main() { long s; int k,n; scanf("%d",&n); s=【3】; for(k=0;k<=n;k++) s=【4】; printf("%ld\n",s); } 【参考答案】 (1) 1 (2) s*i或i*s (3) 0 (4) s+fun(k) 数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功能是:计算前项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。符合此条件的累加值应为42,126,366,570,1010。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> #define N 20 int fun(int n, int *a) /*************found**************/ { int I,j,k,sum; sum=0; for(k=3,I=0;I<n;I++,k+=5) { sum=sum+k; /*************found**************/ if(sum%4=2) a[j++]=sum; } /*************found**************/ return j; } void main() {int a[N],d,n,i; printf("\nEnter n(4<=n<=50): "); scanf("%d",&n); d=fun(n,a); printf("\n\nThe result :\n "); for(i=0;i<d;i++) printf("%6d ",a[i]); printf("\n\n "); } 【参考答案】 (1)错误:int i,j,k,sum; 正确:int i,j=0,k,sum; (2)错误:if(sum%4=2) 正确:if(sum%4==2) (3)错误:return j; 正确:return j++; 请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。 例如,若主函数从键盘给n输入的值为856,则输出m为sum=763。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> int fun(int n) { } void main() { int n,sum; FILE *out; printf("Input n:"); scanf("%d", &n); sum=fun(n); printf("sum=%d\n", sum); /******************************/ out=fopen("out.dat","w"); fprintf(out,"%d\n",fun(123)); fprintf(out,"%d\n",fun(456)); fprintf(out,"%d\n",fun(789)); fprintf(out,"%d\n",fun(147)); fprintf(out,"%d",fun(258)); fclose(out); /******************************/ } 【参考答案】 int fun(int n) { int s=0,i; for(i=2;i<=n-1;i++) /*将n减1累加*/ if(n%i==0) s+=i; return s; } 第三十四套 请补充main函数,该函数的功能是:求1+2!+3!+…+N!的和。 例如,1+2!+3!+…+5!+6!的和为873。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdlib.h> #include <stdio.h> void main() { int I, n; long s=0, t=1; system("CLS"); printf("\nInput n:\n"); scanf("%d",【1】); for(I=1;I<=n;I++) { t=【2】; s=【3】; } printf("1!+2!+3!...+%d!=%ld\n",n,s); } 【参考答案】 (1) &n (2) t*i (3) s+t 下列给定程序中,函数fun的功能是:求S的值。设 S=(22/(1*3))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2k-1)*(2k+1)) 例如,当k为10时,函数的值应为1.533852。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <math.h> /*************found**************/ fun(int k) { int n; float s, w, p, q; n=1; s=1.0; while(n<=k) { w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n++; } /*************found**************/ return s } void main() { system("CLS"); printf("%f\n ",fun(10)); } 【参考答案】 (1)错误:fun(int k) 正确:double fun(int k) (2)错误:return s 正确:return s; 请编写函数fun,它的功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。 例如,若主函数从键盘给n输入20后,则输出为s= 0.583333。 注意:n的值要求不大于100。部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> double fun(int n) { } main() { int n; double s; FILE *out; printf("\nInput n:"); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); /******************************/ out=fopen("out.dat","w"); fprintf(out,"%f\n",fun(30)); fclose(out); /******************************/ } 【参考答案】 double fun(int n) { int i; double sum=0.0; for(i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i; return sum; } 第三十五套 给定程序的功能是:计算并输出下列级数的前N项之和SN,直到SN大于q为止,q的值通过形参传入。 例如,若q的值为50.0,则函数值为50.416687。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> double fun(double q) { int n; double s,t; n=2; s=2.0; while(s【1】q) { s=s+(double)(n+1)/n; 【2】; } printf("n=%d\n ",n); 【3】; } void main() { printf("%f\n ",fun(50)); } 【参考答案】 (1)<= (2)n++或n+=1或n=n+1 (3)return s 或 return(s) 下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdlib.h> #include <conio.h> #include <stdio.h> int fun(float x[], int n) /*************found**************/ int j, c=0; float xa=0.0; for (j=0; j<n; j++) xa+=x[j]/n; printf("ave=%f\n",xa); for (j=0; j<n;j++) if(x[j]>=xa) c++; return c; } void main() { float x[100]={ 193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763}; system("CLS"); printf("%d\n",fun (x,8)); } 【参考答案】 (1)错误:缺{ 正确:加{ 请编写函数fun,它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> #include <stdlib.h> void fun(int *a,int *n) { } void main( ) { FILE *wf; int aa[1000], n, k; system("CLS"); fun(aa,&n); for(k=0;k<n;k++) if((k+1)%10==0) { printf("%5d ",aa[k]); printf("\n"); /*一行写10个数*/ } else printf("%5d ",aa[k]); /******************************/ wf=fopen("out.dat","w"); for(k=0;k<n;k++) if((k+1)%10==0) { fprintf(wf,"%5d ",aa[k]); fprintf(wf,"\n"); /*一行写10个数*/ } else fprintf(wf,"%5d ",aa[k]); fclose(wf); /*****************************/ } 【参考答案】 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; /*传回满足条件的数的个数*/ } 第三十六套 请在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输出n对应的斐波拉契数列。斐波拉契数列是一整数数列,该数列自第三项开始,每数等于前面两数之和,即0,1,1,2,3,5,8,13,21,34,55,… 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> int fun(int n); void main() { int i,n=0; scanf("%d",&n); for(i=0;i<n;i++) printf("%d ",fun(i)); } int fun(int n) { if(【1】) return 0; else if(【2】) return 1; else return 【3】 ; } 【参考答案】 (1) n==0 (2) n==1 (3) fun(n-1)+fun(n-2) 下列给定程序中,函数fun的功能是:根据整型形参n,计算如下公式的值。 A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=1/(1+A (n-1)) 例如,若n=10,则应输出0.617977。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdlib.h> #include <conio.h> #include <stdio.h> /*************found**************/ int fun(int n) { float A=1;int I; /*************found**************/ for(I=2;I<n;I++) A=1.0/(1+A); return A; } void main() { int n; system("CLS"); printf("\nPlease enter n: "); scanf("%d",&n); printf("A%d=%lf\n",n,fun(n)); } 【参考答案】 (1)错误:int fun(int n) 正确:float fun(int n) (2)错误:for(i=2;i<n;i++) 正确:for(i=2;i<=n;i++) 请编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位依次放在c数的个位和百位上。 例如,当a=45,b=12,调用该函数后,c=4251。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> #include <conio.h> void fun(int a ,int b,long *c) { } 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 :%1d\n",c); /******************************/ out=fopen("out.dat","w"); fun(44,55,&c); fprintf(out,"%1d\n",c); fclose(out); /******************************/ } 【参考答案】 void fun(int a,int b,long *c) { *c=(a/10)*1000+(b%10)*100+(a%10)*10+b/10; } 第三十七套 请补充函数fun,该函数的功能是:把从键盘输入的3个整数按从小到大输出。 例如,输入"33 78 25",结果输出"25 33 78"。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdlib.h> #include <stdio.h> #include <conio.h> void main() { int x,y,z,t; system("CLS"); printf("Input x,y,z\n"); scanf("%d%d%d",&x,&y,&z); if(【1】) { t=x; x=y; y=t; }/*交换x,y的值*/ if(【2】) { t=z; z=x; x=t; }/*交换x,z的值*/ if(【3】) { t=y; y=z; z=t; }/*交换z,y的值*/ printf("******the result*******\n"); printf("from small to big:%d %d %d\n",x,y,z); } 【参考答案】 (1) x>y (2) x>z (3) y>z 下列给定程序中,函数fun的功能是:找出100到n(不大于1000)之间三个位上的数字都相等的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> #define N 100
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:机试练习4(3140套含答案).doc
    链接地址:https://www.zixin.com.cn/doc/10697474.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork