程序填空.docx

上传人:b****6 文档编号:7153819 上传时间:2023-01-21 格式:DOCX 页数:115 大小:69.03KB
下载 相关 举报
程序填空.docx_第1页
第1页 / 共115页
程序填空.docx_第2页
第2页 / 共115页
程序填空.docx_第3页
第3页 / 共115页
程序填空.docx_第4页
第4页 / 共115页
程序填空.docx_第5页
第5页 / 共115页
点击查看更多>>
下载资源
资源描述

程序填空.docx

《程序填空.docx》由会员分享,可在线阅读,更多相关《程序填空.docx(115页珍藏版)》请在冰豆网上搜索。

程序填空.docx

程序填空

1.给定程序中,函数fun的功能是将不带头结点的单向链表逆置。

即若原链表中从头至尾结点数据域依次为:

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

10、8、6、4、2。

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

注意:

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

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

#include

#include

#defineN5

typedefstructnode{

intdata;

structnode*next;

}NODE;

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

NODE*fun(NODE*h)

{NODE*p,*q,*r;

p=h;

if(p==NULL)

returnNULL;

q=p->next;

p->next=NULL;

while(q)

{

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

r=q->next;

q->next=p;

p=q;

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

q=r;

}

returnp;

}

NODE*creatlist(inta[])

{NODE*h,*p,*q;inti;

h=NULL;

for(i=0;i

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

q->data=a[i];

q->next=NULL;

if(h==NULL)h=p=q;

else{p->next=q;p=q;}

}

returnh;

}

voidoutlist(NODE*h)

