首页 | 麦客学吧 | 视频教程 | FLASH小游戏 | 素材下载 | 常用工具
您当前的位置:首页 > 认证考试 > 软件水平考试 > 正文

计算机等级二级C语言程序设计100例七

出处:麦客学吧 [2007-3-7 8:45:10] 来源:未知 点击数:1755
  【程序71】

  题目:编写input()和output()函数输入,输出5个学生的数据记录。

  1.程序分析:

  2.程序源代码:

以下是引用片段:
  #define N 5 
  struct student 
  { char num[6]; 
  char name[8]; 
  int score[4]; 
  } stu[N]; 
  input(stu) 
  struct student stu[]; 
  { int i,j; 
  for(i=0;i  { printf("\n please input %d of %d\n",i+1,N); 
  printf("num: "); 
  scanf("%s",stu[i].num); 
  printf("name: "); 
  scanf("%s",stu[i].name); 
  for(j=0;j<3;j++) 
  { printf("score %d.",j+1); 
  scanf("%d",&stu[i].score[j]); 
  } 
  printf("\n"); 
  } 
  } 
  print(stu) 
  struct student stu[]; 
  { int i,j; 
  printf("\nNo. Name Sco1 Sco2 Sco3\n"); 
  for(i=0;i{ printf("%-6s%-10s",stu[i].num,stu[i].name); 
  for(j=0;j<3;j++) 
  printf("%-8d",stu[i].score[j]); 
  printf("\n"); 
  } 
  } 
  main() 
  { 
  input(); 
  print(); 
  } 


  【程序72】

  题目:创建一个链表。

  1.程序分析:

  2.程序源代码:

以下是引用片段:
  /*creat a list*/ 
  #include "stdlib.h" 
  #include "stdio.h" 
  struct list 
  { int data; 
  struct list *next; 
  }; 
  typedef struct list node; 
  typedef node *link; 
  void main() 
  { link ptr,head; 
  int num,i; 
  ptr=(link)malloc(sizeof(node)); 
  ptr=head; 
  printf("please input 5 numbers==>\n"); 
  for(i=0;i<=4;i++) 
  { 
  scanf("%d",&num); 
  ptr->data=num; 
  ptr->next=(link)malloc(sizeof(node)); 
  if(i==4) ptr->next=NULL; 
  else ptr=ptr->next; 
  } 
  ptr=head; 
  while(ptr!=NULL) 
  { printf("The value is ==>%d\n",ptr->data); 
  ptr=ptr->next; 
  } 
  } 


  【程序73】

  题目:反向输出一个链表。

  1.程序分析:

  2.程序源代码:

以下是引用片段:
  /*reverse output a list*/ 
  #include "stdlib.h" 
  #include "stdio.h" 
  struct list 
  { int data; 
  struct list *next; 
  }; 
  typedef struct list node; 
  typedef node *link; 
  void main() 
  { link ptr,head,tail; 
  int num,i; 
  tail=(link)malloc(sizeof(node)); 
  tail->next=NULL; 
  ptr=tail; 
  printf("\nplease input 5 data==>\n"); 
  for(i=0;i<=4;i++) 
  { 
  scanf("%d",&num); 
  ptr->data=num; 
  head=(link)malloc(sizeof(node)); 
  head->next=ptr; 
  ptr=head; 
  } 
  ptr=ptr->next; 
  while(ptr!=NULL) 
  { printf("The value is ==>%d\n",ptr->data); 
  ptr=ptr->next; 
  }} 


  【程序74】

  题目:连接两个链表。

  1.程序分析:

  2.程序源代码:

以下是引用片段:
  #include "stdlib.h" 
  #include "stdio.h" 
  struct list 
  { int data; 
  struct list *next; 
  }; 
  typedef struct list node; 
  typedef node *link; 
  link delete_node(link pointer,link tmp) 
  {if (tmp==NULL) /*delete first node*/ 
  return pointer->next; 
  else 
  { if(tmp->next->next==NULL)/*delete last node*/ 
  tmp->next=NULL; 
  else /*delete the other node*/ 
  tmp->next=tmp->next->next; 
  return pointer; 
  } 
  } 
  void selection_sort(link pointer,int num) 
  { link tmp,btmp; 
  int i,min; 
  for(i=0;i  { 
  tmp=pointer; 
  min=tmp->data; 
  btmp=NULL; 
  while(tmp->next) 
  { if(min>tmp->next->data) 
  {min=tmp->next->data; 
  btmp=tmp; 
  } 
  tmp=tmp->next; 
  } 
  printf("\40: %d\n",min); 
  pointer=delete_node(pointer,btmp); 
  } 
  } 
  link create_list(int array[],int num) 
  { link tmp1,tmp2,pointer; 
  int i; 
  pointer=(link)malloc(sizeof(node)); 
  pointer->data=array[0]; 
  tmp1=pointer; 
  for(i=1;i{ tmp2=(link)malloc(sizeof(node)); 
  tmp2->next=NULL; 
  tmp2->data=array[i]; 
  tmp1->next=tmp2; 
  tmp1=tmp1->next; 
  } 
  return pointer; 
  } 
  link concatenate(link pointer1,link pointer2) 
  { link tmp; 
  tmp=pointer1; 
  while(tmp->next) 
  tmp=tmp->next; 
  tmp->next=pointer2; 
  return pointer1; 
  } 
  void main(void) 
  { int arr1[]={3,12,8,9,11}; 
  link ptr; 
  ptr=create_list(arr1,5); 
  selection_sort(ptr,5); 
  } 

昵 称:麦客网友[游客]  如果您不想匿名评论请先登录注册
评 论:请自觉遵守互联网相关政策法规,管理员有权删除恶意评论、广告和违禁词语。

验证码: 验证码,看不清楚?请点击刷新验证码    
麦客酷站赏析频道

精彩图文推荐

关于本站 - 联系站长 - 广告服务 - 合作伙伴 - 网站地图 - 版权声明 - 报告错误 - 收藏本站 | Http://www.MaiCoo.com

Copyright © 2005 - 2008 MaiCoo.com All Rights Reserved

违法和不良信息举报中心 本站服务器空间和带宽由雷克斯网络提供赞助
浙ICP备06017818号