浙江省计算机二级c语言上机考试真题.docx

上传人:b****8 文档编号:10116178 上传时间:2023-02-08 格式:DOCX 页数:59 大小:30.78KB
下载 相关 举报
浙江省计算机二级c语言上机考试真题.docx_第1页
第1页 / 共59页
浙江省计算机二级c语言上机考试真题.docx_第2页
第2页 / 共59页
浙江省计算机二级c语言上机考试真题.docx_第3页
第3页 / 共59页
浙江省计算机二级c语言上机考试真题.docx_第4页
第4页 / 共59页
浙江省计算机二级c语言上机考试真题.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

浙江省计算机二级c语言上机考试真题.docx

《浙江省计算机二级c语言上机考试真题.docx》由会员分享,可在线阅读,更多相关《浙江省计算机二级c语言上机考试真题.docx(59页珍藏版)》请在冰豆网上搜索。

浙江省计算机二级c语言上机考试真题.docx

浙江省计算机二级c语言上机考试真题

浙江省二级c语言上机考试真题

介绍:

浙江省二级c语言考试分为笔试和上机考试两块.取笔试和上机中分数较低的那个作为计算机二级的最终成绩,最后证书上按档次划分等级,其中60-79及格,80-89良好,90-100优秀。

笔试部分分两块,一块是24道选择题(六道程序题,每题中间有四个空,每空有四个选项供选择),浙江省的计算机笔试选择题不考概念性内容,所以大家不用费心,另一块是程序编写,手写两个完整程序,一道循环数组(结合),一道是函数或指针。

上机部分分两块,一块是计算机基本操作,即从access,ppt,excel,outlook,word,网页制作,文件夹操作中随机选择四道,另一块是编程,编程题可以打开编程软件c-free来做,编程中共五道题,一道改错,两道填空,最后两道是编写程序。

 

(一)程序改错:

1,10个数求最大最小值

该程序中“/*****N*****/”的下一行中有错误,

请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时输入10个数,然后分别输出其中的最大值、最小值。

#include

voidmain()

