上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
c语言 上机题库(1-7)
作者:未知 申领版权
2010年12月12日 共有 1780 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    1. 给定程序中,函数FUN的功能是:计算出带有头接点的单向链表中各结点数据域之和作为函数值返回。
    #include  <stdio.h>
    #include  <stdlib.h>
    #define    N    8
    typedef  struct list
    {  int  data;
    struct list  *next;
    } SLIST;
    SLIST *creatlist(int  *);
    void outlist(SLIST  *);
    int fun( SLIST  *h)
    {  SLIST  *p;     int  s=0;
    p=h->next;
    while(p)
    {
    /**********************************found*********************************/
    s = p->___1___;                                     data
    /**********************************found*********************************/
    p=p->___2___;                                      next
    }
    return s;
    }
    main( )
    {  SLIST  *head;
    int  a[N]={12,87,45,32,91,16,20,48};
    head=creatlist(a);    outlist(head);
    /**********************************found*********************************/
    printf("\nsum=%d\n", fun(___3___));                      head
    }
    
    SLIST *creatlist(int  a[ ])
    {  SLIST  *h,*p,*q;        int  i;
    h=p=(SLIST *)malloc(sizeof(SLIST));
    for(i=0; i<N; i )
    {  q=(SLIST *)malloc(sizeof(SLIST));
    q->data=a[i];  p->next=q;  p=q;
    }
    p->next=0;
    return  h;
    }
    void outlist(SLIST  *h)
    {  SLIST  *p;
    p=h->next;
    if (p==NULL)  printf("The list is NULL!\n");
    else
    {  printf("\nHead  ");
    do
    {  printf("->%d", p->data); p=p->next;  }
    while(p!=NULL);
    printf("->End\n");
    }
    }
    
    2. 给定程序中,函数FUN的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中工有M个字符串,且串长<N。
    #include   <stdio.h>
    #include   <string.h>
    #define    M    5
    #define    N    20
    void fun(char  (*ss)[N])
    {  int  i, j, k=0, n, m, len;
    for(i=0; i<M; i )
    {  len=strlen(ss[i]);
    if(i==0) n=len;
    if(len>n) {
    /**********************************found*********************************/
    n=len;    k=___1___;                                    i
    } 
    }
    for(i=0; i<M; i )
    if (i!=k)
    { m=n;
    len=strlen(ss[i]);
    /**********************************found*********************************/
    for(j=___2___; j>=0; j--)                                len
    ss[i][m--]=ss[i][j];
    for(j=0; j<n-len; j )
    /**********************************found*********************************/
    ss[i][j]=____3____;                                     '*'
    }
    }
    main( )
    {char s[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
    int  i;
    printf("\nThe original strings are :\n");
    for(i=0; i<M; i )  printf("%s\n",ss[i]);
    printf("\n");
    fun(ss);
    printf("\nThe result:\n");
    for(i=0; i<M; i )  printf("%s\n",ss[i]);
    }
    
    3. 人员记录由编号和出生年,月,日组成,N名人员的数据已在主函数中存入结构体数组std且编号唯一。函数fun 的功能是;找出指定编号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数据中的编号为空串。
    #include    <stdio.h>
    #include    <string.h>
    #define    N    8
    typedef  struct
    {  char  num[10];
    int  year,month,day ;
    }STU;
    
    /**********************************found*********************************/
    ___1___fun(STU  *std, char  *num)                         STU
    {  int  i;       STU  a={"",9999,99,99};
    for (i=0; i<N; i )
    /**********************************found*********************************/
    if( strcmp(____2_____,num)==0 )                       std[i].num
    /**********************************found*********************************/
    return (___3____);                                        std[i]
    return  a;
    }
    main( )
    {STU std[N]={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},
    {"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},
    {"777777",1983,6,22},{"888888",1984,8,19}};
    STU  p;         char  n[10]="666666";
    p=fun(std,n);
    if(p.num[0]==0)
    printf("\nNot found !\n");
    else
    {   printf("\nSucceed !\n  ");
    printf("%s   %d-%d-%d\n",p.num,p.year,p.month,p.day);
    }
    }
    
    4. 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun 的功能:删除链表中数据域值相同的结点,使之保留一个。
    #include    <stdio.h>
    #include    <stdlib.h>
    #define    N    8
    typedef  struct list
    {  int  data;
    struct list  *next;
    } SLIST;
    void  fun( SLIST *h)
    {  SLIST  *p, *q;
    p=h->next;
    if (p!=NULL)   {  q=p->next;
    while(q!=NULL)
    {  if (p->data==q->data)
    {  p->next=q->next;
    /**********************************found*********************************/
    free(___1___);                                      q
    /**********************************found*********************************/
    q=p->___2___;                                      next
    }
    else
    { p=q;
    /**********************************found*********************************/
    q=q->___3___;                                       next
    }
    }
    }
    }
    SLIST *creatlist(int  *a)
    {  SLIST  *h,*p,*q;      int  i;
    h=p=(SLIST *)malloc(sizeof(SLIST));
    for(i=0; i<N; i )
    {  q=(SLIST *)malloc(sizeof(SLIST));
    q->data=a[i];  p->next=q;  p=q;
    }
    p->next=0;
    return h;
    }
    void outlist(SLIST  *h)
    {  SLIST  *p;
    p=h->next;
    if (p==NULL)  printf("\nThe list is NULL!\n");
    else
    {  printf("\nHead");
    do { printf("->%d",p->data);  p=p->next;    } while(p!=NULL);
    printf("->End\n");
    }
    }
    main( )
    {  SLIST  *head;      int  a[N]={1,2,2,3,4,4,4,5};
    head=creatlist(a);
    printf("\nThe list before deleting :\n");  outlist(head);
    fun(head);
    printf("\nThe list after deleting :\n");  outlist(head);
    
    5. 函数fun 的功能是进行数字字符转换。若形参ch中是数字字符'0 ~ 9',则'0'转换成'9', '1'转换成'8', '2'转换成'7' … '9'转换成'0';若是其他字符则保持不变;并将转换后的结果作为函数值返回.
    #include    <stdio.h>
    /**********************************found*********************************/
    ___1___fun(char  ch)                                          char
    {
    /**********************************found*********************************/
    if (ch>='0' &&___2____)                                     ch<='9'
    /**********************************found*********************************/
    return  '9'- (ch-___3___);                                 '0'
    return  ch ;
    }
    main( )
    {  char  c1, c2;
    printf("\nThe result  :\n");
    c1='2';   c2 = fun(c1);
    printf("c1=%c    c2=%c\n", c1, c2);
    c1='8';   c2 = fun(c1);
    printf("c1=%c    c2=%c\n", c1, c2);
    c1='a';   c2 = fun(c1);
    printf("c1=%c    c2=%c\n", c1, c2);
    }
    
    6. 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M字符串按长度由短到长进行排序。SS所指字符串数组中共有M个字符串,且串长<N
    #include    <stdio.h>
    #include    <string.h>
    #define    M    5
    #define    N    20
    void fun(char  (*ss)[N])
    {  int  i, j, k, n[M];      char  t[N];
    for(i=0; i<M; i )  n[i]=strlen(ss[i]);
    for(i=0; i<M-1; i )
    {  k=i;
    /**********************************found*********************************/
    for(j=___1___; j<M; j )                                    i 1
    /**********************************found*********************************/
    if(n[k]>n[j])  k=___2___;                                    j
    if(k!=i)
    {  strcpy(t,ss[i]);
    strcpy(ss[i],ss[k]);
    /**********************************found*********************************/
    strcpy(ss[k],___3___);                                     t
    n[k]=n[i];
    }
    }
    }
    main( )
    {  char s[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
    int  i;
    printf("\nThe original strings are :\n");
    for(i=0; i<M; i )  printf("%s\n",ss[i]);
    printf("\n");
    fun(ss);
    printf("\nThe result :\n");
    for(i=0; i<M; i )  printf("%s\n",ss[i]);
    }
    
    
    

 

相关新闻

2008年普通高等学校招生全国统一考试(山东卷)
C语言复习习题-程序改错
C语言复习习题--循环结构
C语言复习习题-选择结构
2006年广西区计算机等级考试二级C语言笔试试题及答案
全国高校计算机等级考试(广西考区2007)二级C语言试题卷
全国高校计算机等级考试(广西考区)二级C语言试题卷
C语言复习习题--结构体与共用体
C语言复习习题--编译预处理
c语言 上机编程题库(16)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》