签到

05月05日
尚未签到

共有回帖数 0

    十万个为什么

    等级:
    【程序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;iN;i++)
     { printf("n please input %d of %dn",i+1,N);
      printf("num: ");
      scanf("%s",stu.num);
      printf("name: ");
      scanf("%s",stu.name);
       for(j=0;j3;j++)
       { printf("score %d.",j+1);
        scanf("%d",&stu.score[j]);
       }
      printf("n");
     }
    }
    print(stu)
    struct student stu[];
    { int i,j;
    printf("nNo. Name Sco1 Sco2 Sco3n");
    for(i=0;iN;i++)
    { printf("%-6s%-10s",stu.num,stu.name);
     for(j=0;j3;j++)
      printf("%-8d",stu.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 ==%dn",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 ==%dn",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;inum;i++)
     {
     tmp=pointer;
     min=tmp-data;
     btmp=NULL;
     while(tmp-next)
     { if(mintmp-next-data)
     {min=tmp-next-data;
      btmp=tmp;
     }
     tmp=tmp-next;
     }
    printf("40: %dn",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;inum;i++)
    { tmp2=(link)malloc(sizeof(node));
     tmp2-next=NULL;
     tmp2-data=array;
     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);
    }
    ==============================================================
    【程序75】
    题目:放松一下,算一道简单的题目。
    1.程序分析:
    2.程序源代码:
    main()
    {
    int i,n;
    for(i=1;i5;i++)
    { n=0;
     if(i!=1)
     n=n+1;
     if(i==3)
     n=n+1;
     if(i==4)
     n=n+1;
     if(i!=4)
     n=n+1;
     if(n==3)
      printf("zhu hao shi de shi:%c",64+i);
     }
    }
    ==============================================================
    【程序76】
    题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
       1/1+1/3+...+1/n(利用指针函数)
    1.程序分析:
    2.程序源代码:
    main()
    #include "stdio.h"
    main()
    {
    float peven(),podd(),dcall();
    float sum;
    int n;
    while (1)
    {
     scanf("%d",&n);
     if(n1)
      break;
    }
    if(n%2==0)
    {
     printf("Even=");
     sum=dcall(peven,n);
    }
    else
    {
     printf("Odd=");
     sum=dcall(podd,n);
    }
    printf("%f",sum);
    }
    float peven(int n)
    {
    float s;
    int i;
    s=1;
    for(i=2;i=n;i+=2)
     s+=1/(float)i;
    return(s);
    }
    float podd(n)
    int n;
    {
    float s;
    int i;
    s=0;
    for(i=1;i=n;i+=2)
     s+=1/(float)i;
    return(s);
    }
    float dcall(fp,n)
    float (*fp)();
    int n;
    {
    float s;
    s=(*fp)(n);
    return(s);
    }
    ==============================================================
    【程序77】
    题目:填空练习(指向指针的指针)
    1.程序分析:     
    2.程序源代码:
    main()
    { char *s[]={"man","woman","girl","boy","sister"};
    char **q;
    int k;
    for(k=0;k5;k++)
    {       ;/*这里填写什么语句*/
     printf("%sn",*q);
    }
    }
    ==============================================================
    【程序78】
    题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
    1.程序分析:
    2.程序源代码:
    #define N 4
    #include "stdio.h"
    static struct man
    { char name[20];
    int age;
    } person[N]={"li",18,"wang",19,"zhang",20,"sun",22};
    main()
    {struct man *q,*p;
    int i,m=0;
    p=person;
    for (i=0;iN;i++)
    {if(mp-age)
     q=p++;
     m=q-age;}
    printf("%s,%d",(*q).name,(*q).age);
    }
    ==============================================================
    【程序79】
    题目:字符串排序。
    1.程序分析:
    2.程序源代码:
    main()
    {
    char *str1[20],*str2[20],*str3[20];
    char swap();
    printf("please input three stringsn");
    scanf("%s",str1);
    scanf("%s",str2);
    scanf("%s",str3);
    if(strcmp(str1,str2)0) swap(str1,str2);
    if(strcmp(str1,str3)0) swap(str1,str3);
    if(strcmp(str2,str3)0) swap(str2,str3);
    printf("after being sortedn");
    printf("%sn%sn%sn",str1,str2,str3);
    }
    char swap(p1,p2)
    char *p1,*p2;
    {
    char *p[20];
    strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
    }
    ==============================================================
    【程序80】
    题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只
       猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
       一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
       问海滩上原来最少有多少个桃子?
    1.程序分析:
    2.程序源代码:
    main()
    {int i,m,j,k,count;
    for(i=4;i10000;i+=4)
    { count=0;
    m=i;
    for(k=0;k5;k++)
    {
     j=i/4*5+1;
     i=j;
     if(j%4==0)
      count++;
     else
      break;
    }
     i=m;
     if(count==4)
     {printf("%dn",count);
      break;}
    }
    }

    楼主 2016-10-13 15:06 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知