{floatx,max,min;inti;

/********1*******/

for(i=0;i<=10;i++){

scanf("%f",&x);

/*******2********/

if(i=1){max=x;min=x;}

if(x>max)max=x;

if(x

}

printf("%f,%f\n",max,min);

}

∙#include

∙intmain()

∙{floatx,max,min;inti;

∙/********1*******/

∙for(i=1;i<=10;i++){

∙scanf("%f",&x);

∙/*******2********/

∙if(i==1){max=x;min=x;}

∙if(x>max)max=x;

∙if(x

∙}

∙printf("%f,%f\n",max,min);

∙}

2,字符串反序连接

下面程序中“*****N*****”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t的后面。

例如:

输入"ABCD",则字符串t为"ABCDDCBA"。

#include

#include

voidfun(char*s,char*t)

{

inti,sl;

sl=strlen(s);

for(i=0;i

t[i]=s[i];

for(i=0;i

/********1********/

t[sl+i]=s[sl-i];

/********2********/

t[sl]="\0";

}

voidmain()

{

chars[100],t[100];

scanf("%s",s);

fun(s,t);

printf("%s",t);

}

∙#include

∙#include

∙voidfun(char*s,char*t)

∙{

∙inti,sl;

∙sl=strlen(s);

∙for(i=0;i

∙t[i]=s[i];

∙for(i=0;i

∙t[sl+i]=s[sl-1-i];

∙/********2********/

∙t[2*sl]='\0';

∙}

∙voidmain()

∙{

∙chars[100],t[100];

∙scanf("%s",s);

∙fun(s,t);

∙printf("%s",t);

∙}

3,求n的所有质数因子

下面程序中“/*****N*****/”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。

#include

voidmain()

{intn,i;

scanf("%d",&n);

/******1******/

i=1;

while(n>1)

if(n%i==0){

printf("%d\t",i);

n/=i;

}

else

/********2*******/

n++;

}

∙#include

∙voidmain()

∙{intn,i;

∙scanf("%d",&n);

∙/******1******/

∙i=2;

∙while(n>1)

∙if(n%i==0){

∙printf("%8d",i);

∙n/=i;

∙}

∙else

∙/********2*******/

∙i++;

∙}

4,数字转字符

下面程序中“/*****N*****/”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串"123456"。

#include

voiditoa(longi,char*s)

{

if(i==0)

return;

/******1******/

*s='1'+i%10;

itoa(i/10,s-1);

}

voidmain()

{

longn;

charstr[7]="";

scanf("%ld",&n);

/******2******/

itoa(n,str+6);

printf("%s",str);

}

∙#include

∙voiditoa(longi,char*s)

∙{

∙if(i==0)

∙return;

∙/******1******/

∙*s='0'+i%10;

∙itoa(i/10,s-1);

∙}

∙intmain()

∙{

∙longn;

∙charstr[7]="";

∙scanf("%ld",&n);

∙/******2******/

∙itoa(n,str+5);

∙printf("%s",str);

∙}

6,删除非英文字母

下面程序中“*****N*****”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

例如:

输入"abc123+xyz.5",应输出"abcxyz"。

#include

#include

voidmain()

{

charstr[256];

inti,j,k=0,n;

gets(str);

n=strlen(str);

for(i=0;i

/********1********/

if(str[i]>='a'&&str[i]<='z')

{

/********2********/

str[k]=str[i];i++;

}

str[k]='\0';

printf("%s\n",str);

}

∙#include

∙#include

∙voidmain()

∙{charstr[256];

∙inti,j,k=0,n;

∙gets(str);

∙n=strlen(str);

∙for(i=0;i

∙/********1********/

∙if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))

∙{

∙str[k]=str[i];k++;

∙}

∙str[k]='\0';

∙printf("%s\n",str);

∙}

7,距离坐标原点

下面程序中“/*****N*****/”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

#include"stdio.h"

#include"math.h"

#include"stdlib.h"

voidmain()

{

inti,n;

/*****1*****/

structaxy{floatx;floaty;}a[n];

scanf("%d",&n);

a=(float*)malloc(n*2*sizeof(float));

for(i=0;i

/*****2*****/

scanf("%f,%f",a[i].x,a[i].y);

for(i=0;i

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y);

}

#include

#include

#include

voidmain()

{

inti,n;

/*****1*****/

structaxy{floatx,y;}a;

scanf("%d",&n);

a=(float*)malloc(n*2*sizeof(float));

for(i=0;i

/*****2*****/

scanf("%f%f",a[i].x,a[i].y);

for(i=0;i

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y);

}

**试题本身有错误,a=(structaxy*)malloc(n*2*sizeof(float));

8,多项式值

下面程序中“/*****N*****/”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入x和正数eps,计算多项式1-x+x*x/2!

-x*x*x/3!

+...的和直到末项的绝对值小于eps为止。

#include

#include

voidmain()

{floatx,eps,s=1,t=1,i=1;

scanf("%f%f",&x,&eps);

do{

/*****1*****/

t=-t*x/++i;

s+=t;

/*****2*****/

}while(fabs(t)

printf("%f\n",s);

}

∙#include

∙#include

∙intmain()

∙{floatx,eps,s=1,t=1,i=1;

∙scanf("%f%f",&x,&eps);

∙do{

∙/*****1*****/

∙t=-t*x/i++;

∙s+=t;

∙/*****2*****/

∙}while(fabs(t)>=eps);

∙printf("%f\n",s);

∙}

9,n个3和

下面程序中“/*****N*****/”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

运行时若输入a、n分别为3、6,则输出下列表达式的值:

3+33+333+3333+33333+333333

#include

voidmain()

{inti,a,n;longt=0;

/*********1*******/

ints=0;

scanf("%d%d",&a,&n);

for(i=1;i<=n;i++){

/*******2******/

t=(i-1)*10+a;

s=s+t;

}

s=s*a;

printf("%ld\n",s);

}

∙#include

∙intmain()

∙{inti,a,n;longt=0;

∙/*********1*******/

∙longs=0;

∙scanf("%d%d",&a,&n);

∙for(i=1;i<=n;i++){

∙/*******2******/

∙t=t*10+1;

∙s=s+t;

∙}

∙s=s*a;

∙printf("%ld\n",s);

∙}

10,10升排序

下面程序中“/*****N*****/”的下一行中有错误,请改正(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

用选择法对10个整数按升序排序。

#include"stdio.h"

#defineN10

voidmain()

{

inti,j,min,temp;

inta[N]={5,4,3,2,1,9,8,7,6,0};

printf("\nThearrayis:

\n");/*输出数组元素*/

for(i=0;i

printf("%5d",a[i]);

for(i=0;i

{

min=i;

for(j=i+1;j

/******1******/

if(a[min]<=a[j]){

/******2******/

temp=a[min];a[min]=a[j];a[j]=temp;}/*数据交换*/

}

printf("\nThesortednumbers:

\n");/*输出排序结果*/

for(i=0;i

printf("%5d",a[i]);

printf("\n");

}

∙#include"stdio.h"

∙#defineN10

∙intmain()

∙{

∙inti,j,min,temp;

∙inta[N]={5,4,3,2,1,9,8,7,6,0};

∙printf("\nThearrayis:

\n");/*?

?

?

?

?

?

?

?

?

?

?

?

*/

∙for(i=0;i

∙printf("%5d",a[i]);

∙for(i=0;i

∙{

∙min=i;

∙for(j=i+1;j

∙/******1******/

∙if(a[min]>=a[j]){

∙/******2******/

∙temp=a[min];a[min]=a[j];a[j]=temp;}/*?

?

?

?

?

?

?

?

*/

∙}

∙printf("\nThesortednumbers:

\n");/*?

?

?

?

?

?

?

?

?

?

?

?

*/

∙for(i=0;i

∙printf("%5d",a[i]);

∙printf("\n");

∙}

(二)程序填空

1,求最大公约数

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入m、n(要求输入数均大于0),输出它们的最大公约数。

#include

voidmain()

{intm,n,k;

while(scanf("%d%d",&m,&n),_______1______);

for(____2____;n%k!

=0||m%k!

=0;k--);

printf("%d\n",k);

}

∙#include

∙voidmain()

∙{intm,n,k;

∙while(scanf("%d%d",&m,&n)!

=EOF&&m<=0||n<=0);

∙{for(k=m;n%k!

=0||m%k!

=0;k--);

∙printf("%d\n",k);

∙}

∙}

2,分别统计字符串中各字符

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

分别统计字符串中英文字母、数字和其他字符出现的次数。

#include

#include

voidmain()

{chara[80];intn[3]={0},i;

gets(a);

for(i=0;a[i]!

='\0';i++)

{if(/*-------1---------*/)/*统计字母个数*/

n[0]++;

elseif(/*------2------*/)/*统计数字个数*/

n[1]++;

else

n[2]++;

}

for(i=0;i<3;i++)printf(/*------3------*/);

}

∙#include

∙#include

∙intmain()

∙{chara[80];intn[3]={0},i;

∙gets(a);

∙for(i=0;a[i]!

='\0';i++)

∙{if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')

∙n[0]++;

∙elseif(a[i]>='0'&&a[i]<='9')

∙n[1]++;

∙else

∙n[2]++;

∙}

∙for(i=0;i<3;i++)printf("%d\n",n[i]);

∙}

3,求相邻两元素和

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。

例如:

b[1]=a[1]+a[0],…………,b[9]=a[9]+a[8]。

#include

voidmain()

{

inta[10],b[10],i;

printf("\nInput10numbers:

");

for(i=0;i<10;i++)/*数组输入*/

scanf("%d",&a[i]);

for(i=1;i<10;i++)

b[i]=_______1_____;/*计算b数组中的元素*/

for(i=1;i<10;i++)

{

printf("%3d",b[i]);

if(_____2_______)printf("\n");/*每行打印3个数据*/

}

}

∙#include

∙voidmain()

∙{

∙inta[10],b[10],i;

∙printf("\nInput10numbers:

");

∙for(i=0;i<10;i++)

∙scanf("%d",&a[i]);

∙for(i=1;i<10;i++)

∙b[i]=a[i]+a[i-1];

∙for(i=1;i<10;i++)

∙{

∙printf("%3d",b[i]);

∙if(i%3==0)printf("\n");

∙}

∙}

4求数字和

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include

#include

voidmain()

{

intn,s=0;

scanf("%d",&n);

______1______

while(n!

=0){

______2______

n=n/10;

}

printf("%d\n",s);

}

∙#include

∙#include

∙voidmain()

∙{

∙intn,s=0;

∙scanf("%d",&n);

∙if(n<0){n=-n;}

∙while(n!

=0){

∙s=s+n%10;

∙n=n/10;

∙}

∙printf("%d\n",s);

∙}

5,求整数位数

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。

#include

voidmain()

{intn,k=0;

scanf("%d",&n);

while(n!

=0){

k++;

n=n/10;

}

printf("%d\n",k);

}

∙#include

∙voidmain()

∙{intn,k=0;

∙scanf("%d",&n);

∙while(n!

=0){

∙k++;

∙n=n/10;

∙}

∙printf("%d\n",k);

∙}

6,数列2项和

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

数列的第1、2项均为1,此后各项值均为该项前二项之和。

计算数列第30项的值。

#include

longf(intn);

voidmain()

{

printf("%ld\n",_____1____);

}

longf(intn)

{

if(_______2______)

return1;

else

return______3_____;

}

∙#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1