全国计算机等级考试C程序设计上机操试题及答案.docx

上传人:b****6 文档编号:7789535 上传时间:2023-01-26 格式:DOCX 页数:51 大小:33.35KB
下载 相关 举报
全国计算机等级考试C程序设计上机操试题及答案.docx_第1页
第1页 / 共51页
全国计算机等级考试C程序设计上机操试题及答案.docx_第2页
第2页 / 共51页
全国计算机等级考试C程序设计上机操试题及答案.docx_第3页
第3页 / 共51页
全国计算机等级考试C程序设计上机操试题及答案.docx_第4页
第4页 / 共51页
全国计算机等级考试C程序设计上机操试题及答案.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试C程序设计上机操试题及答案.docx

《全国计算机等级考试C程序设计上机操试题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试C程序设计上机操试题及答案.docx(51页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试C程序设计上机操试题及答案.docx

全国计算机等级考试C程序设计上机操试题及答案

第二部份C程序设计上机操作题

一、数列求和

1、程序调试题

试题一

该程序功能:

输入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;//++i--→i++

s+=t;

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

}while(fabs(t)=

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

}

试题二

该程序功能:

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

3+33+333+3333+33333+

#include

voidmain()

{inti,a,n;longt=0;

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

s=0;//s=0--→longs=0

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

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

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

t=t*10+i;//i-→1

s=s+t;

}

s=s*a;

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

}

试题三

该程序功能:

输入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;//++i----→i++

s+=t;

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

}while(fabs(t)=

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

}

2、程序填空题

试题一

在考生目录下,有Modify.c程序,该程序中“N”是根据程序功能需要填充部分,请完成程序填充(注意:

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

该程序功能:

调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

#include

floatf(float,float*,int);

voidmain()

{floatb[5]={1.1,2.2,3.3,4.4,5.5};

printf(“%f\n”,f(1.7,b,5));

}

floatf

(1)//floatf(floatx,floata[],intn)

{floaty=a[0],t=1;inti;

for(i=1;i

2;//returny

}

3、程序设计题

试题一

设计程序:

计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+……的值,并将其值以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{

FILE*p;

inti;floatx=2.345,t=1.0,y=0.0;

floata[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};

//*考生在这里添加代码

p=fopen(“design.dat”,”w”);

y=a[0];

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

{

t=t*x;

y=y+a[i]*sin(t);

}

fprintf(p,”%.6f”,y);

fclose(p);

}

试题二

计程序:

计算多项式a0-a1*x+a2*x*x/2!

-a3*x*x*x/3!

+...的值,并将其以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{FILE*p;intI;floatx=1.279,t,y;

floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};

/*考生在这里添加代码

p=fopen(“design.dat”,”w”);

t=1;

y==a[0];

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

{t=t*x/I;

y=y+a[I]*t;

}

fprinf(p,”%f”,y);

fclose(p);

}

试题三

设计程序:

计算表达式1+2!

+3!

+...+12!

的值,并将计算结果以格式"%ld"写入到考生目录中Paper子目录下的新建文件design.dat中

#include

voidmain()

{FILE*p;longs=1,k=1;inti;

//考生在这里添加代码

p=fopen("design.dat","w");

for(i=2;i<13;i++)

{k=i*k;

s=s+k;

}

fprintf(p,"%ld\n",s);

fclose(p);

}

试题四

设计程序:

计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{FILE*p;inti;floatx=1.279,t=1,y=0;

floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};

//考生在这里添加代码

p=fopen("design.dat","w");

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

{y=y+t*a[i];

t=t*x;

}

fprintf(p,"%f",y);

fclose(p);

}

试题五

设计程序:

计算2的平方根、3的平方根、...、10的的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\n"写到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{FILE*p;

//考生在这里添加代码

inti;

floats=0;

p=fopen("design.dat","w");

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

s=s+sqrt(i);

fprintf(p,"%f",s);

fclose(p);

}

试题六

设计程序:

数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,并以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{FILE*p;floats=0,a=81,i;

//考生在这里添加代码

p=fopen("design.dat","w");

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

{s=s+a;

a=sqrt(a);}

fprintf(p,"%f",s);

fclose(p);

}

试题七

在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。

#include

voidmain()

{FILE*p;

inti;

floata[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0;

//考生在这里添加代码

p=fopen("design.dat","w");

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

v=v+a[i]/10;

sum=0;

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

if(a[i]>v)

sum=sum+a[i];

fprintf(p,"%f",sum);

fclose(p);

}

试题八

设计程序:

利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。

(π/4的结果不包含此项)将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{

FILE*fp;

floatn=1,t=1,pi=0;

inti;

//考生在这里添加代码

p=fopen("design.dat","w");

while(1.0/t>=1e-6)

{pi=pi+n*1.0/t;

t=t+2;

n=-n;

}

pi=pi*4;

fprintf(p,"%.6f",pi);

fclose(p);

}

二、最大公约数、最小公倍数

1、程序调试题

试题一

该程序功能:

输入m、n(要求输入数均大于0,且m>=n),输出它们的最小公倍数。

#include

voidmain()

{intm,n,k;

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

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

//m<0&&n<0-→!

(m>0&&n>0&&m>=n)

for(k=m;k%n!

=0;)

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

k=k+n;//k=k+m或k=k+n

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

}

2、程序填空题

试题一

该程序功能:

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

#include

voidmain()

{intm,n,k;

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

(n>0&&m>0)

for(____2____;n%k!

=0||m%k!

=0;k--);//k=m或k=n

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

}

三、排序算法

1、程序调试题

试题一

该程序功能:

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

#include

#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])min=j;//<=----→>

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

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

}//j--→i

printf("\nThesortednumbers:

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

for(i=0;i

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

printf("\n");

}

2、程序设计题

该程序功能:

用冒泡法对10个整数按升序排序。

#include

#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

{

for(j=0;j

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

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

}

printf("\nThesortednumbers:

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

for(i=0;i

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

printf("\n");

四、数组

1、程序填空题

试题一

该程序功能:

输入数组x[7],调用函数f,去除数组中的负数,输出结果为:

1346

#include

voidf(int*a,int*m)

{inti,j;

for(i=0;i<*m;i++)

if(a[i]<0){

for(j=i--;j<*m-1;j++)a[j]=a[j+1];

_____1_____;//*m--

}

}

voidmain()

{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______;//f(x,&n)

for(i=0;i

printf("\n");

}

试题二

该程序功能:

函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:

4567123

#include

voidf(int*a,intn,intk)

{inti,j,t;

for(i=0;i

___1___;//t=a[0]

for(_______2________)a[j-1]=a[j];//j=1;j

a[n-1]=t;

}

}

voidmain()

{inti,x[7]={1,2,3,4,5,6,7};

f(x,7,3);

for(i=0;i<7;i++)printf("%5d",x[i]);printf("\n");

}

试题三

该程序功能:

调用函数f,求二维数组a中全体元素之和。

#include

floatf(_______1_______)//intx[],intm,intn

{floaty=0;inti,j;

for(i=0;i

returny;

}

voidmain()

{floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];

inti;

for(i=0;i<3;i++)b[i]=___2___;//a+i

printf("%.2f\n",f(b,3,4));

}

2、程序设计题

试题一

设计程序:

将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。

#include

voidmain()

{floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};

FILE*p;

/****以下要求考生写的代码****/

p=fopen(“design.dat”,”w”);

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

fprintf(p,"%10.6f",a[i][j]/a[i][i]);

fprintf(p,"\n");

}

fclose(p);

}

