c语言字母简化7aaaaaa,2015年计算机二级C语言选择模拟题及答案7

第 1 页:选择题

第 5 页:答案

1.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。

A.bdgcefha

B.gdbecfha

C.bdgaechf

D.gdbehfca

2.三种基本结构中,能简化大量程序代码的是( )。

A.顺序结构

B.分支结构

C.选择结构

D.重复结构

3.算法的时间复杂度是指( )。

A.执行算法程序所需要的时间

B.算法程序的长度

C.算法执行过程所需要的基本运算次数

D.算法程序中的指令条数

4.概要设计中要完成的事情是( )。

A.系统结构和数据结构的设计

B.系统结构和过程的设计

C.过程和接口的设计

D.数据结构和过程的设计

5.在结构化分析方法中,数据字典的作用是( )。

A.存放所有需要处理的原始数据

B.存放所有处理的结果

c.存放所有程序文件

D.描述系统中所用到的全部数据和文件的有关信息

6.一个关系中属性个数为1时,称此关系为( )。

A.对应关系

B.单一关系

c.一元关系

D.二元关系

7.若有以下定义:

char a;int b;

float c;double d;

则表达式a*b+b-c值的类型为( )。

A.float

B.int

C.char

D.double

8.下列选择中,不能用做标识符的是( )。

A.1234

B._1_2

C.int_2_

D.2_int_

9.设x为int型变量,则执行以下语句后,x的值为( )。

x=10;x=x-=x-x;

A.10

B.20

C.40

D.30

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

A.在面向对象的程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设中,各个对象之间相对独立,相互依赖性小

D.上述3种说法都不对

[NextPage]第 1 页:选择题

第 5 页:答案

11.以下程序的输出结果是( )。

main()

{ int i;

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

switch(i){case 0:printf("%d",i);

case 2:printf("%d",i);

default:printf("%d",i);

}

}

A.000102

B.000020

C.000122

D.000111

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

main()

{int x=’f’;printf("%c\n",’A’+(x-’a’+1));}

A.G

B.H

C.I

D.J

13.有如下程序:

main()

{ int a=2,b=-1.c=2;

if(a<0)if(b<0)c=0;

else c++;

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

}

该程序的输出结果是( )。

A.0

B.1

C.2

D.3

14.在C语言中,函数返回值的类型最终取决于( )。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

15.以下程序的输出结果是( )。

main()

