




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言机试模拟试题一、改错题:(30分)1、求一维数组a中的值为偶数的元素之和。#include<stdio.h>sum(intarr[],intn){inti,s;s=0;for(i=0;i<n;i++)if(arr[i]%2==0)/************found************/s=s+i;改为:s=s+arr[i];return(s);}voidmain(){inta[10]={10,4,2,7,3,12,5,34,5,9},i,s;/************found************/s=sum(a,2);改为:s=sum(a,10);printf("Theresultis:%d\n",s);}2、求一维数组a中的值为奇数的元素之和。#include<conio.h>#include<stdio.h>intsum(intb[],intn){inti,s=0;for(i=0;i<n;i++)if(b[i]%2==1)/************found************/s=s+b[i]改为:s=s+b[i];return(s);}voidmain(){inta[12]={10,4,2,7,3,12,5,34,5,9,21,19},n;/************found************/n=sum(a,2);改为:n=sum(a,12);printf("Theresultis:%d\n",n);}3、求二维数组a中的最大值和最小值。#include<stdio.h>voidmain(){inta[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;//clrscr();max=min=a[0][0];for(i=0;i<3;i++)/************found************/for(j=1;j<3;j++)改为:for(j=0;j<3;j++){if(max<a[i][j])max=a[i][j];/************found************/if(min<a[i][j])改为:if(min>a[i][j])min=a[i][j];}printf("Themaxis:%d\n",max);printf("Theminis:%d\n",min);}4、求一维数组a中的最大元素及其下标。#include<stdio.h>voidmain(){inta[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;//clrscr();max=a[0];pos=0;for(i=1;i<10;i++)/************found************/if(max>a[i])改为:if(max<a[i]){max=a[i];/************found************/i=pos;改为:pos=i;}printf("Themaxis:%d,posis:%d\n",max,pos);}5、猴子吃桃的问题,求第一天的桃子数。#include<stdlib.h>#include<math.h>voidmain(){inti,j,x,p;//clrscr();x=1;/************found************/j=12;改为:j=11;while(j>=1){p=(x+1)*2;/************found************/p=x;改为:x=p;j--;}printf("totalis%d\n",p);6、求一维数组a中的值为奇数的元素的平均值。#include<stdio.h>doubleaverage(intarr[],intn){intk=0,i;doubles;s=0;for(i=0;i<n;i++)/************found************/if(arr[i]%2=1)改为:if(arr[i]%2==1){s=s+arr[i];k++;}return(s/k);}voidmain(){inta[12]={10,4,2,7,3,12,5,34,5,9,21,18};doubles;//clrscr();/************found************/s=average(a[12],12);改为:s=average(a,12);printf("Theresultis:%.2f\n",s);}二、填空题:(30分)1、求一维数组a中的素数的个数:2、程序的功能是:在第一个循环中从键盘上给a数组的前M(M<100)个数组元素依次赋值,在第二个循环中使a数组前M个元素中的值对称折叠,在最后一个循环中输出折叠后的a数组的前M个元素。程序如下:#defineM5voidmain(){inti,a[100],t;//clrscr();for(i=0;i<M;i++)/**************found************/(1)___-填写的语句为:scanf(“%d”:,&a[i]);/**************found************/for(i=0;—⑵—;i++)-填写的语句为:i<M/2a[M-i-1]=a[i];for(i=0;i<M;i++)printf("%5d",a[i]);printf("\n");}3、计算正整数num的各位上的数字之和。#include<stdio.h>voidmain(){intnum,k;//clrscr();/************found************/—⑴—;填写的语句为:k=0;printf("Pleaseenteranumber:");scanf("%d",&num);do/************found************/k=(2);填写的语句为:k=k+num%10;num/=10;}while(num);printf("\n%d\n",k);}4、求cman=m!/n!*(m-n)!之值,例如:m=12,n=2时,cmanis66#include<math.h>#include<stdio.h>longintfun(intx){longints=1;inti;for(i=1;i<=x;i++)s*=i;/************found************/⑴;填写的语句为:returns;}voidmain(){longintm=12,n=2,s1,s2,s3;//clrscr();s1=fun(m);s2=fun(n);s3=fun(m-n);/************found************/printf("Cmnis:%ld”,(2));填写的语句为:s1/(s2*s3)}5、输出Fabonacci数列1,1,2,3,5……前20项,要求每位输出5个数。#include"stdio.h"voidmain(){longintf[20]={1,1};inti;//clrscr();/**************found************/—⑴—;填写的语句:intj=0;for(i=2;i<20;i++){f[i]=f[i-1]+f[i-2];/**************found************/if(—(2)—)printf("\n");填写的语句:j++%5==0printf("%8ld",f[i]);}printf("\n");}6、求两个正整数[m,n]之间所有既能被3整除也能被7整除的整数之和。#include<math.h>#include<stdio.h>main(){intm,n,i,t;longints=0;//clrscr();scanf("%d,%d",&m,&n);if(m>n){t=m;m=n;n=t;}/************found************/for(⑴;i++)填写的语句:i=m;i<=n;if(i%3==0&&i%7==0)s+=i;/************found************/printf("Sumis:⑵\n",s);填写的语句:%ld}7、从键盘输入一个由数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数。例如:从键盘输入12345,则程序运行的结果应当为:n=12345#include"stdio.h"#include"string.h"voidmain(){chars[10];inti;longintn;//clrscr();/**************found************/—⑴—;填写的语句:n=0scanf("%s",s);for(i=0;i<strlen(s);i++)/**************found************/n=n*10+(2);填写的语句:i+1printf("n=%ld\n",n);}8、从键盘输入一个正整数n,计算并输出n的阶乘。#include<math.h>#include<conio.h>#include<stdio.h>longfac(intn){inti;longt=1;for(i=2;i<=n;i++)t=t*i;return(t);}voidmain(){intn;longints;//clrscr();printf("Enteranintegernumber:");/************found************/⑴;填写的语句:scanf("%ld",&n);s=fac(n);/************found************/printf("Theresultis:(2)\n",s);填写的语句:%ld}三、编程题:(40分)1、按下面的公式求s的近似值,直到最后一项值的绝对值小于x为止,x的值由键盘输入,结果保留4位小数。S=1-1/3+1/5-1/9+…..+(-1)A(n-1)1/2n-1#include"stdio.h"#include"math.h"#include"stdlib.hdoublefun(doublex)/***********begin***********/inty,i=1;doublea,sum=0.0;do{if(i%2==0)y=-1;elsey=1;a=y*1.0/(2*i-1);sum=sum+a;i++;}while(fabs(a)>=x);returnsum;/***********end***********/}voidmain(){doublex,sum;printf("Enterx:\n");scanf("%lf",&x);sum=fun(x);printf("sum=%.4f\n",sum);NONO();}NONO(){FILE*fr,*fw;inti;doublex;fr=fopen("D:\\exam\\03200310\\PROGIN.DAT","r");fw=fopen("D:\\exam\\03200310\\PROGOUT.DAT","w");for(i=1;i<=5;i++){fscanf(fr,"%lf",&x);fprintf(fw,"s=%.4f\n",fun(x));}fclose(fr);fclose(fw);}2、将一个4位的整数m拆开,然后按相反的顺序输出,每输出一位数其后留2个空格。如m=1234,输出的结果应为m=1234,4321.程序如下:#include"stdio.h"#include"math.h"#include"stdlib.hvoidmain(){intm=1234,a,b,c,d;/***********begin***********/a=m%10;b=m/10%10;c=m/100%10;d=m/1000;/************end************/printf("m=%d,%d%d%d%d\n",m,a,b,c,d);NONO(m,a,b,c,d);}NONO(x,a,b,c,d)intx,a,b,c,d;{FILE*f;f=fopen("D:\\exam\\03200302\\PROGOUT.DAT","w");fprintf(f,"x=%d:%3d%3d%3d%3d####\n",x,a,b,c,d);fclose(f);}3、按下面的公式,求S的近似值。S=1+1/2*2+1/3*3+...+1/n*n#include"stdio.h"#include"math.h"#include"stdlib.hdoublefun(intn)/***********begin***********/inti;doublep,sum=0.0;for(i=1;i<=n;i++){p=i*i;sum=sum+1.0/p;}returnsum;/************end************/}voidmain(){doubles;intn;//clrscr();printf("Enters:\n");scanf("%d",&n);s=fun(n);printf("s=%.3f\n",s);NONO();}NONO(){FILE*fr,*fw;inti,m;fr=fopen("D:\\exam\\03200306\\PROGIN.DAT","r");fw=fopen("D:\\exam\\03200306\\PROGOUT.DAT","w");for(i=1;i<=5;i++){fscanf(fr,"%d",&m);fprintf(fw,"s=%.3f####\n",fun(m));}fclose(fr);fclose(fw);}a)求一个三数m的各位上的数字之和。m由键盘输入。#include<stdio.h>intfun(intm){/***********begin***********/ints=0;while(m!=0){s=s+m%10;m=m/10;}returns;/************end************/}voidmain(){intm,s;//clrscr();printf("Enterm:\n");scanf("%d",&m);s=fun(m);printf("Resultis:%d\n",s);NONO();}NONO(){FILE*fr,*fw;inti,j,k,m;fr=fopen("D:\\exam\\03200308\\PROGIN.DAT","r");fw=fopen("D:\\exam\\03200308\\PROGOUT.DAT","w");for(i=1;i<=5;i++){fscanf(fr,"%d",&m);fprintf(fw,"Sum=%d\n",fun(m));}fclose(fr);fclose(fw);}b)求两个正整数m和n的最大公约数,将求出的最大公数存入变量t中。#include"stdio.h"#include"math.h"#include"stdlib.hvoidmain(){intm=76,n=40,t,i;/***********begin***
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程合同调整协议
- 寺庙文化交流合作协议合同范本
- 2025年煤矿安全实习报告四
- 2025年中安建材(苏州)有限公司介绍企业发展分析报告模板
- 2025年密度板市场调查报告
- 外墙修缮可行性研究报告
- 特定区域代理销售合作协议合同
- 2025餐饮市场调研报告
- 2025年工业机器人技术实习报告总结
- 2025年中国户外手推车行业市场前景预测及投资价值评估分析报告
- 装配式建筑深化设计及识图培训课件
- 藏毛窦护理-业务查房课件
- 股东损害公司债权人利益责任纠纷起诉状(成功范文)
- 中国石油转观念勇担当创一流心得体会 中国石油转观念勇担当创一流心得
- 2022年新疆烟草专卖局招聘考试试题真题及答案
- 装配式建筑图纸识读-2.主体结构预制构件图纸识读(装配式建筑深化设计与施工)
- 研究生复试自我介绍面试个人简历PPT模板
- 用友ERP-U8基础档案设置
- 高中美术鉴赏(必修) 湘美版 《我们怎样鉴赏美术作品》
- 学生心理健康档案表格
- 河北绿色建筑施工图设计审查备案表
评论
0/150
提交评论