C语言上机考试复习题key
全国计算机等级考试三级C语言上机题库(含答案,考试作弊必备)

题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsV al(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10; if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}★题目3函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
计算机二级C语言上机复习题及答案解析范文一份

计算机二级C语言上机复习题及答案解析范文一份计算机二级C语言上机复习题及答案解析 1计算机二级C语言上机复习题及答案解析填空题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。
ss所指字符串数组__有N个字符串,且串长小于M。
程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#define N 5#define M 15void fun(char (*ss)[M], char *substr){ int i,find=0;for(i=0; i __1__ ; i++)if( strstr(ss[i], __2__) != NULL ){ find=1; puts(ss[i]); printf(“\n"); }if (find==__3__) printf("\nDon't found!\n");}main(){ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];int i;printf("\nThe original string\n\n");for(i=0;i printf("\nEnter a string for search : "); gets(str);fun(x,str);}解题思路:本题是根据给定的字符串数组中查找指定的字符串,如果存在,则显示。
C语言上机题参考答案

20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);
C语言程序 上机题 总结归纳 B组(43套)

数学表达式
k236.1 满足精度求和 k202.1 移动
k205.3 k206.3 指定位置转大写 删除尾部n个*号
字符串
k216.1 移动 k226.1 统计字符 k242.3 删除指定字符 k201.1 平均值、移动
k216.2 小写转大写 k227.1 字符转数字 函数嵌套调用 k243.2 查找子串 k201.2 平均值 k232.2 排序 k209.1 生成矩阵 参数、引用 k229.2 主对角线求和 k209.3 特定元素转存
k214.1 删除偶数位数 取位数 k227.2 宏定义 k236.2 变量交换
算术式
k228.2 递归求阶乘 k237.1 统计特定数
一维数组
k226.3 查找最大元素 k206.1 转一维数组 行列引用、参数 k229.1 删除多余字符
二维数组
结构体
k205.1 结构体指针
考查知识点 链表 文件
k210.2 链表偶数求和 链表的遍历 k211.1 重写结构体 文件写、定位 k203.3 组合新数 k216.3 统计非素数 k225.1 链表排序 k219.1 结构体排序 打开 写入 k206.2 递归 参数、关系运算 k217.2 八进制转十进制 k230.1 函数指针 k237.3 构成新数
试题号(小数点前为套题号,小数点后为小题,1表示填空、2表示修改、3表示编程) k231.1 链表排序 k238.1 链表排序 k240.1 链表转置
k207.1 生成随机数 类素数算法 k218.3 因子和 k230.2 选特定数
k207.2 满足精度 定义 k222.2 幂的位数和 k232.1 构成新数
k208.2 取位置数 关系运算、指针 k223.1 偶数组成新数 k232.3 选择特定数
c语言上机考试训练题库及答案

3000≤s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),请按照上述标准利用switch语句编写程序计算运费,并画出程序NS图。
#include <stdio.h>
int main()
{
if(i%2==0&&i%3==0&&i%7==0)
printf("%d\n",i);
}
}
26.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include<stdio.h>
main()
{
char ch;
int z=0,k=0,s=0,q=0;
while((ch=getchar())!='\n')
#include<stdio.h>
void main()
{int i,sum=0;
for(i=100;i<=996;i+=4)
if(i/10%10!=4)
sum+=i;
printf("和为:%d",sum);
}
15.输入一个字符串,统计该字符串的长度以及字母a出现的次数。
#include <stdio.h>
void main()
{int i,j=0;
char ch[ ]=" ";
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)
C语言上机程序设计题库及答案

C语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。
【参考代码】double y=0;y=sin(m)*10;return(y);功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。
【参考代码】int i,s=0;for(i=x;i<=y;i+=2)s=s+i;return s;功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)【参考代码】int i,j,t;for(i=0; i < 3; i++)for(j=0; j < i; j++){ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t; }功能:求一个四位数的各位数字的立方和。
【参考代码】int d,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
【参考代码】int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]<pp[j])pp[j]=tt[i][j];}功能:求一组数中大于平均值的数的个数。
【参考代码】int i,k=0;float s=0,ave;for(i=0;i<n;i++)s+=a[i];ave=s/n;printf("%f ",ave);for(i=0;i<n;i++)if(a[i]>ave)k++;return k;题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80)。
C语言上机考试复习题key

1、请编写函数merge(int a[],int n,int b[],int m,int *c)实现如下功能:将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。
在主函数中调用merge并输出合并后的数组c。
2、有一字符串,包含n个字符,写一函数substrcpy(char *str1, char *str2, int m)实现如下功能:将此字符串str1中从第m个字符开始的全部字符复制到字符串str2中。
在主函数中调用substrcpy并输出结果。
3、将一个整数字符串转换为一个整数,如“-1234”转换为-1234。
要求用指针实现。
4、用结构体实现:编写程序将下列数据赋予结构体变量,并将它们输出(直接输出和用结构体数组输出)。
姓名年龄月薪李明25 2500王利22 2300赵勇30 30006、从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test.dat”中保存,再从该文件中读出字符串并显示出来。
输入的字符串以“!”结束。
(下面有错,第二个文件打开指令改为rb)7、从文件test.txt中读入一批整数,并将它们按照递增的顺序存放在一个数组中。
8、将一个磁盘文件中的信息复制到另一个磁盘文件中。
9、编程:定义函数求十个数的最大值,并在主调函数中输出。
(类比第15题)10、从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。
11、编程:输入年、月、日,用子函数判断计算该日期是该年的第几天。
5、用结构体实现:有五个学生,每个学生的数据包括学号、姓名、三门课的成绩。
从键盘输入5个学生的相关数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号,姓名、三门课的成绩,三门课的平均分)。
要求使用结构体变量。
12、编程:任意输入一个数,定义函数,将其按原来排序的规律将它插入已排好序的数组中。
如:原数组为 {2,3,5,7,9},输入4,则新数组为{2,3,4,5,7,9}13、定义函数,判断某数是否是水仙花数,调用该函数找出100-999之间的水仙花数14、用行指针法寻找3*4矩阵中的最大值15、任意输入10个数,定义函数,找出其中的最大值和最小值,并在主调函数中输出这两个值(利用指针实现)16、输入两个整数,将他们互换,用带参数的宏来实现。
二级C语言上机题库100题及其答案

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构
/**********found***********/
p=(NODE *)malloc(sizeof(NODE));
h=p;
p->next=NULLຫໍສະໝຸດ 第1题 填空题
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1。C中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1。C中。
不得增行或删行,也不得更改程序的结构!
/**********found**********/
fp = fopen(filename, "rb+");
/**********found**********/
return j ;
}
第6题
填空题
给顶程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:
x1=5.000000,x2=3.000000, x1*x1+x1*x2=4.000000
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存在考生文件夹下的BLANK1。C中。
fp = fopen(filename, "wb");
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、请编写函数merge(int a[],int n,int b[],int m,int *c)实现如下功能:将两个从小到大有序数组a 和b 复制合并出一个有序整数序列c,其中形参n 和m 分别是数组a 和b 的元素个数。
在主函数中调用merge 并输出合并后的数组c。
2、有一字符串,包含n 个字符,写一函数substrcpy(char *str1, char *str2, int m)实现如下功能:将此字符串str1中从第m 个字符开始的全部字符复制到字符串str2中。
在主函数中调用substrcpy并输出结果。
3、将一个整数字符串转换为一个整数,如“-1234”转换为-1234。
要求用指针实现。
4、用结构体实现:编写程序将下列数据赋予结构体变量,并将它们输出(直接输出和用结构体数组输出)。
姓名年龄 月薪 李明 25 2500 王利 22 2300 赵勇3030006、从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test.dat ”中保存,再从该文件中读出字符串并显示出来。
输入的字符串以“!”结束。
(下面有错,第二个文件打开指令改为rb)7、从文件test.txt 中读入一批整数,并将它们按照递增的顺序存放在一个数组中。
8、将一个磁盘文件中的信息复制到另一个磁盘文件中 。
9、编程:定义函数求十个数的最大值,并在主调函数中输出。
(类比第15题)10、从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。
11、编程:输入年、月、日,用子函数判断计算该日期是该年的第几天。
5、用结构体实现: 有五个学生,每个学生的数据包括学号、姓名、三门课的成绩。
从键盘输入5个学生的相关数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号,姓名、三门课的成绩,三门课的平均分)。
要求使用结构体变量。
12、编程:任意输入一个数,定义函数,将其按原来排序的规律将它插入已排好序的数组中。
如:原数组为 {2,3,5,7,9},输入4,则新数组为{2,3,4,5,7,9}13、定义函数,判断某数是否是水仙花数,调用该函数找出100-999之间的水仙花数14、用行指针法寻找3*4矩阵中的最大值15、任意输入10个数,定义函数,找出其中的最大值和最小值,并在主调函数中输出这两个值(利用指针实现)16、输入两个整数,将他们互换,用带参数的宏来实现。
17、输入两个整数,求他们的最大值,定义外部函数来实现。
(类比15题)18、通过指针变量来输出九九乘法表。
19、通过指针变量实现1+2+3+……+n ,在程序中输出改结果。
20、将n 个数按输入时顺序的逆序排列,用函数实现。
21、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
22、编程实现输入n (n<1000)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参返回调用处。
23、已知节点结构如下:struct student {Char no[7]; Char name[9];Struct student *next; } (1) 定义函数creat ,从无到有地创建一个新链表,保存若干节点信息,节点个数不限 (2)定义函数sho w ,,输出链表中所有节点信息24、用字符数组存储任意输入的10个字符,在子函数中把该字符数组的小写字母转换成大写字母。
(类比6) 25、输入一串字符,以‘?’结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序输出,不出现的字母不输出)。
例:输入:5b3a+4-hdeh5dh? 输出: h 3 d 2 a 1 b 1 e 126、编写函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
(要求利用指针完成,不使用全局变量)27、写一函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
(要求利用指针完成,不使用strlen函数)28、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。
注意,复制时,’\0’也要复制过去。
‘\0’后面的字符不复制。
(要求用指针实现)29、输入三个数,用指针变量的方式按由小到大的顺序输30、链表头插,尾插,反序,插入,删除,浏览,存盘,读取。
#include <stdlib.h>typedef int elemtype;typedef struct node{ elemtype data;struct node *next;}NODE;NODE *h_creat(){ NODE *p,*head;int len;printf("请问要创建几个节点?:");scanf("%d",&len);head=(NODE *)malloc(sizeof(NODE));head->next=NULL;while(len){p=(NODE *)malloc(sizeof(NODE));printf("请输入该节点数据:");scanf("%d",&p->data);p->next=head->next;head->next=p;len--;}return head;}void reverse(NODE *head){NODE stack[1024],*p=head->next;int i=0;while(p){stack[i].data=p->data;i++;p=p->next;}p=head->next;while(i>0){p->data=stack[--i].data;p=p->next;}}NODE *t_creat(){ NODE *head,*tail,*p;int len;printf("请问要创建几个节点?:");scanf("%d",&len);tail=head=(NODE*)malloc(sizeof(NODE)) ;head->next=NULL;while(len){ p=(NODE *)malloc(sizeof(NODE));printf("请输入该节点数据:");scanf("%d",&p->data);tail->next=p;tail=p;p->next=NULL;len--;}return head;}void view(NODE *head){ NODE *p=head->next;printf("链表数据如下:\n");while(p){ printf("%d ",p->data);p=p->next;}}NODE *search(NODE *head,int key) { NODE *p;p=head->next;while(p){ if(p->data==key){return p;}p=p->next;}return NULL;}void destroylist(NODE *head){ NODE *p=head->next,*q;while(p){ q=p->next;free(p);p=q;}free(head);}int insert(NODE *head,NODE *p,int pos) { NODE *q=head->next;if(pos==0){ printf("插入位置不合理!");return 0;}pos--;while(pos){ pos--;q=q->next;}p->next=q->next;q->next=p;return 1;}void dele(NODE *head,NODE *p){ NODE *q=head->next,*r=head;while(q!=p){ q=q->next;r=r->next; //r晚走一步,循环结束,获得的是待删除节点的首地址}r->next=p->next;}void main(){ NODE *head1,*head2;NODE *p;int data,pos;printf("开始创建第一条链表:\n");head1=h_creat();view(head1);destroylist(head1);printf("\n开始创建第二条链表:\n");head2=t_creat();view(head2);printf("\n请输入待查找的键值,查找将在第2条链上进行:\n");scanf("%d",&data);if(search(head2,data)==NULL)printf("没有找到该结点!\n");elseprintf("找到该结点!\n");reverse(head2); //反序view(head2);printf("\n准备插入新结点:\n");p=(NODE *)malloc(sizeof(NODE));printf("请输入待插入结点的键值:");scanf("%d",&p->data);printf("请输入待插入的位置:");scanf("%d",&pos);if(insert(head2,p,pos))view(head2);printf("\n准备删除结点:\n");printf("请输入待删除结点的键值:");scanf("%d",&data);if((p=search(head2,data))==NULL)printf("没有找到该结点,不能删除!\n");else{ dele(head2,p);printf("删除后");view(head2);}destroylist(head2);}void save(NODE *head){ FILE *fp;NODE *p=head->next;fp=fopen("line.dat","w");if(fp==NULL){…}while(p){ fwrite(p,sizeof(NODE),1,fp);p=p->next;}fclose(fp);}NODE *load(){ NODE *p,*head;FILE *fp;fp=fopen("line.dat","r");head=(NODE *)malloc(sizeof(NODE));head->next=NULL;if(fp==NULL){…}while(!feof(fp)){ p=(NODE *)malloc(sizeof(NODE));fread(p,sizeof(NODE),1,fp);if(feof(fp)){free(p); break;}p->next=head->next;head->next=p;}fclose(fp);return head;} 31、堆栈的思想解决计算某数的二进制问题#define N 1024typedef struct stack{ int data[N];int top;}STACK;STACK s;void init_stack(){s.top=0;}void push(int n){ s.data[s.top]=n;s.top++;}void convert(int n){ while(n){ push(n%2);n/=2;printf("%d ",n);}}int pop(){ int k;k=s.data[--s.top];return k;}void prn(){ while(s.top){ printf("%d",pop());printf("\n");}}void main(){ int n;printf("请输入待转换的整数:");scanf("%d",&n);init_stack();convert(n);printf("转换后的数为:");prn();}综合应用三题//门诊#include <stdlib.h>#include <string.h>typedef struct node{ int no;struct node * link;}NODE;NODE *front; NODE *rear;void initqueue(){ NODE *p;p=(NODE *)malloc(sizeof(NODE));front=rear=p;}int emptyqueue(){ if(front==rear)return 1;return 0;}void enqueue(int no){ NODE *p;p=(NODE *)malloc(sizeof(NODE));p->no=no;p->link=NULL;front->link=p;rear=p;}int delqueue(){ int no;NODE *p=front->link;if(!emptyqueue()){ no=p->no;front->link=p->link;if(p->link==NULL)front=rear;free(p);return no;}return -1;}void main() { int no=1;int dno;initqueue();int sel;while(1){printf("--------------------\n");printf(" 1 新病人排队\n");printf(" 2 报号\n");printf(" 3 退出\n");printf("--------------------\n");printf("请选择:");scanf("%d",&sel);switch(sel){case 1: enqueue(no);no++;break;case 2: dno=delqueue();if(dno==-1)printf("无排队病人!\n");else{printf("请第%d号病人速到诊室......\n",dno); printf("请第%d号病人速到诊室......\n",dno); printf("请第%d号病人速到诊室......\n",dno);}break;}if(sel==3)break;}}//一元多项式求和#include <stdlib.h>typedef struct node{ float coef; //系数int exp; //次数struct node *next;}NODE;void view(NODE *head){ NODE *p=head->next;printf("多项式如下(系数为0时不输出):\n");while(p){ if(p->coef==0) //系数为0不输出p=p->next;printf("(%.2f)x^%d",p->coef,p->exp);p=p->next;if(p) printf("+");}printf("\n");}NODE *creat(){ NODE *head,*tail,*p;int len;printf("请问要创建几项?:");scanf("%d",&len);tail=head=(NODE*)malloc(sizeof(NODE)) ;head->next=NULL;while(len){ p=(NODE *)malloc(sizeof(NODE)); printf("请输入该项的系数和次数,以空格隔开:");scanf("%f%d",&p->coef,&p->exp);tail->next=p;tail=p;p->next=NULL;len--;}return head;}void destroylist(NODE *head){ NODE *p=head->next,*q;while(p){q=p->next; free(p); p=q;}free(head);} NODE *add(NODE *h1,NODE *h2){ NODE *h,*r,*p,*q,*k;h=r=h1;p=h1->next; q=h2->next;while(p&&q){ if(p->exp > q->exp){r->next=q; r=q; q=q->next;}elseif(p->exp < q->exp ){r->next=p; r=p; p=p->next;}else{ p->coef+=q->coef;r->next=p;r=p;k=q;p=p->next;q=q->next;free(k);}if(p==NULL)r->next=q;elser->next=p;}return h;}void main(){ NODE *a,*b,*c;printf("请输入第一个多项式:\n");a=creat();view(a);printf("\n请输入第二个多项式:\n");b=creat();view(b);c=add(a,b);view(c);destroylist(c);}//约瑟夫问题:30人留15,逢9倍跳#include <stdlib.h>#include <stdio.h>typedef int elemtype;typedef struct node{ elemtype data;struct node *next;}NODE;int n=30;NODE *h_creat(){ NODE *p,*head;head=(NODE *)malloc(sizeof(NODE));head->next=head;while(n>=1){ p=(NODE *)malloc(sizeof(NODE));p->data=n;p->next=head->next;head->next=p;n--;}return head;}void view(NODE *head){ NODE *p=head->next;while(p!=head){ printf("%d ",p->data);p=p->next;}printf("\n");}void destroylist(NODE *head){ NODE *p=head->next;NODE *q;while(p!=head){q=p->next; free(p); p=q;}free(head);}void josphy(NODE *head) { NODE *p=head->next;NODE *q=head;int people=0;int pos=1;while(people!=15){ q=p;p=p->next;pos++;if(p==head) pos--;if(pos%9==0&&p!=head){ people++;q->next=p->next;printf("一人跳入海中,他是%d 号.\n",p->data);free(p);p=q->next;pos++;view(head);}}}void main(){ NODE *head;printf("开始创建链表:\n");head=h_creat();view(head);josphy(head);view(head);destroylist(head);}。