国家计算机2级考试题库_第1页
国家计算机2级考试题库_第2页
国家计算机2级考试题库_第3页
国家计算机2级考试题库_第4页
国家计算机2级考试题库_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

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

文档简介

国家计算机2级考试题库

第一套、

1程序填空

给定程序中,函数fun的功能是:有N*N矩阵,将矩阵的外围元素顺时针旋转。操作顺

序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为

第一列,最后一列成为第一行,临时数组中和元素成为最后一列。

第1处

第2处for(j=N-l;j>=0;j一)

第3处t[j][N-l]=r[j]:

2程序修改

给定程序M0DI1.C中函数fun的功能是:计算s=f(-n)+f(-

n+l)+,,,,+f(0)+f(l)+f(2)+,,,,+f(n)的值。例如,当n为5时,函数值应为:10.407143。

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

doublef(doublex)

(

if(x==0.0x-=2.0)

return0.0;

elseif(x<0.0)

return(x-l)/(x-2);

else

return(x+l)/(x+2);

}

doublefun(intn)

{inti;doubles=0.0,y;

for(i=-n;i<=n;i++)

{y=f(L0*i);s+=y;}

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

returns;

)

3程序设计

编写函数fun,它的功能是计算:s=根号下(ln(l)+ln(2)+ln(3)+,,,,ln(m))S作为函数返

回,在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是:Doublelog(double

x)例如,若m的值为:20,fun函数值为:6.506583,

doublefun(intm)

(

doubles=0.0;

inti;

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

s+=log(l.0*i);

s=sqrt(s);

returns;

}第二套

1程序填空

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

均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学

生数据,并按照学号从小到大排序后,再用二进制方法把排序后的学生数据输入到

filename所指的文件中,覆盖原来的文件内容。

第一处:fp=fopen(filename,nrb”);

第二次:if(s[i].sno>s[j].sono)

第三处:fwrite(s,sizeof(STU),N,fp);

2程序修改

给定程序MODILC中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,

并且覆盖原串。

第一处:p=s;

第二处:while(*p++);

3程序设计

请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随即函数获

得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10

至19随年龄段的人数放在d[l]中,把20至29岁年龄段的人数放在d[2]中,其余依次类

推,把100岁(含100)以上年龄段的人数放在d[10]中,结果在主函数中输出。

Voidfun(int*a,int*b)

{inti,j;for(i=0;i<M;i++)b[i]=0;for(i=0;i<N;i++){j=a[i]/10;if(j>10)b[M-

l]++;esleb[j]++;}}

第三套

1.程序填空

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

据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指的文件中最

后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。

第1处:fp=fopen(filename,nrb+w)

第2处:fseek(fp,-(lomg)sizeof(STU),SEEK_END);

第3处:fwrite(&n,sizeof(STU),1,fp);

2.程序修改

给定程序MODU.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点

数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结

果。NODE=J=Creatlink(intn,intm)

{NODE*h=NULL,*p,*s;

inti;

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

p=(NODE*)malloc(sizeof(NODE));

h=p

p->next=null;

for(i=l;i<=n;i++)

{s=(NODE*)malloc(sizeof(NODE));

s->data=rand()%m;

s->next=p->next;

p->next=s;p=p->next;

)

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

returnh;

)

3.程序设计

请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。'

行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,

一行的开始没有空格。

intfun(char*s)

