2022年自学考试《C语言程序设计》练习题及答案11
【3.51】下面函数的功能是创建一个带有头结点的链表,将头结点返回给主调函数。链表用于储存学生的学号和成绩。新产生的结点总是位于链表的尾部。
struct student
{long num;
int score;
struct student*next;
};
struct student*creat()
{struct student*head=NULL,*tail;
long num;int a;
tail=①malloc(LEN);
do
{scanf('%ld,%d',&num,&a);
if(num!=0)
{if(head==NULL)head=tail;
else②;
tail->num=num;tail->score=a;
tail->next=(struct student*)malloc(LEN);
}
else tail->next=NULL;
}while(num!=0);
return(③);
}
【3.52】下面create函数的功能是建立一个带头结点的单向链表,新产生的结点总是插入在链表的末尾。单向链表的头指针作为函数值返回。
#include
#define LEN sizeof(struct student)
struct student
{long num;
int score;
struct student*next;
};
struct student*creat()
{struct student*head=NULL,*tail;
long num;
int a;
tail=(①)malloc(LEN);
do
{scanf('%ld,%d',&num,&a);
if(num!=0)
{if(head==NULL)head=tail;
else tail=tail->next;
tail->num=num;
tail->score=a;
tail->next=(②)malloc(LEN);
}
else tail->next=NULL;
}while(num!=0);
③;
}
【3.53】下面程序的功能是统计文件中的字符的个数。
#include
main()
{long num=0;
①*fp;
if((fp=fopen('fname.dat','r'))==NULL)
{printf('Can't open the file!');
exit(0);
}
while(②)
{fgetc(fp);
num++;
}
printf('num=%dn',num);
fclose(fp);
}
【3.54】下面程序的功能是把从键盘输入的文件(用 作为文件结束标志)复制到一个名为second.txt的新文件中。
#include
FILE*fp;
main()
{char ch;
if((fp=fopen(①))==NULL)
exit(0);
while((ch=getchar())!=' ')
fputc(ch,fp);
②;
}
【3.55】下面程序的功能是将磁盘上的一个文件复制到另一个文件中,两个文件名在命令行中给出(假定给定的文件名无误)。
#include
main(int argc,char*argv[])
{FILE&f1,*f2;
if(argc<①)
{printf('The command line error!');
exit(0);
}
f1=fopen(argv[1],'r');
f2=fopen(arhv[2],'w');
while(②)
fputs(fgetc(f1),③);
④;
⑤;
}
【程序填空题参考答案】
【3.51】答案:①(struct student*)②tail=tail->next③head
注释:①malloc函数的作用是在内存开辟指定字节数的存储空间,并将此存储空间的地址返回赋给尾指针tail,但是此地址为void型,应将其强制转换为所要求的结构指针类型。
②新开辟的结点的内存地址存于tail所指向的已建立的链表的尾结点的结构成员next,新结点连入链表以后,尾指针tail应指向新的结点。
【3.52】答案:①(struct student*)②(struct list*)③return(head)
【3.53】答案:①FILE②!feof(fp)
注释:FILE是文件结构类型名。feof()是测试文件结束标志的函数。
【3.54】答案:①'second.txt'②fclose(fp)
【3.55】答案:①3②!feof(f1)或feof(f1)==0③f2④fclose(f2)⑤fclose(f1)
注释:程序中使用了带参数的main函数,其中整型参数argc为命令行中字符串的个数,此程序运行时输入的字符串有可运行程序名、文件1和文件2,故argc不应小于3。字符串指针argv[0]指向可运行程序名、字符串指针argv[1]指向输入文件名、字符串指针argv[2]指向输出文件名,由上所述②处给出循环条件是输入文件是否结束,③处需要填出输出文件名。最后两处是关闭两个文件,原则上关闭文件没有顺序要求,但习惯上是后打开的文件先关闭。
热门推荐:
自考有疑问、不知道如何选择主考院校及专业、不清楚自考当地政策,点击立即了解》》
推荐阅读: