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

    53. 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
    #include  <stdio.h>
    void fun(char  *s, int  a, double  f)
    {
    /*******************************found******************************/
    __1__ fp;                                   FILE*
    char  ch;
    fp = fopen("file1.txt", "w");
    fprintf(fp, "%s %d %f\n", s, a, f);
    fclose(fp);
    fp = fopen("file1.txt", "r");
    printf("\nThe result :\n\n");
    ch = fgetc(fp);
    /*******************************found******************************/
    while (!feof(__2__))                      fp 
    /*******************************found******************************/
    {  putchar(__3__); ch = fgetc(fp);  }        ch
    putchar('\n');  fclose(fp);  
    }
    main( )
    {  char  a[10]="Hello!";    int  b=12345;
    double  c= 98.76;
    fun(a,b,c);  }
    
    54. 给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
    例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。
    #include  <stdio.h>
    #include  <string.h>
    #include  <ctype.h>
    int fun(char  *s)
    {  int  sum=0;
    while(*s) 
    /*******************************found******************************/
    {  if( isdigit(*s) )  sum = *s- __1__ ;        '0'
    /*******************************found******************************/
    __2__;   }                              s
    /*******************************found******************************/
    return  __3__ ;                             sum
    }
    main( )
    { char  s[81];    int  n;
    printf("\nEnter a string:\n\n");  gets(s);
    n=fun(s);  printf("\nThe result is:  %d\n\n",n);  }
    
    55. 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。
    #include  <stdio.h>
    #include  <string.h>
    #define   N   5
    #define   M   10
    /*******************************found******************************/
    void fun(char  (*ss) __1__, int  k)           [M]
    {  int  i=0  ;
    /*******************************found******************************/
    while(i< __2__) {                           N
    /*******************************found******************************/
    ss[i][k]=__3__;  i ;  }                  '\0'
    }
    main( )
    { char  x[N][M]={"Create","Modify","Sort","skip","Delete"};
    int  i;
    printf("\nThe original string\n\n");
    for(i=0;i<N;i )puts(x[i]);  printf("\n");
    fun(x,4);
    printf("\nThe string after deleted :\n\n");
    for(i=0; i<N; i )  puts(x[i]);  printf("\n");  }
    
    56. 给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。
    例如,有10个正数:46  30  32  40  6  17  45  15  48  26,平均值为:30.500000
    主函数中输出:m=30.0
    #include  <stdlib.h>
    #define   N   10
    double fun(double  x[],double  *av)
    {  int  i,j;    double  d,s;
    s=0;
    for(i=0; i<N; i )  s = s  x[i];
    /*******************************found******************************/
    __1__=s/N;    *av
    d=32767;
    for(i=0; i<N; i )
    if(x[i]<*av && *av - x[i]<=d)
    /*******************************found******************************/
    { d=*av-x[i];  j=__2__; }    i
    /*******************************found******************************/
    return  __3__;   x[j]
    }
    main( )
    {  int  i;    double  x[N],av,m;
    for(i=0; i<N; i ){ x[i]=rand()%50; printf("%4.0f ",x[i]);}
    printf("\n");
    m=fun(x,&av);
    printf("\nThe average is: %f\n",av);
    printf("m=%5.1f ",m);
    printf("\n");  }
    
    57. 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
    S=- - … 
    例如,当形参n的值为10时,函数返回:-0.204491。
    #include  <stdio.h>
    double fun(int  n)
    { int  i, k;    double  s, t;
    s=0;
    /*******************************found******************************/
    k=__1__;    1
    for(i=1; i<=n; i ) {
    /*******************************found******************************/
    t=__2__;    2*i
    s=s k*(2*i-1)*(2*i 1)/(t*t);
    /*******************************found******************************/
    k=k*__3__;  -1
    }
    return  s;
    }
    main( )
    { int  n=-1;
    while(n<0)
    { printf("Please input(n>0): ");  scanf("%d",&n);  }
    printf("\nThe result is: %f\n",fun(n));  }
    
    58. 程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
    #include  <stdio.h>
    #include  <string.h>
    struct student
    {  long  sno;
    char  name[10];
    float  score[3];
    };
    void fun(struct student  a[], int  n)
    {
    /*******************************found******************************/
    __1__ t;  struct student
    int  i, j;
    /*******************************found******************************/
    for (i=0; i<__2__; i )     n-1
    for (j=i 1; j<n; j )
    /*******************************found******************************/
    if (strcmp(__3__) > 0)      a[i].name,a[j].name 
    {  t = a[i];   a[i] = a[j];  a[j] = t;  }
    }
    main()
    { struct student  s[4]={ {10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78},
    {10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}};
    int  i, j;
    printf("\n\nThe original data :\n\n");
    for (j=0; j<4; j )
    {  printf("\nNo: %ld  Name: %-8s   Scores:  ",s[j].sno, s[j].name);
    for (i=0; i<3; i )  printf("%6.2f ", s[j].score[i]);
    printf("\n");  }
    fun(s, 4);
    printf("\n\nThe data after sorting :\n\n");
    for (j=0; j<4; j )
    {  printf("\nNo: %ld  Name: %-8s   Scores:  ",s[j].sno, s[j].name);
    for (i=0; i<3; i )  printf("%6.2f ", s[j].score[i]);
    printf("\n");  } }
    
    59. 给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
    例如,s所指字符串为:asd123fgh5﹟﹟43df,
    处理后新字符串为:12543asdfgh﹟﹟df。
    #include  <stdio.h>
    #include  <string.h>
    #include  <stdlib.h>
    #include  <ctype.h>
    char *fun(char  *s)
    {  int  i, j, k, n;    char  *p, *t;
    n=strlen(s) 1;
    t=(char*)malloc(n*sizeof(char));  p=(char*)malloc(n*sizeof(char));
    j=0; k=0;
    for(i=0; i<n; i )
    {  if(isdigit(s[i])) 
    /*******************************found******************************/
    {  p[__1__]=s[i]; j ;}    j
    else  {  t[k]=s[i]; k ; }
    }
    /*******************************found******************************/
    for(i=0; i<__2__; i )  p[j i]= t[i];    k
    p[j k]=0;
    /*******************************found******************************/
    return __3__;   p
    }
    main( )
    { char  s[80];
    printf("Please input: ");  scanf("%s",s);
    printf("\nThe result is: %s\n",fun(s));  }
    
    60. 给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
    #include  <stdio.h>
    #include  <stdlib.h>
    #define    N    6
    typedef struct node 
    {  int  data;
    struct node  *next;
    } NODE;
    void fun(NODE  *h)
    { NODE  *p, *q;    int  t;
    p = h;
    while (p) {
    /*******************************found******************************/
    q = __1__ ;       p->next
    /*******************************found******************************/
    while (__2__)     q!=NULL
    {  if (p->data > q->data)
    {  t = p->data;  p->data = q->data;  q->data = t;  }
    q = q->next;
    }
    /*******************************found******************************/
    p = __3__ ;  p->next
    }
    }
    NODE *creatlist(int  a[])
    {  NODE  *h,*p,*q;        int  i;
    h=NULL;
    for(i=0; i<N; i )
    {  q=(NODE *)malloc(sizeof(NODE));
    q->data=a[i];
    q->next = NULL;
    if (h == NULL)  h = p = q;
    else    {  p->next = q;  p = q;   }
    }
    return  h;  }
    void outlist(NODE  *h)
    {  NODE  *p;
    p=h;
    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");  }
    }
    main( )
    {  NODE  *head;
    int  a[N]= {0, 10, 4, 2, 8, 6 };
    head=creatlist(a);
    printf("\nThe original list:\n");
    outlist(head);
    fun(head);
    printf("\nThe list after inverting :\n");
    outlist(head);  }
    
    61. 给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:
    x1=5.000000. x2=3.000000. x1*x1 x1*x2=40.000000
    #include  <stdio.h>
    double f1(double  x)
    {  return x*x;  }
    double f2(double  x, double  y)
    {  return  x*y;  }
    /*******************************found******************************/
    __1__ fun(int  i, double  x, double  y)   double
    {  if (i==1)
    /*******************************found******************************/
    return __2__(x);         f1
    else
    /*******************************found******************************/
    return  __3__(x, y);     f2
    }
    main( )
    { double  x1=5, x2=3, r;
    r = fun(1, x1, x2);
    r  = fun(2, x1, x2);
    printf("\nx1=%f, x2=%f, x1*x1 x1*x2=%f\n\n",x1, x2, r);  }
    
    62. 给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
    #include  <stdio.h>
    #include  <stdlib.h>
    #define    N    6
    typedef struct node 
    {  int  data;
    struct node  *next;
    } NODE;
    void fun(NODE  *h)
    { NODE  *p, *q;    int  t;
    /*******************************found******************************/
    p = __1__ ;      h
    while (p) 
    /*******************************found******************************/
    {  q = __2__ ;   p->next
    while (q)
    /*******************************found******************************/
    {  if (p->data __3__ q->data)   >
    {  t = p->data;  p->data = q->data;  q->data = t;  }
    q = q->next;  }
    p = p->next;  }
    }
    NODE *creatlist(int  a[])
    {  NODE  *h,*p,*q;        int  i;
    h = (NODE *)malloc(sizeof(NODE));
    h->next = NULL;
    for(i=0; i<N; i )
    {  q=(NODE *)malloc(sizeof(NODE));
    q->data=a[i];
    q->next = NULL;
    if (h->next == NULL)  h->next = p = q;
    else    {  p->next = q;  p = q;   }
    }
    return  h;
    }
    void outlist(NODE  *h)
    { NODE  *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");  }
    }
    main( )
    {  NODE  *head;
    int  a[N]= {0, 10, 4, 2, 8, 6 };
    head=creatlist(a); printf("\nThe original list:\n");
    outlist(head);  fun(head);
    printf("\nThe list after sorting :\n"); outlist(head); }
    

 

相关新闻

肢体语言塑造你自己
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)
杂谈语言(之三)——那些深受古汉语影响的语言(方言)
杂谈语言(之二)——语言学习的边际成本递减效应
波兰(二)
捷克(二)
2008年普通高等学校招生全国统一考试(山东卷)

您可能对这些感兴趣  

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

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

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