(

intk=l;

while(*s)

{if(*s=="")k++;

s++;}

returnk;

第四套

1.程序填空

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

据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入

学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到

filename所指的文件中,覆盖原来的文件内容。

第1处fp=fopen(filename,"rb");

第2处if(s[i].sno>=s[j].sno)

第3处fwrite(s,sizeof(STU),N,fp);

2.程序修改

给定程序MODH.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,

差且覆盖原串。注意:字符串的长度最长允许为79.

voidfun(chars[],intn)

(

chara[80],*p;

inti;

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

P=s;

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

do

{a[i]=*p;

i++;

)

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

whi1e(*p++)a[i]=0;

strcpy(s,a);

}

3.程序设计

请编写函数fun,函数的功能是:统计各年龄段的人数,N个年龄能过调用随机函数获

得,并放在主函数的age数组中:要求函数把0至9岁的年龄段的人数放在d[0]中,把

10至19岁的年龄段的人数放在d[l]中,把20至29岁的年龄段的人数放在d[2]中,其余

依次类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输

出。

voidfun((int*a,int*b)

(

inti,j;

for(i=0;i<M;i++)b[i]=0;

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

{j=a[i]/10;

if(j>10)b[M-l]++;

elseb[j]++;

)

)

第五套

1.程序填空

给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文件文件中,

再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串换成相应

的整数和浮点数,然后将其显示在屏幕上。

第1处:FILE*fp;

第2处:fclose(fp);

第3处:fsanf(fp,"%s%s%s”,str,strl,str2);

2.程序修改

给定程序M0DI1.C中函数fun的功能是:对N名学生的学生成绩,按从高到低的顺序找

出前名学生来,将这些学生数据存放在一个动态分配的连续存储区中,此存储区

的首地址作为函数值返回。

STU*fun(STUa[],intm)

{STUb[N],*t;

inti,j,k;

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

t=(STU*)calloc(sizeof(STU),m);

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

b[i]=a[i];

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

{for(i=j=0;i<N;i++)

if(b[i].s>b[j].s)j=i;

/ound******/

t[k]=b[j];

b[j].s=0;

}returnt;

)

3.程序设计

请编写函数fun,函数的功能是,删去一维数组中所有相同的数,使之只剩一个。数组

中的数已按从小到大的顺序排序,函数返回删除后数组中数据的个数。

intfun(inta[],intn)

inti,j=l,k=a[O];

for(i=l;i<n;i++)

if(k!=a[i]){

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

k=a[i];}

a[j]=0;

returnj;

)

第六套

1.程序填空

给定程序中,函数fun的功能是根据形参i的值返回某个函数年值。当调用正确时,程

序输出:xl=5.000000

x2=3.000000.

xl*xl+xl*x2=40.000000

第•处:doublefun(inti,doublex,doubley)

第二处:returnfl(x);

第三处:returnf2(x,y);

2.程序修改

给定程序MODH.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址

作为函数值返回。

/include<stdio.h>

/ound******/

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

intsl=O,tl=O;

char*ss,*tt;

ss=s;tt=t;

while(*ss)

{sl++;

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

ss++;

)

while(*tt)

{tl++;

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

tt++;

)

if(tl>sl)returnt;elsereturns;

)

3.程序设计

请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第

m个字符,平均移到字符串的最后,把第m+1个到最后的;字符移到字符串的前部。void

fun(char*w,intm)

(

inti;

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

funl(w);

)

第七套

1程序填空

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

进行升序排列。

第1处voidfun(PERSON*std)

第2处PERSONtemp;

第3处fun(std);

2程序修改

给定程序MODI1.C中函数fun的功能是:将m(lWmW10)个字符串连接起来,组成一个

新串,放入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<q;i++)

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

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

pt+=q;

pt[O]=O;

3程序设计

程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(int

a[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。

intfun(inta[][N])

(

inti,j;

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

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

a[i]

第八套

1.程序填空

给定程序通过定义并赋值的方式,利用结构体变量存储了一名学生学号、姓名和3门课

的成绩。函数fun的功能是招该学生的各科成绩都乘以一个系统a。

第1处voidmodify(STU*ss,floata)

第2处ss->score[i]*=a;

第3处modify(&std,a);

2.程序修改

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

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

longfun(intk)

(

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

if(k>0)

return(k*fun(k-l));

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

elseif(k==0)

returnIL;

)

3.程序设计

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

a[][N],intn),函数的功能是:使数组左下三角元素中的值乘以n。

intfun(inta[][N],intn)

{inti,j;

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

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

a[i]

)

第九套

1.程序填空

给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大

排序。即若原链表结点数据域从头到尾的数据为:10、4、2、8、6,排序后链表结点数据

域从头至尾的数据为2、4、6、8、10。

第1处q=p->next;

第2处while(q)

第3处p=p->next;

2.程序修改

给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的

后续字母(但Z转换为A,z转换成a),其它字符不变。

Voidfun(char*s)

/*****found******/while(*s)

{if(*s>W&*sUz”|*s〉="a"&&*s〈二》

{if(*s二二"Z")*s="A";

elseif(*s二二"z")*s="a”;

else*s二*s+1;}

/ound******/

s++;

)

)

3.程序设计

voidfun(int*w,intp,intn)

(

inti,j=0,b[N];

for(i=p+1;i<n;i++)b[j++]=w[i];

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

b[j++]=w[i];

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

w[i]=b[i];

}

第十套

1程序填空

给定程序中,函数fun的功能是:判定形参a所指的NXN(规定N为奇数)的矩阵是否

是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:

矩阵每行、每列、主对角线及反对角线上元素之和都相等。

第1处row=colum=0;

第2处if((row!=colum)||(row!=ml))return0;

第3处return1;

2程序修改

给定MODILCfun函数的功能是:根据整型形参m,计算如下公式的值。t=『l/2T/3-

,,,,-l/m・#include<sdio.h>

doublefun(intm)

(

doublet=1.0;

inti;

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

/********fourid***********/

t=t-l.0/i;

/********fourid***********/

returnt;

)

3程序设计

请编写一个函数,函数的功能是删除字符串中的所有空格。

intfun(char*str)

char*p=str;inti=0;

while(*p){

if(*p!=",str[i++]=*p;

p++;

}

str[i]=O;

)

第十一套

1程序填空

给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结

点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、

4、2、。第1处p=h->next;

第2处if(p=0)return;

第3处p=q;q=r;

2程序修改

给定MODll.Cfun函数的功能是:计算s所指字符串中含有t所指字符串的数目,并作

为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。

#include<stdio.h>

#include<string.h

#defineN80

intfun(char*s,char*t)

{intn;

char*p,*r;

n=0;

while(*s)

{P=s;

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

r=t;

while(*r)

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

elsebreak;

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

if(*r=0)

n++;

s++;

)

returnn;

)

3程序设计

请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超

过N),按顺序合并组成一个新的字符串,函数fun中给出的语句供供参考。

voidfun(chara[M][N]),char*b)

