优秀学习资料 欢迎下载
}
main() {
int a[10]={2,3,5,7,9},b[5]={1,4,6,8,10}; int i;
Merge(a,10,b,5); for(i=0;i<10;i++)
printf(\}
实验七 字符串与指针 实验
( 验证性 综合性 实验 2学时)
1、目的要求:
(1)掌握用指针进行函数参数传递的方法。
(2)掌握指针数组和二维数组间的关系以及进行参数传递时的写法。 (3)编写实验报告。
2、实验内容(参考实验指导书): (1)编写一个书名排序程序,输入10个书名存入一个二维数组,用函数void sortstring( char *name[] , int n)实现它们的字典顺序。
#include
void sortstring(char *name[],int n) {
char *p; int i,j;
 for(i=0;i    if(strcmp(name[i],name[j])>0)    {       p=name[i];      name[i]=name[j];     name[j]=p;    }         }       } main() {   char *name[]={\  \ int a;  优秀学习资料   欢迎下载   sortstring(name,10);     for(a=0;a<10;a++)    printf(\}    (2)编写函数void search( char *s1, char *s2, char *s3)。函数search()从已知的两个字符串s1与s2中找出它们都包含的最长的单词放入字符串s3,约定字符串中只有小写字母和空格字符,单词用1个或1个以上空格分隔。  #include  void search(char *s1, char *s2, char *s3) {           char *p;      int word,i,m,n;     char a[20];     p=s1;     s3[0]='\\0';      while (*p!='\\0')  {           word=0;                for (i=0;p[i]!='\\0';i++)   {              if (p[i]!=' '&&word==0)     {      word=1;     m=i;    }              else if (p[i]==' '&&word==1)      {      n=i;     break;    }              }          if (p[i]=='\\0'&&word==1)  优秀学习资料   欢迎下载     n=i;          if (word==1)   {              strncpy(a,p+m,n-m);             a[n-m]='\\0';              char *pfind;              if ( (pfind=strstr(s2,a))!=NULL )    {                   if ( *(pfind+strlen(a))==' ' || *(pfind+strlen(a))=='\\0' )                    if (strlen(a)>strlen(s3)) strcpy(s3,a);              }               p=p+n;          }          else break;              }     }  main() {      char *s1=\char *s2=\    char s3[20];     search(s1,s2,s3);  printf(\}      (3)编写一个主函数,测试上述两个函数的正确性。 (4)输入一个字符串,内有数字和非数字字符,例如:      A123cdf 456.78cpc876.9er 849.1      将其中连续的数字作为一个实数,依次存放到一数组a中。例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数。   #include void f(char *sp,float b[]) {   char *p;  float value;   int power,i=0,j=0;  p=sp;  while(*p)  优秀学习资料   欢迎下载                   {              }  for(;!(*p>='0'&&*p<='9');p++)  value=0;  for(value=0;(*p>='0'&&*p<='9');p++,i++)  value=value*10+*p-'0'; if(*p=='.')  p++;  for(power=1;(*p>='0'&&*p<='9');p++,i++) {   value=value*10+*p-'0';  power=power*10; }  value=value/power; b[j++]=value;  printf(\数字个数为:%d\\n\ }  void main() {   int j;   float b[4]={0};   char *a=\ f(a,b);   for(j=0;j<4;j++)    printf(\}    实验八  结构体 实验  ( 验证性 综合性 实验      2学时)  1、目的要求:  (1)掌握结构体的定义、数据输入方法。 (2)掌握结构体成员变量的两种访问方法。  (3)掌握编写程序完成单链表的建立和查询方法。 (4)编写实验报告。   2、实验内容(参考实验指导书):  (1)编写一个建立单链表的函数,设链表的表元素信息包含学号、姓名、一门课的成绩;写一个按照学号查学生成绩的函数;最后写一个主函数,它先调用建立函数,再调用查询函数,显示查到学生的姓名和成绩。  优秀学习资料   欢迎下载  #include  int num;   char name[20];  float score; }  stu[4]={{1,\main() {   int i,j,k;   for(k=0;k<4;k++)  {      }    printf(\请输入学号:(1~4)\\n\  for(j=0;j<4;j++)   if(stu[j].num==i)     printf(\}    (2)编一程序,能把从终端输入的一个字符串中的小写字母全部转换成大写字母,要求输入的字符的同时指定该字符在字符串中的序号(即字符在字符串中的顺序号,例如第1个字符的序号为1),字符和序号存入结构体中,字符串存入结构体数组中,然后显示结构体数组的结果(用字符!表示输入字符串的结束)。  #include  char a;  int num; } s[10]; main() {   int i=0;   printf(\请输入字母,以!为结束标志\\n\