c语言程序设计形考 国家开放大学电大《C语言程序设计》网络课形考网考作业及答案文档格式.docx
- 文档编号:4938119
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:13
- 大小:20.59KB
c语言程序设计形考 国家开放大学电大《C语言程序设计》网络课形考网考作业及答案文档格式.docx
《c语言程序设计形考 国家开放大学电大《C语言程序设计》网络课形考网考作业及答案文档格式.docx》由会员分享,可在线阅读,更多相关《c语言程序设计形考 国家开放大学电大《C语言程序设计》网络课形考网考作业及答案文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
i<
m;
i++)for(j=0;
j<
n;
j++)v+=a[i][j];
v=v/(m+n);
returnv;
doubleMean(doublea[M][N],intm,intn){inti,j;
v/=m*n;
}题目42编写一个递归函数“intFF(inta[],intn)”,求出数组a中所有n个元素之积并返回。
intFF(inta[],intn){if(n==1)returna[0];
elsereturnFF(a,n-1)*a[n-1];
intFF(inta[],intn){if(n==1)returna[n-1];
elsereturna[n-1]*FF(a,n-1);
}题目43编写一个主函数,利用while循环,求出并显示满足不等式的最小n值。
#include<
stdio.h>
voidmain(){inti=0,s=0;
while(s<
=1000){i++;
s+=i*i;
}printf(“满足不等式的最小n值是:
%d\n“,i);
#include<
voidmain(){inti=0;
doubles=0;
//或inti=1;
doubles=1;
5)s+=(double)1/++i;
printf(“n=%d\n“,i);
}题目44编写一个主函数,求出满足不等式22+42+...+n2<
1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。
do{i+=2;
}while(s<
1000);
printf(“满足不等式的最大n值是:
%d\n“,i-2);
//用i作为依次取值偶数的变量ints=0;
//用s作为累加变量do{i+=2;
printf(“n=%d\n“,i-2);
}题目45编写一个主函数,计算并输出12+22+...+n2值,其中n值由键盘输入。
voidmain(){inti,n,s=0;
printf(“请输入一个整数n:
“);
scanf(“%d“,&
n);
for(i=1;
=n;
i++)s+=i*i;
printf(“s=%d\n“,s);
voidmain(){inti;
//用i作为计数(循环)变量ints=0;
//用s作为累加变量intn;
printf(“输入一个自然数:
“);
scanf(“%d“,&
}形考任务3一、选择题(共30分,每小题2分)题目1在下面的函数声明语句中,存在着语法错误的是()。
a.AA(inta,intb)b.AA(int,int)c.AA(inta;
intb)d.AA(inta,int)题目2在下面的保留字中,不能作为函数的返回值类型的是()。
a.voidb.intc.enumd.long题目3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()。
a.1b.2c.4d.8题目4假定a为一个数组名,在下面的表达式中,存在语法错误的是()。
a.a[i]b.*a++c.*ad.*(a+1)题目5用calloc函数创建具有10个整型元素的一维数组的正确语句是()。
a.int*p=calloc(10,2);
b.int*p=calloc(10);
c.int*p=calloc(10,4);
d.int*p=malloc(10)题目6假定变量m定义为“intm=7;
”,则下面正确的语句为()。
a.intp=&
b.int*p=&
c.int&
p=*m;
d.int*p=m;
题目7假定k是一个double类型的变量,则定义变量p的正确语句为()。
a.doublep=&
k;
c.double&
p=*k;
d.char*p=“Thankyou!
“;
题目8若有语句为“inta[10],x,*pa=a;
”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
a.x=pa[3];
b.x=*(a+3);
c.x=a[3];
d.x=*pa+3;
题目9假定有语句为“intb[10];
int*pb;
”,则下面不正确的赋值语句为()。
a.pb=b;
b.pb=&
b[0];
c.pb=b+2;
d.pb=b[5];
题目10已知“int*p=malloc(100);
”,要释放p所指向的动态内存,正确的语句为()。
a.free(p);
b.freep;
c.free(*p);
d.free[p];
题目11在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的()。
a.原型语句b.参数表c.函数名d.返回类型题目12假定一个函数定义为“staticintf1(intx,inty){returnx+y;
}”,该函数名称为()。
a.staticb.intc.f1d.return题目13假定一个函数的原型语句为“intff(int*x);
”,一个整型数组为a[10],则下面函数调用表达式不正确的是()。
a.ff(a)b.ff(a[0])c.ff(a+3)d.ff(&
a[0])题目14假定一个函数的数组参数说明为chara[],与之等价的指针参数说明为()。
1B选择一项:
a.charab.char*ac.char&
ad.char**a题目15假定一个函数的二维数组参数说明为charw[][N],与之等价的指针参数说明为()。
a.char(*w)[N]b.char*w[N]c.char(*w)Nd.char**a二、判断题(共30分,每小题2分。
叙述正确则回答“是”,否则回答“否”)题目16在C语言中,一个函数由函数头和函数体组成。
对错题目17在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。
对错题目18如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。
对错题目19如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。
对错题目20调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。
对错题目21函数形参变量不属于局部变量。
对错题目22假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。
对错题目23假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。
对错题目24假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。
对错题目25假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。
对错题目26若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。
对错题目27假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。
对错题目28假定x为一个简单变量,则&
x表示x的地址。
对错题目29若p指向x,则*p与x的值不同。
对错题目30NULL是一个符号常量,通常作为空指针值,它代表的值为0。
对错三、写出下列每个程序运行后的输出结果(共20分,每小题4分)题目31#include<
intWF(intx,inty){x=x+y;
y=x+y;
returnx+y;
}voidmain(){intx=5,y=7;
intz=WF(x,y);
printf(“z=%d\n“,z);
z=31题目32#include<
#include<
string.h>
voidfun(charss[]);
voidmain(){chars[15]=“0123456789“;
fun(s);
printf(“%s\n“,s);
}voidfun(charss[]){inti,n=strlen(ss);
n/2;
i++){charc=ss[i];
ss[i]=ss[n-1-i];
ss[n-1-i]=c;
}}答:
987543210题目33#include<
intCount(inta[],intn,intx){inti,c=0;
i<
i++)if(a[i]>
x)c++;
returnc;
}voidmain(){inta[8]={20,15,32,47,24,36,28,70};
intb=Count(a,8,30);
printf(“b=%d\n“,b);
B=4题目34#include<
voidmain(){inta[8]={3,5,7,9,2,3,4,8};
ints=0,*p;
for(p=a;
p<
a+8;
)s+=*p++;
s=41题目35#include<
intLA(int*a,intn,intx){inti,s=0;
i++)if(a[i]<
x)s+=a[i];
returns;
}voidmain(){inta[8]={5,10,15,8,12,3,9,20};
intb=LA(a,5,10);
intc=LA(a+2,6,10);
printf(“%d%d\n“,b,c);
1320四、写出下列每个函数的功能(共20分,每小题4分)题目36doubleSF(doublex,intn){//n为正整数doublep=1,s=1;
inti;
i++){p*=x;
s+=p;
}returns;
计算出1+x+x2+...+xn的值并返回。
题目37intSG(intx){//x为大于等于2的整数inti=2;
while(i*i<
=x){if(x%i==0)break;
i++;
}if(i*i<
=x)return0;
elsereturn1;
判断x是否为一个质数(素数),若是则返回1,否则返回0。
题目38intWB(inta[],intn,intx){for(inti=0;
i++)if(a[i]==x)return1;
return0;
从数组a[n]中顺序查找值为x的元素,若查找成功则返回1,否则返回0。
题目39intfun(intm,intn){intc=0;
staticintb=2;
if(m<
b||n<
b)returnm*n;
elseif(m%b==0&
&
n%b==0){c=b;
returnc*fun(m/b,n/b);
}else{b++;
returnfun(m,n);
}}答:
一个递归函数过程,求出两个自然数m和n的最小公倍数。
题目40intLK(doublea[],intn){doubles=0;
inti,m=0;
i++)s+=a[i];
s/=n;
=s)m++;
returnm;
求出并返回数组a的n个元素中大于等于平均值的元素个数。
形考任务4一、选择题(共30分,每小题2分)题目1假定有“structBOOK{chartitle[40];
floatprice;
};
structBOOKbook;
”,则不正确的语句为()。
a.structBOOK*x=malloc(book);
b.structBOOKx={“C++Programming“,27.0};
c.structBOOK*x=malloc(sizeof(structBOOK));
d.structBOOK*x=&
book;
题目2假定有“structBOOK{chartitle[40];
}book;
”,则正确的语句为()。
a.structBOOKx=&
b.structBOOK*x=&
c.structBOOKx=calloc(BOOK);
d.structBOOK*x=BOOK;
题目3在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是()。
a.句点b.冒号c.分号d.逗号题目4假定一个结构类型的定义为“structA{inta,b;
doublec;
”,则该类型的长度为()。
a.8b.10c.12d.16题目5假定一个结构类型的定义为“structD{inta;
D*next;
a.4b.8c.12d.16反馈Youransweriscorrect.题目6假定要访问一个结构指针变量x中的数据成员a,则表示方法为()。
a.x.ab.x->
ac.x(a)d.x{a}题目7与结构成员访问表达式x.name等价的表达式为()。
a.x->
nameb.&
x->
namec.(&
x)->
named.(*x)->
name题目8假定一个链表中结点的结构类型为“structAA{intdata,structAA*next;
”,则next数据成员的类型为()。
a.structAAb.structAA*c.AAd.int题目9假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为()。
a.p->
next=fb.p->
next=f和f=pc.f=p->
nextd.f->
next=p和f=p题目10标准输入设备键盘的文件流标识符是()。
a.stdinb.stdoutc.stderrd.stdio题目11表示文件结束符的符号常量为()。
a.eofb.Eofc.EOFd.feof题目12C语言中打开一个数据文件的系统函数为()。
a.fgetc()b.fputc()c.fclose()d.fopen()题目13从一个数据文件中读入以换行符结束的一行字符串的系统函数为()。
a.gets()b.fgets()c.getc()d.fgetc()题目14向一个二进制文件中写入信息的函数fwrite()带有的参数个数为()。
a.1b.2c.3d.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种。
对错题目28C语言中的标准输入和输出设备文件都属于字符文件。
对错题目29在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。
对错题目30在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。
对错题目31一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
对错题目32C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
对错题目33每次只能向文本文件中写入一个字符,不能一次写入一个字符串。
对错题目34对二进制文件进行读和写操作将使用相同的系统函数。
对错题目35在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。
对错三、写出下列每个程序运行后的输出结果(共15分,每小题5分)题目36#include<
structWorker{charname[15];
//姓名intage;
//年龄floatpay;
//工资};
voidmain(){struct
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 c语言程序设计形考 国家开放大学电大C语言程序设计网络课形考网考作业及答案 语言程序设计 国家 开放 大学 电大 网络 课形考网考 作业 答案