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 ”, 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 ”); 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 ”); return;}
______(6)_______;
}
else filename = argv[1];
if (______(7)_______) {
printf(“Cannot open file ”); return;
}
while (______(8)_______ ) {
ch = fgetc(fp);
if ( tag == 0 ) putchar(ch);
else if ( tag == 1 ) ______(9)_______;
else if ( ______(10)_______) putchar(ch);
}
fclose(fp);
}
晴萱
2022-08-01 13:31:24
  • 0

  • 20 點閱

  • 0 評論

其他人的答案

Copyright © 2024 https://hiqna.com 中華Hi知識