问答题
下列给定程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制3个字符之后插入一个空格。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h >
void fun (char * p, char * b)
int i, k=0;
while (* p)
i=1;
while (i<=3 && * p)
/**********found********** /
b[k]=p;
k++; p++; i++;
if(* p)
/**********found********** /
b[k++]" ";
b[k]=’\0’;
main ()
char a[80], b[80];
printf ("Enter a string:");
gets (a);
printf ("The original string: ");
puts (a);
fun (a, b);
printf ("\nThe string after insert
space: ");
puts (b); printf ("\n\n");
【参考答案】
b[k]=*p;
(2) b[k]=’ ’;k++;
答案考生文件夹
热门
试题
问答题
N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序 #include <stdlib.h> #include <stdio.h> #define N 8 struct slist double s; struct slist * next; ; typedef struct slist STREC; double fun(STREC * h) STREC * creat (double * s) *创建链表* STREC * h, * p, * q; int i=0; h=p=(STREC*) malloc (sizeof (STREC)); p->s=0; while (i<N) q=(STREC *)malloc (sizeof (STREC)); q->s=s[i]; i++; p->next=q; p=q; p->next=0; return h; outlist (STREC * h) STREC * p; p=h->next; printf ( head ); do printf( ->% 4.1f , p->s); p=p->next; *输出成绩* while (p !=NULL); printf ( n n ); void main () double s[N]=85, 76, 69, 85, 91, 72, 64, 87 , ave; STREC * h; h=creat (s); outlist (h); ave=fun (h); printf( ave=% 6.3f n , ave);