2021全国大学生历年全国计算机等级考试-二级c语言上机考试题库及答案_第1页
2021全国大学生历年全国计算机等级考试-二级c语言上机考试题库及答案_第2页
2021全国大学生历年全国计算机等级考试-二级c语言上机考试题库及答案_第3页
2021全国大学生历年全国计算机等级考试-二级c语言上机考试题库及答案_第4页
2021全国大学生历年全国计算机等级考试-二级c语言上机考试题库及答案_第5页
已阅读5页,还剩184页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.填空

给定程序的功能是调用fun函数创立班级通讯录.通讯录中记录每位学生的

编号,姓名和电话号码.班级的人数和学生的信息从键盘读入,每个人的信息作为一

个数据块写到名为myfile5.dat的二进制文件中.

请在程序的下划线处填入对的内容并把下划线删除,是程序得到对的成果.

注重:源程序存放在考生文件夹下的BLANKl.c中

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

voidcheck(;

**********found**********

intfun(___1___*std

**********found**********

___2___*fp;inti;

if<(fp=fopen("myfile5.dat","wb"==NULL

return(0;

printf("\nOutputdatatofile!\n";

for(i=0;i

**********found**********

fwrite(&std[i],sizeof(STYPE,1,___3___;

fclose(fp;

return(1;

)

修改

给定程序M0DI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到I

串中,然后把s中的字符按逆序毗邻到t串背面.

例如:当s中的字符串为:“ABCDE”时,

则他中的字符串应为:“ABCDEEDCBA”.

请改正程序中的错误,使他能得到对的成果.

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

voidfun(char*s,char*t

{inti,si;

si=strlen(s;

************tound************

for(i=0;i<=s1;i++

t[i]=s[i];

for(i=0;i

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

************found************

t[sl]='\0';

}

程序

函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中.合并的方

式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依

次放在c数的百位和个位上.

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

注重:部分源程序存在文件PR0G1.C中.数据文件IN.DAT中的数据不得修改.

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

写的若干语句.

答案:B:STYPEFILEfp

M:for(i=0;i<si;i++t[2*sl]=0;

P:*c=(a10*l()()()+(b10*100+(a%10*10+(b%10;

2.填空

给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件

myfile4.txt中,用作为字符串输入结束的标记.然后将文件的内容读出表此刻屏幕

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

请在程序的下划线处填入对的内容并把下划线删除,是程序得到对的成果.

注重:源程序存放在考生文件夹下的BLANKl.c中

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

main(

{FILE*fp;

if((fp=fopen(Hmyfile4.txt","w,,==NULL

{printf("openfail!!\n";exit(0;}

WriteText(fp;

fclose(fp;

if((fp=fopen(nmyfile4.txt","r"==NULL

{printf("openfail!!\nH;exit(0;)

ReadText(fp;

fclose(fp;

**********found**********

voidWriteText(FILE―1—

{charstr[81];

printf(H\nEnterstringwith-1toend:\n";

gets(str;

while(strcmp(str,"-r!!=O{

**********found**********

fputs(—2—,fw;fputs(”\n”,fw;

gets(str;

}

)

voidReadText(FILE*fr

{charstr[811;

printf("\nReadfileandoutputtoscreen:\n";

fgets(str,81,fr;

while(!feof(fr{

**********found**********

printf("%s",一3—;

fgets(str,81,fr;

修改

给定程序MODH.c中函数fun的功能是:从低位最先取出长整形变量s中的奇数位

上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位.

例如:当s中的数为:7654321时,t中的数为:7531

请改正程序中的错误,使他能得到对的成果.

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

#include

************found************

voidfun(longs,longt

{longsl=l();

*t=s%10;

while(s>0

{s=si00;

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

************found************

si=si*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*tsi=si*10;

P:*c=(b10*1000+(a%10*100+(b%10*10+(a10;

3.填空

给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名

为myfile3txt的文本文档中,然后再次序读出表此刻屏幕上.

请在程序的下划线处填入对的内容并把下划线删除,是程序得到对的成果.

注重:源程序存放在考生文件夹下的BLANKl.c中

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

intfun(char*fname

{FILE*fp;inti,n;floatx;

if((fp=fopen(fname,"w*-=NULLreturn0;

for(i=l;i<=l();i4-+

**********found**********

fprintf(____1_____,"%d%f\nH,i,sqrt((doublei;

printf(n\nSucceed!!\n";

**********found**********

2

printf(n\nThedatainfile:\n";

**********found**********

if((fp=fopen(—3—,"rH==NULL

return0;

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

while(!feof(fp

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

fclose(fp;

return1;

)

修改

给定程序MODIl.c中fun函数的功能是:将n个无序整数从小到大排序.

fun(intn,int*a

{inti,j,p,t;

for(j=0;j

{P=j;

************tound************

for(i=j+l;i

if(a[p]>a[i]

************found************

if(p!可

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

程序

函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中.合并的方

式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依

次放在c数的百位和个位上.

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

注重:部分源程序存在文件PR0G1.C中.数据文件IN.DAT中的数据不得修改.

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

写的若干语句.

3、B:fpfclose(fpfname

M:i

P:*c=(b%10*1000+(a%10*l()0+(b10*l()+(a10;

4.填空

给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目的文件中,

复制成功时函数返回值为1,失败时返回值为(),在复制的过程中,把复制的内容输出

到终端屏幕.主函数中源文件名放在变量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(n\nThedatainfile:\n";

ch=fgetc(fs;

**********found**********

while(!feof(___2___

{putchar(ch;

**********found**********

fputc(ch,__3___:

ch=fgetc(fs;

fclose(fs;fclose(ft;

printf(H\n\n";

return1;

修改

给定程序M0DI1.C中函数fun的功能是:将长整形数中每一位上为偶数的数依次

取出,构成一个新数放在t中.高位仍在高位,低位仍在低位.

例如:当s中的数为:87653142时,t中的数为:8642

voidfun(longs,long*t

{intd;

longsl=l;

*t=0;

while(s>0

{d=s%10;

***********************

if(d%2=0

{*t=d*sl+*t;

si*=10;

************found************

s\=10;

程序

函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中.合并的方

式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依

次放在c数的百位和个位上.

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

注重:部分源程序存在文件PR0G1.C中.数据文件IN.DAT中的数据不得修改.

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

写的若干语句.

4、B:"r"fsft

M:(d%2==0s=10;

P:*c=(a%10*1000+(b10*100+(a10*10+(b%10;

5.填空

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

数据递增有序链表.函数fun的功能是:把形参x的值放入一个新结点并插入到链

表中,插入后结点数据域的值仍连结递增有序.

typedefstructlist

{intdata;

structlist"next;

}SLIST;

voidfun(SLIST*h,intx

{SLIST*p,*q,*s;

s=(SLIST*malIoc(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___;

)

修改

给定程序M0DI1.C中函数fun的功能是:计算正整数num的列位上的数字之积.例

如,若输入:252,则输入应该是:20.若输入:202,则输出应该是:0.

longfun(longnum

************found************

longk;

do

{k*=num%10;

************found************

num\=l();

}while(num;

return(k;

请编写一个函数fun,它的功能是:它的功能是:计算n门课程的平均分,计算成果

作为函数值返回.

例如:若有5门课程的成绩是:90,5,72,80,61.5,55

则函数的值为:71.80

5、B:xps

M:longk=l;num=10;

P:inti;floatave=0.();for(i=0;i

6.填空

给定程序中已创立一个带有头结点的单向链表,在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(H%d”,—2.

s->next=NULL;

**********found**********

free(___3___;

修改

给定程序M0DI1.C中函数fun的功能是:将字符串中的字符按逆序输出,单补

改变字符串中的内容.

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

************^Qund************

fun(chara

{if(*a

{fun(a+l;

************found************

printf("%c"*a;

)

)

程序

请编写一个函数fun,他的功能是:对照两个字符串的长度(不得调用c语言提

供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度一样,则返

回第一个字符串.

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

6、B:nextt->datat

M:fun(char*aprintf("%c”,*a;

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

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

(

p++;q++;

)

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

if(*preturns;elsereturnt;

7.填空

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

序毗邻.函数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.

修改

给定程序M0DI1.C中函数fun的功能是:用挑选法对数组中的n个元素按从

小到大的次序进行排序.

voidfun(inta[],intn

{t,p;

for(j=0;j<n-1;j++{

************found************

P=J

for(i=j;i<n;i++

if(a[i]<a[p]

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

fbr(i=7;i<=m;i++

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

8.填空

给定程序中,函数fun的gongn是:在带有头结点的单向链表中,查找数据域中值为

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

ch的结点,函数返回。值

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(char*;

voidout!ist(SLIST*;

intfun(SLIST*h,charch

{SLIST*p;intn=0;

p=h->next;

**********found**********

while(p!=___1___

{n++;

**********found**********

if(p->data==chreturn___2___;

elsep=p->next;

return0;

修改

给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符

(包罗制表符,回车符及换行符)

输入字符串是用"#”结束输入.

fun(char*p

{inti,t;charc[8()];

************found************

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

if(!isspace(*(p+icft++]=p[i];

************found************

cftl="\O";

strcpy(p,c;

}

程序

请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字

母转换成大写(若该位置上不是字母,则不转换)

例如:若输入“abc4EFg”,则应输出“aBc4Efg”.

答案:

8、B:NULLnhead,ch

M:forc[t]='\0';

P:inti;for(i=1;i<strlen(*ss;i+=2{if(ss[i]>='a'&&ss[i]<='z'ss[i]-=32;

9.填空

给定程序中,函数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__,#

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

修改

给定程序MODILC中函数fun的功能是:求出s所指字符串中末了一次出

现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址最

先的字符串;若未找到,则函数值为NULL

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

abcdx

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

befound

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的ASCH码味

奇数,是以应当删除,其中字符b的ASCII码值为偶数,但是在数组中的下标为基数,

是以也当删除;

答案

9、B:*nnexthead

M:a=NULL;*r==*p

P:inti,j=0;

for(i=0;i<strlen(s;i+=2

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

t[j]=0;

10.填空

给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中

值之和作为函数的返回值.

intfun(SLIST*h

{SLIST*p;ints=0;

p=h->next;

while(p

**********found**********

s+=p->___1___;

**********found**********

P=p->___2___;

returns;

修改

给定程序M0DI1.C中函数fun的功能是:将s所指字符串中出现的与tl所指字符

串一样的字串所有替换成t2所指字符串,所形成的新串放在w所指的数组中,在此

处,要求tl和t2所指字符串的长度一样.

intfun(char*s,charchar*t2,char*w

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

strcpy(w,s;

while(*w

{p=w;r=tl;

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所指字符串下标为偶数的字符删除,串中剩余字符形成的新

串放在I所指的数组中

例如:当s所指字符串中的内容为:“ABCDEFGHIJK”

在t所指数组中的内容应是“BDFHJ”

10、B:datanexthead

M:*rr++;

P:inti,j=0;fbr(i=1;i<strlen(s;i+=2t[j++]=s[i];t[j]=0;

11.填空

人员记录有编号和出生年月日组成,N名流员的数据已在主函数中存入结

构体数组std中,且编号独一.函数fun的功能是:找出数据中的编号为空串.

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

修改

给定程序M0DI1.C中函数fun的功能是:从s所指字符串中,找出与t所指

字符串一样的字串的个数作为函数返回值

例如,当s所指字符串中的内容为:“abcdabfab”,t所指字符串的内容为:“ab”

则函数返回整数3

intfun(char*s,char*t

(

intn;char*p,*r;

n=0;

while(*s

{p=s;r=t;

while(*r

if(*r==*p{

r++;p++

}

elsebreak;

************found************

if(r=='\0'

n++;

s++;

}

returnn;

}

函数fun的功能是:将s所指字符串中ASCH值为偶数的字符删除,串中剩

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

例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符B的ASCII

码值为偶数.•…

答案:

11、B:STUstd[i].numstd[i]

M:p++;*r=,\0,;

P:inti,j=0;for(i=0;i<strlen(s;i++if(s[i]%2t[j++l=s[i];tfjl=0;

12.填空

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

组std中,函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指

的数组中,由主函数输出,同事有函数值返回满足指定前提的人数

intfun(STU*std,STU*k,intyear

{inti,n=O;

for(i=0;i

**********found**********

if(___1___==year

**********found**********

k[n++]=—2—;

**********found**********

return(___3___;

}

修改

给定程序MODI12.C的功能是:读入一个整数k(2《k《1()(2),打印她的所有因

例如2310,则应输出2,3,5,7,11

************found************

IsPrime(intn;

{inti,m;

m=1;

for(i=2;i<n;i++

************found************

if!(n%i

{m=0;break;}

return(m;

)

设计

已知学生的记录有学号成绩构成,N名学生的数据已经存入结构体数组a中.编写函

数fun,函数功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只

有一个最高分).已给出函数的首部,请完成该函数

12、B:std[i].yearstd[i]nM:分号去掉if(!(n%i

P:inti,max=a[()].s,j=0;for(i=1;i<N;i++if(max<a[i].s{j=i;max=a[i].s;}

*s=a[j];

13.填空

给定程序通过定义并赋初值的方式,操纵结构体变量存储了一名学生的学号,姓名和

3们课程的成绩,函数fun的功能是将该学生的各科成绩都乘以一个系数a

voidshow(STUtt

{inti;

printf(n%d%s:",tt.num,;

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

printf("%5.1f',tt.score[i];

printf(n\nH;

**********found**********

voidmodify(___1___*ss,floata

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

**********%und**********

ss->___2___*=a;

main(

{STUstd={l,"Zhanghua",76.5,78.0,82.0};

floata;

printf(H\nTheoriginalnumberandnameandscores:\nM;

show(std;

printf(,,\nlnputanumber:scanf("%f',&a;

**********found**********

modify(___3___,a;

printf(H\nAresultofmodifying:\nH;

show(std;

修改

给定程序MODI.C中函数fun的功能是:求k!(k<13,所求阶乘的值作为函数值返回,

例如若(k=10,则应输出:3628800

longfun(intk

************found************

ifk>0

return(k*fun(k-l;

************found************

elseif(k=0

returnIL;

}

设计

程序定义了N*N的二维数组.并在主函数中自动赋值,请编写函数fun,函数的功能

是:使数组左下三角元素的值乘以n

例如:若n的值为3,a数组的值为

13、B:STUscorefil&stdM:(k==0P:inti,j;for(i=0;i<N;i++for(j=0;j<=i;

j++a[i][j]*=n;

14.填空

给定程序中,函数fun的功能是:将形参所指结构体数组中的三个元素按num成员

进行升序布列

**********found**********

voidfun(PERSON_1—

(

**********found**********

___2___temp;

if(std[O].num>std[1].num

{temp=std[0];std[O]=std[l];std[l]=temp;}

if(std[()].num>std[2].num

{temp=std[O];std[0]=std[2];std[2]=temp;}

if(std[1].num>std[2].num

{temp=std[l];std[l]=std[2];std[2]=temp;}

main(

{PERSONstd[]={5,"Zhanghu",2;'WangLi",6,"LinMin");

inti;

**********found**********

fun(_3___;

printf(n\nTheresultis:\n";

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

printf(,,%d,%s\n,\std[i].num,std[i].name;

修改

给定程序MODIl.c中函数fun的功能是:将m个字符串毗邻起来组成一个新串,放

入pt所指存储区中

intfun(charstr[][10],intm,char*pt

************found************

Intk,q,i;

for(k=0;k<m;k++

{q=strlen(str[k];

for(i=0;i

************found************

pt[i]=str[k,i];

pt+=q;

pt[O]=0;

设计

程序定义了N*N的二维数组,并在主函数中自动赋值,请编写函数fun,函数的功能

是:使数组左下三角元素中的值所有值()

14、B:*stdPERSONstdM:intstrfk][ilP:inti,j;for(i=0;i<N;i++for(j=0;j<=i;

j++a[i][j]=0;

15.填空

给定程序中,函数fun的功能是:将形参std所指结构体数组中年纪最大者的数据作

为函数值返回,并在主函数中输出

STDfun(STDstd[],intn

{STDmax;inti;

**********found**********

max=___1

for(i=l;i

if(max.age<___2___max=std[i];

returnmax;

}

main(

{STDstd[5]={"aaan,17,nbbbn,16,nccc",18,"dddn,17,"eee",15};

STDmax;

max=fun(std,5;

printf("\nTheresult:\nH;

**********found**********

printf(n\nName:%s,Age:%d\n",___3__,max.age;

修改

给定程序MODIl.c中函数fun的功能是:实现两个整数的交流

例如给a和b分别输入60和65,输出为:a=65b=60

**********found**********

voidfun(inta,b

{intt;

**********found**********

t=b;b=a;a=t;

)

设计

请编制一个函数fun,tt指向一个M行N列的二维数组,求二维数组每列中最小元素,

并以此放入PP所指一维数组中.二维数组中的数已在主函数中赋予

15、B:*stdstd[i].M:int*bt=*b;*b=*a;*a=t;P:inti,j,min,k;for(i

=0;i<N;i++{min=ttfO][i];k=0;for(j=1;j<M;j++if(min>ttfjlfi]

{min=tt[j][i];k=j;}pp[i]=tt[k][i];}

16.填空

程序通过定义并赋初值的方式,操纵结构体变量存储了一名学生的信息,函数

fun的功能是输出这位学生的信息

**********found****不不¥***

voidshow(STU___1___

{inti;

printf(H\n%d%s%c%d-%d-%d",tt.num,,tt.sex,

tt.birthday.year,tt.birthday.month,tt.birthday.day;

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

*******亭**found*****字****

printf("%5.1f"____2—:

printf("\n";

)

main(

{STUstd={l,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0};

printf("\nAstudentdata:\n";

**********found**********

show(___3___;

}

修改

给定程序MODIl.c中函数fun的功能是:求出数组中最大数和次大数,并把最

大数和a[0]中的数对调,次最大数和a[1]中的书对调

intfun(int*a,intn

{inti,m,t,k;

for(i=0;i<2;i++{

**********'fV)und*****不¥***

m=0;

for(k=i+l;k

*******不**found**********

if(a[k]>a[m]k=m;

t=a[i];a[i]=a[m];a[m]=t;

)

)

设计

请编写一个函数unsignedfun,w是一个大与1()的无符号整数,若w是n为的

整数,函数求出w的低n-l位的数作为函数值返回

例如w为5923则函数返回923;

16、B:tttt.score[i]stdM:m=im=k

P:if(w>10000w%=10000;elseif(w>1000w%=1000;elseif(w>10()w%=100;

elseif(w>10w%=10;returnw;

17.填空

给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度

由短到长进行排序.Ss所指字符串数组中共有M个字符串,且串长《N

voidfun(char(*ss[N]

{inti,j,k,n[M];chart[N];

for(i=0;i

for(i=();i

{k=i;

**********found**********

for(j=-1—;j

**********found**********

if(n[k]>n[j]—2—;

if(k!=i

{strcpy(t,ss[i];

strcpy(ss[i],ss[k];

**********found**********

strcpy(ss[k],___3.

n[k]=n[i];

给定程序MODI.C中函数fun的功能是:判断ch中字符是否与str所指串中的某个

字符一样;若一样,什么也不做,若差别,则将其插在串的末了

#include

**********found**********

voidfun(charstr,charch

{while(*str&&*str!=chstr++;

**********found**********

if(*str==ch

{str[0]=ch;

**********found**********

str[l]='0';

设计

请编制一个函数fun,函数功能是吧s所指字符串中的内容逆值

17、B:i+1k=jtM:char*str!=0

P:charb[N];inti=0,j;for(j=strlen(s-1;j>=0;j-b[i++]=sfj];b[i]=0;

strcpy(s,b;

18.填空

给定程序中,函数fun的功能是:求出形参ss所指的字符串数组中最长字符串

的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长,字符串数组中共有

M个字符串

voidfun(char(*ss[N]

{inti,j,k=0,n,m,len;

for(i=0;i

{len=strlen(ss[i];

if(i=0n=len;

if(len>n{

**********found**********

n=len;___1___=i;

for(i=0;i

if(i!=k

{m=n;

len=strlen(ss[i];

**********found**********

for(j=一2—;j>=O;j-

ss[i][m-]=ss[i][j];

for(j=O;j

**********found**********

3

修改

给定程序MODIl.c中函数fun的功能是:计算整数n的阶乘

doublefun(intn

doubleresult=1.0;

while(n>l&&n<170

*********found*********

result*--n;

*********found*********

return;

)

设计

编写函数fun,函数的功能是:从s所指的字符串中删除给定字符.同一个字母

的大小写按差别字符处理

18、B:klenss[i][j]M:n—resultP:char*p=s;inti=0;while(*p{if(*p!=cs[i++]=

*p;p++;}s[i]=0;

19.填空

给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,

将其余字符串右边用字符*补齐,使其与最长的字符串等长.Ss所指的字符串数组中

共有M个字符串

voidfun(char(*ss[N]

{inti,j,n,len=0;

for(i=0;i

{len=strlen(ss[i];

if(i==On=len;

if(len>nn=len;

)

for(i=0;i

**********found**********

n=strlen(___1___;

for(j=0;j

**********found**********

ss[i]f—2—]='*';

**********found**********

ss[i][n+j+—3—]='\0';

)

)

修改

给定程序MODI1.C中函数fun的功能是将:p所指字符串中每个单词的末了一个

字母改成大写

#include

voidfun(char*p

intk=0;

for(;*p;p++

if(k

**********found***********

if(P=='

k=0;

**********found***********

*(p-1=toupper(*(p-1

else

k=1;

设计

请编写函数fun,对长多为7个字符的字符串,除首,尾字符外,将其余5个字符按

ASCII降序布歹IJ

19、B:ss[i]n+j1M:*p;P:charch;inti,j;for(i=1;i<6;i++

for(j=i+1;j<6;j++{if(*(s+i<*(s+j{ch=*(s+j;*(s+j=*(s+i;*(s+i=

ch;})

2().填空

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在

的行下标,作为函数值返回,并把其串长放在形参n所指变量中.Ss所指字符串数组

中共有M个字符串

#defineN20

**********found**********

intfun(char(*ss___1___,int*n

{inti,k=(),len=0;

for(i=0;i

{len=strlen(ss[i];

**********found**********

if(i==0*n=___2___;

if(len>*n{

**********found**********

3

k=i;

return(k;

修改

给定程序MODIl.c中函数fun的功能是:根据形参m,计算如下公式的值

1111

t=1+------+--------+-------+•••+----

234m

你I如.若输入5.则应输出2.283333。

doublefun(intm

doublet=1.0;

inti;

fdr(i=2;i<=m;i++

**********found**********

t+=1.0k;

**********found**********

设计

编写一个函数,该函数可以统计一个长度为2的字符串在另个字符串中出现的

次数

20、B:[N]len*n=lenM:t+=1.0i;returnt;P:intent=0;char*p=str,*q;

while(*p{q=strstr(p,substr;if(q==NULLbreak;p=q+strlen(substr;cnt++;}

returnent;

strstr:在前串中找出后串第一次出现的位置,若找到返回地址否则返回NULL

21.填空

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的

行下标,作为函数值返回,并把其串长放在形参n所指变量中

intfun(char(*ss[N],int*n

{inti,k=0,len=N;

**********found**********

for(i=0;i<___1___;i++

{len=strlen(ss[i];

if(i==0*n=len;

if(len___2___*n

{*n=len;

**********found**********

retum(___3___;

)

修改

给定程序MODILc中函数fun的功能是:将tt所指字符串中的小写字母都改为

对应的大写字母,其他字符不变

char*fun(chartt[]

(

inti;

for(i=0;tt[i];i++

**********found***********

if<('a,<=tt[il||(tt[i]<='z'

**********found***********

tt[i]+=32;

retum(tt;

)

设计

请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数

组中,非素数的个数通过k传回

21、B:M<kM:&&tt[i]-=32;

P:inti,j;*k=0;for(i=2;i

22.填空

给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符转移到所有

非数字字符之后,并连结数字字符和非数字字符串原有的前后次序

voidfun(char*s

{inti,j=0,k=0;chartl[8Ol,t2[8Ol;

for(i=();s[i]!-\0';i++

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

(

**********found**********

t2Ul=s[i];—1—;

elsetl[k++]=s[i];

t2[j]=0;tl[k]=0;

**********found**********

for(i=0;i

**********found**********

for(i=0;i<_3—;i++s[k+i]=t2[i];

)

修改

给定程序MODIl.c中函数fun的功能是:用冒泡法对6个字符串由小到大的次

序进行排序

fun(char*pstr[61

{inti,j;

char*p;

for(i=0;i<5;i++{

**************found**************

for(j=i+1,j<6,j++

if(strcmp(*(pstr+i,*(pstr+j>0

p=*(pstr+i;

**************found**************

*(pstr+i=pstr+j;

*(pstr+j=p;

}

)

)

)

设计

请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此

22、B:j++s[i]=tl[i]jM:;;*(pstr+jP:intent=0;char*p=ss;while(*p{if(*p==c

cnt++;p++;)

23.填空

给定程序中,函数fun的功能是:在形参所指字符串中的每个数字字符之后插入一

个*号

voidfun(char*s

{inti,j,n;

for(i=0;s[i]!='\O';i++

**********found**********

if(s[i]>=O—1_s[i]<='9'

{n=0;

**********found**********

while(s[i+l+n]!=____2____n++;

fbr(j=i+n4-l;j>i;j-

**********found**********

s[j+l]=____3____;

s[j+l]='*';

i=i+l;

修改

给定程序MODIl.c中函数fun的功能是;根据整形形参m,计算如下公式的值

111

y=1+一+++

I2*2------3*3--------4*4ni*ni

体加.若m‘中的信为:5.则应输出,1.463611.

设计

请编写函数fun,函数功能是:实现B=A+A\即把矩阵A加上A的转职,存放到B

23、B:&&Os[j]M:<=1.0

P:intc[3][3];inti,j;for(i=0;i<3;i++for(j=0;j<3;j++{c[i][j]=a[j][i];

b[i]U]=a[i]U]+c[i][j];}

24.填空

给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,

并存放在形参t所指的变量中,末了在主函数中输出.

voidfun(char*s,int*t

{inti,n;

n=0;

**********found**********

for(i=0;—1—!=NULL;i++

**********found**********

if(s[i]>-O'&&s[il<=___2___n++;

**********found**********

3

修改

给定程序MODIl.c中函数fun的功能是:通过某种方式实现俩个变量值的交流,

规定不予许增添语句和表达式

intfun(int*x,inty

intt;

**************found**************

t=x;x=y;

**************found**************

retum(y;

}

设计

请编写函数fun,它的功能是:求出1到1000之间能被7或11整除,但不能同

时被7和11整除的所有整数并将他们放在a所指的数组中,通过n返回这些数

的个数

24、B:s[i]‘9'*t=n;M:t=*x;*x=y;return(t;

P:inti;*n=0;for(i=7;i<1000;i++if(((i%7==0||(i%11==0&&(i%

77!=0a[(*n++]=i;

25.填空

给定程序中,函数fun的功能是:吧形参s所指字符串中下标为奇数的字符右移

到下一个奇数的位置,末了边被移除字符串的字符绕回放到第一个奇数位置,下标为

偶数的字符不动

voidfun(char*s

{inti,n,k;charc;

n=0;

for(i=0;s[i]!='\0';i++n++;

**********found**********

if(n%2==0k=n-___1___

elsek=n-2;

**********found**********

c=___2.

for(i=k-2;i>=1;i=i-2s[i+2]=s[i];

**********found**********

s[1]=—3—;

给定程序MODI1.C中fun函数的功能是:求s=aa...aa-....aaa-aa-a

longfun(inta,intn

{intj;

**************found**************

longs=0,t=1;

for(j=0;j<n;j++

t=t*1O+a;

s=t;

for(j=1;j<n;j++{

*************u**************

t=t%10;

s=s-1;

)

return(s;

)

设计

请编写一个函数fun,统计在tt所指字符串中‘a'到'z'26个小写字母各自出现的次数,

并依次放在pp所指数组中

25、B:n-1s[k]cM:t=0t=t10

P:char*p=tt;inti;for(i=0;i<26;i++pp[i]=0;while(*p{if(*p>='a'&&*p

<='z'pp[*p-'a']+=1;p++;}

26.填空

给定程序中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论