二级C语言上机题库内部资料.docx

上传人:b****4 文档编号:6347820 上传时间:2023-05-09 格式:DOCX 页数:426 大小:123.12KB
下载 相关 举报
二级C语言上机题库内部资料.docx_第1页
第1页 / 共426页
二级C语言上机题库内部资料.docx_第2页
第2页 / 共426页
二级C语言上机题库内部资料.docx_第3页
第3页 / 共426页
二级C语言上机题库内部资料.docx_第4页
第4页 / 共426页
二级C语言上机题库内部资料.docx_第5页
第5页 / 共426页
二级C语言上机题库内部资料.docx_第6页
第6页 / 共426页
二级C语言上机题库内部资料.docx_第7页
第7页 / 共426页
二级C语言上机题库内部资料.docx_第8页
第8页 / 共426页
二级C语言上机题库内部资料.docx_第9页
第9页 / 共426页
二级C语言上机题库内部资料.docx_第10页
第10页 / 共426页
二级C语言上机题库内部资料.docx_第11页
第11页 / 共426页
二级C语言上机题库内部资料.docx_第12页
第12页 / 共426页
二级C语言上机题库内部资料.docx_第13页
第13页 / 共426页
二级C语言上机题库内部资料.docx_第14页
第14页 / 共426页
二级C语言上机题库内部资料.docx_第15页
第15页 / 共426页
二级C语言上机题库内部资料.docx_第16页
第16页 / 共426页
二级C语言上机题库内部资料.docx_第17页
第17页 / 共426页
二级C语言上机题库内部资料.docx_第18页
第18页 / 共426页
二级C语言上机题库内部资料.docx_第19页
第19页 / 共426页
二级C语言上机题库内部资料.docx_第20页
第20页 / 共426页
亲,该文档总共426页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级C语言上机题库内部资料.docx

《二级C语言上机题库内部资料.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库内部资料.docx(426页珍藏版)》请在冰点文库上搜索。

二级C语言上机题库内部资料.docx

二级C语言上机题库内部资料

2011年3月最新计算机二级C语言题库

(根据等考通最新版本自己整理)

第一套

1.程序填空题

在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。

下列给定程序中,函数fun的功能是:

输出数组元素中小于平均值的元素。

例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构!

#include

#include

voidfun(___1___,intn)

