




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试卷编号:8258所属语言:计算机基础试卷方案:111试卷总分:400分共有题型:3种一、程序填空 共5题 (共计100分)第1题 (20.0分) 题号:650 难度:中 第1章/*-【程序填空】- 函数int change(char s)将s中的数字字符串转换成整数, 并返回该数。例如s中为123,转换后为123。 函数int multi(char s,char t)将s字符串转换的整数乘 以t字符串转换的整数,并返回乘积。-注意:请勿改动程序中的其他内容。-*/#includeint change(char s) int i,sum; sum=0; for(i=0;si;i+)/*SPACE*/ sum=sum*10+【?】-0; return sum;int multi(char s,char t) int mul;/*SPACE*/ mul=【?】; return mul;int main() char s1=123,s2=56; int mst; mst=multi(s1,s2); printf(%dn,mst); return 0;答案:=(答案1)=si=或=*(s+i)=(答案2)=change(s)*change(t)=或=change(t)*change(s)第2题 (20.0分) 题号:651 难度:中 第1章/*-【程序填空】- 函数void check(long n, int c)检测长整型正整数n是几 位数,同时找出最小的数字。将位数和最小的数字存放在数 组c中。 例如n=1256044时,n是7位数,最小的数字是0。-注意:请勿改动程序中的其他内容。-*/#include /*SPACE*/void check(long n, int 【?】) int min,p,k; min=9; p=0; do k=n%10; min=(mink)? k: min; n/=10; p+; while(n); c0=p; c1=min;int main() long n; int c2; printf(输入长整型正整数:); scanf(%ld,&n); check(n, c);/*SPACE*/ printf(%ld是%d位数,最小数字是%dn,【?】); return 0;答案:=(答案1)=c=或=c2=(答案2)=n,c0,c1第3题 (20.0分) 题号:652 难度:中 第1章/*-【程序填空】- 函数int convert(int a,int nsys)将nsys(nsys10)进制数a, 转换成十进制数并返回。-注意:请勿改动程序中的其他内容。-*/#include#define N 5int convert(int a,int nsys) int t,p; if(ansys) return a; t=0; p=1; while(a!=0) t=t+a%10*p;/*SPACE*/ 【?】; p*=nsys; return t;int main() int i,d; int numN2=704,8,10011,2,266,7,3,5,22110,3; for(i=0;iN;i+) d=convert(numi0,numi1);/*SPACE*/ printf(%d进制数的%dt = 十进制数的%dn,【?】); return 0;答案:=(答案1)=a/=10=或=a=a/10=(答案2)=numi1,numi0,d第4题 (20.0分) 题号:653 难度:中 第1章/*-【程序填空】- 函数void rearr(int a, int n)将已经升序排列的一维数 组a中的n个元素重新排列,重新排列的规则是: 将a数组中的最小元素放到a0,最大元素放到a1, 将次小元素放到a2,次大元素放到a3,., 以此类推。 例如: 原a数组各元素为: -11 -7 0 3 8 15 16 20 38 重新排列后a数组各元素为: -11 38 -7 20 0 16 3 15 8-注意:请勿改动程序中的其他内容。-*/#include#define N 9void rearr(int a, int n) int left,right,i; int bN; left=0; right=N-1; for(i=0; leftright; i+=2) bi=aleft+;/*SPACE*/ bi+1=a【?】; if(left=right) bi=aleft; for(i=0;iN;i+)/*SPACE*/ ai=【?】;int main() int i,aN=-11,-7,0,3,8,15,16,20,38; rearr(a,N); for(i=0;iz,B-y,.,Z-a 小写字母转换规则:z-A,y-B,.,a-Z 数字字符转换规则:0-9,1-8,.,9-0-注意:请勿改动程序中的其他内容。-*/#include#includevoid change(char s,char t) int i; for(i=0;si;+i) if(isalpha(si) ti=(isupper(si) ? Z-si+a : z-si+A); else if(isdigit(si) ti=9-si+0; else/*SPACE*/ 【?】; ti=0;int main() char t100=7984 RH hSVVK BVZI,dRHS BLF TLLW OFXP!; char s100;/*SPACE*/ 【?】; printf(%sn,s); return 0;答案:=(答案1)=ti=si=(答案2)=change(t,s)二、程序改错 共5题 (共计150分)第1题 (30.0分) 题号:575 难度:中 第1章/*-【程序改错】-题目:int sort(int a,int n)函数将n个元素的数组a中互不相 同的元素按升序排列,重新存入数组a中,函数返回按升序 排列后互不相同元素的个数。例如:数组a中元素为6,2,7,5,4,3,4,6,5,4,调用sort函数后, 函数值为6,主函数中输出排序后的数组a元素为 2,3,4,5,6,7。 请改正程序中的错误,使它能得出正确的结果。-注意:不得增行或删行,也不得更改程序的结构。-*/#include int sort(int a,int n) int i,j,k,low,high,mid,t; for(k=i=1;in;i+) low=0; high=k-1; while(low=ai) high=mid-1; else low=mid+1; if(low=k|alow!=ai) /*FOUND*/ t=ai-1;/*FOUND*/ for(j=k;j=low;j-) aj+1=aj; alow=t; k+; return k; int main() int a =6,2,7,5,4,3,4,6,5,4; int i,n; n=sizeof(a)/sizeof(int); for(i=0;in;i+) printf(%dt,ai);/*FOUND*/ sort(a,n); printf(nAfter sorting:n); for(i=0;i=low;j-)=(答案3)=n=sort(a,n);第2题 (30.0分) 题号:576 难度:中 第1章/*-【程序改错】-题目:函数unsigned delbits(unsigned x,unsigned p,unsigned n) 把非负整数x从左端第p(p1)位开始的n位删除,形成新的数 返回。例如:若x为12345,p为3,n为2,形成新的数为125。 若x为12345,p为6,n为2,形成新的数为12345。 若x为12345,p为3,n为4,形成新的数为12。 请改正程序中的错误,使它能得出正确的结果。-注意:不得增行或删行,也不得更改程序的结构。-*/#include unsigned delbits(unsigned x,unsigned p,unsigned n) int a10,i,j,k; i=0; while(x) /*FOUND*/ ai=x%10; x/=10; k=i; for(i=0;ik/2;i+) ai+=ak-i-1; ak-i-1=ai-ak-i-1; ai=ai-ak-i-1; j=p-1;/*FOUND*/ for(i=p+n;i=k-1;i+) aj=ai; j+; k=j; for(i=0;ik;i+) /*FOUND*/ x+=ai*10; return x;int main() unsigned x,p,n; printf(Input x(unsigned int):n); scanf(%u,&x); printf(Input p(unsigned int):n); scanf(%u,&p); printf(Input n(unsigned int):n); scanf(%u,&n); x=delbits(x,p,n); printf(After deleting x=%un,x); return 0;答案:=(答案1)=ai+= x%10;=或=ai=x%10,i+;=或=ai=x%10,+i;=或=ai=x%10,i=i+1;=或=ai=x%10,i=1+i;=或=ai=x%10,i+=1;=或=ai=x%10;i+;=或=ai=x%10;+i;=或=ai=x%10;i=i+1;=或=ai=x%10;i=1+i;=或=ai=x%10;i+=1;=(答案2)=for(i=p+n-1;i=k-1;i+)=或=for(i=p-1+n;i=k-1;i+)=(答案3)=x=x*10+ai;=或=x=10*x+ai;=或=x=ai+x*10;=或=x=ai+10*x;第3题 (30.0分) 题号:577 难度:中 第1章/*-【程序改错】-题目:void move(int a,int n,int m)函数将n个元素的一维 数组a循环左移m个位置, void change(int a,int n,int bN)函数将数组a按 行存入二维数组b,然后将b按列重新存入数组a。例如:数组a的元素为1,2,3,4,5,6,7,8,9,10,11,12,调用move函 数将a循环左移3个位置后,a的元素为 4,5,6,7,8,9,10,11,12,1,2,3,调用change函数后,a的元 素为4,8,12,5,9,1,6,10,2,7,11,3。 请改正程序中的错误,使它能得出正确的结果。-注意:不得增行或删行,也不得更改程序的结构。-*/#include #define M 3#define N 4void move(int a,int n,int m) int i,t; while(m) t=a0; for(i=0;in-1;i+)/*FOUND*/ ai=ai+m; an-1=t; m-; void change(int a,int n,int bN) int i,j; for(i=0;in;i+)/*FOUND*/ bi/Mi-i/N=ai; for(i=0;iN;i+) for(j=0;jM;j+)/*FOUND*/ aj*M+i=bij;int main() int aM*N=1,2,3,4,5,6,7,8,9,10,11,12; int bMN,i,j,m; printf(Before movingnArray a:n); for(i=0;iM*N;i+) printf(%d ,ai); printf(nInput m:n); scanf(%d,&m); move(a,M*N,m); printf(nAfter movingnArray a:n); for(i=0;iM*N;i+) printf(%d ,ai); change(a,M*N,b); printf(nnAfter changingnArray b:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%dt,bij); printf(n); printf(Array a:n); for(i=0;iM*N;i+) printf(%d ,ai); printf(n); return 0;答案:=(答案1)=ai=ai+1;=或=ai=a1+i;=(答案2)=bi/Ni%N=ai;=或=bi/Ni-i/N*N=ai;=(答案3)=ai*M+j=bji;=或=aM*i+j=bji;=或=aj+i*M=bji;=或=aj+M*i=bji;第4题 (30.0分) 题号:579 难度:中 第1章/*-【程序改错】-题目:void add(char a,char b,char c)函数将由0,1 组成的字符串a,b按二进制数加法规则相加,和仍以0,1 组成的字符串形式保存到字符串c中。例如:字符串a为1100,字符串b为111,调用add函数后字符串c 为10011。 请改正程序中的错误,使它能得出正确的结果。-注意:不得增行或删行,也不得更改程序的结构。-*/#include #include void reverse(char s) int i,len; char t;/*FOUND*/ len=strlen(s-1); for(i=0;i=0|j=0) if(i0) t=bj-48+flag; else if(j1) flag=1; i-; j-; /*FOUND*/ if(flag=0) ck+=1; ck=0; reverse(c);int main() char a50,b50,c51; printf(Input a(binary):n); scanf(%s,a); printf(Input b(binary):n); scanf(%s,b); add(a,b,c); printf(After adding a+b=%sn,c); return 0;答案:=(答案1)=len=strlen(s);=(答案2)=ck=t%2+48;=或=ck=48+t%2;=或=ck=t%2+0;=或=ck=0+t%2;=(答案3)=if(flag)=或=if(flag=1)=或=if(flag!=0)=或=if(t1)=或=if(t=2)第5题 (30.0分) 题号:580 难度:中 第1章/*-【程序改错】-题目:int find(char a,char b,int c)统计字符串a中出 现字符串b的次数,并将字符串b每次在字符串a中出现的起 始下标依次保存在数组c中。例如:若字符串a为You are a P.R.C citizen or other P.R.C person 字符串b为P.R.C ,字符串b在a中出现2次,起始下标依 次为10,33。若字符串a为bcde aeeeq mneec,字符串b为 ee ,字符串b在a中出现3次,起始下标依次为6,7,13。 请改正程序中的错误,使它能得出正确的结果。-注意:不得增行或删行,也不得更改程序的结构。-*/#include #include int find(char a,char b,int c) int i,j,n=0; i=0; while(ai) j=0; while(ai=bj&ai&bj) i+;j+; if(bj=0) /*FOUND*/ cn=i; n+; /*FOUND*/ i=j; /*FOUND*/ return n-1;int main() char a80=You are a P.R.C citizen or other P.R.C person; char b10=P.R.C; int c80; int i,n; printf(String a:n); puts(a); printf(Substring b:n); puts(b); n=find(a,b,c); if(n) printf(nAfter counting:n%d timesn,n); printf(Location:n); for(i=0;in;i+) printf(%dt,ci); printf(n); else printf(nCan not find substring.n); return 0;答案:=(答案1)=cn=i-j;=或=cn=i-strlen(b);=(答案2)=i=i-j+1;=或=i+=1-j;=或=i+=-j+1;=或=i=i+1-j;=或=i=-j+i+1;=或=i=-j+1+i=或=i=1+i-j;=或=i=1-j+i;=(答案3)=return n;=或=return (n);三、程序设计 共5题 (共计150分)第1题 (30.0分) 题号:543 难度:中 第1章/*-【程序设计】- c语言中实数有小数表示法和科学表示法两种形式。 例如: 小数表示法的实数203400.0,用科学表示法为2.034e5,其中 2.034称为尾数,5称为阶码; 小数表示法的实数-0.00769,用科学表示法为-0.769e-2,其 中-0.769称为尾数,-2称为阶码。 主函数main()中二维数组double sciN3为测试数据。sci 数组各行前两列保存了用科学表示法表示的实数的尾数和阶 码,程序先将sci数组中用科学表示法表示的实数转换成小数 表示法表示的实数,再依据小数表示法的实数大小,对sci数 组进行升序排序。 编写函数: 1.编写函数void change(double sci3),根据sci数组前 两列的尾数和阶码,计算出小数表示法的实数,将其保存在 sci数组的第三列。 2.编写函数void sort(double sci3),依据sci数组中第 三列,即小数表示法表示的实数大小进行升序排序。 在函数中不允许使用系统提供的任何库函数。-注意:请勿改动主函数main()中的任何语句。-*/#include#include#include#define N 5void change(double sci3)/*Program*/ /* End */void sort(double sci3)/*Program*/ /* End */int main() double sciN3=4.76,2,-9.007,-4,6.789,0,-0.8145,3,9.007,-4; int i; FILE *fp; if(fp=fopen(DATA.TXT,w)=NULL) printf(File open errorn); exit(0); change(sci); sort(sci); for(i=0;iN;i+) printf(%ft%ft%fn,scii0,scii1,scii2); fprintf(fp,%ft%ft%fn,scii0,scii1,scii2); fclose(fp); getch(); return 0;答案: int i; double j,k; for(i=0;i=0 ?scii1:-scii1; for(j=0;jk;j+) scii2=(scii1 0 ? scii2*0.1 : scii2*10); int i,j; double t; for(i=0;iN-1;i+) for(j=0;jscij+12) t=scij0;scij0=scij+10;scij+10=t; t=scij1;scij1=scij+11;scij+11=t; t=scij2;scij2=scij+12;scij+12=t; 第2题 (30.0分) 题号:544 难度:中 第1章/*-【程序设计】- 主函数main()的char s中为测试数据,保存了形如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国甲鱼项目创业计划书
- 中国激光光纤光缆传输项目创业计划书
- 中国烤烟育种项目创业计划书
- 中国酒类电商平台项目创业计划书
- 中国牛养殖项目创业计划书
- 中国高端大米项目创业计划书
- 中国电子商务物联网应用项目创业计划书
- 安全教育试题题库及答案
- 乐理初级试题及答案
- 2025年度供货协议 精密仪器配套产品订购合同
- 麻醉科PDCA持续改进麻醉术后镇痛
- 火字旁教学讲解课件
- 租车公司疫情防控应急预案
- 2023-2025年初中学业水平考试体育与健康考试体育中考理论考试题库
- 补缴社保转移需法律文书(社保法律文书怎么写有效)-靓文网
- SMT失效模式分析PFMEA
- 融媒体中心安全播出管理相关各项制度
- JJF 1105-2018触针式表面粗糙度测量仪校准规范
- GB/T 29602-2013固体饮料
- 建筑工程招标控制价编制说明审
- GB/T 12469-1990焊接质量保证钢熔化焊接头的要求和缺陷分级
评论
0/150
提交评论