{intI;*b=0;

for(i=0;i<M;i++)strcat(b,a[i]);}

第十二套

1程序填空

给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾

结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、

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

第1处NODE*fun(NODE*h)

第2处r=q->next;

第3处q=r;

2程序修改

给定程序M0DI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或

ASCH码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。

#include<stdio.h>

#include<string.h>

ttdefineN80

voidfun(char*s,chart[])

{inti,j=0;

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

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

if(i%2||s[i]%2=0)

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

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

t[j]="\O";

)

3程序设计

请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放

到一维数组中。函数fun中给出的语句仅供参考。

^include<stdio.h>

voidfun(int(*s)[10],int*b,int*n,intmm,intnn)

inti,j,np=0

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

for(j=0;j<mm;j++)

(

b[np]=sLj][i];

np=i*mm+j+l;

)

*n=np

)

第十三套

1程序填空

给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排

序,即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域

从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删

除,使程序得出正确的结果。

第1处p=h->next;

第2处q=p->next;

第3处if(p->data>=q->data))

2程序修改

给定程序M0DI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋

值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为

函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。

#include<stdio.h>

#include<stdlib.h>

typedefstruct

{intdata;

structaa*next;

}NODE;

fun(NODE*h)

{intmax=-l;

NODE*p;

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

p=h->next;

while(p)

{if(p->data>max)

max=p->data;

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

pz:p->next;

)

returnmax;

)

3程序设计

请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放

到一维数组中。一维数组中数据的个数存放在形参n所指的存储单元中。

#include<stdio.h>

voidfun(int(*s)[10],int*b,int*n,intmm,intnn)

(

inti,j,k;

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

for(j=0;j<nn;j++)

k=i*nn+j;

b[k]=s[i][j];

)

*n=mm*nn;

)

第十四套1程序填空

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

_2_处使f指向函数fl,在_3_处使f指向函数f2。当调用正确时,程序输出:

xl=5.000000,x2=3.000000,xl*xl+xl*x2=40.000000请在程序的下划线处填入正确的内容

并把下划线删除,使程序得出正确的结果。

第1处double(*f)();

第2处f=fl;

第3处f=f2;

2程序修改

给定程序M0DI1.C是建立一个带头点的单向链表,并用随机函数为各结点赋值。函数

fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函

数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。

iiinclude<stdio.h>

#include<stdlib.h>

typedefstructaa

{intdata;structaa*next;}NODE;

intfun<N0DE*h>

{intsum=0;

NODE*p;

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

p=h->next;

while(p)

{if(p->data%2=0)

sum+=p->data;

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

p=p->next;

)

returnsum;

)

3程序设计

请编写函数fun,函数的功能是:判断字符串是否为回文?叵是,函数返回1,主函数

中输出:YEX,否则返回0,主函数中输出NO。回文是指顺读t和倒读都一样的字符串。

ttinclude<stdio.h>

#definen80

