全国计算机等级考试二级C语言上机考试题库及答案.docx

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

全国计算机等级考试二级C语言上机考试题库及答案.docx

《全国计算机等级考试二级C语言上机考试题库及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言上机考试题库及答案.docx(110页珍藏版)》请在冰点文库上搜索。

全国计算机等级考试二级C语言上机考试题库及答案.docx

全国计算机等级考试二级C语言上机考试题库及答案

1.填空

给定程序的功能是:

从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标记。

然后将文件的内容读出显示在屏幕上。

文件的读写分别有自定义函数ReadText和WriteText实现。

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

注意:

源程序存放在考生文件夹下的BLANK1.c中

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

main()

{FILE*fp;

if((fp=fopen("myfile4.txt","w"))==NULL)

{printf("openfail!

!

\n");exit(0);}

WriteText(fp);

fclose(fp);

if((fp=fopen("myfile4.txt","r"))==NULL)

{printf("openfail!

!

\n");exit(0);}

ReadText(fp);

fclose(fp);

}

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

voidWriteText(FILE___1___)

{charstr[81];

printf("\nEnterstringwith-1toend:

\n");

gets(str);

while(strcmp(str,"-1")!

=0){

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

fputs(___2___,fw);fputs("\n",fw);

gets(str);

}

}

voidReadText(FILE*fr)

{charstr[81];

printf("\nReadfileandoutputtoscreen:

\n");

fgets(str,81,fr);

while(!

feof(fr)){

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

printf("%s",___3___);

fgets(str,81,fr);

}

}

修改

给定程序MODI1.c中函数fun的功能是:

从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。

例如:

当s中的数为:

7654321时,t中的数为:

7531

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

注意:

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

#include

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

voidfun(longs,longt)

{longsl=10;

*t=s%10;

while(s>0)

{s=s/100;

*t=s%10*sl+*t;

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

sl=sl*100;

}

}

 

程序

函数fun的功能是:

将两个两位数的正整数a,b合并成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

例如:

a=45,b=12时,调用该函数后,c=1524.

注意:

部分源程序存在文件PROG1.C中。

数据文件IN.DAT中的数据不得修改。

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

2、B:

*fwstrstr

M:

long*tsl=sl*10;

P:

*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);

2.填空

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

将自然数1~10以及它们的平方根写到名为myfile3txt的文本文档中,然后再顺序读出显示在屏幕上。

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

注意:

源程序存放在考生文件夹下的BLANK1.c中

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

intfun(char*fname)

{FILE*fp;inti,n;floatx;

if((fp=fopen(fname,"w"))==NULL)return0;

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

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

fprintf(___1___,"%d%f\n",i,sqrt((double)i));

printf("\nSucceed!

\n");

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

___2___;

printf("\nThedatainfile:

\n");

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

if((fp=fopen(___3___,"r"))==NULL)

return0;

fscanf(fp,"%d%f",&n,&x);

while(!

feof(fp))

{printf("%d%f\n",n,x);fscanf(fp,"%d%f",&n,&x);}

fclose(fp);

return1;

}

修改

给定程序MODI1.c中fun函数的功能是:

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

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;}

}

}

程序

函数fun的功能是:

将两个两位数的正整数a,b合并成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

例如:

a=45,b=12时,调用该函数后,c=2514

注意:

部分源程序存在文件PROG1.C中。

数据文件IN.DAT中的数据不得修改。

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

3、B:

fpfclose(fp)fname

M:

i

P:

*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);

3.填空

给定程序的功能是:

调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0,在复制的过程中,把复制的内容输出到终端屏幕。

主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中

intfun(char*source,char*target)

{FILE*fs,*ft;charch;

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

if((fs=fopen(source,___1___))==NULL)

return0;

if((ft=fopen(target,"w"))==NULL)

return0;

printf("\nThedatainfile:

\n");

ch=fgetc(fs);

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

while(!

feof(___2___))

{putchar(ch);

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

fputc(ch,___3___);

ch=fgetc(fs);

}

fclose(fs);fclose(ft);

printf("\n\n");

return1;

}

 

修改

给定程序MODI1.C中函数fun的功能是:

将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如:

当s中的数为:

87653142时,t中的数为:

8642

voidfun(longs,long*t)

{intd;

longsl=1;

*t=0;

while(s>0)

{d=s%10;

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

if(d%2=0)

{*t=d*sl+*t;

sl*=10;

}

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

s\=10;

}

}

程序

函数fun的功能是:

将两个两位数的正整数a,b合并成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

例如:

a=45,b=12时,调用该函数后,c=5142

注意:

部分源程序存在文件PROG1.C中。

数据文件IN.DAT中的数据不得修改。

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

4、B:

“r”fsft

M:

(d%2==0)s/=10;

P:

*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);

4.填空

给定程序中已建立一个带有头结点的单向链表,链表中的各节点按结点数据域中的数据递增有序链表。

函数fun的功能是:

把形参x的值放入一个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SLIST*h,intx)

{SLIST*p,*q,*s;

s=(SLIST*)malloc(sizeof(SLIST));

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

s->data=___1___;

q=h;

p=h->next;

while(p!

=NULL&&x>p->data){

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

q=___2___;

p=p->next;

}

s->next=p;

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

q->next=___3___;

}

修改

给定程序MODI1.C中函数fun的功能是:

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

例如,若输入:

252,则输入应该是:

20.若输入:

202,则输出应该是:

0.

longfun(longnum)

{

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

longk;

do

{k*=num%10;

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

num\=10;

}while(num);

return(k);

}

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

它的功能是:

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

例如:

若有5门课程的成绩是:

90.5,72,80,61.5,55

则函数的值为:

71.80

5、B:

xps

M:

longk=1;num/=10;

P:

inti;floatave=0.0;for(i=0;i

5.填空

给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,没调用一次fun函数,输出链表尾部结点中的数据,并释放该节点,是链表缩短。

voidfun(SLIST*p)

{SLIST*t,*s;

t=p->next;s=p;

while(t->next!

=NULL)

{s=t;

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

t=t->___1___;

}

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

printf("%d",___2___);

s->next=NULL;

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

free(___3___);

}

修改

给定程序MODI1.C中函数fun的功能是:

将字符串中的字符按逆序输出,单补改变字符串中的内容。

例如,若字符串味abcd,则应输出:

dcba

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

fun(chara)

{if(*a)

{fun(a+1);

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

printf("%c"*a);

}

}

程序

请编写一个函数fun,他的功能是:

比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符串长度相同,则返回第一个字符串。

例如,输入beijingshanghai为回车键),函数将返回shanghai

6、B:

nextt->datat

M:

fun(char*a)printf("%c",*a);

P:

inti;char*p=s,*q=t;

for(i=0;*p&&*q;i++)

{

p++;q++;

}

if(*p==0&&*q==0)returns;

if(*p)returns;elsereturnt;

6.填空

给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序连接。

函数fun的功能是:

删除链表中数据域值相同的结点,使之只保留一个

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SLIST*h)

{SLIST*p,*q;

p=h->next;

if(p!

=NULL)

{q=p->next;

while(q!

=NULL)

{if(p->data==q->data)

{p->next=q->next;

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

free(___1___);

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

q=p->___2___;

}

else

{p=q;

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

q=q->___3___;

}

}

}

}

修改

给定程序MODI1.C中函数fun的功能是:

用选择法对数组中的n个元素按从小到大的顺序进行排序。

voidfun(inta[],intn)

{inti,j,t,p;

for(j=0;j

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

p=j

for(i=j;i

if(a[i]

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

p=j;

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

}

}

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

求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

例如,若传3送给m的之位50,则程序输出:

711142122183335424449

答案:

7、B:

qnextnext

M:

p=j;p=i;

P:

inti;*n=0;

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

if((i%7==0)||(i%11==0))a[(*n)++]=i;

7.填空

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

在带有头结点的单向链表中,查找数据域中值为ch的结点。

找到后通过函数值返回改结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(char*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;intn=0;

p=h->next;

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

while(p!

=___1___)

{n++;

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

if(p->data==ch)return___2___;

elsep=p->next;

}

return0;

}

修改

给定程序MODI1.C中函数fun的功能是:

删除p所指字符串中的所有空白字符(包括制表符,回车符及换行符)

输入字符串是用“#”结束输入。

fun(char*p)

{inti,t;charc[80];

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

For(i=0,t=0;p[i];i++)

if(!

isspace(*(p+i)))c[t++]=p[i];

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

c[t]="\0";

strcpy(p,c);

}

程序

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

将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)

例如:

若输入“abc4EFg”,则应输出“aBc4Efg”。

答案:

8、B:

NULLnhead,ch

M:

forc[t]='\0';

P:

inti;for(i=1;i='a'&&ss[i]<='z')ss[i]-=32;

8.填空

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

统计出带有头结点的单向链表中的个数,存放在形参n所指的存储单元中。

voidfun(SLIST*h,int*n)

{SLIST*p;

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

___1___=0;

p=h->next;

while(p)

{(*n)++;

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

p=p->___2___;

}

}

main()

{SLIST*head;

inta[N]={12,87,45,32,91,16,20,48},num;

head=creatlist(a);outlist(head);

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

fun(___3___,&num);

printf("\nnumber=%d\n",num);

}

修改

给定程序MODI1.C中函数fun的功能是:

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

例如:

当字符串中的内容为“abcdefabcdx”t中的内容为“ab”时,输出的结果应是:

abcdx

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

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;

}

程序

函数fun的功能是:

将s所指字符串中除了下标问为偶数,同时ASCII值也为偶数的字符外,其余的全部删除:

串中剩余字符所形成的一个新串放在t所指的数组中

例如,若s所指的字符串中的内容为“ABCDEFG123456”,其中字符A的ASCII码味奇数,因此应当删除,其中字符b的ASCII码值为偶数,但是在数组中的下标为基数,因此也当删除;

答案

9、B:

*nnexthead

M:

a=NULL;*r==*p

P:

inti,j=0;

for(i=0;i

if(s[i]%2==0)t[j++]=s[i];

t[j]=0;

9.填空

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

计算出带有头结点的单向链表中各结点数据域中值之和作为函数的返回值。

intfun(SLIST*h)

{SLIST*p;ints=0;

p=h->next;

while(p)

{

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

s+=p->___1___;

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

p=p->___2___;

}

returns;

}

修改

给定程序MODI1.C中函数fun的功能是:

将s所指字符串中出现的与t1所指字符串相同的字串全部替换成t2所指字符串,所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同。

intfun(char*s,char*t1,char*t2,char*w)

{

inti;char*p,*r,*a;

strcpy(w,s);

while(*w)

{p=w;r=t1;

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

while(r)

if(*r==*p){r++;p++;}

elsebreak;

if(*r=='\0')

{a=w;r=t2;

while(*r){

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

*a=*r;a++;r++

}

w+=strlen(t2);

}

elsew++;

}

}

程序

函数fun的功能是;将s所指字符串下标为偶数的字符删除,串中剩余字符形成的新串放在t所指的数组中

例如:

当s所指字符串中的内容为:

“ABCDEFGHIJK”

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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