国开助手电大《C语言程序设计》形考任务4答案

小虾米 2026-05-11 05:54:04 2 次阅读 0 分钟阅读


1. 假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为()。
: struct BOOK *x=malloc(book);
; struct BOOK x={"C++ Programming",27.0};
; struct BOOK *x=malloc(sizeof(struct BOOK));
; struct BOOK *x=&book;
2. 假定有“struct BOOK{char title[40]; float price;} book;”,则正确的语句为()。
: struct BOOK x= &book;
; struct BOOK *x=&book;
; struct BOOK x=calloc(BOOK);
; struct BOOK *x=BOOK;
3. 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是()。
: 句点
; 冒号
; 分号
; 逗号
4. 假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为()。
: 8
; 10
; 12
; 16
5. 假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为()。
: 4
; 8
; 12
; 16
6. 假定要访问一个结构指针变量x中的数据成员a,则表示方法为()。
: x.a
; x->a
; x(a)
; x{a}
7. 与结构成员访问表达式x.name等价的表达式为()。
: x->name
; &x->name
; (&x)->name
; (*x)->name
8. 假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为()。
: struct AA
; struct AA*
; AA
; int
9. 假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为()。
: p->next=f
; p->next=f和f=p
; f=p->next
; f->next=p和f=p
10. 标准输入设备键盘的文件流标识符是()。
: stdin
; stdout
; stderr
; stdio
11. 表示文件结束符的符号常量为()。
: eof
; Eof
; EOF
; feof
12. C语言中打开一个数据文件的系统函数为()。
: fgetc()
; fputc()
; fclose()
; fopen()
13. 从一个数据文件中读入以换行符结束的一行字符串的系统函数为()。
: gets()
; fgets()
; getc()
; fgetc()
14. 向一个二进制文件中写入信息的函数fwrite()带有的参数个数为()。
: 1
; 2
; 3
; 4
15. 在C语言中,为只写操作打开一个文本文件的方式为()。
: "a
; "r+
; "r
; "w
16. 在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。
17. 在结构类型的定义中,允许出现结构类型不完整的超前定义。
18. 定义结构类型的变量时,不能够同时进行初始化。
19. 使用一个结构类型时,必须一起使用关键字struct和类型标识符。
20. 假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。
21. 假定一个结构类型的定义为 “struct B{int a[5]; char* b;};”,则该类型的长度为20。
22. 执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。
23. 执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。
24. 假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。
25. 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。
26. 与结构成员访问表达式(*fp).score等价的表达式是fp->score。
27. 在C语言中,对二进制文件的所有不同打开方式共有6种。
28. C语言中的标准输入和输出设备文件都属于字符文件。
29. 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。
30. 在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。
31. 一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
32. C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
33. 每次只能向文本文件中写入一个字符,不能一次写入一个字符串。
34. 对二进制文件进行读和写操作将使用相同的系统函数。
35. 在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。
36. #include

struct Worker {

char name[15]; //姓名

int age; //年龄

float pay; //工资

};

void main() {

struct Worker x={"wanghua",52,4300};

struct Worker y, *p;

y=x; p=&x;

printf("%s %d %6.2fn",x.name,y.age,p->pay);

}
37. #include

#include

struct Worker {

char name[15]; //姓名

int age; //年龄

float pay; //工资

};

void main() {

struct Worker x;

char *t="liouting";

int d=38; float f=3493;

strcpy(x.name,t);

x.age=d; x.pay=f;

printf("%s %d %6.0fn",x.name,x.age,x.pay);

}
38. #include

struct Worker {char name[15]; int age; float pay;};

int Less(struct Worker r1, struct Worker r2) {

if(r1.age
}

void main() {

struct Worker a[4]={{"abc",25,2420},{"def",58,4638},

{"ghi",49,4260},{"jkl",36,3750}};

struct Worker x=a[0];

int i;

for(i=1; i<4; i++)

if(Less(x,a)) x=a;

printf("%s %d %6.0fn",x.name,x.age,x.pay);

}
39. void QA(struct Worker a[], int n) {

int i;

for(i=1; inext;

}

return c;

}

假定struct IntNode的类型定义为:

struct IntNode {int data; IntNode* next;};
41. void xw1(char* fname) {

FILE* fout=fopen(fname,"w");

char a[20];

printf("每个字符串长度小于20,字符串end作为结束标志n");

while(1) {

scanf("%s",a);

if(strcmp(a,"end")==0) break;

fputs(a,fout);

fputc('n',fout);

}

fclose(fout);

}