个人站长怎么做企业网站,做英文网站的标准字体,烟台网站排名seo,学做网站赚钱方法第36套#xff1a;
给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数, 存放在形参n所指的存储单元中。 请在程序的下划线处填入正确的内容并把下划线删除#xff0c;使程序得出正确的结果。 注意#xff1a;源程序存放在考生文件夹下的BLANK1.C中。 不得…第36套
给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数, 存放在形参n所指的存储单元中。 请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。 注意源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行也不得更改程序的结构
给定源程序
#include stdio.h
#include stdlib.h
#define N 8
typedef struct list
{ int data;
struct list *next;
} SLIST;
SLIST *creatlist(int *a);
void outlist(SLIST *);
void fun( SLIST *h, int *n)
{ SLIST *p;
___1___0;
ph-next;
while(p)
{ (*n);
pp-___2___;
}
}
main()
{ SLIST *head;
int a[N]{12,87,45,32,91,16,20,48}, num;
headcreatlist(a); outlist(head);
fun(___3___, num);
printf(\nnumber%d\n,num);
}
SLIST *creatlist(int a[])
{ SLIST *h,*p,*q; int i;
hp(SLIST *)malloc(sizeof(SLIST));
for(i0; iN; i)
{ q(SLIST *)malloc(sizeof(SLIST));
q-dataa[i]; p-nextq; pq;
}
p-next0;
return h;
}
void outlist(SLIST *h)
{ SLIST *p;
ph-next;
if (pNULL) printf(The list is NULL!\n);
else
{ printf(\nHead );
do
{ printf(-%d,p-data); pp-next; }
while(p!NULL);
printf(-End\n);
}
} 解题思路
本题是要求统计出带有头结点的单向链表中结点的个数。 第一处对n所指的存储单元进行初始化所以应填*n。 第二处指向p的下一个结点所以应填next。 第三处函数调用在主函数中已经给出了head所以应填head。 给定程序MODI1.C中函数fun的功能是求出s所指字符串中最后一次出现的t 所指子字符串的地址通过函数值返回在主函数中输出从此地址开始的字符串; 若未找到则函数值为NULL。 例如当字符串中的内容为“abcdabfabcdx”t中的内容为ab时 输出结果应是abcdx。 当字符串中的内容为“abcdabfabcdx”t中的内容为abd时 则程序输出未找到信息not be found!。 请改正程序中的错误使它能得出正确的结果。 注意不要改动main函数不得增行或删行也不得更改程序的结构 给定源程序
#include stdio.h
#include string.h
char * fun (char *s, char *t )
{
char *p , *r, *a;
a Null;
while ( *s )
{ p s; r t;
while ( *r )
if ( r p )
{ r; p; }
else break;
if ( *r \0 ) a s;
s;
}
return a ;
}
main()
{
char s[100], t[100], *p;
printf(\nPlease enter string S :); scanf(%s, s );
printf(\nPlease enter substring t :); scanf(%s, t );
p fun( s, t );
if ( p ) printf(\nThe result is : %s\n, p);
else printf(\nNot found !\n );
} 解题思路 第一处指向空指针错误Null应NULL。 第二处比较指针位置的值是否相等所以应改为if(*r*p)。 函数fun的功能是 将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除串中剩余字符所形成的一个新串放在t所指的数组中。 例如若s所指字符串中的内容为“ABCDEFG123456”其中字符A的ASCII码 值为奇数因此应当删除其中字符B的ASCII码值为偶数但在数组中的下标为 奇数因此也应当删除而字符2的ASCII码值为偶数所在数组中的下标也为偶数因此不应当删除其它依此类推。最后t所指的数组中的内容应是“246”。 注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序
#include stdio.h
#include string.h
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];
printf(\nPlease enter string S:); scanf(%s, s);
fun(s, t);
printf(\nThe result is: %s\n, t);
NONO();
} 解题思路 本题是从一个字符串按要求生成另一个新的字符串。我们使用for循环语句来解决这个问题。 参考答案
void fun(char *s, char t[])
{
int i, j 0 ;
for(i 0 ; i strlen(s) ; i 2)
if(s[i] % 2 0) t[j] s[i] ;
t[j] 0 ;
}