intfun(char*str)

(

inti,j=strlen(str);

for(i=0;i<j/2;i++)

if(str[i]!=str[i-j-11)return0;

return1;

}

第十五套

1程序填空

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

据均以二进制方式输【I;到student.dat文件中。函数fun的功能是从指定文件中找出指定

学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修

改后重写文件中该学生的数据,即用该学生的背后数据覆盖原数据,其它学生数据不变;

若找不到,则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序

得出正确的结果。

第1处while(!feof(fp))

第2处if(n.sno==sno)break;

第3处fseek(fp,-lL*sizeof(STU),SEEKCUR);

2程序修改

给定程序MODI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大

的顺序进行排序,插入法的基本算法是:先对字符串中的头两个元素进行排序,然后把第

三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三

个字符中,,,,,。待排序的字符串已在主函数中赋予。请改正函数fun中指定部位的错误,

使它能得出正确的结果。

#include<stdio.h>

#include<string.h>

tidefineN80

voidinsert(char*aa)

{inti,j,n;charch;

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

n=strlen(aa);

for(i=l;i<n;i++){

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

ch=aa[i];

while((j>=O)&&(ch<aaLj]))

{aa[j+l]=aa[j];

j一;

}

aa[j+l]=ch;

)

)

3程序设计

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。

#include<stdio.h>

#include<stdlib.h>

#defineN8

structslist

{doubles;

structslist*next;

);

typedefstructslistSTREC;

doublefun(STREC*h)

{doublemax=h->s;STREC*p;

p=h->next;

while(p)

{if(p->max)

max=p->s;

p=p->next;

)

returnmax;

)

第十六套

1程序填空

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

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

个字符串,且串长〈N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出

正确的结果。

第1处n=strlen(ss[i];)

第2处ss[i][n+j]='*';

第3处ss[i][n+j+l]=>\0';

2程序修改

给定程序M0DI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改

成大写。(这里的“单词”是指由空格隔开的字符串)。请改正程序中的错误之处,使它

能得力正确的结果。

#include<ctype.h>

#include<stdio.h>

voidfun(char*p)

(

intk=0;

for(;*p;p++)

if(k)

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

if(*p二二*

k=0;

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

*(p-l)=toupper(*(p-1)):

)

else

k=l;

)

3程序设计

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

ASCII码降序排列。

^include<stdio.h>

#include<ctype.h>

#include<string.h>intfun(char*s,intnum)