试题二

设计程序:

将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

voidmain()

{floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};

FILE*p;floatx;inti,j;

//考生在这里添加代码

for(i=0;i<3;i++)

{

x=0;

for(j=0;j<3;j++)

if(fabs(a[i][x])

x=j;

x=a[i][x];

for(j=0;j<3;j++)

a[i][j]=a[i][j]/x;

}

p=fopen("design.dat","w");

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

for(j=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]);

fprintf(p,"\n");

}

fclose(p);

}

五、求整数n的各位数字及各数字之和

1、程序调试题

试题一

该程序功能:

运行时输入整数n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。

#include

#include

voidmain()

{intn,s=0;

scanf("%d",&n);

n=fabs(n);

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

while(n>1){//n或n>0或n!

=0

s=s+n%10;

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

n=n%10;//%--→/

}

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

}

2、程序填空题

试题一

该程序功能:

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

#include

#include

voidmain()

{

intn,s=0;

scanf("%d",&n);

______1______//n=fabs(n);

while(n!

=0){

______2______//s=s+n%10

n=n/10;

}

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

}

试题二

该程序功能:

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

则输出5)。

#include

voidmain()

{intn,k=0;

scanf("%d",&n);

while(_____1_____){//n或n!

=0

k++;

_____2_____;//n=n/10

}

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

}

试题三

该程序功能:

调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;

若程序输入-34567,则输出-76543。

#include

#include

longf(longn)

{longm,y=0;m=fabs(n);

while(m!

=0){

y=y*10+m%10;

____1____//m=m/10;

}

if(n>=0)returny;

else_____2_____//return-y;

}

voidmain()

{

printf("%ld\t",f(12345));printf("%ld\n",f(-34567));

}

3、程序设计题

试题一

设计程序:

选出5000以下符合条件的自然数。

条件是:

千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。

计算并输出这些四位自然数的个数cnt及这些数字的和sum到考生目录中Paper子目录下的新建文件design.dat中。

#include

voidmain()

{

FILE*p;

intcnt,sum;

/*考生在这里添加代码

intI,q,b,s,g;

cnt=0;sum=0;

p=fopen(“design.dat”,”w”);

for(I=1000;I<5000;I++)

{g=I%10;s=I%100/10;b=I%1000/100;q=i/1000;

if(q+b==s+g&&q+b==(g-q)*10)

{cnt++;sum=sum+q+b+s+g;}

}

fprintf(p,"%d,%d",cnt,sum);

fclose(p);

}

六、平面上各点之间的距离

1、程序调试题

试题一

该程序功能:

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

#include

#include

#include

voidmain()

{

inti,n;

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

structaxy{floatx,y;}a;//a--→a[100]

scanf("%d",&n);

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

for(i=0;i

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

scanf("%f%f",a[i].x,a[i].y);//a[i].x-----.&a[i].xa[i].y-----.&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);

}

2、程序填空题

试题一

在考生目录下,有Modify.c程序,该程序中“N”是根据程序功能需要填充部分,请完成程序填充(注意:

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

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

当前位置:首页 > 求职职场 > 面试

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

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