国家开放大学《C语言程序设计》形考任务1-4参考答案.docx

上传人:国**** 文档编号:12221258 上传时间:2023-06-04 格式:DOCX 页数:28 大小:39.04KB
下载 相关 举报
国家开放大学《C语言程序设计》形考任务1-4参考答案.docx_第1页
第1页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

国家开放大学《C语言程序设计》形考任务1-4参考答案.docx

《国家开放大学《C语言程序设计》形考任务1-4参考答案.docx》由会员分享,可在线阅读,更多相关《国家开放大学《C语言程序设计》形考任务1-4参考答案.docx(28页珍藏版)》请在冰点文库上搜索。

国家开放大学《C语言程序设计》形考任务1-4参考答案.docx

国家开放大学《C语言程序设计》形考任务1-4参考答案

形考任务1

一、选择题(共40分,每小题2分)

1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(  )。

A.main

B.MAIN

C.name

D.function

2.C语言源程序文件的缺省扩展名为(  )。

A.cpp

B.exe

C.obj

D.c

3.由C语言目标文件连接而成的可执行文件的缺省扩展名为(  )。

A.cpp

B.exe

C.obj

D.c

4.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为(  )。

A.空格或逗号

B.逗号或回车

C.逗号或分号

D.空格或回车

5.每个C语言程序文件的编译错误被分为(  )。

A.1类

B.2类

C.3类

D.4类

6.不符合C语言规定的复合语句是(  )。

A.{}

B.{;}

C.{x=0;}

D.{y=10}

7.C语言程序中的基本功能模块为(  )。

A.表达式

B.标识符

C.语句

D.函数

8.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和(  )。

A.表达式

B.语句

C.参数表

D.函数体

9.在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对(  )。

A.尖括号

B.双引号

C.单引号

D.花括号

10.在C语言程序中,多行注释语句使用的开始标记符为(  )。

A.//

B./*

C.*/

D.**

11.在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为(  )。

A.char

B.int

C.float

D.double

12.在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(  )。

A.5

B.4

C.3

D.6

13.转义字符'\\'表示的字符是(  )。

A.单引号

B.双引号

C.反斜线

D.问号

14.枚举类型中的每个枚举常量的值都是一个(  )。

A.整数

B.浮点数

C.字符

D.逻辑值

15.运算符优先级最高的是(  )。

A.=

B.*=

C.&&

D.!

=

16.设x和y均为逻辑值,则x&&y为真的条件是(  )。

A.它们均为真

B.其中一个为真

C.它们均为假

D.其中一个为假

17.设有语句“inta=12;a+=a*a;”,则执行结束后,a的值为(  )。

A.12

B.144

C.156

D.288

18.x>0&&x<=10的相反表达式为(  )。

A.x<=0||x>10

B.x<=0&&x>10

C.x<=0||x<=10

D.x>0&&x>10

19.字符串“a+b=12\n”的长度为(  )。

A.6

B.7

C.8

D.9

20.在下列的符号常量定义中,错误的定义语句格式为(  )。

A.constintM1=10;

B.constintM2=20;

C.constintM310;

D.constcharmark='3';

二、判断题(共60分,每小题2分。

叙述正确则回答“是”,否则回答“否”)

21.C语言中的每条简单语句以分号作为结束符。

(√)

22.C语言中的每条复合语句以花括号作为结束符。

(×)

23.在C语言程序中,在行尾使用注释的开始标记符为一对单斜线字符。

(√)

24.注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/。

(√)

25.在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。

(×)

26.于输出表达式值的标准输出函数是printf()。

(√)

27.当不需要函数返回任何值时,则需要使用保留字void作为函数的返回值类型。

(√)

28.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error。

(×)

29.十进制数25表示成符合C语言规则的八进制数为31。

(×)

30.十进制数25表示成符合C语言规则的十六进制数为0x19。

(√)

31.在C语言中,转义字符'\n'表示一个换行符。

(√)

32.执行“printf("%c",'F'-2);”语句后得到的输出结果为H。

(×)

33.已知字符'C'的ASCII码为67,当执行“intx='C'+5;”语句后x的值为72。

(√)

34.假定一个枚举类型的定义为“enumRB{ab,ac=3,ad,ae}x=ad;”,则x的值为2。

(×)

35.float的类型长度为8。

(×)

36.在C语言中,常数28和3.26具有相同的数据类型。

(×)

37.若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。

(√)

