浙江省计算机二级c语言上机考试真题.pdf_第1页
浙江省计算机二级c语言上机考试真题.pdf_第2页
浙江省计算机二级c语言上机考试真题.pdf_第3页
浙江省计算机二级c语言上机考试真题.pdf_第4页
浙江省计算机二级c语言上机考试真题.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

浙江省二级浙江省二级 c 语言上机考试真题语言上机考试真题 介绍介绍:浙江省二级:浙江省二级 c 语言考试分为笔试和上机考试两块语言考试分为笔试和上机考试两块.取取 笔试和上机中分数较低的那个作为计算机二级的最终成绩, 最后笔试和上机中分数较低的那个作为计算机二级的最终成绩, 最后 证书上按档次划分等级,其中证书上按档次划分等级,其中 60-79 及格,及格,80-89 良好,良好,90-100 优秀。优秀。 笔试部分笔试部分分两块,一块是分两块,一块是 24 道选择题(六道程序题,道选择题(六道程序题,每题每题 中间有中间有四个空四个空,每空有四个选项供选择,每空有四个选项供选择) ,浙江省的计算机笔试浙江省的计算机笔试 选择题不考概念性内容, 所以大家不用费心,选择题不考概念性内容, 所以大家不用费心, 另一块是程序编写,另一块是程序编写, 手写两个完整程序,手写两个完整程序,一道循环一道循环数组(结合) ,一道是函数数组(结合) ,一道是函数或或指针指针。 上机部分上机部分分两块, 一块是计算机基本操作, 即从分两块, 一块是计算机基本操作, 即从 access, ppt, excel,outlook,word,网页制作,网页制作,文件夹操作,文件夹操作中随机选择四道,中随机选择四道, 另一块是编程,另一块是编程,编程题可以打开编程软件编程题可以打开编程软件 c-free 来做,来做,编程中共编程中共 五道题,一道改错,两道填空,最后五道题,一道改错,两道填空,最后两两道是编写程序。道是编写程序。 (一)(一)程序改错:程序改错: 1,10 个数求最大最小值 该程序中“/* N * /”的下一行中有错误, 请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:运行时输入 10 个数,然后分别输出其中的最大值、最小值。 #include void main() float x,max,min; int i; /* 1 */ for(i=0;imax) max=x; if(x printf(%f,%fn,max,min); #include #include int main()int main() float x,max,min; int i; float x,max,min; int i; /* 1 */* 1 */ for(i=for(i=1;imax) max=x; if(xmin) min=x;if(xmin) min=x; printf(%f,%fprintf(%f,%f n,max,min);n,max,min); 2,字符串反序连接 下面程序中“* N *”的下一行中有错误,请改正(注意:不得加行、减 行、加句、减句,否则后果自负)。 该程序功能: 输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串 t 中,再将字 符串中的字符按逆序连接到字符串 t 的后面。 例如:输入ABCD,则字符串 t 为ABCDDCBA。 # include # include void fun(char *s,char *t) int i,sl; sl=strlen(s); for(i=0;i ti=si; for(i=0;i /*1*/ tsl+i=ssl-i; /*2*/ tsl=0; void main() char s100,t100; scanf(%s,s); fun(s,t); printf(%s,t); #include #include #include #include void fun(char *s,char *t)void fun(char *s,char *t) int i,sl;int i,sl; sl=strlen(s);sl=strlen(s); for(i=0;isl;i+)for(i=0;isl;i+) ti=si;ti=si; for(i=0;i1)while(n1) if(n%i=0) if(n%i=0) printf(%8d,i);printf(%8d,i); n/=i;n/=i; elseelse /* 2 */* 2 */ i+;i+; 4,数字转字符 下面程序中“/ * N * /”的下一行中有错误,请改正(注意:不得加行、 减行、加句、减句,否则后果自负)。 该程序功能:用递归法将一个六位整数 n 转换成字符串,例如输入 123456,应 输出字符串123456。 #include void itoa(long i,char *s) if(i=0) return; /* 1 */ *s = 1+i%10; itoa(i/10,s-1); void main() long n; char str7=; scanf(%ld, /* 2 */ itoa(n,str+6); printf(%s,str); #include#include void itoa(long i,char *s)void itoa(long i,char *s) if(i=0)if(i=0) return;return; /* 1 */* 1 */ *s =0+i%10;*s =0+i%10; itoa(i/10,sitoa(i/10,s- -1);1); int main()int main() long n;long n; char str7=;char str7=; scanf(%ld,scanf(%ld, /* 2 */* 2 */ itoa(n,str+5);itoa(n,str+5); prprintf(%s,str);intf(%s,str); 6,删除非英文字母 下面程序中“* N *”的下一行中有错误, 请改正(注意:不得加行、减 行、加句、减句,否则后果自负)。 该程序功能: 输入一个字符串,将组成字符串的所有非英文字母的字符删除后 输出。 例如:输入abc123+xyz.5,应输出abcxyz。 #include #include void main() char str256; int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;i /*1*/ if (stri =a i+; strk=0; printf(%sn,str); #include #include #include #include void main()void main() char str256; char str256; int i,j,k=0,n;int i,j,k=0,n; gets(str);gets(str); n=strlen(str);n=strlen(str); for(i=0;infor(i=0;i=a k+;strk=stri; k+; strk=strk= 0;0; printf(%sprintf(%s n,str);n,str); 7,距离坐标原点 下面程序中“/* N * /”的下一行中有错误,请改正(注意:不得加行、减 行、加句、减句,否则后果自负)。 该程序功能:输入 n,再输入 n 个点的平面坐标,然后输出那些距离坐标原点不 超过 5 的点的坐标值。 #include stdio.h #include math.h #include stdlib.h void main() int i,n; /* 1 */ struct axy float x;float y; an; scanf(%d, a=(float*) malloc(n*2*sizeof(float); for(i=0;i /* 2 */ scanf(%f,%f,ai.x,ai.y); for(i=0;i if(sqrt(ai.x*ai.x+ai.y*ai.y)=5) printf(%f,%fn,ai.x,ai.y); #include #include #include void main() int i,n; /* 1 */ struct axy float x,y; a; scanf(%d, a=(float*) malloc(n*2*sizeof(float); for(i=0;in;i+) /* 2 */ scanf(%f%f,ai.x,ai.y); for(i=0;in;i+) if(sqrt(ai.x*ai.x+ai.y*ai.y)=eps); while(fabs(t)=eps); printf(%fprintf(%f n,s); n,s); 9,n 个 3 和 下面程序中“/* N * /”的下一行中有错误,请改正(注意:不得加行、减 行、加句、减句,否则后果自负)。 该程序功能:运行时若输入 a、n 分别为 3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include void main() int i,a,n; long t=0; /* 1 */ int s=0; scanf(%d%d, for(i=1;i=n;i+) /* 2 */ t=(i-1)*10+a; s=s+t; s=s*a; printf(%ldn,s); #include #include int main() int main() int i,a,n; long t=0; int i,a,n; long t=0; /* 1 */ /* 1 */ long s=0; long s=0; scanf(%d%d, scanf(%d%d, for(i=1;i=n;i+) for(i=1;i=n;i+) /* 2 */ /* 2 */ t=t*10+1; t=t*10+1; s=s+t; s=s+t; s=s*a; s=s*a; printf(%ldprintf(%ld n,s); n,s); 10,10 升排序 下面程序中“/ * N * /”的下一行中有错误,请改正(注意:不得加行、 减行、加句、减句,否则后果自负)。 该程序功能:用选择法对 10 个整数按升序排序。 #include stdio.h #define N 10 void main() int i,j,min,temp; int aN=5,4,3,2,1,9,8,7,6,0; printf(nThe array is:n); /* 输出数组元素 */ for (i=0;i printf(%5d,ai); for (i=0;i min = i; for (j=i+1; j /* 1 */ if (amin=aj) /* 2 */ temp=amin; amin=aj; aj=temp; /* 数据交换 */ printf(nThe sorted numbers: n); /* 输出排序结果 */ for (i=0;i printf(%5d,ai); printf(n); #include stdio.h #include stdio.h #define N 10 #define N 10 int main() int main() int i,j,min,temp; int i,j,min,temp; int aN=5,4,3,2,1,9,8,7,6,0; int aN=5,4,3,2,1,9,8,7,6,0; printf(printf( nThe array is:nThe array is: n); /* ? */ n); /* ? */ for (i=0;iN;i+)for (i=0;iN;i+) printf(%5d,ai); printf(%5d,ai); for (i=0;iNfor (i=0;iN- -1;i+)1;i+) min = i; min = i; for (j=i+1; j=aj) /* 2 */ /* 2 */ temp=amin; amin=aj; aj=temp; /* ? */ temp=amin; amin=aj; aj=temp; /* ? */ printf(printf( nThe sorted numbers: nThe sorted numbers: n); /* ? */ n); /* ? */ for (i=0;iN;i+)for (i=0;iN;i+) printf(%5d,ai); printf(%5d,ai); printf(printf( n); n); (二)(二)程序填空程序填空 1,求最大公约数 ,下面程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注 意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入 m、n(要求输入数均大于 0),输出它们的最大公约数。 #include void main() int m,n,k; while(scanf(%d%d, for( _2_; n%k!=0|m%k!=0; k-); printf(%dn,k); #include #include void main()void main() int m,n,k;int m,n,k; while(scanf(%d%d,while(scanf(%d%d, for(k=m; n%k!=0|m%k!=0; kfor(k=m; n%k!=0|m%k!=0; k-);); printf(%dprintf(%d n,k);n,k); 2,分别统计字符串中各字符 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充(注 意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:分别统计字符串中英文字母、数字和其他字符出现的次数。 #include #include void main() char a80; int n3=0,i; gets(a); for(i=0;ai!=0;i+) if (/*-1-*/) /*统计字母个数*/ n0+; else if (/*-2-*/) /*统计数字个数*/ n1+; else n2+; for(i=0;i=an1+; elseelse n2+;n2+; for(i=0;i3;i+) printf(%dfor(i=0;i3;i+) printf(%d n,ni);n,ni); 3,求相邻两元素和 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能:求出 a 中各相邻两个元素的和,并将这些和存放在数组 b 中,按 每行 3 个元素的形式输出。 例如: b1=a1+a0,b9=a9+a8。 #include void main() int a10,b10,i; printf(nInput 10 numbers: ); for (i=0; i10;i+) /* 数组输入 */ scanf(%d, for (i=1; i10; i+) bi=_1_; /* 计算 b 数组中的元素 */ for (i=1; i10; i+) printf(%3d,bi); if (_2_) printf(n); /* 每行打印 3 个数据 */ #include#include void main()void main() int a10,b1int a10,b10,i;0,i; printf(printf( nInput 10 numbers: );nInput 10 numbers: ); for (i=0; i10;i+) for (i=0; i10;i+) scanf(%d, scanf(%d, for (i=1; i10; i+)for (i=1; i10; i+) bi=ai+aibi=ai+ai- -1; 1; for (i=1; i10; i+)for (i=1; i10; i+) printf(%3d,bi);printf(%3d,bi); if (i%3=0) printf(if (i%3=0) printf( n); n); 4 求数字和 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能:求输入的整数各位数字之和,如输入 234 则输出 9,输入-312 则输 出 6。 #include #include void main() int n,s=0; scanf(%d, _ 1 _ while(n!=0) _ 2 _ n=n/10; printf(%dn,s); #include#include #include#include vovoid main()id main() int n,s=0;int n,s=0; scanf(%d,scanf(%d, if(n0)n=if(n=0) return y;if(n=0) return y; else return else return - -y ;y ; void main()void main() printf(%ldprintf(%ld n,f(12345); printf(n,f(12345); printf(%ld%ld n,f(n,f(- -34567);34567); 8,删除数字字符 下面程序中中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注 意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用函数 f,从字符串中删除所有的数字字符。 #include #include #include void f(char *s) int i=0; while(si!=0) if(isdigit(si) _1_; else _2_; void main() char str80; gets(str); f(str); puts(str); #include #include #include #include #include #include void f(char *s)void f(char *s) int i=0; int i=0; while(si!=while(si!= 0)0) if(isdigit(si) strcpy(s+i,s+i+1);if(isdigit(si) strcpy(s+i,s+i+1); else i+;else i+; void main(void main() ) char str80; char str80; gets(str); f(str); puts(str);gets(str); f(str); puts(str); 9,删除 c 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能:将字符串 s 中所有的字符c删除。 #include void main() char s80; int i,j; gets(s); for(i=j=0;stri!= 0;i+) if(_1_) sj=si; j+ _2_; puts(s); #include #include void main()void main() char s80; char s80; int i,j;int i,j; gets(s);gets(s); for(i=j=0; si != for(i=j=0; si != 0; i+)0; i+) if(si != c)if(si != c) sj=si; sj=si; j+;j+; sj=sj= 0;0; puts(s);puts(s); 10,去数组负数 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入数组 x7,调用函数 f,去除数组中的负数,输出结果为:1 3 4 6 #include void f(int *a,int *m) int i,j; for(i=0;i *m;i+) if(ai 0) for(j=i-;j *m-1;j+) aj=aj+1; _1_; void main() int i,n=7,x7=1,-2,3,4,-5,6,-7; _2_; for(i=0;i n;i+) printf(%5d,xi); printf(n); #include #include void f(int *a,int *m) void f(int *a,int *m) int i,j; int i,j; for(i=0;i *m;i+) for(i=0;i *m;i+) if(ai 0) if(ai 0) for(j=ifor(j=i-;j *m;j *m- -1;j+) aj=aj+1; 1;j+) aj=aj+1; *m=*m*m=*m- -1; 1; i int main() nt main() int i,n=7,x7=1, int i,n=7,x7=1,- -2,3,4,2,3,4,- -5,6,5,6,- -7; 7; f(x, f(x, for(i=0;i english+pst-computer pst-average = sum/3; void main() int i; struct STUDENT st4=Jessica,98,95,90,Mike,80,80,90, Linda,87,76,70,Peter,90,100,99; for(i=0;i=a c; putchar(c); putchar(c); 13,函数最大值 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能:对 x=1,2,.,10,求 f(x)=x*x-5*x+sin(x)的最大值。 #include #include #define f(x) x*x-5*x+sin(x) void main() int x; float max; /*-1-*/; for(x=2;x=10;x+) if(max fprintf(p,%fn,max); #include #include #include #include #define f(x) x*x#define f(x) x*x- -5*x+sin(x) 5*x+sin(x) int int main() main() int x; float max; int x; float max; max=f(1);max=f(1); for(x=2;x=10;x+)for(x=2;x=10;x+) if(maxf(x) max=f(x);if(max0),求 m 使得 2 的 m 次方小于或等于 n、2 的 m+1 次方大于或等于 n。 #include stdio.h void main() int m=0,t=1,n; while( _ 1 _); while(!(t=n) _ 2 _ m+; printf(%dn,m); #include stdio.h #include stdio.h int main() int main() int m=0,t=1,n; int m=0,t=1,n; while(scanf(%d, while(scanf(%d, while(!(t=n) while(!(t=n) t=t*2;t=t*2; m+; m+; printf(%dprintf(%d n n,m); ,m); 15,findthe 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能:调用 find 函数在输入的字符串中查找是否出现the这个单词。如 果查到返回出现的次数;如果未找到返回 0。 #include stdio.h int find(char *str) char *fstr=the; int i=0,j,n=0; while (stri!=0) for(_1_) if (strj+i!=fstrj) break; if (_2_) n+; i+; return n; void main() char a80; gets(a); printf(%d,find(a); #include stdio.h #include stdio.h int find(char *str) int find(char *str) char *fstr=the; char *fstr=the; int i=0,j,n=0; int i=0,j,n=0; while (stri!=while (stri!= 0) 0) forfor(j=0;j3;j+) (j=0;j3;j+) if (strj+i!=fstrj) break; if (strj+i!=fstrj) break; if (j=2) n+; if (j=2) n+; i+; i+; return n; return n; main() main() char a80; char a80; gets(a); gets(a); printf(%d,find(a); printf(%d,find(a); 16,ditoh 下面程序中中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注 意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:将输入的十进制整数 n 通过函数 DtoH 转换为十六进制数,并将转 换结果以字符串形式输出。 例如:输入十进制数 79,将输出十六进制 4f。 # include stdio.h # include string.h char trans(int x) if(x 10) return 0+x; else _1_ int DtoH(int n,char *str) int i=0; while(n!=0) _2_ n/=16;i+; return i-1; void main() int i,k,n; char str30; scanf(%d, k=DtoH(n,str); for (i=0;i = k;i+) printf(%c,strk-i); # include stdi# include stdio.h o.h # include string.h # include string.h char trans(int x) char trans(int x) if(x 10) return 0+x; if(x 10) return 0+x; else return a+xelse return a+x- -10;10; int DtoH(int n,char *str) int DtoH(int n,char *str) int i=0; int i=0; while(n!=0) while(n!=0) stri=trans(n%16);stri=trans(n%16); n/=16;i+; n/=16;i+; return ireturn i- -1; 1; int main() int main() int i,k,n; int i,k,n; char str30; char str30; scanfscanf(%d, (%d, k=DtoH(n,str); k=DtoH(n,str); for (i=0;i = k;i+) printf(%c,strkfor (i=0;i = k;i+) printf(%c,strk- -i); i); 17,dec2bin 下面程序中_ N _是根据程序功能需要填充部分, 请完成程序填充 (注意: 不得加行、减行、加句、减句,否则后果自负)。 该程序功能: 将输入的十进制正整数 n 通过函数 Dec2Bin 转换为二进制数, 并将 转换结果输

温馨提示

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

评论

0/150

提交评论