全国计算机二级C语言分类模拟题536.docx

上传人:b****5 文档编号:6137491 上传时间:2023-01-04 格式:DOCX 页数:15 大小:57KB
下载 相关 举报
全国计算机二级C语言分类模拟题536.docx_第1页
第1页 / 共15页
全国计算机二级C语言分类模拟题536.docx_第2页
第2页 / 共15页
全国计算机二级C语言分类模拟题536.docx_第3页
第3页 / 共15页
全国计算机二级C语言分类模拟题536.docx_第4页
第4页 / 共15页
全国计算机二级C语言分类模拟题536.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

全国计算机二级C语言分类模拟题536.docx

《全国计算机二级C语言分类模拟题536.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言分类模拟题536.docx(15页珍藏版)》请在冰豆网上搜索。

全国计算机二级C语言分类模拟题536.docx

全国计算机二级C语言分类模拟题536

二级C语言分类模拟题536

选择题

1.以下语句中存在语法错误的是______。

A.charss[6][20];ss[1]="right?

";

B.charss()[20]={"right?

"};

C.chat*ss[6];ss[1]="right?

";

D.char*ss()={"right?

"};

答案:

A

[解答]数组定义后,不可以对数组整体赋值,s是二维数组,因ss[1]是一维字符数组,即字符串,字符串赋值可以使用strepy(ss[1],"right");这样的形式,而选项A中对二维数组中的第一维(相当于一个一维数组)赋值,这是不可以的;选项B和D是定义时对数组初始化,这是可以的;选项C中,将字符串在内存中的首地址赋给指针数组的一个元素,这也是可以的。

所以选择A选项。

2.以下不是C语言字符型或字符串常量的是______。

A."It's"

B."0"

C.'a=0'

D.'\010'

答案:

C

[解答]C项是一个赋值表达式。

AB两项是字符串常量,D项是字符常量。

3.若有以下程序:

#include<stdio.h>

main()

{FILE*fp;

inti,a[6]={1,2,3,4,5,6},k;

fp=fopen("data.dat","w+");

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

{fseek(fp,0L,0);fprintf(fp,"%d\n",a[i]);}

rewind(fp);

fscanf(fp,"%d",&k);

fclose(fp);

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

}

则程序的输出结果是______。

A.123456

B.1

C.6

D.21

答案:

C

[解答]本题考查文件操作函数fseek()。

fseek()函数用于二进制方式打开的文件,移动文件的读/写指针位置。

题目中将文件内部的位置指针重新指向一个流(数据流/文件)的开头,所以最后只保留了6,答案为C选项。

4.对下列二叉树进行中序遍历的结果是______。

A.ACBDFEG

B.ACBDFGE

C.ABDCGEF

D.FCADBEG

答案:

A

5.下列与队列结构有关联的是______。

A.函数的递归调用

B.数组元素的引用

C.多重循环的执行

D.先到先服务的作业调度

答案:

D

[解答]队列的修改是依先进先出的原则进行的,D正确。

6.有以下程序:

structs

{intx,y;)data[2]={10,100,20,200);

main()

{structs*p=data;

printf("%d\n",++(p->x));

}

程序运行后的输出结果是()。

A.10

B.11

C.20

D.21

答案:

B

[解答]本题中定义了一个结构体数组data[2]并初始化,主函数中定义了一个结构体类型指针变量并让它指向data的首地址,由于p指向第一个元素的地址,所以p->x相当于data[0].x即为10,所以++(p->x)后的值为11。

故4个选项中选项B符合题意。

7.有以下程序(strcat函数用以连接两个字符串)

#include<stdio.h>

#include<string.h>

main()

{

chara[20]=“ABCD\0EFG\0",b[]="IJK";

strcat(a,b);

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

}

程序运行后的输出结果是______。

A.ABCDIJK

B.ABCDE\OFG\OIJK

C.IJK

D.EFGIJK

答案:

A

[解答]strcat函数从\0开始往后链接,所以结果为A。

8.下列叙述中正确的是______。

A.栈是“先进先出”的线性表

B.队列是“先进后出”的线性表

C.循环队列是非线性结构的线性表

D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

答案:

D

[解答]栈是先进后出的线性表,因此A错误;队列是先进先出的线性表,因此B错误;循环队列是线性结构的线性表,因此C错误,故本题答案为D。

9.若有下列说明语句

int(*p)();

则标识符p代表的是

A.一个用于指向函数的指针变量,函数返回值的类型为int型

B.一个带回值类型为整型的函数名

C.一个用于指向整型数据的指针变量

D.一个带回值类型为指针类型的函数名

答案:

A

10.若有函数:

voidfun(doublea[],int*n)

{...}

以下叙述中正确的是______。

A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

B.形参a和n都是指针变量

C.形参a是一个数组名,n是指针变量

D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组

答案:

B

[解答]本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。

11.若有定义语句:

intyear=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是______。

A.(*p)++;

B.*p++;

C.++(*p);

D.*p+=1;

答案:

B

[解答]由于自加运算符++的运算级别高于间接运算*的运算级别,所以B选项的表达式*p++不能使变量year中的值增至2010,因此选择B选项。

12.若有代数式

(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。

A.sqrt(fabs(pow(n,x)+exp(x)))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(abs(n^x+e^x))

D.sqrt(fabs(pow(x,n)+exp(x)))

答案:

A

[解答]B选项中,函数pow(x,e)错误,应该直接使用exp(x)函数。

C选项中,函数abs(n^x+e^x)错误,应该使用fabs()返回浮点数的绝对值。

D选项中,pow(x,n)参数腰序错误。

13.下列叙述中错误的是______。

A.一种数据的逻辑结构可以有多种存储结构

B.数据的存储结构与数据的处理效率无关

C.数据的存储结构与数据的处理效率密切相关

D.数据的存储结构在计算机中所占的空间不一定是连续的

答案:

B

[解答]数据的存储结构分顺序存储结构和链式存储结构,一个数据的逻辑结构可以有多种存储结构。

顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素通过指针就联系在一起了,所以所占的存储空间不一定是连续的。

14.下面选项中关于“文件指针”概念的叙述正确的是______。

A.文件指针就是文件位置指针,表示当前读写数据的位置

B.文件指针是程序中用FILE定义的指针变量

C.文件指针指向文件在计算机中的存储位置

D.把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符

答案:

B

[解答]文件指针的定义形式为FILE*文件指针名,所以B正确。

15.以下关于return语句的叙述中正确的是______。

A.一个自定义函数中必须有一条return语句

B.一个自定义函数中可以根据不同情况设置多条return语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

答案:

B

[解答]return语句又称为返回语句。

该语句的格式如下:

“return;”和“return(<表达式>);”。

其中,return是关键字。

该语句有两种格式:

不带返回值格式和带返回值格式。

该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。

在带有返回值的情况下,将return语句所带的表达式的值返回给调用函数,作为被调用函数的值。

在被调用函数中,可以用return语句,也可以不用return语句。

如果要求被调用函数有返回值,则一定要用return语句,采用return(<表达式>);格式。

如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用return语句。

16.有以下程序:

#include<stdio.h>

intf(intx,inty)

{return((y-x)*x);}

main()

{inta=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

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

}

程序运行后的输出结果是______。

A.7

B.10

C.8

D.9

答案:

D

[解答]调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c)),即调用f(3,6)函数返回9。

17.C语言规定,在一个源程序中,main()函数的位置______。

A.必须在最开始

B.必须在系统调用的库函数的后面

C.可以任意

D.必须在最后

答案:

C

[解答]程序中可以把main()函数放在任何位置,但程序是从main()函数开始执行的。

18.已知大写字母A的ASCⅡ码是65,小写字母a的ASCⅡ码是97,以下不能将变量C中的大写字母转换为对应小写字母的语句是______。

A.c=(c-'A')%26+'a'

B.c=c+32

C.c=c-'A'+'a'

D.c=('A'+c)%26-'a'

答案:

D

[解答]由97-65=32可知大写字母对应的小写字母之间相差32,所以将大写字母加上32就得到小写字母,所以选项B和C是正确的。

选项A中(c—‘A’)%26可以求出变量c中的字母与字母A相差几位.那么小写字母a的ASCⅡ码向后移动相差的位数就是对应的小写字母,所以选项A也是正确的。

19.若有定义语句:

“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为______。

A.1.9

B.1

C.2

D.2.4

答案:

A

[解答]此题考查除法运算,根据先乘除后加减,有括号先算括号的原则,先计算x/y,即12/8=1,所以z=0.9+1=1.9。

20.下列说法中,正确的是______。

A.指针是一个变量

B.指针中存放的可以是任何类型的值

C.指针变量是变量地址

D.指针变量占用存储空间

答案:

D

[解答]指针是地址,存放指针的变量是指针变量,不同类型的指针变量存放不同类型数据的地址,指针变量作为可存储指针的变量,也要占用一定的存储空间。

21.在数据库系统中,给出数据模型在计算机上物理结构表示的是______。

A.概念数据模型

B.逻辑数据模型

C.物理数据模型

D.关系数据模型

答案:

C

[解答]数据模型按照不同的应用层次分为以下3种类型:

概念数据模型,着重于对客观世界复杂事物的描述及对它们内在联系的刻画;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。

C选项正确。

22.以下叙述错误的是______。

A.C语言区分大小写

B.C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改

C.整数和实数都能用C语言准确无误地表示出来

D.在C程序中,正整数可以用十进制、八进制和十六进制的形式来表示

答案:

C

23.有如下程序:

#include<stdio.h>

main()

{

charname[10]={'S','T','R','I','N','G,};

name[3]='E';name[5]=0;

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

}

程序运行后的输出结果是______。

A.STRENG

B.STRIEG

C.STREN

D.STRENO

答案:

C

[解答]printf函数按照格式符说明输出对应的数据。

%s控制符用于输出字符串,输出时从给定地址开始依次输出字符,直到遇到‘\0’结束。

给字符变量赋值0,相当于赋值‘\0’。

初始化时name="STRING",改动数组第4个和第6个元素之后字符串变为"STREN"。

调用printf输出字符串为STREN,故C选项正确。

24.现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是23,56,78,则下列选项中正确地输入格式的是

[注]"]"表示空格,<Enter>表示回车

A.23,56,78<Enter>

B.x=23,y=56,z=78<Enter>

C.x=23C,sumy=56,z=78<Enter>

D.x=23],sum]y=56,line]z=78<Enter>