38.使用const语句定义一个符号常量时,不必对它进行初始化。

(×)

39.表达式45%13的值为3。

(×)

40.假定x=5,则表达式2*x++的值为12。

(×)

41.表达式(float)25/4的值为6。

(×)

42.表达式x=x+1表示成增量表达式为++x。

(√)

43.关系表达式(x!

=0)的等价表达式为(x)。

(√)

44.关系表达式x+y>5的相反表达式为x+y<=5。

(√)

45.逻辑表达式(a>b||b==5)的相反表达式为(a>b&&b==5)。

(×)

46.若x=5,y=10,则x>y逻辑值为真。

(×)

47.假定x=5,则执行“a=(x?

10:

20);”语句后a的值为10。

(√)

48.带有随机函数的表达式rand()%20的值所在的区间范围是0~19。

(√)

49.假定x=5,则执行“y=x++;”语句后,x的值为5。

(×)

50.假定x=5,则执行“y=++x;”语句后,y的值为6。

(√)

形考任务2

一、选择题(共20分,每小题2分)

1.当处理特定问题时的循环次数已知时,通常采用的语句是()。

a.for

b.while

c.do-while

d.switch

2.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。

a.for

b.if

c.do

d.while

3.for语句能够被改写成的语句是()。

a.复合

b.if

c.switch

d.while

4.下面循环语句执行结束后输出的i值为()。

