C语言程序设计形考任务4Word下载.docx
《C语言程序设计形考任务4Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计形考任务4Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
c.structBOOKx=calloc(BOOK);
d.structBOOK*x=BOOK;
structBOOK*x=&
题目3
在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是(
a.句点
题目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
p->
next=f和f=p
题目10
标准输入设备键盘的文件流标识符是(
a.stdin
b.stdout
c.stderr
d.stdio
stdin
题目11
表示文件结束符的符号常量为(
a.eof
b.Eof
c.EOF
d.feof
EOF
题目12
C语言中打开一个数据文件的系统函数为(
a.fgetc()
b.fputc()
c.fclose()
d.fopen()
fopen()
题目13
从一个数据文件中读入以换行符结束的一行字符串的系统函数为(
a.gets()
b.fgets()
c.getc()
d.fgetc()
fgets()
题目14
向一个二进制文件中写入信息的函数fwrite()带有的参数个数为(
a.1
b.2
c.3
d.4
4
题目15
在C语言中,为只写操作打开一个文本文件的方式为(
a."
a"
b."
r+"
c."
r"
d."
w"
"
二、判断题(共40分,每小题2分。
叙述正确则回答“是”,否则回答“否”)
题目16
在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。
对
错
正确的答案是“错”。
题目17
在结构类型的定义中,允许出现结构类型不完整的超前定义。
正确的答案是“对”。
题目18
定义结构类型的变量时,不能够同时进行初始化。
题目19
使用一个结构类型时,必须一起使用关键字struct和类型标识符。
题目20
假定一个结构类型的定义为“structA{inta,b;
A*c;
”,则该类型的长度为12。
题目21
假定一个结构类型的定义为“structB{inta[5];
char*b;
”,则该类型的长度为20。
题目22
执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。
题目23
执行malloc(sizeof(structBB))函数调用时,得到的动态存储空间能够保存具有structBB结构类型的一个对象。
题目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()用来移动数据文件中的文件位置指针。
三、写出下列每个程序运行后的输出结果(共15分,每小题5分)
题目36
#include<
stdio.h>
structWorker{
charname[15];
//姓名
intage;
//年龄
floatpay;
//工资
};
voidmain(){
structWorkerx={"
wanghua"
52,4300};
structWorkery,*p;
y=x;
p=&
x;
printf("
%s
%d
%6.2f\n"
x.name,y.age,p->
pay);
}
wanghua
52
4300
题目37
#include<
string.h>
structWorkerx;
char*t="
liouting"
;
intd=38;
floatf=3493;
strcpy(x.name,t);
x.age=d;
x.pay=f;
printf("
%6.0f\n"
x.name,x.age,x.pay);
liouting
39
2493
题目38
structWorker{charname[15];
intLess(structWorkerr1,structWorkerr2){
if(r1.age<
r2.age)return1;
elsereturn0;
structWorkera[4]={{"
abc"
25,2420},{"
def"
58,4638},
{"
ghi"
49,4260},{"
jkl"
36,3750}};
structWorkerx=a[0];
inti;
for(i=1;
i<
4;
i++)
if(Less(x,a[i]))x=a[i];
def
58
4638
四、写出下列每个函数的功能(共15分,每小题5分)
题目39
voidQA(structWorkera[],intn){
n;
scanf("
%s%d%f"
&
a[i].name,&
a[i].age,&
a[i].pay);
假定结构类型structWorker的定义如下:
structWorker{charname[15];
从键盘输入n个Worker类型的记录到一维数组a中。
题目40
intCount(structIntNode*f)
{
//f为指向一个单链表的表头指针
intc=0;
while(f){
c++;
f=f->
next;
returnc;
假定structIntNode的类型定义为:
structIntNode{intdata;
IntNode*next;
统计出以表头指针为f的链表中结点的个数。
题目41
voidxw1(char*fname){
FILE*fout=fopen(fname,"
);
chara[20];
每个字符串长度小于20,字符串end作为结束标志\n"
while
(1){
scanf("
%s"
a);
if(strcmp(a,"
end"
)==0)break;
fputs(a,fout);
fputc('
\n'
fout);
}
fclose(fout);
把从键盘上输入的若干个字符串保存到由fname参数所指定的文本文件中。