{

doublecount=0.0;

doubleaverage=0.0;

inti=0;

for(i=0;i

___2___;

average=___3___;

for(i=0;i

if(a[i]

{

if(i%5==0)

printf("\n");

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

}

}

main()

{

inta[1000];

inti=0;

printf("\nPleaseenterdatas(endwith0):

");

do

{

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

}while(a[i++]!

=0);

fun(a,i-1);

}【答案】

(1)inta[]

(2)count+=a[i]或count=count+a[i](3)count/n

2.程序修改题

给定程序中,函数fun的功能是:

根据整型形参m,计算如下公式的值:

y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)

例如:

若m中的值为5,则应输出1.463611。

请改正程序中的错误,使其能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

doublefun(intm)

{

doubley=1.0;

intI;

/**********found**********/

for(i=2;i

/**********found**********/

y+=1/(i*i);

return(y);

}

main()

{

intn=5;

printf("\nTheresultis%lf\n",fun(n));

}【答案】

(1)将for(i=2;i

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

(2)将y+=1/(i*i);改为:

y+=1.0/(i*i);

3.程序设计题

函数fun的功能是:

将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为“ABCDEFG123456”,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。

最后,t所指的数组中的内容应是“246”。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

voidfun(char*s,chart[])

{

}

main()

{

chars[100],t[100];

printf("\nPleaseenterstringS:

");

scanf("%s",s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}【答案】

voidfun(char*s,chart[])

{

intk,n=0;

for(k=0;k

if(k%2==0&&s[k]%2==0)

t[n++]=s[k];

t[n]='\0';

}

第二套

1.程序填空题

给定程序中,函数fun的功能是:

找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构!

#include

#defineN4

voidfun(int(*a)[N],int*b)

{

intI,j;

for(i=0;i

{

/**********found**********/

b[i]=___1___;

for(j=1;j

/**********found**********/

if(b[i]___2___a[j][i])

b[i]=a[j][i];

}

}

main()

{

intx[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],I,j;

printf("\nThematrix:

\n");

for(i=0;i

{

for(j=0;j

printf("%4d",x[i][j]);

printf("\n");

}

/**********found**********/

fun(___3___);

printf("\nTheresultis:

");

for(i=0;i

printf("\n");

}【答案】

(1)a[0][i]

(2)<=或<(3)x,y

2.程序修改题

给定程序中,函数fun的功能是:

求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

例如,当字符串中的内容为“abcdabfabcdx”、t中的内容为“ab”时,输出结果应是abcdx。

当字符串中的内容为“abcdabfabcdx”、t中的内容为“abd”时,则程序输出未找到信息notbefound!

请改正程序中的错误,使其能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

char*fun(char*s,char*t)

{

char*p,*r,*a;

/**********found**********/

a=Null;

while(*s)

{

p=s;r=t;

while(*r)

/**********found**********/

if(r==p)

{r++;p++;}

elsebreak;

if(*r=='\0')a=s;

s++;

}

returna;

}

main()

{

chars[100],t[100],*p;

printf("\nPleaseenterstringS:

");

scanf("%s",s);

printf("\nPleaseentersubstringt:

");

scanf("%s",t);

p=fun(s,t);

if(p)printf("\nTheresultis:

%s\n",p);

elseprintf("\nNotfound!

\n");

}【答案】

(1)将a=Null;改为:

a=NULL;

(2)将if(r==p)改为:

if(*r==*p)

3.程序设计题

编写函数fun,它的功能是:

利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。

Yn+1=cos(yn)

迭代步骤如下:

(1)取y1初值为0.0。

(2)y0=y1,把y1的值赋给y0。

(3)y1=cos(y0),求出一个新的y1。

(4)若y0-y1的绝对值小于0.000001,则执行步骤(5),否则执行步骤

(2)。

(5)所求y1就是方程cos(x)-y=0的一个实根,作为函数值返回。

程序将输出结果Result=0.739085。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。

#include

#include

#include

floatfun()

{

}

main()

{

FILE*out;

floatcos=fun();

printf("Result=%f\n",cos);

out=fopen("outfile.dat","w");

fprintf(out,"%f",cos);

fclose(out);

}【答案】

floaty1=0.0,y0;

do

{

y0=y1;

y1=cos(y0);

}

while(fabs(y0-y1)>=1e-6);

returny1;

第三套

1.程序填空题

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

所有学生数据均以二进制方式输出到student.dat文件中。

函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构!

#include

#defineN5

typedefstructstudent

{longsno;

charname[10];

floatscore[3];

}STU;

voidfun(char*filename,longsno)

{

FILE*fp;

STUn;intI;

fp=fopen(filename,"rb+");

/**********found**********/

while(!

___1___)

{

fread(&n,sizeof(STU),1,fp);

/**********found**********/

if(n.sno___2___)break;

}

if(!

feof(fp))

{

for(i=0;i<3;i++)n.score[i]+=3;

/**********found**********/

fseek(fp,1L*___3___,SEEK_CUR);

fwrite(&n,sizeof(STU),1,fp);

}

fclose(fp);

}

main()

{

STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}},ss[N];

intI,j;FILE*fp;

fp=fopen("student.dat","wb");

fwrite(t,sizeof(STU),N,fp);

fclose(fp);

printf("\nTheoriginaldata:

\n");

fp=fopen("student.dat","rb");

fread(ss,sizeof(STU),N,fp);

fclose(fp);

for(j=0;j

{

printf("\nNo:

%ldName:

%-8sScores:

",

ss[j].sno,ss[j].name);

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

printf("%6.2f",ss[j].score[i]);

printf("\n");

}

fun("student.dat",10003);

fp=fopen("student.dat","rb");

fread(ss,sizeof(STU),N,fp);

fclose(fp);

printf("\nThedataaftermodifying:

\n");

for(j=0;j

{

printf("\nNo:

%ldName:

%-8sScores:

",

ss[j].sno,ss[j].name);

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

printf("%6.2f",ss[j].score[i]);

printf("\n");

}

}【答案】

(1)feof(fp)

(2)==sno(3)sizeof(STU)

2.程序修改题

给定程序中,函数fun的功能是:

计算正整数num的各位上的数字之积。

例如,若输入252,则输出应该是20;若输入202,则输出应该是0。

请改正程序中的错误,使其能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

longfun(longnum)

{【答案】

(1)将longk;改为:

longk=1;或longk;k=1;

(2)将num\=10;改为:

num/=10;3.程序设计题

程序定义了N×N的二维数组,并在主函数中自动赋值。

请编写函数fun(inta[][N],intn),函数的功能是:

使N×N的二维数组左下三角元素中的值乘以n。

例如:

若n的值为3,a数组中的值为:

197

238

456

则返回主程序后a数组中的值应为:

397

698

121518

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

#defineN5

intfun(inta[][N],intn)

{

}

main()

{

inta[N][N],n,I,j;

printf("***Thearray***\n");

for(i=0;i

{

for(j=0;j

{

a[i][j]=rand()%10;

printf("%4d",a[i][j]);}

printf("\n");

}

don=rand()%10;while(n>=3);

printf("n=%4d\n",n);

fun(a,n);

printf("***THERESULT***\n");

for(i=0;i

{

for(j=0;j

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

printf("\n");

}

}【答案】

intfun(inta[][N],intn)

{

intj,k;

for(j=0;j

for(k=0;k

a[j][k]*=n;

}

第四套

1.程序填空题

请补充函数fun,该函数的功能是:

统计所有小于等于x(x>2)的素数的个数,素数的个数作为函数值返回。

例如,输入x=20,结果:

2,3,5,7,11,13,17,19。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构!

#include

intfun(intx)

{

intI,j,count=0;

printf("\nTheprimenumberbetween2to%d\n",x);

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

{

for(___1___;j

if(___2___%j==0)

break;

if(___3___>=i)

{

count++;

printf(count%15?

"%5d":

"\n%5d",i);

}

}

returncount;

}

main()

{

intx=20,result;

result=fun(x);

printf("\nThenumberofprimeis:

%d\n",result);

}【答案】

(1)j=2

(2)i(3)j

2.程序修改题

给定程序中,函数fun的功能是:

依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

请改正程序中的错误,使其能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

voidfun(char*s)

{

intI,j;

for(i=0,j=0;s[i]!

='\0';i++)

if(s[i]>='0'&&s[i]<='9')

/**********found**********/

s[j]=s[i];

/**********found**********/

s[j]="\0";

}

main()

{

charitem[80];

printf("\nEnterastring:

");

gets(item);

printf("Thestringis:

%s\n",item);

fun(item);

printf("Thestringofchangingis:

%s\n",item);

}【答案】

(1)将s[j]=s[i];改为:

s[j++]=s[i];

(2)将s[j]="\0";改为:

s[j]='\0';3.程序设计题

请编写函数fun,它的功能是:

计算n门课程的平均分,计算结果作为函数值返回。

例如,若有5门课程的成绩是90.5、72、80、61.5、55,则函数的值为:

71.80。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

floatfun(float*a,intn)

{

 

}

main()

{

floatscore[30]={90.5,72,80,61.5,55},

aver;

aver=fun(score,5);

printf("Averagescoreis:

%5.2f\n",

aver);

}【答案】

floatfun(float*a,intn)

{

floats=0.0;

intI;

for(i=0;i

s+=a[i];

returns/n;

}

第五套

1.程序填空题

给定程序中,函数fun的功能是:

计算下式前n项的和作为函数值返回:

S=1*3/2*2+3*5/4*4+5*7/6*6+…+(2n-1)*(2n+2)/

(2n)*(2n)

例如:

当行参n的值为10时,函数返回9.612558。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

部分源程序已给出。

不得增行或删行,也不得更改程序的结构!

#include

doublefun(intn)

{

intI;doubles,t;

/**********found**********/

s=___1___;

/**********found**********/

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

{

t=2.0*I;

/**********found**********/

s=s+(2.0*i-1)*(2.0*i+1)/___3___;

}

returns;

}

main()

{

intn=-1;

while(n<0)

{

printf("Pleaseinput(n>0):

");

scanf("%d",&n);

}

printf("Theresultis:

%f\n",fun(n));

}【答案】

(1)0

(2)n(3)(t*t)

2.程序修改题

在给定程序中,fun函数的功能是:

将n个无序整数从小到大排序。

请改正程序中的错误,使其能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

fun(intn,int*a)

{

intI,j,p,t;

for(j=0;j

{

p=j;

/**********found**********/

for(i=j+1;i

if(a[p]>a[i])

/**********found**********/

t=I;

if(p!

=j)

{t=a[j];a[j]=a[p];a[p]=t;}

}

}

putarr(intn,int*z)

{

intI;

for(i=1;i<=n;i++,z++)

{

printf("%4d",*z);

if(!

(i%10))printf("\n");

}

printf("\n");

}

main()

{

intaa[20]={9,3,0,4,1,2,5,6,8,10,7},

n=11;

printf("Beforesorting%dnumbers:

\n",n);

putarr(n,aa);

fun(n,aa);

printf("Aftersorting%dnumbers:

\n",n);

putarr(n,aa);

}【答案】

(1)将for(i=j+1;i

for(i=j+1;i

(2)将t=i;改为:

p=i;3.程序设计题

请编写一个函数unsignedfun(unsignedn),n是一个大于10的无符号整数,若n是m(m≥2)位的整数,则函数求出n的后m-1位的数作为函数值返回。

例如,若n的值为1234,则fun()函数值为234。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。

#include

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2