全国计算机二级C上机 填空题.docx
《全国计算机二级C上机 填空题.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C上机 填空题.docx(107页珍藏版)》请在冰豆网上搜索。
全国计算机二级C上机填空题
全国计算机等级考试C语言――填空题
♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
注意:
源程序存放在考生文件夹下的BLANK1.C中。
1.不得增行或删行,也不得更改程序的结构!
2.请在程序下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
1.给定程序中,函数FUN的功能是:
计算出带有头接点的单向链表中各结点数据域之和作为函数值返回。
#include
#include
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(int*);
voidoutlist(SLIST*);
intfun(SLIST*h)
{SLIST*p;ints=0;
p=h->next;
while(p)
{
/**********************************found*********************************/
s+=p->___1___;data
/**********************************found*********************************/
p=p->___2___;next
}
returns;}
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48};
head=creatlist(a);outlist(head);
/**********************************found*********************************/
printf("\nsum=%d\n",fun(___3___));head
}
SLIST*creatlist(inta[])
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;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");
else
{printf("\nHead");
do
{printf("->%d",p->data);p=p->next;}
while(p!
=NULL);
printf("->End\n");
}
}
2.给定程序中,函数FUN的功能是:
求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。
字符串数组中工有M个字符串,且串长#include
#include
#defineM5
#defineN20
voidfun(char(*ss)[N])
{inti,j,k=0,n,m,len;
for(i=0;i{len=strlen(ss[i]);
if(i==0)n=len;
if(len>n){
/**********************************found*********************************/
n=len;k=___1___;i
}
}
for(i=0;iif(i!
=k)
{m=n;
len=strlen(ss[i]);
/**********************************found*********************************/
for(j=___2___;j>=0;j--)len
ss[i][m--]=ss[i][j];
for(j=0;j/**********************************found*********************************/
ss[i][j]=____3____;'*'
}
}
main()
{chars[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
inti;
printf("\nTheoriginalstringsare:
\n");
for(i=0;iprintf("\n");
fun(ss);
printf("\nTheresult:
\n");
for(i=0;i}
3.人员记录由编号和出生年,月,日组成,N名人员的数据已在主函数中存入结构体数组std且编号唯一。
函数fun的功能是;找出指定编号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数据中的编号为空串。
#include
#include
#defineN8
typedefstruct
{charnum[10];
intyear,month,day;
}STU;
/**********************************found*********************************/
___1___fun(STU*std,char*num)STU
{inti;STUa={"",9999,99,99};
for(i=0;i/**********************************found*********************************/
if(strcmp(____2_____,num)==0)std[i].num
/**********************************found*********************************/
return(___3____);std[i]
returna;
}
main()
{STUstd[N]={{"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},
{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},
{"777777",1983,6,22},{"888888",1984,8,19}};
STUp;charn[10]="666666";
p=fun(std,n);
if(p.num[0]==0)
printf("\nNotfound!
\n");
else
{printf("\nSucceed!
\n");
printf("%s%d-%d-%d\n",p.num,p.year,p.month,p.day);
}
}
4.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。
函数fun的功能:
删除链表中数据域值相同的结点,使之保留一个。
#include
#include
#defineN8
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___);q
/**********************************found*********************************/
q=p->___2___;next
}
else
{p=q;
/**********************************found*********************************/
q=q->___3___;next
}
}
}
}
SLIST*creatlist(int*a)
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;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
{printf("\nHead");
do{printf("->%d",p->data);p=p->next;}while(p!
=NULL);
printf("->End\n");
}
}
main()
{SLIST*head;inta[N]={1,2,2,3,4,4,4,5};
head=creatlist(a);
printf("\nThelistbeforedeleting:
\n");outlist(head);
fun(head);
printf("\nThelistafterdeleting:
\n");outlist(head);
5.函数fun的功能是进行数字字符转换。
若形参ch中是数字字符'0~9',则'0'转换成'9','1'转换成'8','2'转换成'7'…'9'转换成'0';若是其他字符则保持不变;并将转换后的结果作为函数值返回.
#include
/**********************************found*********************************/
___1___fun(charch)char
{
/*****************