答案:

D

[解答]若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。

格式化输入函数必须严格按照双引号里面的格式进行输入。

在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。

25.有两个关系R、S如下:

由关系R通过运算得到关系S,则所使用的运算为______。

A.选择

B.投影

C.插入

D.连接

答案:

B

[解答]投影运算是指对于关系内的域指定可引入新的运算。

本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。

所以选择B选项。

26.以下叙述中正确的是______。

A.用C语言编写的程序只能放在一个程序文件中

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序中的注释只能出现在程序的开始位置和语句的后面

D.C程序书写格式自由,一个语句可以写在多行上

答案:

D

[解答]C语言编写的程序可以放置于多个程序文件中,所以A选项错误。

C程序中的一行可以有多条语句,所以B选项错误。

C语言中的注释语句可以与原语句放在一行,也可以不放在一行,所以C选项错误。

27.在关系型的数据库管理系统中,3种基本关系运算是______。

A.选择、投影和连接

B.选择、删除和复制

C.创建、修改和合并

D.统计、连接和分类

答案:

A

[解答]在关系型数据库管理系统中,基本的关系运算有选择、投影和联接3种操作。

选择,指的是从二维关系表的全部记录中,把那些符合指定条件的记录挑选出来。

对于投影,是指从所有字段中选取一部分字段及其值进行操作,它是一种纵向操作。

