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

    C 程序开发经典实例之八
    【程序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);
    tr=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);
    }
    【程序75】
    题目:放松一下,算一道简单的题目。
    1.程序分析:
    2.程序源代码:
    main()
    {
    int i,n;
    for(i=1;i<5;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(n>1)
    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;k<5;k )
    {              ;/*这里填写什么语句*/
    printf("%s\n",*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;i              {
    if(mage)
    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 strings\n");
    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 sorted\n");
    printf("%s\n%s\n%s\n",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;i<10000;i =4)
    {
    count=0;
    m=i;
    for(k=0;k<5;k )
    {
    j=i/4*5 1;
    i=j;
    if(j%4==0)
    count ;
    else
    break;
    }  
    i=m;
    if(count==4)
    {
    printf("%d\n",count);
    break;}
    }
    }
    
    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

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

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

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