当前位置:才华咖 > 互联网计算机 > 计算机 > 计算机二级 > 2017计算机二级C语言选择题及答案
手机版

2017计算机二级C语言选择题及答案

来源:才华咖 阅读:3.22W 次

练习做多了自然会形成自己的做题方法和速度,为此,今天本站小编为大家整理了以下2017计算机二级的文章" target="_blank" >计算机二级C语言选择题及答案,希望对大家有帮助!

2017计算机二级C语言选择题及答案

1.若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是( )。

A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

2.下列程序的输出结果是( )。

#include

main()

{ int a[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

p=a ;

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

{ if(i<2)

p[1][i]=p[1][i]-1;

else

p[1][i]=1;

}

printf("%dn",a[o][1]+a[1][1]+a[1][2]);

}

A.8

B.7

C.12

D.9

3.执行下列程序后,输出的结果是( )。

#include

#define S(X) X*X

void main()

{ int a=9,k=3,m=2;

a/=S(k+m)/S(k+m):

printf("%d",a);

}

A.1

B.4

C.9

D.0

4.设x=015,则x=x^017的值是( )。

A.00001111

B.11111101

C.00000010

D.1 1000000

5.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( )。

B.-l

c.非零值D.0

6.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:

if(a  if(c==d)y=0;

else y=1;

该语句所表示的含义是( )。

A.y=0,a   y=1,a≥b

B.y=0,a   y=1,a≥b且c≠d

C.y=0,a   y=1,a  D.y=0,a   y=1,c≠d

7.下列程序的运行结果是( )。

#include

void main()

{int s=0,k;

for(k=7;k>1;k--)

{switch(k)

{case 1:

case 4:

case 7:

s++:

break;

case 2:

case 3:

case 6:break;

case 0:

case 5:

s+=2:

break;

}}

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

}

A.s=3

B.s=4

C.s=5

D.无输出结果

8.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是( )。

for(i=6;i>0;i--)

for(j=0;j<4;j++){…}

A.20

B.24

C.25

D.30

9.下列叙述中正确的是( )。

A.只能在循环体内和switch语句体内使用break语句

nue语句的作用是结束整个循环的执行

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用got0语句

10.有以下程序:

#include

void WriteStr(char**str)

{ FILE*fp;

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}

main()

{ WriteStr("","start");

WriteStr("","end");)

程序运行后,文件中的内容是( )。

t

tend

t

11.运行下列程序时,若输入的`数据为“1,2,3”,则输出结果是( )。

main()

{ float a,b,c,t;

scanf("%f,%f,%f",&a,&b,&c);

if(a   {t=a;a=b.b=t;)

if(a   {t=a;a=c;c=t;)

it(b   {t=b;b=C;c—=;)

printf("%fn%fn%fn",a,b,c);

}

A.1.00

2.00

3.00

B.1.00

3.00

2.00

C.1

3

2

D.3.00000

2.00000

1.00000

12.设有程序段:

int k=12:

while(k=1)k=k一1;

则下列描述中正确的是( )。

e循环执行10次

B.循环是无限循环

C.循环体语句一次也不执行

D.循环体语句执行一次

13.在执行完下列的c语句段之后,则B的值是( )。

char a=’A’;

int b;

B=((34&&56)&&(a<’b’));

A.0

B.1

E

14.有下列函数定义:

fun(float h)

{ printf("%f,%fn",h,h*h);)

该函数的类型是( )。

类型

t类型

类型

D.函数无类型说明,定义有错

15.有下列程序段:

int n,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

为使此程序段不陷入循环,从键盘输入的数据应该是( )。

  参考答案

1.D。【解析】double*p,a定义了一个指向双精度型的指针变量P和双精度型变量a,p=&a表示将变量a的地址赋给指针变量p;scanf("%If",p)表示用键盘输入的数赋给指针变量P所指向的地址单元中,scanf()函数要求在输入double型数据,格式控制符必须用%1f。否则,数据不能正确输入。所以选项D正确。

2.B。【解析】本题考查for循环及if…else语句嵌套,第1次执行for循环,p[1][0]=p[1][0]=p[1][0]-1=3;第2 次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for 循环,p[1][2]=l,最后输出的是a[0][1]+a[1][1]+a[1] [2]=2+4+1=7。

3.D。【解析】本题主要考查带参数的宏定义,过程如下:由于定义为define(x) x*x没有括号优先级,所以:a= a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m) =9/(3+2*3+2/3+2*3+2)=0。

4.C。【解析】本题考查按位异或运算,异或就是相同为0,不同为1(化为二进制00001101),017的二进制为000001111,两者异或结果为00000010。

5.D。【解析】本题考查leon(tp)函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。

6.C。【解析】语句“if(c==d)y=0;else y=1;”是if(a

7.B。【解析】运行程序,当k=7时switch(7)执行case:7,s++后s=1,break跳出。k--,k=7继续循环switch(6),执行case 6;直接跳出循环,k--变成5,继续循环switch(5),执行case 5后面的语句s+=2,也相当于s= s+2,此时s为3,break跳出,k变为4,继续循环,执行case 4为空,继续执行case 7;s++为4跳出循环,k--变为3,继续循环,执行case 3,空语句往下执行case 6,跳出,k -- 为2,继续循环,执行case 2;空语句往下执行case 3,空语句再执行case 7,跳出循环,k--为1不符合循环,退出,此时S=4。

8.B。【解析】本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4 时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4 =24次。

9.A。【解析】本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。

10.B。【解析】用"w"方式打开文件,意思是如果文件名相同则覆盖原来的文件,所以当再次输入时覆盖了第一次的内容,B选项正确。

11.D。【解析】本题考查if语句。第1个if语句,如果

a  12.C。【解析】本题考查while,while循环表达式k=1是个赋值表达式而不是逻辑表达式,k的初值为12不符合循环条件,所以循环体一次也不执行。

13.B。【解析】本题考查3个知识点:将一个字符赋给一个字符变量时,是将该字符对应的ASCIl码存储到内存单元中;常见ASCII码的值如A和a;只要逻辑与运算符&&的两个运算对象都为真时,返回值就是1。

14.A。【解析】本题考查函数值的类型,在函数定义时, 由于函数没有说明其类型,系统默认一律自动按整型(int)

处理。

15.D。【解析】本题主要考查do—while循环,因为变量t的初始值等于1,经过第一次do-while循环后,执行t= t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t==n成立,故退出do-while循环。

A.任意正奇数

B.任意负偶数

C.任意正偶数

D.任意负奇数

本文链接:https://www.caihuaka.com/jsjzs/erji/lov84v.html

Copyright © 2024. 才华咖 All right reserved. 浙ICP备20120231号-3

文字美图素材,版权属于原作者。部分文章内容由网友提供推送时因种种原因未能与原作者联系上,若涉及版权问题,敬请原作者联系我们,立即处理。