投影操作可以改变关系的结构。

而联接运算则通常是对两个关系进行投影操作来连接生成一个新的关系。

当然,这个新的关系可以反映出原来两个关系之间的联系。

28.以下选项中非法的字符常量是______。

A.'\\'

B.'\0201'

C.'\xAA'

D.'0'

答案:

B

29.以下程序运行后的输出结果是

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn

(2);

}

main

{printf("%d\n",fib(3));}

A.2

B.4

C.6

D.8

答案:

B

[解答]本题考查函数的递归调用。

fib(3)=fib

(2)+fib

(1),而fib

(2)的返回值为2,fib

(1)的返回值也为2,故输出的fib(3)的值为4。

30.以下______不属于对象的基本特征。

A.继承性

B.封装性

C.分类性

D.多态性

答案:

A

[解答]对象具有如下特征:

●标识惟一性,指对象是可区分的;

●分类性,指可以将具有相同属性和操作的对象抽象成类;

●多态性,指同一个操作可以是不同对象的行为;

●封装性,从外面看只能看到对象的外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法;

●模块独立性好,对象是面向对象的软件的基本模块,对象内部各种元素彼此结合得很紧密,内聚性强。

31.下列运算符中优先级最低的算符是______。

A.||

B.!

=

C.<=

D.+

