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