二级C语言题库-填空题_第1页
二级C语言题库-填空题_第2页
二级C语言题库-填空题_第3页
二级C语言题库-填空题_第4页
二级C语言题库-填空题_第5页
已阅读5页,还剩132页未读 继续免费阅读

下载本文档

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

文档简介

二级C语言题库-填空题

1.下列给定程序中,函数fun的功能是计算如下公式

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

例如,若形参e的值为le-3,则函数返回值为0.551690。请在下划线处填入正确的

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

doublefun(doublee)

{inti,k;doubles,t,x;

s=0;k=l;i=2;

/*********ound**********I

x=_l」4;

/*********nd**********I

while(x_2_e)

{s=s+k*x;

k=k*(-1);

t=2*i;

/**********fund**********I

x=—3」(t*t);

i++;

returns;

)

main()

{doublee=le-3;

printf("\nTheresultis:%f\n",fun(e));

)

【参考答案】

第1页第1页

二级c语言题库-填空题

(1)3.0或(double)3(2)>(3)(t+1)

2.下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返

回。

例如,当形参n的值为10时,函数返回值为9.612558。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

doublefun(intn)

{inti;doubles,t;

/**********fund**********I

s=1

/**********fund**********I

for(i=l;i<=_2—;i++)

{t=2.0*i;

/*********ound**********I

s=s+(2.0*i-l)*(2.0*i+l)/_3.

returns;

)

main()

{intn=-l;

while(n<0)

{printf("Pleaseinput(n>0):");scanf("%d",&n);}

printf("\nTheresultis:%f\n",fun(n));

)

【参考答案】

⑴。⑵n(3)(t*t)

第2页第2页

二级C语言题库-填空题

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

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

abcdef35adgh3kjsdf7,则输出结果为4。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

voidfun(char*s,int*t)

{inti,n;

n=0;

/*********nd**********I

for(i=0;___1___!=0;i++)

/**********found**********!

if(s[i]>='O'&&s[i]<=___2___)n++;

/**********found**********I

―3—;

)

main()

{chars[80]="abcdef35adgh3kjsdf7";

intt;

printf("\nTheoriginalstringis:%s\n",s);

fun(s,&t);

printf("\nTheresultis:%d\n",t);

)

【参考答案】

⑴s[i](2)'9'(3)*t=n

4.下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放

到a[0]、a[l]xa[2]........中,把偶数从数组中删除,奇数个数通过函数值返回。

第3页第3页

二级C语言题库-填空题

例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后

a所指数组中的数据为:9、1、3、5、7,返回值为5。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

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

/**********found**********!

if(a[i]%2==—1—)

/*********ound**********I

a[j]=a[i];-2一;

)

/*********ound**********I

return___3.

)

main()

{intb[N]=<9,13,2,3,6,5,8,7),i,n;

printf("\nTheoriginaldata:\n");

for(i=0;i<N;i++)printf("%4d",b[i]);

printf("\n");

n=fun(b,N);

printf("\nThenumberofodd:%d\n",n);

printf("\nTheoddnumber:\n");

for(i=0;i<n;i++)printf("%4d",b[i]);

第4页第4页

二级c语言题库-填空题

printf("\n");

}

【参考答案】

(1)1(2)j++(3)j

5.下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原

来从高位到低位相反的顺序组成一个新数,作为函数值返回。

例如,输入一个整数27638496,函数返回值为64862。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

unsignedlongfun(unsignedlongn)

{unsignedlongx=0;intt;

while(n)

{t=n%10;

/**********f^)und**********I

jf(t%2==1)

/**********found**********I

x=2+t;

/**********found**********!

n=3

returnx;

)

main()

{unsignedlongn=-l;

while(n>99999999||n<0)

{printf("Pleaseinput(0<n<100000000):");scanf("%ld",&n);}

printf("\nTheresultis:%ld\n",fun(n));

第5页第5页

二级C语言题库-填空题

)

【参考答案】

(1)0(2)10*x(3)n/10

6.下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,

接着把a所指数组中的最大值放在a[l]元素中;再把a所指数组元素中的次小值放在

a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。

例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移

动后,数据排列为:1、9、2、8、3、7、4、6、50形参n中存放a所指数组中数据的

个数。

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

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#defineN9

voidfun(inta[],intn)

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

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

/**********found**********!

max=min=___1

px=pn=i;

forQ=i+l;j<n;j++){

/**********f^)und**********I

if(max<___2___)

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

/**********f0und**********I

if(miro___3___)

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

第6页第6页

二级C语言题库-填空题

)

if(pn!=i)

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

if(px==i)px=pn;

}

if(px!=i+1)

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

)

)

main()

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

printf("\nTheoriginaldata:\n");

for(i=0;i<N;i++)printf("%4d",b[i]);

printf("\n");

fun(b,N);

printf("\nThedataaftermoving:\n");

for(i=0;i<N;i++)printf("%4d",b[i]);

printf("\n");

)

【参考答案】

⑴a[i](2)a[j](3)a[j]

7.下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符'O'~

'9',则将U转换成9,T转换成8,2转换成71..........9转换成。;若是其它字符则

保持不变;并将转换后的结果作为函数值返回。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

/**********found**********I

第7页第7页

二级C语言题库-填空题

___1___fun(charch)

{

/*********nd**********I

if(ch>='0'&&-2—)

/**********found**********!

return'9'-(ch-___3___);

returnch;

)

main()

{charcl,c2;

printf("\nTheresult:\n");

cl='2';c2=fun(cl);

printf("cl=%cc2=%c\n",cl,c2);

cl='8';c2=fun(cl);

printf("cl=%cc2=%c\n",cl,c2);

cl='a';c2=fun(cl);

printf("cl=%cc2=%c\n",cl,c2);

)

【参考答案】

(1)char(2)ch<='9'(3)'O'

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

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

中共有M个字符串,且串长<N。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<string.h>

#defineM5

第8页第8页

二级c语言题库-填空题

#defineN20

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

{inti,k=0,len=N;

/**********fund**********I

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

{len=strlen(ss[i]);

if(i==0)*n=len;

/**********found**********I

if(len___2___*n)

{*n=len;

k=i;

}

/**********fund**********I

return(—3-);

)

main()

{charss[M][N]={"shanghai","guangzhou","beijing","tianjing","Chongqing");

intn,k,i;

printf("\nTheoriginalstringsare:\n");

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

k=fun(ss,&n);

printf("\nThelengthofshorteststringis:%d\n",n);

printf("\nTheshorteststringis:%s\n",ss[k]);

【参考答案】

⑴M(2)<(3)k

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

数字字符之后,并保持数字字符串和非数字字符串原有的次序。

第9页第9页

二级C语言题库-填空题

例如,所指的字符串为执行后结果为

Sdef35adh3kjsdf7,defadhajsdf35370

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

voidfun(char*s)

{inti,j=0,k=0;chartl[80],t2[80];

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

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

/**********found**********I

t2[j]=s[i];—1—;

)

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

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

/*********ound**********I

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

/*********nd**********I

for(i=0;i<___3___;i++)s[k+i]=t2[i];

main()

{chars[80]="ba3a54j7sd567sdffs";

printf("\nTheoriginalstringis:%s\n",s);

fun(s);

printf("\nTheresultis:%s\n"zs);

)

【参考答案】

第10页第10页

二级C语言题库-填空题

(l)j++或j+=l或++或上司+1

(2)s[i]=tl[i](3)j

10下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中

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

使插入后各结点数据域中的数据仍保持递增有序。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<stdlib.h>

#defineN8

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

q=一2一;

p=p->next;

)

s->next=p;

/**********found**********I

第11页第11页

二级C语言题库-填空题

q->next=___3___;

)

SLIST*creatlist(int*a)

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

h=p=(SLIST*)malloc(sizeof(SLIST));

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

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

q->data=a[i];p->next=q;p=q;

)

p->next=O;

returnh;

)

voidoutlist(SLIST*h)

{SLIST*p;

p=h->next;

if(p==NULL)printf("\nThelistisNULL!\n");

else

{printf("\nHead");

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

printf("->End\n");

)

)

main()

{SLIST*head;intx;

inta[N]={ll,12,15,18,19,22,25,29};

head=creatlist(a);

printf("\nThelistbeforeinserting:\n");outlist(head);

printf("\nEnteranumber:");scanf("%d",&x);

fun(head,x);

printf("\nThelistafterinserting:\n");outlist(head);

第12页第12页

二级C语言题库-填空题

)

【参考答案】

(l)x(2)p(3)s

11.下列给定程序中,函数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<stdio.h>

#defineN9

voidfun(inta[],intn)

{inti,t,p;

/**********found**********!

p=(n%2==0)?n/2:n/2+—1

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

t=a[i];

/*********ound**********I

a[i]=a[p+—2-];

/**********found**********I

一3—=t;

)

)

main()

{intb[N]={l/2,3,4,5,6,7,8,9),i;

printf("\nTheoriginaldata:\n");

第13页第13页

二级C语言题库-填空题

for(i=0;i<N;i++)printf("%4d",b[i]);

printf("\n");

fun(b,N);

printf("\nThedataaftermoving:\n");

for(i=0;i<N;i++)printf("%4d",b[i]);

printf("\n");

【参考答案】

(1)1(2)i(3)a[p+i]或*(a+p+i)

12.下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长

超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,

且串长小于

Mo

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<string.h>

#defineN5

#defineM10

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

{inti,j=0,len;

/*********ound**********I

for(i=0;i<_1—;i++)

{len=strlen(ss[i]);

/*********nd**********!

if(len<=_2_)

/*********nd**********I

strcpy(ssD++],_3_);

第14页第14页

二级c语言题库-填空题

returnj;

)

main()

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

inti,f;

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

for(i=0;i<N;i++)puts(x[i]);printf("\n");

f=fun(x,7);

printf("Thestringwitchlengthislessthanorequalto7:\n");

for(i=0;i<f;i++)puts(x[i]);printf("\n");

)

【参考答案】

⑴N(2)k(3)ss[i]

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

移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶

数的字符不动(注:字符串的长度大于等于2)。

例如,形参s所指字符串为abcdefgh,执行结果为ahcbedgf.

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

voidfun(char*s)

{inti,n,k;charc;

n=0;

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

/**********fund**********I

if(n%2==0)k=n--1

elsek=n-2;

/**********fund**********I

第15页第15页

二级c语言题库-填空题

c=2

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

/*********nd**********I

s[l]=—3—;

)

main()

{chars[80]="abcdefgh";

printf("\nTheoriginalstringis:%s\n",s);

fun(s);

printf("\nTheresultis:%s\n",s);

)

【参考答案】

(1)1(2)s[k]或*(s+k)(3)c

14.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所

指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返

回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<string.h>

#defineN5

#defineM8

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

{inti;

/*********nd**********I

for(i=0;i<_1—;i++)

/**********fund**********I

第16页第16页

二级C语言题库-填空题

if(strcmp(ss[i],t)==O)return_2—;

return-1;

)

main()

{charch[N][M]={"if,"while","switch","int","for"),t[M];

intn,i;

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

for(i=0;i<N;i++)puts(ch[i]);printf("\n");

printf("\nEnterastringforsearch:gets(t);

n=fun(ch,t);

/**********found**********I

if(n==_3_)printf("\nDon'tfound!\n");

elseprintf("\nThepositionis%d.\n",n);

}

【参考答案】

⑴N(2)i(3)-1

15.下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun

函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

{intdata;

structlist*next;

}SLIST;

第17页第17页

二级C语言题库-填空题

voidfun(SLIST*p)

{SLIST*t,*s;

t=p->next;s=p;

while(t->next!=NULL)

/*********nd**********I

t=t->―1

)

/**********found**********I

printf("%d",—2—);

s->next=NULL;

/**********found**********I

free(—3一);

)

SLIST*creatlist(int*a)

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

h=p=(SLIST*)malloc(sizeof(SLIST));

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

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

q->data=a[i];p->next=q;p=q;

)

p->next=0;

returnh;

)

voidoutlist(SLIST*h)

{SLIST*p;

p=h->next;

if(p==NULL)printf("\nThelistisNULL!\n");

else

第18页第18页

二级C语言题库-填空题

{printf("\nHead");

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

printf("->End\n");

)

)

main()

{SLIST*head;

inta[N]={ll,12,15,18,19,22,25,29};

head=creatlist(a);

printf("\nOutputfromhead:\n");outlist(head);

printf("\nOutputfromtail:\n");

while(head->next!=NULL){

fun(head);

printf("\n\n");

printf("\nOutputfromheadagain:\n");outlist(head);

)

)

【参考答案】

(l)next(2)t->data(3)t

16.下列给定程序中,函数fun的功能是:逆置数组元素中的值。例如:若a所指数组

中的数据为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、

2、1。形参n给出数组中数据的个数。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

voidfun(inta[],intn)

{inti,t;

第19页第19页

二级C语言题库-填空题

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

t=a[i];

/**********fund**********I

a[i]=a[n-l--2—];

/**********fund**********I

—3—=t;

)

)

main()

{intb[9]={l,2,3,4,5,6,7,8,9),i;

printf("\nTheoriginaldata:\n");

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

printf("%4d",b[i]);

printf("\n");

fun(b,9);

printf("\nThedataafterinvert:\n");

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

printf("%4d",b[i]);

printf("\n");

【参考答案】

(1)n/2(2)i(3)a[n-i-l]

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

件中,复制成功时函数返回1,失败时返回0.在复制的过程中,把复制的内容输出到

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

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

注意:部分源程序在文件BLANK1.C中。

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

第20页第20页

二级C语言题库-填空题

#include<stdio.h>

#include<stdlib.h>

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

while(!feof(___2___))

{putchar(ch);

/*********nd**********I

fputc(ch,_3—);

ch=fgetc(fs);

)

fclose(fs);fclose(ft);

printf("\n\n");

return1;

)

main()

{charsfname[20]="myfilel",tfname[20]="myfile2";

FILE*myf;inti;charc;

myf=fopen(sfname,"w");

printf("\nTheoriginaldata:\n");

for(i=l;i<30;i++){c='A'+rand()%25;fprintf(myf,"%c",c);printf("%c",c);}

fclose(myf);printf("\n\n");

if(fun(sfname,tfname))printf("Succeed!");

第21页第21页

二级c语言题库-填空题

elseprintf("Fail!");

)

【参考答案】

(1)"r"(2)fs(3)ft

18.下列给定程序中,函数fun的功能是:有NxN矩阵,根据给定的m(m<=N)值,将

每行元素中的值均向右移动m个位置,左位置为0,例如,N=3,m=2,有下列矩阵

123

456

789

程序执行结果为

001

004

007

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#defineN4

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

{inti,j;

/**********found**********!

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

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

/**********found**********I

t[i]U+_2_]=t[i]U];

/**********found**********I

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

t[i]U]=O;

第22页第22页

二级C语言题库-填空题

)

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<N;i++)

{for(j=0;j<N;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<N;i++)

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

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

printf("\n");

)

)

【参考答案】

(l)i++(2)m(3)m

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

的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中

的学号和姓名,最后输出修改后的数据。

例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001,"ZhangSan",95、

80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88O

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

注意:部分源程序在文件BLANK1.C中。

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

第23页第23页

二级c语言题库-填空题

#include<stdio.h>

#include<string.h>

structstudent{

longsno;

charname[10];

floatscore[3];

);

voidfun(structstudenta)

{structstudentb;inti;

/**********found**********I

b=_1—;

b.sno=10002;

/*********ound**********I

strcpy(_2_,"LiSi");

printf("\nThedataaftermodified:\n");

printf("\nNo:%ldName:%s\nScores:",b.sno,);

/**********found**********I

for(i=0;i<3;i++)printf("%6.2f",b.—3—);

printf("\n");

)

main()

{structstudents={10001,"ZhangSan",95,80,88};

inti;

printf("\n\nTheoriginaldata:\n");

printf("\nNo:%ldName:%s\nScores:",s.sno,);

for(i=0;i<3;i++)printf("%6.2f",s.score[i]);

printf("\n");

fun(s);

【参考答案】

第24页第24页

二级C语言题库-填空题

(1)a(2)(3)score[i]

20.下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文

件myfile4.txt中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。

文件的读写分别由函数ReadText和WriteText实现。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

voidWriteText(FILE*);

voidReadText(FILE*);

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(O);}

ReadText(fp);

fclose(fp);

)

/**********found**********I

voidWriteText(FILE―1—)

{charstr[81];

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

gets(str);

while(strcmp(str,"-l")!=O){

第25页第25页

二级C语言题库-填空题

/**********fund**********I

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

gets(str);

)

voidReadText(FILE*fr)

{charstr[81];

printf("\nReadfileandoutputtoscreen:\n");

fgets(str,81,fr);

while(!feof(fr)){

/**********found**********I

printf("%s",—3—);

fgets(str,81,fr);

)

)

【参考答案】

⑴*fw(2)str(3)str

21.下列给定程序中,函数fun的功能是:有NxN矩阵,将矩阵的外围元素做顺时针旋

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

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

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

123

456

789

操作后应为:

741

852

963

第26页第26页

二级C语言题库-填空题

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#defineN4

voidfun(int(*t)[N])

{intj,r[N];

for0=O;j<N;j++)r[i]=t[O]Dl;

for0=O;j<N;j++)

/**********found**********I

t[O][N-j-l]=tU][_l_]

for0=O;j<N;j++)

tU][O]=t[N-l]U];

/**********found**********!

forQ=N-l;j>=0;-2_)

t[N-l][N-l-j]=tU][N-l];

for(j=N-l;j>=0;j-)

/**********f^)und**********I

t[j][N-l]=r[—3—];

)

main()

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

printf("\nTheoriginalarray:\n");

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

{for(j=0;j<N;j++)printf("%2d",t[i][j]);

printf("\n");

)

fun(t);

第27页第27页

二级C语言题库-填空题

printf("\nTheresultis:\n");

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

{forQ=0;j<N;j++)printf("%2d",t[i]U]);

printf("\n");

)

【参考答案】

⑴0(2)j--(3)j

22.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参

substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组

中共有N个字符串,且串长小于Mo程序中库函数strstr(sl,s2)的功能是在si串中查

找s2子串,若没有,函数值为0,若有,函数值为非0。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<string.h>

#defineN5

#defineM15

voidfun(char(*ss)[M],char*substr)

{inti,find=O;

/**********found**********!

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

/**********found**********I

if(strstr(ss[i],—2—)!=NULL)

{find=l;puts(ss[i]);printf("\n");}

/**********found**********I

if(find==_3_)printf("\nDon'tfound!\n");

)

第28页第28页

二级C语言题库-填空题

main()

{charx[N][M]={"BASIC","Clangwage","Java","QBASIC","Access"),str[M];

inti;

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

for(i=0;i<N;i++)puts(x[i]);printf("\n");

printf("\nEnterastringforsearch:");gets(str);

fun(x,str);

)

【参考答案】

⑴N(2)substr(3)0

23.下列给定程序中,函数fun的功能是:计算一个带头结点的单向链表中各结点的数

据域中数值之和,结果作为函数值返回。

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

注意:部分源程序在文件BLANK1.C中。

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

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(int*);

voidoutlist(SLIST*);

intfun(SLIST*h)

{SLIST*p;ints=0;

p=h->next;

while(p)

第29页第29页

二级C语言题库-填空题

/**********f^)und**********I

s+=p->—1一;

/**********fund**********I

P=P->—2—;

)

returns;

)

main()

{SLIST*head;

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

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

/**********found**********I

printf("\nsum=%d\n"/fun(___3___));

)

SLIST*creatlist(inta[])

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

h=p=(SLIST*)malloc(sizeof(SLIST));

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

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

q->data=a[i];p->next=q;p=q;

)

p->next=0;

returnh;

)

voidoutlist(SLIST*h)

{SLIST*p;

p=h->next;

if(p==NULL)printf("ThelistisNULL!\n");

第30页第30页

二级c语言题库-填空题

else

{printf("\nHead");

do

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

while(p!=NULL);

printf("->End\n");

)

)

【参考答案】

(l)data(2)next(3)head

24.程序通过定义

温馨提示

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

评论

0/150

提交评论