爱问知识人 爱问教育 医院库

c语言的程序填空题?

首页

c语言的程序填空题?

1.  下列程序的功能是创建单向链表。
    #include <stdio.h>
    #include <alloc.h>
    struct link {
      char  name[10];
          int  mark;
          struct link  * next;
    };
    void insert(char *, int);
    struct link * head = NULL;
    main()
    {
      char     name[10];
          int    mark;
          struct  link * t;
          while ( 1 ) {
        scanf("%s %d",  name,  &mark);
            if ( strcmp(name, "#") == 0 )  break;
        ______(1)_______;
        }
    for (t=head; ______(2)_______)  
            printf("<%s>: %d\n",  t->name,  t->mark);
  }
  void insert(char * name,  int mark)
  {
    struct link * p;
    p = ______(3)_______ ;
    strcpy(p->name,  name);
    p->mark = mark;
        ______(4)_______;
    if ( head != NULL )  ______(5)_______;
    head = p;
  }
2.  prog.c是带命令行参数的程序。运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。
  # include <stdio.h>
  # include <ctype.h>
  void main(int argc, char * argv[])
  {
    FILE  *fp;
    char   * filename, ch;
        int     tag=0;
    if (argc <2 || argc>3) { printf(“Argument error\n”); return; }
    if (argc == 3) {
      if (strcmp(argv[1], “-u”) == 0)  tag=1;
      else if (strcmp(argv[1], “-d”) == 0)  tag=2;
      else {printf(“Option error\n”); return;}
      ______(6)_______;
    } 
        else filename = argv[1];
    if (______(7)_______) {
      printf(“Cannot open file\n”);  return;
    }
    while (______(8)_______ )   {
      ch = fgetc(fp);
      if ( tag == 0 ) putchar(ch);
      else if ( tag == 1 ) ______(9)_______;
           else if ( ______(10)_______)  putchar(ch);
    }
    fclose(fp);
  }

提交回答
好评回答
  • 2005-12-23 17:06:38
      #include 
    #include 
    #include 
    struct link {
    char name[10];
    int mark;
    struct link * next;
    };
    void insert(char *, int);
    struct link *head=NULL;
    void main()
    {
    char name[10];
    int mark;
    struct link * t;
    while (1) {
    scanf("%s %d", name, &mark);
    if(strcmp(name, "#") == 0 ) break;
    insert(name,mark);
    }
    for (t=head;t!=NULL;t=t->next) 
    printf(": %d\n", t->name, t->mark);
    }
    void insert(char * name, int mark)
    {
    struct link *p;
    p=(struct link *)malloc(sizeof(struct link));
    strcpy(p->name,name);
    p->mark=mark;
    p->next=NULL;
    if(head != NULL) p->next=head;
    head=p;
    }
    /***************************/
    # include 
    # include 
    # include 
    void main(int argc, char * argv[])
    {
    FILE *fp;
    char * filename, ch;
    int tag=0;
    if (argc 3) { printf("Argument error\n"); return; }
    if (argc == 3) {
    if (strcmp(argv[1], "-u") == 0) tag=1;
    else if (strcmp(argv[1], "-d") == 0) tag=2;
    else {printf("Option error\n"); return;}
    filename=argv[2];
    } 
    else filename = argv[1];
    if ((fp=fopen(filename,"r"))==NULL) {
    printf("Cannot open file\n"); return;
    }
    while (!feof(fp)) {
    ch = fgetc(fp);
    if ( tag == 0 ) putchar(ch);
    else if ( tag == 1 ) putchar(toupper(ch));
    else if (ch>='0' &&ch<='9') putchar(ch);
    }
    fclose(fp);
    }
    。
      

    厅***

    2005-12-23 17:06:38

其他答案

    2005-12-24 15:29:21
  • 答案
    1)insert(name,mark)
    2)t!=NULL;t=t->next
    3)new struct link
    4)p->next=NULL
    5)p->next=head
    6)filename = argv[2]
    7)(fp=fopen(filename, "r"))==NULL
    8)!feof(fp)
    9)putchar(toupper(ch))
    10)ch>='0' && ch<='9'

    祥***

    2005-12-24 15:29:21

  • 2005-12-23 16:24:11
  • (1)insert(name,mark)
    (2)t!=NULL;t=t->next
    (3)new struct link
    (4)p->next=NULL
    (5)p->next=head
    (6)filename = argv[2]
    (7)(fp=fopen(filename, "r"))==NULL
    (8)!feof(fp)
    (9)putchar(toupper(ch))
    (10)ch>='0' && ch<='9'
    

    r***

    2005-12-23 16:24:11

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 174-193
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):