电大-C语言程序设计形成性考核册答案

发布时间 : 星期五 文章电大-C语言程序设计形成性考核册答案更新完毕开始阅读

scanf(\

if(x+y==z)return 1;else return 0; }

void main() {

int i,a,b,c=0;

srand(time(0)); //初始化随机数系列 for(i=0;i

a=rand() +1; //rand90函数产生0-32767之间的一个随机数 b=rand() +1; c+=ff(a,b); }

printf(\得分:%d\\n\}

函数功能为:

函数ff让两个数相加,要求输入其和,判断结果是否正确。在主函数中用随机函数产生两个20以内的随机整数,通过10次调用这个函数,算对一次得10分,计算所得分

4. int fun6(int m,int n,int b=2) {

if(m

else if(m%b==0 && n%b==0)return b*fun6(m/b,n/b,b); else return fun6(m,n,++b); }

函数功能为:

此函数带有一个默认参数,若使用默认值,则通过递归调用,返回前2参数的最小公倍数;

不使用默认值时,若最后一个参数不小于前2个参数,则返回前2参数之乘积; 否则,通过递归调用,返回前2参数最小公倍数的n倍数。

5. #include #include void LI(int n){

int * a=(int *) malloc(n*sizeof(int)); int i;

for(i=0;i=0;i--)printf(\ printf(\ free(a); }

函数功能为:

将从键盘输入的n个整数逆序输出

6. #include

int LK(double a[],int n){ double s=0;int i,m=0; for(i=0;i

for(i=0;i=s)m++; return m; }

函数功能为:

求不小于数组元素之平均值的各元素之和(前n个)

应加入此4字,否则D亦对

必须强制类型转换!否则提示cannot convert from 'void *' to 'int *'

C语言程序设计形成性考核册参考答案作业四

一、 选择题

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

A.struct BOOK *x=malloc(book); B.struct BOOK x={“C++

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

2. 假定有“struct BOOK{char title[40];float price;} book;”,则正确的语句为(B)。A.struct BOOK x=&book; B.struct BOOK *x=&book; C.struct BOOK x=calloc(BOOK); D.struct BOOK *x=BOOK; 3.表示文件结束的符号常量为(C)。 A.eof B.Eof C.EOF D.feof

4.C语言中系统函数fopen()是(D)一个数据文件的函数。 A.读取 B.写入 C.关闭 D.打开

5.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。 A.gets() B.fgets() C.getc() D.fgetc()

6.向一个二进制文件写入信息的函数fwrite()带有(D)参数。 A.1 B.2 C.3 D.4

二、填空题

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

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

3.假定一个结构类型的定义为“struct D{int a;union{int b;double c;};struct D* d[2];};”,则该类型的大小为___20 _______字节。

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

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

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

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

三、写出下列每个程序运行后的输出结果 1. #include struct Worker{

char name[15]; //姓名 int age; //年龄 float pay; //工资 };

void main(){

struct Worker x={\ struct Worker y,*p; y=x;p=&x;

printf(\ printf(\}

输出结果为: wanghua 52 23.50 wanghua 52 23.50 Press any key to continue

2. #include #include struct Worker{

char name[15]; //姓名 int age; //年龄 float pay; //工资 };

void main(){ struct Worker x; char *t=\ int d=38;float f=493; strcpy(x.name,t); x.age=d;x.pay=f; x.age++;x.pay*=2;

printf(\}

输出结果为: louting 39 986.00 Press any key to continue

3. #include #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]={{\ struct Worker x=a[0]; int i;

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

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

printf(\}

输出结果为: def 58 638.00

Press any key to continue

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

void QA(struct Worker a[],int n){ int i;

for(i=0;i

scanf(\}

假定结构struct Worker的定义如下: #include #include #include struct Worker{

char name[15]; //姓名 int age; //年龄 float pay; //工资 };

函数功能为:

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

2. struct StrNode *QB(int n){ StrNode * f,*p; if(n==0)return NULL;

f=(StrNode*) malloc(sizeof(struct StrNode)); scanf(\ p=f; while(--n){

p=p->next=(StrNode*)malloc(sizeof(struct StrNode)); scanf(\ }

p->next=NULL; return f; }

假定结构struct StrNode的定义如下: struct StrNode{ char name[5]; struct StrNode *next; };

函数功能为:

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

3. struct IntNode* FindMax(struct IntNode *f) {

struct IntNode *p=f; if(!f)return NULL; f=f->next; while(f){

if(f->data < p->data)p=f; f=f->next; } return p; }

假定结构struct StrNode的定义如下: struct IntNode{ int data;

struct IntNode * next; };

函数功能为:

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

4. int Count(struct IntNode *f) {

int c=0;while(f){ c++; f=f->next;

} return c; }

假定结构struct StrNode的定义如下: struct IntNode{ int data;

struct IntNode * next; };

函数功能为:

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

5. struct IntNode* Input(int n) {

struct IntNode *f,*p;

f=(IntNode*)malloc(sizeof(struct IntNode)); if(n==0)return NULL; f->next=NULL;

printf(\从键盘输入 %d 个整数:\ while(n--){

scanf(\ p=f;

f=(IntNode*)malloc(sizeof(struct IntNode)); f->next=p; }

return f->next; }

假定结构struct StrNode的定义如下: struct IntNode{ int data;

struct IntNode * next; };

函数功能为:

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

6. #include #include #include void JA(char* fname) {

FILE* fout=fopen(fname,\ char a[20]; printf(\ while(1){ scanf(\

if(strcmp(a,\ fputs(a,fout); fputc('\\n',fout); }

fclose(fout); }

void main() {

char *p=\ JA(p); }

函数功能为:

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

理论值。用sizeof(D)得到的结果是 24,说明编译系统采用的结构成员对齐方式是8个字节

原错为1,数组是第一个元素下标应为0!

VC++6.0不能将void *赋值给其它类型,必须强制转换

联系合同范文客服:xxxxx#qq.com(#替换为@)