intfun(char*s,char*p[]){
inti=0;
char*ps,*ts;
while(*s){
while(*s=='')s++;//跳过子串前的空格
ps= (16) ;
while(*s!
=''&&*s!
=0)s++;//扫描子串
if(ps
p[i]=ts=(17);
while(ps
*ts=0;i++;}}
return(19);}
4.下面程序的功能是:
首先建立一条链表,顺序从链表中找到data为最大的结点,从链表中删除该结点,并将其值返回。
最终删除整个链表.同时得到按降序排序的数组x。
其中,函数Insert(inta,node*head)的功能是:
用参数a产生一个新结点,将其插在链首,并返回链首的指针。
DelleteMax(noe*&head),从head所指向的链表中找到data值为最大的结点,从链表中删除该结点并将该结点值返回。
算法提示:
当链表为空时,返回-1,在查找过程中,始终让pmax指向当前data值为最大的结点,并让pmax1指向pmax的前一个结点,找到data值为最大的结点后,将其从链表中删除该结点,并返回其值。
#include
structnode{
intdata;
node*next;
};
20Insert(intx,node*head){
node*p=newnode;
p->data=x;21;head=p;
returnhead;
}
intDeleteMax(node*&head){
node*p1,*p2,*pmax,*pmax1;
intmax;
p1=p2=head;
if(!
head)return-1;
max=p1->data;pmax=p1;
while(p1){
if(maxdata){
max=p1->data;
pmax=p1;pmax1=p2;
}
p2=p1;
22;
}
if(pmax==head)head=head->next;
else23;
deletepmax;
returnmax;
}
voidmain(){
inta;
intx[200],count=0;
node*head=0;
cin>>a;
while(a!
=-1){
head=Insert(a,head);
cin>>a;
}
while(head){
x[count]=24;
count++;
}
for(inti=0;icout<}
一、
选择题(共30分)
1
B
2
C
3
A
4
C
5
B
6
D
7
A
8
B
9
C
10
C
11
B
12
D
13
A
14
B
15
A
16
C
17
B
18
A
19
B
20
A
二、阅读程序(每空1分,共26分)
(1)_____count____
(2)_____i(4)string.h(5)字符数组(6)字符串常量
(7)跳空格字符(8)跳非空格字符(9)前空时单词数多1
(10)后空时单词数多1(11)引用(12)结构体数组
(13)30(14)结构体类型(15)id
(16)name(17)cScore(18)Input
(19)结构体变量(20)值(21)引用
(22)C行的循环语句(23)Input(sts[i])(24)+=
(25)平均成绩(26)1,3,4,7,9,11(27)3,4
(28)1,7(29)11(30)字符指针数组
(31)A(