计算机二级C语言题库.docx

上传人:b****5 文档编号:12191383 上传时间:2023-04-17 格式:DOCX 页数:79 大小:47.50KB
下载 相关 举报
计算机二级C语言题库.docx_第1页
第1页 / 共79页
计算机二级C语言题库.docx_第2页
第2页 / 共79页
计算机二级C语言题库.docx_第3页
第3页 / 共79页
计算机二级C语言题库.docx_第4页
第4页 / 共79页
计算机二级C语言题库.docx_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

计算机二级C语言题库.docx

《计算机二级C语言题库.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言题库.docx(79页珍藏版)》请在冰豆网上搜索。

计算机二级C语言题库.docx

计算机二级C语言题库

二级C语言上机考试复习题库

一、考试题型:

1、程序填空题18分

2、程序改错题18分

3、编程题24分

二、考试时间:

90分钟

四、上机调试环境:

机试C语言的调试环境是VC++6.0。

五、题型类型

1、数值计算(阶乘、求和、求积、数的合并与分解)

2、求素数、偶数、奇数、公约数类型

3、函数调用(递归调用、函数类型等)

4、排序类型(换排序,选择排序、冒泡排序、插入排序)

5、字符串类型(数值转换、位置变换,排序)

6、结构链表类型

7、文件类型

五、上机典型例题

(一)填空题

1.填空题一般是两空或三空,切记!

填完空后,要将下画线删除,得到正确结果后,一定不要忘记把修改后将程序保存。

例1(常考题):

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

计算并输出n(包括n)以内能被3或7整除的所有自然数的倒数之和。

例如,在主函数中输入50,输出为:

s=1.425889。

注意:

部分源程序已给出。

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

仅在fun函数的横线上填入。

#include

doublefun(intn)

{

inti;

doublesum=0.0;

for(i=1;___1___;i++)

if(i%3==0___2___i%7==0)

sum+=___3___/i;

returnsum;}

main()

{intn;

doubles;

printf("\nInputn:

");

scanf("%d",&n);

s=fun(n);

printf("\n\ns=%f\n",s);}

例2(常考题)给定程序中,函数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));

}

例3在主函数中从键盘输入若干个数放入数组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);}

例4.(常考题)给定程序中,函数的功能是计算并输出high以内最大的10个素数之和。

High由主函数传给fun函数。

若high的值为100,则函数的值为732。

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

注意:

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

#include

#include

intfun(inthigh)

{intsum=0,n=0,j,yes;

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

while((high>=2)&&___1___)

{

yes=1;

for(j=2;j<=high/2;j++)

if(high%j==0)

{

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

yes=0;___2___;

}

if(yes){sum+=high;n++;}

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

___3___;

}

returnsum;

}

main()

{

printf("%d\n",fun(100));}

例5(常考题)请补充fun函数,fun函数的功能是:

寻找两个整数之间的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。

例如,输入3和17,输出为:

3、5、7、11、13、17。

注意:

部分源程序已给出。

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

仅在fun函数的横线上填入。

(类似题目有15道)

#include

#include

#defineN1000

intfun(intn,intm,intbb[N])