答案:

A

[解答]C语言中规定运算符的优先顺序:

一元算术运算符→二元算术运算符→关系运算符→逻辑运算符→赋值运算符,A项中为逻辑运算符,B项和C项都为关系运算符,D项为一元运算符。

因此最低的是A项。

32.下列程序的输出结果是。

#include<stdio.h>

main()

{FILE*fp;inti,k=0,n=0;

fp=fopen("d1.dat","w");

for(i=1;i<4;i++)fprintf(fp,"%d",i);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp,"%d%d",&k,&n);

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

fclose(fp);

}

A.12

B.1230

C.123

D.00

答案:

B

[解答]fscanf从磁盘上读取ASCII字符,给k和n赋值。

在进行fp=fopen("dl.dat","w")操作时,向文件写字符,由fprintf()将1,2,3写入磁盘,再由磁盘符123传给k,且将0传给n。

在文件写操作时,两个数之间应用空格隔开,而在本题中,没有用空格隔开,所以123视为一个数。

33.下面的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是______。

#include<stdio.h>

main()

{chars1[]="chinese",s2[]="japnese";

inti;

for(i=0;s1[i]!

='\0'&&s2[i]!

='\0';i++)

if(s1[i]==s2[i]&&i<7)

______;

}

A.putchar(s2[i]);putcha(i)

B.puts(sl[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

答案:

C

34.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。

A.n-1

B.n

C.n+1

D.2n

答案:

C

[解答]在n个结点的单向链表(无表头结点)中,每个结点都有—个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。

35.有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:

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

case2:

case4:

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

case0:

exit(0);

}

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

}

以下关于程序段执行情况的叙述,正确的是______。

A.当产生的随机数n为0时结束程序运行

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.for循环语句固定执行8次

答案:

A

[解答]n为0时执行exit(0);函数结束,所以产生的随机数为0时,函数结束。

答案选择A。

36.以下程序的输出结果是______。

main()

{inta,i=4;

a=i++;

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

A.a=4,i=4

B.a=5,i=4

C.a=4,i=5

D.a=5,i=5

答案:

C

37.若有代数式

(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。

A.sqrt(fabs(pow(n,x)+pow(x,e)))

B.sqrt(fabs(pow(n,x)+exp(x)))

C.sqrt(abs(n^x+e^x))

D.sqrt(fabs(pow(x,n)+exp(x)))

答案:

A

[解答]B选项中函数pow(x,e)错误,应该直接使用exp(x)函数。

C选项中函数abs(n^x+e^x)错误,应该使用fabs()返回浮点数的绝对值。

D选项中pow(x,n)参数顺序错误。

本题正确答案为A。

38.以下叙述中正确的是______。

A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.C语言中的文件是流式文件,凶此只能顺序存取数据

答案:

A

[解答]B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。

C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。

D选项中,C语言中的文件可以进行随机读写。

故本题答案为A。

39.在执行完下列的C语句段之后,则B的值是。

chara='A';

intb;

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

A.0

B.1

C.TRUE

D.FALSE

答案:

B

[解答]本题考查C语言3个知识点:

①将一个字符赋给一个字符变量时,并不是将该字符本身存储到内存中,而是将该字符对应的ASCII码存储到内存单元中;②大写字母的ASCII码值小于其对应小写字母的ASCII码值;③只要逻辑与运算符&&的两个运算对象都为非零,返回值就是1。

40.软件调试的目的是()。

A.发现错误

B.改正错误

C.改善软件的性能

D

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1