{ int i=0,S=0;

for(;;)

{

if(i==3 ||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10

B.13

C.21

D.程序陷入死循环

16.假设a和b为int型变量,则执行以下语句后b的值为( )。

a=1;b=10;

do

{ b-=a;a++;}

while(b--<0);

A.9

B.-2

C.-l

D.8

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

main()

{ int a[3][3],*p,i};

p=&a[0][0];

for(i=p;i<9;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

A.3

B.6

C.9

D.随机数

18.以下程序的输出结果是( )。

int f(int A)

{ return a%2; }

main()

{int s[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9

B.11

C.19

D.21

19.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是( )。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

20.有以下函数:

char fun(char*p)

{return P;}

该函数的返回值是( )。

A.无确切的值

B.形参p中存放的地址值

c.一个临时存储单元的地址

D.形参p自身的地址值

[NextPage]第 1 页:选择题

第 5 页:答案

21.以下程序的输出结果是( )。

main()

{char str[]1-10]={"china","beijing"),*p=str;

printf("%s\n",p+10);

}

A.China

B.Beijing

C.ng

D.ing

22.合法的main()函数命令参数形式是( )。

A.main(int a,char*c[])

B.main(int arc,char**arv)

C.main(int argc,char*argv)

D.main(int argv,char*argc[])

23.有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是( )。

struct node

{char data;

struct node*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;

B.P.next=&b;

C.p->next=&b;

D.(*p).next=q;

24.有如下程序:

#include

main()

{ FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为( )。

A.goodabc

B.abcd

C.abc

D.abcgood

25.与“y=(x>0?1:x<0?-1:0)”;的功能相同的if 语句是( )。

A.if(x>0)y=1;

else if(x<0)y=1;

else y=0;

B.if(x)

if(x>0)y=1;

else if(x<0)y=-l;

else y=0;

C.y=-l

if(x)

if(x>O)y=1;

else if(x=-0)y=0;

else y=-l;

D.y=0;

if(x>=0)

if(x>=0)y=1;

else y=-l;

26.下列字符串是标识符的是( )。

A.aa

B.a-class

C.int

D.LINE 1

27.执行下列程序后,变量a,b,C的值分别是( )。

int x=5,y=4;

int a,b,c;

a=(--x==y++)?X:++y;

b=++x:

c=y:

A.a=5,b=5,c=5

B.a=4,b=5,c=5

C.a=5,b=6,c=5

D.a=1,b=5,c=6

28.下列变量声明合法的是( )。

A.short a=1.4e-1;

B.double b=1+3e2.8;

C.10ng do=oxfdaL;

D.float 2 aaa=1e-3;

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

#include

main()

{ int i;

for(i=1;i<=10,i++)

{ if((i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i;

}

A.49

B.36

C.25

D.64

30.运行下列程序,若从键盘输入字符“a”,则输出结果是( )。

char c;

c=getchar();

if(c>=’a’&&c<=’g’)c=c+4:

else if(c>=’9’&&c<=’2’)c=c-21:

else printf("input error! \n");

putchar(c);

A.f

B.t

C.e

D.d

[NextPage]第 1 页:选择题

第 5 页:答案

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

#include

int b=2:

int func(int*a)

{ b+=*a;return b;}

main()

{ int a=1,t=2;

t+=func(&a):

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

}

A.4

B.5

C.6

D.8

32.若有定义“float a=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。

A.两个语句都是将变量a的值赋予变量P

B.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P

c.*p=a是将变量a的值赋予变量b,而&a是使P指向变量a

D.两个语句都是使P指向变量a

33.对两个数组a和b进行下列初始化:

char m[]="1234567";

char n[]={’1’,’2’,’3’,’4’,’5’,’6’,’7’};

则下列叙述正确的是( )。

A.数组m与数组n完全相同

B.数组m与数组n长度相同

C.数组m比数组n长1

D.数组m与数组n中都存放字符串

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

#include

main()

{ char a[]={’a’,’b’,’C’,’d’,’e’,’f’,’\0’).

int i,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d",i,j);

}

A.7,7

B.7,6

C.6,6

D.6,7

35.软件生命周期是指( )。

A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

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

#include

#define ADD(x) x+x

main()

{ int m=1,n=2,k=3;

int S=ADD(m+n)*k;

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

}

A.sum=18

B.sum=10

C.sum=9

D.sum=25

37.有以下程序:

fun(int x,int y){return(x+y);)

main()

{ int a=1,b=2,c=2,sum;

sum=fun((a++,b++,a+b),c++);

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

}

执行后的结果是( )。

A.6

B.7

C.8

D.9

38.设x=011050,则x=x&01252的值是( )。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

39.有以下程序:

int fun(int x)

{ int p;

if(x==0||x==1)return(3);

p=x-fun(x-2);

return p;

}

main()

{ printf("%d\n",fun(7));}

执行后的结果是( )。

A.7

B.3

C.2

D.0

40.已知函数fread的调用形式为“fread(buffer,size,count,fp);”,其中buffer代表的是( )。

A.存放读入数据项的存储区

B.一个指向所读文件的文件指针

C.一个指针,是指向输入数据存放在内存中的起始地址

D.一个整型变量,代表要读入的数据项总数

[NextPage]第 1 页:选择题

第 5 页:答案

选择题答案与解析

1.D。【解析】后序遍历是增首先遍历左子树或左子结点,然后遍历右子树或右子结点,最后访问根结点。前序遍历是指首先访问根结点,依次访问左子树、右子树。本题根据前序和中序遍历的结果确定,然后再对其进行后序遍历,正确答案为选项D。

2.D。【解析】重复结构也称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同或类似的程序段,这种可以简化大量的程序行。

3.C。【解析】算法复杂度包括时间复杂度和空间复杂度,算法的时间复杂度是指执,亍算法所需要的计算机工作量,即算法执行过程中所需要的基本运算次数。

4.A。【解析】在C语言中软件概要设计的基本任务是:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审4种。

5.D。【解析】在c语言中.结构化分析方法中的数据字典的作用是描述系统中所用到的全部数据和文件的有关信息。

6.C。【解析】在关系模型数据库中,我们把构成基本结构的一维表称为关系。关系的列称为属性,具有N个属性的关系称为N元关系。

7.D。【解析】在表达式a*b+d-c中,double的类型最高,C语言中,由低类型自动向高类型转换,所以最后的结果一定是double型。

8.D。【解析】C语言规定标识符是由字母、数字和下划线组成的,且必须以字母或下划线开头,因此可知D选项错误。

9.A。【解析】执行x=x-=x-x语句可写成x=x- (x-x),可看出结果为10,故八选项正确。

10.C。【解析】本题考查对面向对象的理解,面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

11.C。【解析】当i=0时,执行switch语句,对应的执行case 0,输出0,因为没有break,接着执行case 2的语句,又输出一个0,接着执行default语句,再输出一个0,返回i+ +;i=1时,没有case语句,执行default语句,输出一个1,接着又返回i++;当i=2时执行case 2和default语句分别输出一个2,此时又返回i++,i变为3,for循环不成立,终止,最后输出000122。

12.D。【解析】因为x=’f’,所以写成’A’+(x-’a’+1) =’A ’+(’f ’-’a’+1)=’A’+6=’J ’,故选择D选项。

13.C。【解析]else与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c 的值仍然为2,故选择C选项。

14.A。【解析】在c语言中,函数返回的类型最终取决于函数定义时在函数首部所说明的函数类型,与调用函数时主调函数所传递的实参类型和函数定义时形参的类型无关,而return语句表达式的值将强制转换为函数定义时在函数首部所说明的函数类型返回。

15.D。【解析】当i一0时,两个if都不满足,所以都不执行,直接执行i++语句,此时i为1,S为l,返回for循环中;当i=1时,同样不执行两个if语句,执行i++后,i=2,s= 3,返回for循环中;i=2时也不执行if语句,执行i++后,i =3,s=6,接着又执行for循环,此时符合第一个if语句,执行到continue时不再执行i++了,continue是跳出本次循环,接着下次循环。永远这样执行下去,i的值永远为3,故选择D选项。

16.D。【解析】当b为10时,执行b-=a,此时b为9,接着b--表达式值为9,b的值为8,大于0,while不成立,退出循环,故选择D选项。

17.D。【解析】程序执行在for循环,当i=p时,i中放的是P的地址,类型不符合,因此输出随机数,故选择D 进项.

18.A。【解析】在程序中当i=0时,s[o]=1,f(s[0])为1,执行d+=s[0],d的值为1,i++也变为1。当i=1时,s[1]=3,f(s[1])为1,也为非0,继续执行后面的表达式,此时d的值为1+3=4,继续着i++变为2,接着执行for循环,可知for循环的目的是把S数组中的奇数相加,因此最后d的值为1+3+5为9,故选择A选项。

19.D。【解析】在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。

20.A。【解析】在程序中因为fun函数的返回值为char,而P是指向char的指针变量,因此类型不匹配,故选择A选项。

[NextPage]第 1 页:选择题

第 5 页:答案

21.B。【解析】本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

22.C。【解析】在C语言中,main()函数也可以有参数,例如,main(int ar90,char * argv),argc是指字符串的指针数组,而其他几项表达不正确。

23.B。【解析】本题考查结构体指针变量的赋值方法,要把结点b连接到结点;l的后面,必须把b的地址给a的next指针。故8正确。

24.C。【解析】当用“w”打开时,已存在一个以该文件名命名的文件,则在打开时将该文件删除,再重新建立一个新文件,因此当输入时原来的内容已被覆盖,所以只有后输入的内容,故选择C选项。

25.B。【解析】y=(x=)07 1:x<0 -1="" 0="" y="(x">07 1:(x<0?-1:0)),故选择8选项。

26.A。【解析】C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。int就是表达整型变量类型的标识符,它不能用做变量名和函数名。

27.B。【解析】本题考查自加(++)、自减(--)运算符的使用。“++x,--x”,在变量x前使用,先使X的值加1或者减1,再使用此时的表达式的值参与运算;“x++,x --”,先把使用X的值参与运算,在使用X之后,再使x的值加1或者减1。对于表达式--x=4,y++=4,两者相等,--x=y ++为真,所以a=x=4,执行完此语句后y的值是5。第2个表达式b=++x,x的值先加1,然后赋给b,即b=x+1=5;第一个表达式c=y=5。故B正确。

28.A。【解析】解答本题需了解3个知识点:①标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;②do是C语言的一个关键字,不能再用做

变量名和函数名;③c语言规定指数形式的实型数量e或E 后面的指数必须是整数。

29.C。【解析】本题考查for循环及if语句。当执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,break跳出循环,执行下列的printf语句。

30.C。【解析】getchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=’ a ’,判断if条件,发现’ a ’>=’a ’ &&’a ’<=’g’成立,则执行下列语句:C=C+4,C得到的字

符的ASCII码值,退出if语句,通过putchar函数输出字符。

31.B。【解析】本题考查函数调用时的参数传递。在执行函数func时,由于全局定义了一个变量b,所以在函数体中执行b=2+1=3,最终t=2+3=5。

32.C。【解析】“P”是指针变量,指向一个地址:“*P”为P指针所指向地址的内容 “&”是取变量地址。

33.C。【解析】本题考查字符串数组和字符数组赋值的区别。“char m[]="1234567";”定义一个字符型数组并初始化,C语言规定,在字符串的末尾自动加上串结束标记’\0 ’,因此数组m的长度是8;而数组n是按照字符方式对数组初始化,系统不加上串结束标记’\0’,因此数组n的长度是7。

34.B。【解析】本题要注意sizeof()和strlen()的区别,sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串长度,’\0 ’是一个转义符,它占存储空间,但不计入串的长度。

35.B。【解析】软件生命周期(Systems Development Life Cyele,sDLC)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。

36.B。【解析】本题考查带参数的宏的定义:“#define ADD(x)x+x”中X代表m+n,故s写成s=m+n+m+n *k=1+2+1+2*3=10。

37.C。【解析】表达式a++,b++,a+b是一个逗号表达式,在逗号表达式中,从左向右进行各个表达式的运算,最后一个表达式的值就是逗号表达式的结果,所以表达式a++,b++,a+b的值为5,所以fun()函数中的形参x 的值为5;表达式c++先把变量C的值传给形参y,然后c 的值加1,所以y的值为3,因此函数fun((a++,b++,a+ b),c++)的返回值为8。

38.A。【解析】本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252 化成二进制 为0000001010101010,两者相与得0000001000101000。

39.C。【解析】调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);

调用函数fun(5)时,由于x的值为5,执行语句“p=x- fun(x-2);”,相当于执行p=7-fun(3);

调用函数fun(3)时,由于x的值为3,执行语句“p=x- fun(x-2);”,相当于执行p=7-fun(1);

调用函数fun(1)时,由于X的值为1,执行语句“return (3);”,函数的返回值为3。

因此函数调用fun(7)等价于7-(5-fun(3)),即7 -(5 -(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。

40.C。【解析】本题考查数据块读取函数调用形式:fread(buffer,size,count,fp)。

fread函数参数说明:“buffer”是一个指针,是读入数据的存放地址,对fwrite来说,是要输出数据的地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节数据项;“fp”是指文件型指针。

上一页  1 2 3 4 5 6 7  下一页

相关推荐:

2014年计算机二级考试JAVA上机试题及答案汇总

考试吧推荐:2014年3月计算机二级考前冲刺备考专题

2014年全国计算机二级考试VF上机冲刺试卷汇总

2014年计算机二级C语言考试上机冲刺试题及答案集

责任编辑 : Alice

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值