如果题目顺序不一样请用CTRL+F来搜索试题

确定好题一样,再下载

点击支付下载即可看见答案

 C语言程序设计 · 形考任务4

 

一、选择题

 

1.假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为(    )。

单选题

A.struct BOOK *x=malloc(book);
B.struct BOOK x={“C++ Programming”,27.0};
C.struct BOOK *x=malloc(sizeof(struct BOOK));
D.struct BOOK *x=&book;

2.假定有“struct BOOK{char title[40]; float price;} book;”,则正确的语句为(    )。

单选题

A.struct BOOK x= &book;
B.struct BOOK *x=&book;
C.struct BOOK x=calloc(BOOK);
D.struct BOOK *x=BOOK;

3.在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是(    )。

单选题

A.句点
B.冒号
C.分号
D.逗号

4.假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为(    )。

单选题

A.8
B.10
C.12
D.16

5.假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为(    )。

单选题

A.4
B.8
C.12
D.16

6.假定要访问一个结构指针变量x中的数据成员a,则表示方法为(    )。

单选题

A.a
B.x->a
C.x(a)
D.x{a}

7.与结构成员访问表达式x.name等价的表达式为(    )。

单选题

A.x->name
B.&x->name
C.(&x)->name
D.(*x)->name

8.假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为(    )。

单选题

A.struct AA
B.struct AA*
C.AA
D.int

9.假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为(    )。

单选题

A.p->next=f
B.p->next=f和f=p
C.f=p->next
D.f->next=p和f=p

10.标准输入设备键盘的文件流标识符是(    )。

单选题

A.stdin
B.stdout
C.stderr
D.stdio

11.表示文件结束符的符号常量为(    )。

单选题

A.eof
B.Eof
C.EOF
D.feof

12.C语言中打开一个数据文件的系统函数为(    )。

单选题

A.fgetc()
B.fputc()
C.fclose()
D.fopen()

13.从一个数据文件中读入以换行符结束的一行字符串的系统函数为(    )。

单选题

A.gets()
B.fgets()
C.getc()
D.fgetc()

14.向一个二进制文件中写入信息的函数fwrite()带有的参数个数为(    )。

单选题

A.1
B.2
C.3
D.4

15.在C语言中,为只写操作打开一个文本文件的方式为(    )。

单选题

A.”a”
B.”r+”
C.”r”
D.”w”

二、判断题

 

16.在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。

判断题

A.对
B.错

17.在结构类型的定义中,允许出现结构类型不完整的超前定义。

判断题

A.对
B.错

18.定义结构类型的变量时,不能够同时进行初始化。

判断题

A.对
B.错

19.使用一个结构类型时,必须一起使用关键字struct和类型标识符。

判断题

A.对
B.错

20.假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。

判断题

A.对
B.错

21.假定一个结构类型的定义为 “struct B{int a[5]; char* b;};”,则该类型的长度为20。

判断题

A.对
B.错

22.执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。

判断题

A.对
B.错

23.执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。

判断题

A.对
B.错

24.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。

判断题

A.对
B.错

25.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。

判断题

A.对
B.错

26.与结构成员访问表达式(*fp).score等价的表达式是fp->score。

判断题

A.对
B.错

27.在C语言中,对二进制文件的所有不同打开方式共有6种。

判断题

A.对
B.错

28.C语言中的标准输入和输出设备文件都属于字符文件。

判断题

A.对
B.错

29.在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。

判断题

A.对
B.错

30.在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。

判断题

A.对
B.错

31.一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。

判断题

A.对
B.错

32.C语言系统中提供一个用来描述文件属性的类型标识符为FILE。

判断题

A.对
B.错

33.每次只能向文本文件中写入一个字符,不能一次写入一个字符串。

判断题

A.对
B.错

34.对二进制文件进行读和写操作将使用相同的系统函数。

判断题

A.对
B.错

35.在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。

判断题

A.对
B.错

三、写出下列每个程序运行后的输出结果

36.#include<stdio.h>
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.2f\n”,x.name,y.age,p->pay);
}

简答题

 

37.#include<stdio.h>
#include<string.h>
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.0f\n”,x.name,x.age,x.pay);
}

简答题

 

38.#include<stdio.h>
struct Worker {char name[15]; int age; float pay;};
int Less(struct Worker r1, struct Worker r2) {
if(r1.age<r2.age) return 1; else return 0;
}
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[i])) x=a[i];
printf(“%s  %d  %6.0f\n”,x.name,x.age,x.pay);
}

简答题

 

四、写出下列每个函数的功能

 

39.void QA(struct Worker a[], int n) {
int i;
for(i=1; i<n; i++)
scanf(“%s %d %f”,&a[i].name,&a[i].age,&a[i].pay);
}
假定结构类型struct Worker 的定义如下:
struct Worker { char name[15]; int age; float pay;};

简答题

 

40.int Count(struct IntNode *f)
{      //f为指向一个单链表的表头指针
int c=0;
while(f) {
c++;
f=f->next;
}
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);
}

简答题
 

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源