for(inti=0;in/2){cout<

a.n/2

b.n/2+1

c.n/2-1

d.n-1

5.在下面循环语句中,内层循环体S语句的执行总次数为()。

for(inti=0;i

for(intj=i;j

a.n2

b.(n+1)/2

c.n(n-1)/2

d.n(n+1)/2

6.在下面的do循环语句中,其循环体被执行的次数为()。

inti=0;doi++;while(i*i<10);

a.4

b.3

c.5

d.2

7.在下面的一维数组定义中,有语法错误的选项是()。

a.inta[]={1,2,3};

b.inta[10]={0};

c.inta[];

d.inta[5];

8.在下面的二维数组定义中,语法正确的选项是()。

a.inta[5][];

b.inta[][5];

c.inta[][3]={{1,3,5},{2}};

d.inta[](10);

9.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。

a.2

b.4

c.6

d.8

10.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。

a.0

b.4

c.8

d.6

二、判断题(共20分,每小题1分。

叙述正确则回答“是”,否则回答“否”)

11.在执行“typedefintDataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。

(√)

12.在switch语句中,每个case和冒号之间的表达式只能是常量。

(√)

13.为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。

(√)

14.在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。

(×)

15.在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。

(×)

16.假定一维数组的定义为“char*a[8];”,则该数组所含元素的个数大于8。

(×)

17.假定二维数组的定义为“inta[3][5];”,则该数组所占存储空间的字节数为60。

(√)

18.假定二维数组的定义为“chara[M][N];”,则该数组所含元素的个数为M+N。

(×)

19.假定二维数组的定义为“doublea[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。

(√)

20.假定二维数组的定义为“doublea[M][N];”,则每个数组元素的列下标取值范围在0~N之间。

(×)

21.存储一个空字符串需要占用0个字节的存储空间。

(×)

22.使用“typedefcharBB[10][50];”语句定义标识符BB为含有10行50列的二维字符数组类型。

(√)

23.存储字符'a'需要占用1个字节的存储空间。

(√)

24.空字符串的长度为1。

(×)

25.字符串"a:

\\xxk\\数据"的长度为13。

(×)

26.为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。

(√)

27.strcmp函数用于进行两个字符串之间的比较。

(√)

28.strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。

(√)

29.一个二维字符数组a[10][20]能够最多存储9个字符串。

(×)

30.一个二维字符数组a[10][20]能够存储的每个字符串的长度不超过20。

(×)

三、填空题:

写出下列每个程序运行后的输出结果(共40分,每小题4分)

31.#include

voidmain()

{

intx=5;

switch(2*x-3){

case4:

printf("%d",x);

case7:

printf("%d",2*x+1);

case10:

printf("%d",3*x-1);break;

default:

printf("%s","default\n");

}

}

答案:

1114

32.#include

voidmain(){

inti,s=0;

for(i=1;i<=5;i++)s+=i*i;

printf("s=%d\n",s);

}

答案:

s=55

33.#include

voidmain(){

inti,s1=0,s2=0;

for(i=0;i<10;i++)

if(i%2)s1+=i;elses2+=i;

printf("%d%d\n",s1,s2);

}

答案:

2520

34.#include

voidmain(){

intn=6,y=1;

while(n)y*=n--;

printf("y=%d\n",y);

}

答案:

y=720

35.#include

constintM=20;

voidmain()

{

inti,c2,c3,c5;

c2=c3=c5=0;

for(i=1;i<=M;i++){

if(i%2==0)c2++;

if(i%3==0)c3++;

if(i%5==0)c5++;

}

printf("%d%d%d\n",c2,c3,c5);

}

答案:

1064

36.#include

voidmain()

{

inti,s;

for(i=1,s=0;i<10;i++){

if(i%3==0)continue;

s+=i;

}

printf("%d\n",s);

}

答案:

27

37.#include

voidmain(){

inta[8]={12,39,26,41,55,63,72,40};

inti,i1=0,i2=0;

for(i=0;i<8;i++)

if(a[i]%2==1)i1++;elsei2++;

printf("%d%d\n",i1,i2);

}

答案:

44

38.#include

inta[10]={4,5,6,15,20,13,12,7,8,9};

voidmain()

{

inti,s[4]=0;

for(i=0;i<10;i++){

switch(a[i]%4){

case0:

s[0]+=a[i];break;

case1:

s[1]+=a[i];break;

case2:

s[2]+=a[i];break;

default:

s[3]+=a[i];break;

}

}

for(i=0;i<4;i++)printf("%d",s[i]);

}

答案:

4427622

39.#include

voidmain(){

chara[]="abcdbfbgacd";

inti1=0,i2=0,i=0;

while(a[i]){

if(a[i]=='a')i1++;

if(a[i]=='b')i2++;

i++;

}

printf("%d%d%d\n",i1,i2,i);

}

答案:

2311

40.#include

voidmain(){

inta[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}};

intm=a[0][0];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

if(a[i][j]>m)m=a[i][j];

printf("%d\n",m);

}

答案:

12

四、简答题:

根据下列每个题目要求编写程序(共20分,每小题4分)

41.编写一个函数,函数头格式为“doubleMean(doublea[M][N],intm,intn)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程中采用变量v存放平均值。

参考答案:

doubleMean(doublea[M][N],intm,intn)

{

inti,j;

doublev=0.0;

for(i=0;i

for(j=0;j

v/=m*n;

returnv;

}

42.编写一个递归函数“intFF(inta[],intn)”,求出数组a中所有n个元素之积并返回。

参考答案:

intFF(inta[],intn)

{

if(n==1)returna[n-1];

elsereturna[n-1]*FF(a,n-1);

}

43.编写一个主函数,利用while循环,求出并显示满足不等式的最小n值。

参考答案:

#include

voidmain()

{

inti=0;doubles=0;//或inti=1;doubles=1;

while(s<5)s+=(double)1/++i;

printf("n=%d\n",i);

}

44.编写一个主函数,求出满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。

参考答案:

#include

voidmain()

{

inti=0;//用i作为依次取值偶数的变量

ints=0;//用s作为累加变量

do{

i+=2;

s+=i*i;

}while(s<1000);

printf("n=%d\n",i-2);

}

45.编写一个主函数,计算并输出12+22+...+n2值,其中n值由键盘输入。

参考答案:

#include

voidmain()

{

inti;//用i作为计数(循环)变量

ints=0;//用s作为累加变量

intn;

printf("输入一个自然数:

");

scanf("%d",&n);

for(i=1;i<=n;i++)s+=i*i;

printf("s=%d\n",s);

}

形考任务3

一、选择题(共30分,每小题2分)

1.在下面的函数声明语句中,存在着语法错误的是()。

a.AA(inta,intb)

b.AA(int,int)

c.AA(inta;intb)

d.AA(inta,int)

2.在下面的保留字中,不能作为函数的返回值类型的是()。

a.void

b.int

c.enum

d.long

3.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()。

a.1

b.2

c.4

d.8

4.假定a为一个数组名,在下面的表达式中,存在语法错误的是()。

a.a[i]

b.*a++

c.*a

d.*(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=&m;

b.int*p=&m;

c.int&p=*m;

d.int*p=m;

7.假定k是一个double类型的变量,则定义变量p的正确语句为()。

a.doublep=&k;

b.int*p=&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.static

b.int

c.f1

d.return

13.假定一个函数的原型语句为“intff(int*x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是()。

a.ff(a)

b.ff(a[0])

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2