{charch;

inti,j;

for(i=l;i<6;i++)

for(j=i+l;j<6;j++){

if(*(s+i)<(s+j))

(

ch=*(s+j);

*(s+j)=*(s+i);

*(s+i)=ch;

)

}

第十七套

1程序填空

程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数

fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在

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

第1处structstudentt;

第2处for(i=0;i<n-l;i++)

第3处if(strcmp(a[i].name,a[j].name)>0)

2程序修改

给定程序M0DI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字

符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。

#include<stdio.h>

fun(char*p)

{charmax,*q;inti=0;

max=p[i];

while(p[i]!=0)

{if(max<p[i])

{max=p[i];

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

q=p+i;

)

i++;

)

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

while(q>p)

{*q=*(q-1);

q-;

)

p[O]=max;

}3程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请

编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数

范围内的学生人数由函数值返回。

#include<stdio.h>

#definen16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b,int1,inth)

{inti,j=0;

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

if((a[i].s>=l&&a[i].s<=h)b[j++]=a[i];

returnj;

第十八套

1程序填空

给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其

他字符顺序后移,处理后新字符串的首地址作为函数值返回。

第1处t[j]=s[i];j++;

第2处for(i=0;i<k;i++)t[j+i]=p[i];

第3处t[j+k]=O;

2程序修改

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

字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,

要求tl和t2所指字符串的长度相同。

ttinclude<stdio.h>

#include<string.h>

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

(

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

strcpy(w,s);

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

while(*w)

{p=w;r=tl;

while(*r)

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

if(*r=*p)

{r++;p++;

elsebreak;

if(*r="\0")

a=w;

w++;}

r=t2;

while(*r){*a=*r;a++;r++;}

)

3程序设计

函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成

一个新串放在t所指的数组中。

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

{inti,j=0;

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

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

t[j]=O;

)

第十九套

1程序填空

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

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

数,在主函数中输出修改后的数据。

第1处structstudent*

fun(structstudent*a)

第2处for(i=0;i<3;i++)a->score[i]+=l;

第3处returna;

2程序修改

给定程序MODH.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地

址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。

ttinclude<stdio.h>

#include<string.h>

#defineN5

#defineM81

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

char*fun(char(*sq)[M])

{inti;char*sp;

sp=sq[0];

ford=0;i<N;i++)

if(strlen(sp)<strlen(sq[i]))

sp=sq[i];

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

returnsp;

)

3程序设计

函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合

并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位

数依次放在变量c的十位和千位上。

#include<stdio.h>

voidfun(inta,intb,long*c)

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

)

第二十套

1程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有

数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均值的数据

移至x决指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数

据。第1处for(i=0;i<N;i++)av+=x[i]/N

第2处y[j]=x[i];x[i]=-l;j++;}

第3处i++;

2程序修改

给定程序MODH.C函数fun的功能是:统计字符串各元音字母(即:A、E、I、0、U)

的个数。注意字母不分大、小写。

^include<stdio.h>

fun(char*s,intnum[5])

{intk,i=5;

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

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

num[k]=0;

for(;*s;s++)

{i=T;

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

switch(*s)

{case"a";case,,A”;

{i=0;break;}

{case„en;case„En;

{i=l;break;}

{case„i;case„I;

{i=2;break;}

{case„on;case„On;

{i=3;break;}

{case„uM;case,,U”;

{i=4;break;}

)

if(i>=0)

num[i]++;

)

)

3程序设计

请编写函数fun,函数的功能是求出二级数组周边元素之和,作为函数值返回。二维数

组中的值在主函数中赋予。

ttinclude<stdio.h>#defineM4

#defineN5

intfun(inta[M][N])

inttot=0,i,j;

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

(

tot+=a[0][i];

tot+=a[M-l][i];

)

for(i=l;i<M-l;i++){

tot+=a[i][0];

tot+=a[i][N-l];

)

returntot;

)

第21套

1程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数

均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移

至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

第1处av=s/N;

第2处y[j++]=x[i];x[i]=-l;}

第3处if(x[i]!=-l)y[j++]=x[i];

2程序修改

给定程序MODH.C的功能是:读入一英文文本行,将其中每个单词的第一个字母改成大

写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)

#include<ctype.h>

/include<string.h>

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

ttinclude<stdio.h>

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

upfst(char*p)

{intk=0;

for(;*p;p++)

if(k)

{if(*p==UM)k=0;}

elseif(*p!=””)

{k=l;*p=toupper(*p);}

)

3程序设计

程序定义了NXN的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求

出数组周边元素的平均值并作出函数值返给主函数中的So

#include<stdio.h>#include<stdlib.h>

ttdefinN5

doublefun(intw[][N])

{inti,j,n=0;

doublesum=0;

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

{sum+=w[0][i]+w[N-l][i];n+=2;}

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

{sum+=w[i][O]+w[i][N-l];

n+=2;

)

returnsum/n;

)

第22套

1程序填空

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

myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

第1处fprintf(fp,',%d%f\nw,i,sqrt((double)i));

第2处fclose(fp);

第3处if((fp=fopcn(fname,"r"))=NULL)

2程序修改

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

tfinclude<stdio.h>

^include<stdlib.h>

fun(intn,int*a)

{inti,j,p,t;

for(j=0;j<n-l;j++)

{P=J;

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

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

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

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

P=i;

if(p!=j)

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

})

3程序设计

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

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

放在c数的十位和千位上。

Sinclude<stdio.h>

voidfun(inta,intb,long*c)

(

*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);}第23套

1程序填空

给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序依次

存放于形参b所指的一维数组中。

第1处b[i]=a[0][i];

第2处if(b[i]<a[j][i])b[i]=a[j][i];

第3处fun(x,y)

2程序修改

给定程序M0DI1.C中fun函数的功能是:交换主函数中两个变量的值。

Sinclude<stdio.h>

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

intfun(int*x,int*y)

{intt;

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

t二*x;*x=*y;*y=t;

}

3程序设计

编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返

回所求出的素数的个数。函数fun中给出的语句仅供参考。

ttinclude<stdio.h>

#defineMAX100

intfun(intlim,intaa[MAX])

{inti,j,k=0;

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

(

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

if(i%j=0)break;

if(j>(i/2))aa[k++]=i;

}returnk;}

第24套

1程序填空

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

功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。

第1处structstudentfun(structstudenta)

第2处strcpy(a.name,'、LiSi〃);

第3处a.score[i]+=l;

2程序修改

假定整数数列中的数不重复,并存放在数组中。给定程序M0D1LC中函数fun的功能

是:删除数列中值为x的元素。N中存放的是数列中元素的个数。

ttinclude<stdio.h>

#defineN20

fun(int*a,intn,intx)

{intp=0,i;a[n]=x;

while(x!=a[p])

P=p+1;

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

if(p==n)return

else

{for(i=p;i〈n;i++)

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

a[i]=a[i+l];

returnn-1;

})

3程序设计

学生的记录由学号和成绩组成。N名学生的数据已在主函数中放入结构体数组s中,请

编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分阶段

数最低的学生可能不止一个,函数返回分数最低的学生的人数。

/include<stdio.h>

ttdefineN16

typedefstruct

{charnum[10]

ints;

}STREC;

intfun(STREC*a,STREC*b)

inti,j=0,min=a[0],s;

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

{if(min>a[i].s){j=0;b[j++]=a[i];min=a[i].s;

)

elseif(min==a[i].s)

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

)

returnj;

)

第25套

1程序填空

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

组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返

回,由主函数输出,若指定编号不存在,返回数据中编号为空串。

第1处STUfun(STU*std,char*num)

第2处if(strcmp(std[i].num,num)==0)

第3处return

2程序修改

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

的子串的个数作为函数值返回。

#include<stdio.h>

ttinclude<string.h>

intfun(char*s,char*t){intn;char*p,*r;

n=0;

while(*s)

{p=s;r=t;

while(*r)

if(*r=*p){

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

r++;p++;

}elsebreak;

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

if(*r==0)

n++;

s++;

}returnn;}

3程序设计

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

一个新串放在t所指的数组中。

ttinclude<stdio.h>

ttinclude<string.h>

voidfun(char*s,chart[])

inti,j=0;

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

t[j]=O;

}

第26套

1程序填空

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

接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第1处free(q);

第2处q=p->next;

第3处q=q->next;

2程序修改

给定程序MOD11.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺

序进行排序。

^include<stdio.h>

JtdefineN20

voidfun(inta[],intn)

{inti,j,t,p;

for(j=0;j<n-l;j++){

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

P二j;

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

if(a[i]<a[p])/*******found******/

P二i;

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

a[j]=t;

)

3程序设计

请编写一个函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整

数放在数组a中,通过n返回这些数的个数。

#include<stdio.h>

ttdefineM100

voidfun(intm,int*a,int*n)

{inti;

*n=0;

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

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

)

第27套

1程序填空

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参

n的值为10时,函数返回:9.6125588

s=(1*3)/22+(3*5)/42+(5*7)/62+(2*n-1)*(2*n+l)/(2*n)2(考试时公式用分式表示)

第1处s=0;

第2处for(i=l;i<=n;i++)

第3处s=s+(2.0*i-l)*(2.0*i+l)/(t*t);

2程序修改

给定程序M0DI1.C中函数fun的功能是:统计substr所指子字符串在str所指字符串

中出现伯次数。

/include<stdio.h>

fun(char*str,char*substr)

{inti,j,k,num=O;

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

for(i=o;str[i];i++)

for(j=i,k=0;substr[k]==str[j];k++,j++)

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

if(substr[k+1]=="'0")

{num++;

break;

returnnum;

)

3程序设计

请编写一个函数fun,它的功能是:根据以下公式求刀的值(要求满足精度0.0005,

即某项小于0.0005时停止送代):程序运行后,如果输入精度0.0005,则程序输出为

3.14„.JI/2=l+l/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+„„#include<stdio.h>

#include<math.h>

doublefun(doubleeps)

{doubles=l,t=l./3;

intn=l;

while(t>=eps){s+=t;n++;t=t*n/(2.0*n+l);

return(s*2.0);

第28套

1.程序填空

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

放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:

abcdef35adgh3kjsdf7»输出结果为:4。

第1处for(i=0;s[i]!=NULL;i++)

第2处if(s[i]>='0'&&s[i"='9')n++;

第3处*t=n;

2程序修改

给定程序M0DI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不

允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值

为3,b中的值为8。

^include<stdio.h>

intfun(int*x,inty)

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

t二*x;*x=y;

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

return(t);

3程序设计

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

和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

^include<stdio.h>

voidfun(int*a,int*n)

{inti;

*n=0;

温馨提示

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

评论

0/150

提交评论