计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx

上传人:b****6 文档编号:19113294 上传时间:2023-01-03 格式:DOCX 页数:93 大小:170.94KB
下载 相关 举报
计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx_第1页
第1页 / 共93页
计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx_第2页
第2页 / 共93页
计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx_第3页
第3页 / 共93页
计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx_第4页
第4页 / 共93页
计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx_第5页
第5页 / 共93页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx

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

计算机等级考试二级C语言上机考试题库及答案Word文档格式.docx

voidfun(char*s,char*t)

{inti,sl;

sl=strlen(s);

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

for(i=0;

=s1;

i++)

t[i]=s[i];

for(i=0;

sl;

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

t[sl]='

\0'

;

 

程序

函数fun的功能是:

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

合并的方式是:

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

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

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

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

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

答案:

B:

STYPEFILEfp

M:

for(i=0;

i<

sl;

i++)t[2*sl]=0;

P:

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

2.填空

给定程序的功能是:

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

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

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

main()

{FILE*fp;

myfile4.txt"

w"

{printf("

openfail!

!

exit(0);

}

WriteText(fp);

r"

ReadText(fp);

voidWriteText(FILE___1___)

{charstr[81];

\nEnterstringwith-1toend:

gets(str);

while(strcmp(str,"

-1"

)!

=0){

fputs(___2___,fw);

fputs("

fw);

voidReadText(FILE*fr)

\nReadfileandoutputtoscreen:

fgets(str,81,fr);

while(!

feof(fr)){

%s"

___3___);

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

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

当s中的数为:

7654321时,t中的数为:

7531

#include<

stdio.h>

voidfun(longs,longt)

{longsl=10;

*t=s%10;

while(s>

0)

{s=s/100;

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

sl=sl*100;

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

2、B:

*fwstrstr

M:

long*tsl=sl*10;

P:

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

3.填空

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

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

intfun(char*fname)

inti,n;

floatx;

if((fp=fopen(fname,"

))==NULL)return0;

for(i=1;

i<

=10;

i++)

fprintf(___1___,"

%d%f\n"

i,sqrt((double)i));

\nSucceed!

___2___;

\nThedatainfile:

if((fp=fopen(___3___,"

return0;

fscanf(fp,"

%d%f"

&

n,&

x);

while(!

feof(fp))

n,x);

return1;

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

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

fun(intn,int*a)

{inti,j,p,t;

for(j=0;

j<

n-1;

j++)

{p=j;

for(i=j+1;

i++)

if(a[p]>

a[i])

t=i;

if(p!

=j)

{t=a[j];

a[j]=a[p];

a[p]=t;

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

3、B:

fpfclose(fp)fname

np=i

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

4.填空

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

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

intfun(char*source,char*target)

{FILE*fs,*ft;

charch;

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

if((ft=fopen(target,"

ch=fgetc(fs);

feof(___2___))

{putchar(ch);

fputc(ch,___3___);

fclose(fs);

fclose(ft);

\n\n"

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

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

87653142时,t中的数为:

8642

voidfun(longs,long*t)

{intd;

longsl=1;

*t=0;

{d=s%10;

if(d%2=0)

{*t=d*sl+*t;

sl*=10;

s\=10;

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

4、B:

“r”fsft

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

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

5.填空

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

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

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SLIST*h,intx)

{SLIST*p,*q,*s;

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

s->

data=___1___;

q=h;

p=h->

next;

while(p!

=NULL&

&

x>

p->

data){

q=___2___;

p=p->

next=p;

q->

next=___3___;

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

例如,若输入:

252,则输入应该是:

20.若输入:

202,则输出应该是:

0.

longfun(longnum)

longk;

do

{k*=num%10;

num\=10;

}while(num);

return(k);

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

它的功能是:

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

若有5门课程的成绩是:

90.5,72,80,61.5,55

则函数的值为:

71.80

5、B:

xps

longk=1;

num/=10;

floatave=0.0;

n;

i++)ave=ave+a[i];

ave=ave/n;

returnave;

6.填空

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

voidfun(SLIST*p)

{SLIST*t,*s;

t=p->

s=p;

while(t->

next!

=NULL)

{s=t;

t=t->

___1___;

%d"

___2___);

next=NULL;

free(___3___);

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

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

dcba

fun(chara)

{if(*a)

{fun(a+1);

%c"

*a);

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

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

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

例如,输入beijing<

CR>

shanghai<

(<

为回车键),函数将返回shanghai

6、B:

nextt->

datat

fun(char*a)printf("

*a);

char*p=s,*q=t;

for(i=0;

*p&

*q;

{

p++;

q++;

}

if(*p==0&

*q==0)returns;

if(*p)returns;

elsereturnt;

7.填空

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

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

voidfun(SLIST*h)

{SLIST*p,*q;

if(p!

=NULL)

{q=p->

while(q!

{if(p->

data==q->

data)

{p->

next=q->

free(___1___);

q=p->

___2___;

else

{p=q;

q=q->

___3___;

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

voidfun(inta[],intn)

{inti,j,t,p;

for(j=0;

j<

n-1;

j++){

p=j

for(i=j;

i<

n;

if(a[i]<

a[p])

p=j;

t=a[p];

a[p]=a[j];

a[j]=t;

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

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

711142122183335424449

答案:

7、B:

qnextnext

p=i;

inti;

*n=0;

for(i=7;

=m;

i++)

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

8.填空

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

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

找到后通过函数值返回改结点在链表中所处的顺序号;

若不存在值为ch的结点,函数返回0值

SLIST*creatlist(char*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;

intn=0;

=___1___)

{n++;

if(p->

data==ch)return___2___;

elsep=p->

修改

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

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

fun(char*p)

{inti,t;

charc[80];

For(i=0,t=0;

p[i];

if(!

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

c[t]="

\0"

strcpy(p,c);

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

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

8、B:

NULLnhead,ch

forc[t]='

for(i=1;

strlen(*ss);

i+=2){if(ss[i]>

='

a'

&

ss[i]<

z'

)ss[i]-=32;

9.填空

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

voidfun(SLIST*h,int*n)

___1___=0;

while(p)

{(*n)++;

{SLIST*head;

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

head=creatlist(a);

outlist(head);

fun(___3___,&

num);

\nnumber=%d\n"

num);

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

若未找到,则函数值为NULL

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

abcdx

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

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

char*p,*r,*a;

a=Null;

while(*s)

{p=s;

r=t;

while(

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

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

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

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