《C语言程序设计A》课程形成性考核作业四参考答案.docx

上传人:b****3 文档编号:26634298 上传时间:2023-06-21 格式:DOCX 页数:9 大小:16.13KB
下载 相关 举报
《C语言程序设计A》课程形成性考核作业四参考答案.docx_第1页
第1页 / 共9页
《C语言程序设计A》课程形成性考核作业四参考答案.docx_第2页
第2页 / 共9页
《C语言程序设计A》课程形成性考核作业四参考答案.docx_第3页
第3页 / 共9页
《C语言程序设计A》课程形成性考核作业四参考答案.docx_第4页
第4页 / 共9页
《C语言程序设计A》课程形成性考核作业四参考答案.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

《C语言程序设计A》课程形成性考核作业四参考答案.docx

《《C语言程序设计A》课程形成性考核作业四参考答案.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计A》课程形成性考核作业四参考答案.docx(9页珍藏版)》请在冰豆网上搜索。

《C语言程序设计A》课程形成性考核作业四参考答案.docx

《C语言程序设计A》课程形成性考核作业四参考答案

一、选择题

1.假定有“structBOOK{chartitle[40];floatprice;};structBOOK*book;”,则不正确的语句为(A)。

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

2.假定有“structBOOK{chartitle[40];floatprice;}book;”,则正确的语句为(B)。

A.structBOOKx=&book;B.structBOOK*x=&book;

C.structBOOKx=calloc(BOOK);D.structBOOK*x=BOOK;

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

A.eofB.EofC.EOFD.feof

4.C语言中系统函数fopen()是(D)一个数据文件的函数。

A.读取B.写入C.关闭D.打开

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

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

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

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

二、填空题

1.假定一个结构类型的定义为“structA{inta,b;A*c;};”,则该类型的大小为___12_______字节。

2.假定一个结构类型的定义为“structB{inta[5],char*b;};”,则该类型的大小为___24_______字节。

3.假定一个结构类型的定义为“structD{inta;union{intb;doublec;};structD*d[2];};”,则该类型的大小为___20_______字节。

4.假定要动态分配一个类型为structWorker的具有n个元素的数组,并由r指向这个动态数组,则使用语句的表达式为structWorker*r=__(Worker*)malloc(n*sizeof(Worker));_____。

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

6.假定要访问一个结构指针p所指向对象中的b指针成员所指的对象,则表示方法为_____*(p->b)___

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

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

1.#include

structWorker{

charname[15];//姓名

intage;//年龄

floatpay;//工资

};

voidmain(){

structWorkerx={"wanghua",52,23.50};

structWorkery,*p;

y=x;p=&x;

printf("%s%d%6.2f\n",y.name,y.age,y.pay);

printf("%s%d%6.2f\n",p->name,p->age,p->pay);

}

输出结果为:

wanghua5223.50

wanghua5223.50

Pressanykeytocontinue

2.#include

#include

structWorker{

charname[15];//姓名

intage;//年龄

floatpay;//工资

};

voidmain(){

structWorkerx;

char*t="louting";

intd=38;floatf=493;

strcpy(x.name,t);

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

x.age++;x.pay*=2;

printf("%s%d%6.2f\n",x.name,x.age,x.pay);

}

输出结果为:

louting39986.00

Pressanykeytocontinue

3.#include

#include

structWorker{

charname[15];//姓名

intage;//年龄

floatpay;//工资

};

intLess(structWorkerr1,structWorkerr2){

if(r1.age

elsereturn0;

}

voidmain(){

structWorkera[4]={{"abc",25,420},{"def",58,638},{"ghi",49,560},{"jkl",36,375}};

structWorkerx=a[0];

inti;

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

if(Less(x,a[i]))x=a[i];

printf("%s%d%6.2f\n",x.name,x.age,x.pay);

}

输出结果为:

def58638.00

Pressanykeytocontinue

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

1.

voidQA(structWorkera[],intn){

inti;

for(i=0;i

scanf("%s%d%f",&a[i].name,a[i].age,a[i].pay);

}

假定结构structWorker的定义如下:

#include

#include

#include

structWorker{

charname[15];//姓名

intage;//年龄

floatpay;//工资

};

函数功能为:

输入structWorker类型的对象a[n]的各个元素的值

2.structStrNode*QB(intn){

StrNode*f,*p;

if(n==0)returnNULL;

f=(StrNode*)malloc(sizeof(structStrNode));

scanf("%s",f->name);

p=f;

while(--n){

p=p->next=(StrNode*)malloc(sizeof(structStrNode));

scanf("%s",p->name);

}

p->next=NULL;

returnf;

}

假定结构structStrNode的定义如下:

structStrNode{

charname[5];

structStrNode*next;

};

函数功能为:

建立一个具有n个结点,每个结点的类型是StrNode的链表

3.structIntNode*FindMax(structIntNode*f)

{

structIntNode*p=f;

if(!

f)returnNULL;

f=f->next;

while(f){

if(f->datadata)p=f;

f=f->next;

}

returnp;

}

假定结构structStrNode的定义如下:

structIntNode{

intdata;

structIntNode*next;

};

函数功能为:

在一个具有n个结点,每个结点的类型是IntNode的链表中寻找data值最大的结点

4.intCount(structIntNode*f)

{

intc=0;while(f){

c++;

f=f->next;

}

returnc;

}

假定结构structStrNode的定义如下:

structIntNode{

intdata;

structIntNode*next;

};

函数功能为:

计算一个具有n个结点,每个结点的类型是IntNode的链表的结点数

5.structIntNode*Input(intn)

{

structIntNode*f,*p;

f=(IntNode*)malloc(sizeof(structIntNode));

if(n==0)returnNULL;

f->next=NULL;

printf("从键盘输入%d个整数:

",n);

while(n--){

scanf("%d",&(f->data));

p=f;

f=(IntNode*)malloc(sizeof(structIntNode));

f->next=p;

}

returnf->next;

}

假定结构structStrNode的定义如下:

structIntNode{

intdata;

structIntNode*next;

};

函数功能为:

在类型为IntNode的链表后输入n个结点的数据

6.#include

#include

#include

voidJA(char*fname)

{

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

chara[20];

printf("");

while

(1){

scanf("%s",a);

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

fputs(a,fout);

fputc('\n',fout);

}

fclose(fout);

}

voidmain()

{

char*p="d:

\\xxk\\xuxk1.txt";

JA(p);

}

函数功能为:

在已经存在的d:

\xxk文件夹下(如不存在此文件夹程序运行会出错)打开xuxk1.txt文件,并向其中输入一系列长度小于20的字符串,直到输入字符串end结束。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1