{NODE*p;

p=h;

if(p==NULL)printf("ThelistisNULL!

\n");

else

{printf("\nHead");

do

{printf("->%d",p->data);p=p->next;}

while(p!

=NULL);

printf("->End\n");

}

}

main()

{NODE*head;

inta[N]={2,4,6,8,10};

head=creatlist(a);

printf("\nTheoriginallist:

\n");

outlist(head);

head=fun(head);

printf("\nThelistafterinverting:

\n");

outlist(head);

}

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

在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。

ss所指字符串数组中共有N个字符串,且串长小于M。

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

注意:

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

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

#include

#include

#defineN5

#defineM10

intfun(char(*ss)[M],intk)

{inti,j=0,len;

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

for(i=0;i

{len=strlen(ss[i]);

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

if(len<=K)

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

strcpy(ss[j++],ss[i]);

}

returnj;

}

main()

{charx[N][M]={"Beijing","Shanghai","Tianjing","Nanjing","Wuhan"};

inti,f;

printf("\nTheoriginalstring\n\n");

for(i=0;i

f=fun(x,7);

printf("Thestringwitchlengthislessthanorequalto7:

\n");

for(i=0;i

3.给定程序中,函数fun的功能是将不带头结点的单向链表逆置。

即若原链表中从头至尾结点数据域依次为:

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

10、8、6、4、2。

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

注意:

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

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

#include

#include

#defineN5

typedefstructnode{

intdata;

structnode*next;

}NODE;

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

NODE*fun(NODE*h)

{NODE*p,*q,*r;

p=h;

if(p==NULL)

returnNULL;

q=p->next;

p->next=NULL;

while(q)

{

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

r=q->NODE;

q->next=p;

p=q;

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

q=r;

}

returnp;

}

NODE*creatlist(inta[])

{NODE*h,*p,*q;inti;

h=NULL;

for(i=0;i

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

q->data=a[i];

q->next=NULL;

if(h==NULL)h=p=q;

else{p->next=q;p=q;}

}

returnh;

}

voidoutlist(NODE*h)

{NODE*p;

p=h;

if(p==NULL)printf("ThelistisNULL!

\n");

else

{printf("\nHead");

do

{printf("->%d",p->data);p=p->next;}

while(p!

=NULL);

printf("->End\n");

}

}

main()

{NODE*head;

inta[N]={2,4,6,8,10};

head=creatlist(a);

printf("\nTheoriginallist:

\n");

outlist(head);

head=fun(head);

printf("\nThelistafterinverting:

\n");

outlist(head);

}

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

判断形参s所指字符串是否是"回文"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。

"回文"是正读和反读都一样的字符串(不区分大小写字母)。

例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。

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

注意:

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

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

#include

#include

#include

intfun(char*s)

{char*lp,*rp;

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

lp=s;

rp=s+strlen(s)-1;

while((toupper(*lp)==toupper(*rp))&&(lp

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

lp++;rp--;}

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

if(lp

elsereturn1;

}

main()

{chars[81];

printf("Enterastring:

");scanf("%s",s);

if(fun(s))printf("\n\"%s\"isaPalindrome.\n\n",s);

elseprintf("\n\"%s\"isn'taPalindrome.\n\n",s);

}

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

规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。

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

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

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

注意:

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

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

#include

doublef1(doublex)

{returnx*x;}

doublef2(doublex,doubley)

{returnx*y;}

doublefun(doublea,doubleb)

{

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

double(*f)();

doubler1,r2;

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

f=f1;/*pointfountionf1*/

r1=f(a);

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

f=f2;/*pointfountionf2*/

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

returnr1+r2;

}

main()

{doublex1=5,x2=3,r;

r=fun(x1,x2);

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

}

6.函数fun的功能是:

输出a所指数组中的前n个数据,要求每行输出5个数。

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

注意:

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

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

#include

#include

voidfun(int*a,intn)

{inti;

for(i=0;i

{

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

if(i%5==0)

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

printf(""\n"");

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

printf(""%d"",a[i]);

}

}

main()

{inta[100]={0},i,n;

n=22;

for(i=0;i

fun(a,n);

printf("\n");

}

7.函数fun的功能是:

将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。

形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。

例如:

若a所指数组中的数据依次为:

1、2、3、4、5、6、7、8、9,则调换后为:

6、7、8、9、5、1、2、3、4。

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

注意:

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

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

#include

#defineN9

voidfun(inta[],intn)

{inti,t,p;

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

p=(n%2==0)?

n/2:

n/2+1;

for(i=0;i

{

t=a[i];

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

a[i]=a[p+i];

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

a[p+i]=t;

}

}

main()

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

printf("\nTheoriginaldata:

\n");

for(i=0;i

printf("\n");

fun(b,N);

printf("\nThedataaftermoving:

\n");

for(i=0;i

printf("\n");

}

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

有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。

例如,N=3,m=2,有下列矩阵

123

456

789

程序执行结果为

001

004

007

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

注意:

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

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

#include

#defineN4

voidfun(int(*t)[N],intm)

{inti,j;

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

for(i=0;i

{for(j=N-1-m;j>=0;j--)

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

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

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

for(j=0;j

t[i][j]=0;

}

}

main()

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j,m;

printf("\nTheoriginalarray:

\n");

for(i=0;i

{for(j=0;j

printf("%2d",t[i][j]);

printf("\n");

}

printf("Inputm(m<=%d):

",N);scanf("%d",&m);

fun(t,m);

printf("\nTheresultis:

\n");

for(i=0;i

{for(j=0;j

printf("%2d",t[i][j]);

printf("\n");

}

}

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

找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:

104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。

共有15个。

当x值为27时,各位数字之和为27的整数是:

999。

只有1个。

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

注意:

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

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

#include

fun(intx)

{intn,s1,s2,s3,t;

n=0;

t=100;

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

while(t<=999){

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

s1=t%10;s2=(t/10)%10;s3=t/100;

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

if(s1+s2+s3==x)

{printf("%d",t);

n++;

}

t++;

}

returnn;

}

main()

{intx=-1;

while(x<0)

{printf("Pleaseinput(x>0):

");scanf("%d",&x);}

printf("\nTheresultis:

%d\n",fun(x));

}

10.给定程序中,函数fun的功能是计算下式

直到

,并把计算结果作为函数值返回。

例如:

若形参e的值为1e-3,函数的返回值为0.551690。

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

注意:

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

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

#include

doublefun(doublee)

{inti,k;doubles,t,x;

s=0;k=1;i=2;

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

x=3.0/4;

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

while(x>e)

{s=s+k*x;

k=k*(-1);

t=2*i;

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

x=(2*i+1)/(t*t);

i++;

}

returns;

}

main()

{doublee=1e-3;

printf("\nTheresultis:

%f\n",fun(e));

}

11.函数fun的功能是:

把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。

例如:

若a所指数组中的数据最初排列为:

9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:

1、9、2、8、3、7、4、6、5。

形参n中存放a所指数组中数据的个数。

注意:

规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。

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

注意:

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

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

#include

#defineN9

voidfun(inta[],intn)

{inti,j,max,min,px,pn,t;

for(i=0;i

{

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

max=min=a[i];

px=pn=i;

for(j=i+1;j

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

if(max

{max=a[j];px=j;}

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

if(min>a[j])

{min=a[j];pn=j;}

}

if(pn!

=i)

{t=a[i];a[i]=min;a[pn]=t;

if(px==i)px=pn;

}

if(px!

=i+1)

{t=a[i+1];a[i+1]=max;a[px]=t;}

}

}

main()

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

printf("\nTheoriginaldata:

\n");

for(i=0;i

printf("\n");

fun(b,N);

printf("\nThedataaftermoving:

\n");

for(i=0;i

printf("\n");

}

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

计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。

注意:

要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。

例如,若N=3,有下列矩阵:

123

456

789

fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

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

注意:

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

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

#include

#defineN3

fun(intt[][N],intn)

{inti,sum;

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

sum=0;

for(i=0;i

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

sum+=t[i][i];

for(i=0;i

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

sum+=t[i][n-i-1];

returnsum;

}

main()

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

printf("\nTheoriginaldata:

\n");

for(i=0;i

{for(j=0;j

printf("\n");

}

printf("Theresultis:

%d",fun(t,N));

}

13.给定程序中,函数fun的功能是建立一个N×N的矩阵。

矩阵元素的构成规律是:

最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。

例如,若N=5,生成的矩阵为:

11111

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

当前位置:首页 > 法律文书 > 起诉状

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

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