{inti,j,k=0,flag;

for(j=n;j<=m;j++)

{

___1___;

for(i=2;i

if(___2___)

{

flag=0;

break;

}

if(___3___)

bb[k++]=j;}

returnk;}

main()

{intn=0,m=0,i,k;

intbb[N];

printf("Inputn\n");

scanf("%d",&n);

printf("Inputm\n");

scanf("%d",&m);

for(i=0;i

bb[i]=0;

k=fun(n,m,bb);

for(i=0;i

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

}

例6(常考题):

请在fun函数的横线上填写若干表达式,使从键盘输入一个整数n,输出斐纳契数列,斐纳契数列一种整数数列,其中每数等于前面两数之和,如01123813……。

注意:

部分源程序已给出。

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

仅在fun函数的横线上填入。

(类似题目有7道)

#include

intfun(intn);

main()

{inti,n=0;

scanf("%d",&n);

for(i=0;i

printf("%d",fun(i));}

intfun(intn)

{if(___1___)

return0;

elseif(___2___)

return1;

else

return___3___;}

例7(常考题):

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

将形参n中各位上为偶数的数取出,按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。

例如,从主函数输入一个整数27638496,函数返回值为26846。

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

注意:

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

(此类题型有6道)

#include

unsignedlongfun(unsignedlongn)

{unsignedlongx=0,s,i;

intt;

s=n;

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

i=1;

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

while

(2)

{t=s%10;

if(t%2==0)

{/**********found**********/

x=x+t*i;i=3;}

s=s/10;}

returnx;}

main()

{unsignedlongn=-1;

while(n>99999999||n<0)

{printf("input(0

");

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

printf("\nTheresultis:

%ld\n",fun(n));}

例8(常考题):

给定程序的功能是十进制正整数m转换成k进制(2<=k<=9)数的数字输出,若输入8和2,则输出1000(即十进制8转换成二进制表示为1000)。

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

不得删行或减行,也不得更改程序结构。

(此类型有3道)

#include

voidfun(intm,intk)

{intaa[20],i;

for(i=0;m;i++){

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

aa[i]=___1___;

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

___2___;}

for(;i;i--)

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

printf("%d",___3___);}

main()

{intb,n;

printf("\nPleaseenteranumberandabase:

\n");

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

fun(n,b);}

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

把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]中,把奇数从数组中删除,偶数个数通过函数值返回。

例如a所指数组中数据最初排列为:

9、1、4、2、3、6、5、8、7,删除奇数后a所指数组的数据为:

2、4、6、8,返回值为4。

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

不得删行或减行,也不得更改程序结构。

#include

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

for(i=0;i

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

if(___1___==0){

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

___2___=a[i];j++;

}

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

return___3___;}

main()

{intb[N]={9,1,4,2,3,6,5,8,7},i,n;

printf("\nTheoriginaldata:

\n");

for(i=0;i

printf("\n");

n=fun(b,N);

printf("\nThenumberofeven:

%d\n",n);

printf("\nTheeven:

\n");

for(i=0;i

printf("\n");}

例10(常考题)程序填空题:

给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。

规定在第2处使f指向函数f1,在第3处使f指向函数f2。

当调用正确时,程序输出:

x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000

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

注意:

源程序已给出。

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

#include

doublef1(doublex)

{returnx*x;}

doublef2(doublex,doubley)

{returnx*y;}

doublefun(doublea,doubleb)

{

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

___1___(*f)();

doubler1,r2;

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

f=___2___;/*pointfountionf1*/

r1=f(a);

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

f=___3___;/*pointfountionf2*/

r2=(*f)(a,b);

returnr1+r2;

}

main()

{

doublex1=5,x2=3,r;

r=fun(x1,x2);

printf("x1=%f,x2=%f,x1*x1+x1*x2=%f\n",x1,x2,r);

}

例11(常考题):

给定程序的功能是:

将未在字符串s中出现,而在字符串t中出现的字符,构成一个新字符串放在u中,u中的字符按原字符串中字符顺序排列,去掉重复字符。

例如:

当s=“12345”,t=“24677”时,u中的字符串为:

“67”。

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

注意:

不得增行或删行,也不得更改程序的结构.(此类型有15道)

#include

#include

voidfun(char*s,char*t,char*u)

{inti,j,sl,tl,k,ul=0;

sl=strlen(s);

tl=strlen(t);

for(i=0;i

{for(j=0;j

if(t[i]==s[j])

break;

if(j>=sl)

{for(k=0;k

if(t[i]==u[k])

___1___;

if(k>=ul)

u[ul++]=___2___;}}

__3___='\0';}

main()

{chars[100],t[100],u[100];

printf("\nPleaseenterstrings:

");

scanf("%s",s);

printf("\nPleaseenterstringt:

");

scanf("%s",t);

fun(s,t,u);

printf("Theresultis:

%s\n",u);}

例12(结构类常考题):

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。

函数fun功能是:

找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定的编号不存在,返回数据中编号为空串。

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

不得删行或减行,也不得更改程序结构。

此类型有7道

#include

#include

#defineN8

typedefstruct

{charnum[10];

intyear,month,day;

}STU;

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

___1___fun(STU*std,char*num)

{inti;STUa={"",9999,99,99};

for(i=0;i

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

if(strcmp(___2___,num)==0)

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

return___3____;

returna;}

main()

{STUstd[N]={{"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},{"777777",1983,6,22},{"888888",1984,8,19}};

STUp;charn[10]="666666";

p=fun(std,n);

if(p.num[0]==0)

printf("\nNotfound!

\n");

else

{printf("\nSucceed!

\n");

printf("%s%d-%d-%d\n",p.num,p.year,p.month,p.day);

}}

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

函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。

例如:

a所指变量s中的学号、姓名、和三门课的成绩依次是:

10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:

10002、"LiSi"、96、81、89。

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

注意:

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

#include

#include

structstudent

{longsno;

charname[10];

floatscore[3];};

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

1fun(structstudent*a)

{inti;

a->sno=10002;

strcpy(a->name,"LiSi");

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

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

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

return3;}

main()

{structstudents={10001,"ZhangSan",95,80,88},*t;

inti;

printf("Theoriginaldata:

\n");

printf("No:

%ldName:

%s\nScores:

",s.sno,s.name);

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

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

printf("\n");

t=fun(&s);

printf("Thedataaftermodified:

\n");

printf("No:

%ldName:

%s\nScores:

",t->sno,t->name);

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

printf("%6.2f",t->score[i]);

printf("\n");}

例14(常考题)请补充main函数,该函数的功能是:

先以只读方式打开文件out.dat,再把字符串str中的字符保存到这个磁盘文件中。

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

注意:

不得增行或删行,也不得更改程序的结构.(此类型有9道)

#include

#include

#defineN80

main()

{FILE*fp;

inti=0;

charch;

charstr[N]="I'mastudents!

";

if((fp=fopen(“out.dat”,”1”))==NULL)

{printf("cannotopenout52.dat\n");

exit(0);}

while(str[i])

{ch=str[i];

fputc(ch,2);

putchar(ch);

i++;}

3;}

15.程序填空题(常考题)函数的功能是:

把文本文件B中的内容追加到文本文件A的内容之后。

例如,文件B的内容为“I’mten.”,文件A的内容为“I’mastudent!

”,追加之后文件A的内容为“I’mastudent!

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

注意:

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

#include

#include

#include

#defineN80

main()

{

FILE*fp,*fp1,*fp2;

inti;

charc[N],t,ch;

system("cls");

if((fp=fopen("A.dat","r"))==NULL)

{printf("fileAcannotbeopened\n");

exit(0);}

printf("Acontentsare:

\n");

for(i=0;(ch=fgetc(fp))!

=EOF;i++)

{c[i]=ch;putchar(c[i]);}

fclose(fp);

if((fp=fopen("B.dat","r"))==NULL)

{printf("fileBcannotbeopened\n");

exit(0);

}

printf("Bcontentsare:

\n");

for(i=0;(ch=fgetc(fp))!

=EOF;i++)

{c[i]=ch;putchar(c[i]);}

fclose(fp);

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

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

当前位置:首页 > 表格模板 > 合同协议

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

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