编程填空题.docx
- 文档编号:26584549
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:131
- 大小:101.79KB
编程填空题.docx
《编程填空题.docx》由会员分享,可在线阅读,更多相关《编程填空题.docx(131页珍藏版)》请在冰豆网上搜索。
编程填空题
全国计算机等级考试C语言――填空题
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;i if(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;i printf("\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 { /**********************************found*********************************/ if(ch>='0'&&___2____)ch<='9' /**********************************found*********************************/ return'9'-(ch-___3___);'0' returnch; } main() {charc1,c2; printf("\nTheresult: \n"); c1='2';c2=fun(c1); printf("c1=%cc2=%c\n",c1,c2); c1='8';c2=fun(c1); printf("c1=%cc2=%c\n",c1,c2); c1='a';c2=fun(c1); printf("c1=%cc2=%c\n",c1,c2); } 6.给定程序中,函数fun的功能是: 对形参ss所指字符串数组中的M字符串按长度由短到长进行排序。 SS所指字符串数组中共有M个字符串,且串长 #include #include #defineM5 #defineN20 voidfun(char(*ss)[N]) {inti,j,k,n[M];chart[N]; for(i=0;i for(i=0;i {k=i; /**********************************found*********************************/ for(j=___1___;j /**********************************found*********************************/ if(n[k]>n[j])k=___2___;j if(k! =i) {strcpy(t,ss[i]); strcpy(ss[i],ss[k]); /**********************************found*********************************/ strcpy(ss[k],___3___);t n[k]=n[i]; } } } main() {chars[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"}; inti; printf("\nTheoriginalstringsare: \n"); for(i=0;i printf("\n"); fun(ss); printf("\nTheresult: \n"); for(i=0;i } 7.函数FUN的功能是: 从三个形参a,b,c中找出中间的那个数,作为函数值返回。 例如,当a=3,b=5,c=4时,中数为4。 #include intfun(inta,intb,intc) {intt; /**********************************found*********************************/ t=(a>b)? (b>c? b: (a>c? c: ___1___)): ((a>c)? ___2___: ((b>c)? c: ___3___)); returnt; }1.a2.a3.b main() {inta1=3,a2=5,a3=4,r; r=fun(a1,a2,a3); printf("\nThemiddlenumberis: %d\n",r); } 8.给定程序中,函数FUN的功能是: 统计出带有头结点的单向链表中接点的个数,存放在形参N所指的存储单元中。 #include #include #defineN8 typedefstructlist {intdata; structlist*next; }SLIST; SLIST*creatlist(int*a); voidoutlist(SLIST*); voidfun(SLIST*h,int*n) {SLIST*p; /**********************************found*********************************/ *n=____1_____;0 p=h->next; while(p) {(*n)++; /**********************************found*********************************/ p=____2____;p->next } } main() {SLIST*head; inta[N]={12,87,45,32,91,16,20,48},num; head=creatlist(a);outlist(head); /**********************************found*********************************/ fun(head,____3____);&num printf("\nnumber=%d\n",num); } 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");}} 9.给定程序的功能是: 调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。 在复制的过程中,把复制的内容输出到终端屏幕。 主函数中源文件名房子变量sfname中,目标文件名放在变量tfname中。 #include #include intfun(char*source,char*target) {FILE*fs,*ft;charch; /**********************************found*********************************/ if((fs=fopen(source,___1___))==NULL)"r" return0; if((ft=fopen(target,"w"))==NULL) return0; printf("\nThedatainfile: \n"); ch=fgetc(fs); /**********************************found*********************************/ while(! feof(___2___))fs {putchar(ch); /**********************************found*********************************/ fputc(ch,___3___);ft ch=fgetc(fs); } fclose(fs);fclose(ft); printf("\n\n"); return1;} main() {charsfname[20]="myfile1",tfname[20]="myfile2"; FILE*myf;inti;charc; myf=fopen(sfname,"w"); printf("\nTheoriginaldata: \n"); for(i=1;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! "); elseprintf("Fail! "); } 10.给定程序中,函数FUN的功能是: 在形参S所指字符串中的每个数字字符之后插入一个*。 例如,形参S所指字符串为: def35adh3kjsdf7.执行结果为: def3*5*adh3*kjsdf7* #include voidfun(char*s) {inti,j,n; for(i=0;s[i]! ='\0';i++) /**********************************found*********************************/ if(s[i]>='0'___1___s[i]<='9')&& {n=0; /**********************************found*********************************/ while(s[i+1+n]! =___2___)n++;'\0' for(j=i+n+1;j>i;j--) /**********************************found*********************************/ s[j+1]=___3___;s[j] s[j+1]='*'; i=i+1; } } main() {chars[80]="ba3a54cd23a"; printf("\nTheoriginalstringis: %s\n",s); fun(s); printf("\nTheresultis: %s\n",s); } 11.给定程序中,函数FUN的功能是: 将形参STD所指结构体数组中年龄最大者的数据作为函数值返回,并将main函数输出。 #include typedefstruct {charname[10]; intage; }STD; STDfun(STDstd[],intn) {STDmax;inti; /**********************************found*********************************/ max=____1____;std[0] for(i=1;i /**********************************foun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 填空