二年级C语言套选择题的副本终审稿.docx

上传人:b****5 文档编号:8351387 上传时间:2023-01-30 格式:DOCX 页数:22 大小:111.60KB
下载 相关 举报
二年级C语言套选择题的副本终审稿.docx_第1页
第1页 / 共22页
二年级C语言套选择题的副本终审稿.docx_第2页
第2页 / 共22页
二年级C语言套选择题的副本终审稿.docx_第3页
第3页 / 共22页
二年级C语言套选择题的副本终审稿.docx_第4页
第4页 / 共22页
二年级C语言套选择题的副本终审稿.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

二年级C语言套选择题的副本终审稿.docx

《二年级C语言套选择题的副本终审稿.docx》由会员分享,可在线阅读,更多相关《二年级C语言套选择题的副本终审稿.docx(22页珍藏版)》请在冰豆网上搜索。

二年级C语言套选择题的副本终审稿.docx

二年级C语言套选择题的副本终审稿

公司内部档案编码:

[OPPTR-OPPT28-OPPTL98-OPPNN08]

 

二年级C语言套选择题的副本

1.设栈的顺序存储空间为S(1:

m),初始状态为top=0。

现经过一系列正常的入栈与退栈操作后,top=m+1,则栈中的元素个数为()。

A)不可能

B)m+1

C)0

D)m

A【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。

入栈运算即在栈顶位置插入一个新元素,退栈运算即取出栈顶元素赋予指定变量。

栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素,栈满时,top=m。

初始状态为top=m+1是不可能的。

故本题答案为A选项。

2.下列排序法中,最坏情况下时间复杂度最小的是()。

A)堆排序

B)快速排序

C)希尔排序

D)冒泡排序

A【解析】堆排序最坏情况时间下的时间复杂度为O(nlog2n);希尔排序最坏情况时间下的时间复杂度为O;快速排序、、冒泡排序最坏情况时间下的时间复杂度为O(n2)。

故本题答案为A选项。

3.某二叉树的前序遍历序列与中序遍历序列相同,均为ABCDEF,则按层次输出(同一层从左到右)的序列为()。

A)ABCDEF

B)BCDEFA

C)FEDCBA

D)DEFABC

A【解析】二叉树遍历可以分为3种:

前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。

二叉树的中序遍历序列和前序遍历序列均为ABCDEF,可知该树只有右子树结点,没有左子树结点,A为根结点。

中序遍历序列与前序遍历序列相同说明该树只有右子树没有左子树,因此该树有6层,从顶向下从左向右依次为ABCDEF。

故本题答案为A选项。

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

A)对数据进行压缩存储会降低算法的空间复杂度

B)算法的优化主要通过程序的编制技巧来实现

C)算法的复杂度与问题的规模无关

D)数值型算法只需考虑计算结果的可靠性

A【解析】算法的空间复杂度指执行这个算法所需要的内存空间。

在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

由于在编程时要受到计算机系统运行环境的限制,因此,程序的编制通常不可能优于算法的设计。

算法执行时所需要的计算机资源越多算法复杂度越高,因此算法的复杂度和问题规模成正比。

算法设计时要考虑算法的复杂度,问题规模越大越是如此。

故本题答案为A选项。

5.软件需求规格说明的内容应包括()。

A)软件的主要功能

B)算法详细设计

C)E-R模型

D)软件总体结构

A【解析】软件需求规格说明应重点描述软件的目标,软件的功能需求、性能需求、外部接口、属性及约束条件等。

功能需求是软件需求规格说明,给出软件要执行什么功能的详尽描述。

性能需求是指定量的描述软件系统应满足的具体性能需求,即各种软件功能的速度、响应时间、恢复时间。

外部接口指软件如何与人、系统的硬件及其他硬件和其他软件进行交互。

属性是指与软件有关的质量属性,如正确性、可用性、可靠性、安全性、可维护性等。

约束条件包括影响软件实现的各种设计约束,如使用的标准、编程语言、数据库完整性方针、资源限制、运行环境等方面的要求。

故本题答案为A选项。

6.某系统结构图如下图所示(图中n≥5)

该系统结构图的宽度是()。

A)n

B)3

C)2

D)1

A【解析】系统结构图的宽度指整体控制跨度(横向最大模块数)的表示。

本题中,模块数最多的是第2层,即“功能1”到“功能n”的模块个数就是宽度,有n个。

故本题答案为A选项。

7.软件是()。

A)程序、数据和文档的集合

B)计算机系统

C)程序

D)程序和数据

A【解析】计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。

故本题答案为A选项。

8.关系数据库规范化的目的是为了解决关系数据库中的()。

A)插入、删除异常及数据冗余问题

B)查询速度低的问题

C)数据操作复杂的问题

D)数据安全性和完整性保障的问题

A【解析】关系数据库进行规范化的目地:

使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。

关系模式进行规范化的原则:

遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。

规范的实质就是概念的单一化。

关系模式进行规范化的方法:

将关系模式投影分解成两个或两个以上的关系模式。

故本题答案为A选项。

9.按照传统的数据模型分类,数据库系统可分为()。

A)层次、网状和关系

B)大型、中型和小型

C)西文、中文和兼容

D)数据、图形和多媒体

A【解析】数据模型(逻辑数据模型)是面向数据库系统的模型,着重于在数据库系统一级的实现。

较为成熟并先后被人们大量使用的数据模型有层次模型、网状模型、关系模型和面向对象模型。

故本题答案为A选项。

10.现有表示患者和医疗的关系如下:

P(P#,Pn,Pg,By),其中P#为患者编号,Pn为患者姓名,Pg为性别,By为出生日期,Tr(P#,D#,Date,Rt),其中D#为医生编号,Date为就诊日期,Rt为诊断结果。

检索在1号医生处就诊的男性病人姓名的表达式是()。

A)

B)

C)

D)

A【解析】π表示投影运算,针对属性;σ表示选择运算,针对元组;∞表示自然连接。

首先在Tr表中选择D#为1的记录σD#=1(Tr),并找出这些记录中患者的编号πP#(σD#=1(Tr));,再在P表中找到性别为男性的记录σPg=’男’(P);将两次检索结果进行自然连接生成中间表πP#(σD#=1(Tr))∞σPg=’男’(P),最后在中间表中检索患者的姓名πPn(πP#(σD#=1(Tr))∞σPg=’男’(P))。

故本题答案为A选项。

(11)下面不合法的常量数据是()。

A).023E-5

B)0x3f7b8a90

C)'\0x6d'

D)'\0123321'

答案:

D

【解析】选项A是实型常量的指数表示形式,表示*10-5,正确;选项B是十六进制表示的整型常量,正确;选项C是十六进制表示的转义字符常量,正确;选项D是字符串常量,应该使用双引号括起来,错误,本题答案为D。

(12)以下叙述中错误的是()。

A)C语言逻辑运算的结果是0和任意非0值

B)C语言中任意合法的表达式都可以作为逻辑运算的对象

C)C语言关系运算的值只有0和1两种可能

D)C语言中用0表示逻辑“假”,非零表示逻辑“真”

答案:

A

【解析】由关系运算符构成的表达式,称为关系表达式,关系运算的值为“逻辑值”,只有整数0或整数1,选项C正确;由逻辑运算符和运算对象组成的表达式称为逻辑表达式,逻辑运算的对象可以是C语言中任意合法的表达式,逻辑表达式的运算结果或者为1(“真”),或者为0(“假”),选项A错误,选项B正确;逻辑值只有两个,分别用“真”和“假”来表示,C语言中用非0表示“真”,用0表示“假”,选项D正确,本题答案为A。

(13)以下说法正确的是()。

A)C语言中的常量是指在程序运行过程中经常被改变数据类型的量

B)C语言中的常量是指在程序运行过程中经常被改变值的量

C)C语言中的常量是指在程序运行过程中经常被用到的变量

D)C语言中的常量是指在程序运行过程中其值不能被改变的量

答案:

D

【解析】C语言中的常量是指在程序运行过程中其值不能被改变的量,所以本题答案是D。

(14)C语言常量的类型从字面形式上可区分,以下判断中正确的是()。

A)2E3---整型

B)---实型

C)'\025'---字符串

D)"a"---字符型

答案:

B

【解析】2E3是实型常量的指数形式,选项A错误;是实型常量的指数形式,选项B正确;’\025’是八进制表示的转义字符,选项C错误;“a”是双引号括起来的字符串常量,选项D错误;本题答案为B。

(15)以下各选项中的代码段执行后,变量y的值不为1的是

A)intx=5,y=0;if(5)y=1;

B)intx=5,y=0;if(x)y=1;

C)intx=10,y=0;if(x=y)y=1;

D)intx=5,y=10;if(x=y)y=1;

答案:

C

【解析】选项A的if条件表达式5的值为真,执行y=1,y的值为1;选项B的if条件表达式x的值为5,也是真,执行y=1,y的值为1;选项C的if条件表达式x=y是赋值语句,将y的值0赋给x,表达式的值为0,if语句不执行,y值为0;选项D的if条件表达式x=y是赋值语句,将y的值10赋给x,表达式的值为10,执行y=1,y的值为1,本题答案为C。

(16)若要利用if-else语句判断year是否闰年,是闰年则返回1,不是闰年则返回0。

以下选项中不能完成正确判断的程序段是()。

A)if(year%400==0)return1;else?

if(year%100!

=0)

if(year%4==0)return1;

elsereturn0;

B)if(year%400!

=0)

if(year%100==0)return0;

elseif(year%4==0)return1;

elsereturn0;

elsereturn1;

C)if(year%100==0)

if(year%400==0)return1;

elsereturn0;

elseif(year%4==0)return1;

elsereturn0;

D)if(year%4!

=0)return0;elseif(year%400==0)return1;

elseif(year%100==0)return0;

elsereturn1;

答案:

A

【解析】判断year是闰年,需要满足两个条件之一:

(1)year可以被4整除且year不能被100整除,

(2)year可以被400整除;选项A没有考虑year能被100整除不是闰年的情况,错误;B、C、D都是正确的;本题答案为A。

17)有如下程序?

#include?

<>?

#include?

<>?

main()

{

chara[6]="0123",*b="++";

printf("%d,%d",strlen(a),sizeof(b));

}

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

A)4,2

B)4,4

C)6,2

D)5,4

答案:

B

【解析】strlen()函数计算参数指向的字符串长度,题意中字符数组a有6个字节的存储空间,但是只存储了4个字符,所以strlen()结果为4,选项C、D错误;sizeof()运算符是计算类型所占用的长度,题意中b是一个指针变量,指针在内存中占4个字节,所以sizeof结果为4,选项A错误;本题答案为B。

(18)有以下程序?

#include<>?

voidmain()

{

doublex=;

printf("%f\n",(int)(x*1000+/(double)1000);

}

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

A)

B)

C)

D)

答案:

A

【解析】根据算术表达式和运算符的优先级与结合性,对于题意表达式:

int(x*1000+/(double)1000,首先计算x*1000,由于x是double类型,1000是整型,所以x*1000的结果默认是double类型:

;再执行int的强制转换,结果为3142;分母(double)1000强制转换为double类型,此时3142/(double)1000中,3142需要转换成double类型,然后除以1000,结果为,保留小数点后6位,本题答案为A。

(19)有以下程序

#include<>?

voidmain()

{char*s="\ta\018bc";

for(;*s!

='\0';s++)

printf("*");

printf("\n");

}

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

A)******

B)*********

C)*****

D)*******

答案:

A

【解析】main()函数定义一个字符指针s,指向字符串”\ta\018bc”,for循环遍历s指向的字符串中的字符,然后输出“*”,所以题意可以理解为:

s指向的字符串中有多少个字符,就输出多少个“*”;s指向的字符串中字符分别是:

’\t’(转义字符)、’a’、’\01’(转义字符)、’8’、’b’、’c’,总共6个,其中由于8不属于八进制中的数字,所以’\018’不是一个转义字符,而’\01’是转义字符,本题答案为A。

本题答案为B。

(20)以下有关全局变量的叙述中错误的是()。

A)全局变量没被引用时,不占用内存空间

B)所有在函数体外定义的变量都是全局变量

C)全局变量可以和局部变量同名称

D)全局变量的生命周期一直持续到程序结束

答案:

A

【解析】全局变量在程序运行时就分配了存储空间,直到程序结束,它的生命周期是整个程序的运行期,选项A错误、D正确;在函数体外定义的变量都属于全局变量,选项B正确;全局变量可以和局部变量同名,在局部作用域局部变量会屏蔽同名的全局变量,除非显示的引用全局变量,选项C正确;本题答案为A。

(21)有如下程序

#include?

<>

#include?

<>

main()

{

printf("%d\n",strlen("0\n011\0"));

}

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

A)5

B)6

C)8

D)9

答案:

A

【解析】strlen()函数是求字符串长度的库函数,它在遍历字符串过程中遇到字符串结束符‘\0’时,计算结束,计算结果不包括‘\0’,所以题意中字符串“0\n011\0”长度为5,各个字符分别是:

‘0’、‘\n’、‘0’、‘1’、‘1’,本题答案为A。

(22)若有定义:

chars1[100]="name",s2[50]="address",s3[80]="person";,要将它们连接成新串:

"personnameaddress",正确的函数调用语句是()。

A)strcat(strcat(s1,s2),s3);

B)strcat(s3,strcat(s1,s2));

C)strcat(s3,strcat(s2,s1));

D)strcat(strcat(s2,s1),s3);

答案:

B

【解析】strcat()函数是字符串连接函数,调用形式为:

strcat(s1,s2);表示将s2指向的字符串的内容复制到s1指向的存储空间中,返回s1的地址;由题意可知新串首地址为s3,所以s3应该是第一参数,选项A、D错误;同理,新串中除了s3字符串,剩下的字符串为:

”nameaddress”,即首地址为s1,所以调用strcat()函数,s1是第一参数,所以正确的函数调用语句为:

strcat(s3,strcat(s1,s2));本题答案为B。

(23)有以下程序

#include<>?

#defineSWAT(t,a,b)t=a;a=b;b=t;

main()

{intx=6,y=4,z=3,s=0;

if(x

if(x

if(y

printf("%d,%d,%d\n",x,y,z);

}

执行后的输出结果是

A)6,4,3

B)3,4,6

C)0,3,4

D)3,0,0

答案:

D

【解析】程序定义一个宏,#defineSWAT(t,a,b)t=a;a=b;b=t;所以程序中,三个if语句经过宏替换后如下:

if(x

if(x

if(y

x初值6,y初值4,z初值为3,s初值为0,所以:

第1个if语句,x

第2个if语句,x

第3个if语句,y

(24)若有定义:

charch;inta;doubled;,当输入为12345时,以下选项中能给各个变量正确输入数据的是()。

A)scanf("%d%c%lf",&a,&ch,&d);

B)scanf("%5d%2c%",&a,&ch,&d);

C)scanf("%d%c%lf",a,ch,d);

D)scanf("5d%2c%%",&a,&ch,&d);

答案:

A

【解析】scanf()函数是标准输入函数,其中双引号之间的内容是格式控制串,后面是输入参数列表。

其中输入参数列表中各项都必须是变量地址,所以选项C错误;在scanf()函数的格式字符前,可以加入一个正整数指定输入数据所占的宽度,但不可以对实数指定小数位的宽度,所以选项B、D错误;选项A是正确的,按照A的输入格式,12345赋值给a,空格赋值给ch,赋值给d;本题答案为A

(25)有如下程序

#include?

<>

main()

{

chara,b;

inti;

a='3';

b='A';

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

{

if(i%2)putchar(a+i);

elseputchar(b+i);

}

}

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

A)AB56EF

B)A4C6E8

C)B4D6F8

D)A5C7E9

答案:

B

【解析】程序首先赋值a为字符’3’,赋值b为字符’A’,循环变量i的初值为0,每次循环后自增1,最大值为5,if条件判断i的值,当i的值为偶数时,将b与i的和当做字符输出;当i的值为奇数时,将a与i的和当做字符输出;所以i为0时,输出b+0即A;i为1时,输出a+1即‘4’;i为2时,输出b+2即C;i为3时输出a+3即‘6’……,综上,程序运行结果为:

A4C6E8,本题答案为B

(26)有以下程序?

#include<>?

voidfun(doublex,double*y,double*z)

{*y=*;*z=*z+x;}

main()

{doublea=,

b=,*pa,*pb;

        pa=&a;  pb=&b; 

fun(b-a,pa,pb);

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

}

程序运行后的输出结果是

A)

B)

C)

D)

答案:

C

【解析】main()函数定义两个double类型的变量a、b,分别赋初值为:

、,另外定义两个double类型的指针变量pa、pb,其中pa指向a,pb指向b;然后将b-a、pa、pb传给函数fun,此时x的值为,y指向a,z指向b;所以:

*y=*,是将变量a的值减去赋给a,a的值为;

*z=*z+x,是将变量b的值加上赋给b,b的值为;

fun()函数执行完毕后,输出a的值为;本题答案为C。

(27)有下列程序?

  #include?

<>?

  voidfun(inta[],intn,intflag)

  {inti=0,j,t;

  for(i=0;i

  for(j=i+1;j

  if(flag(a[i]

(a[i]>a[j]))

  {t=a[i];a[i]=a[j];a[j]=t;}

  }

  main()

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

  fun(c,10,1);

  fun(c,5,0);

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

  printf("%d,",c[i]);

  }

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

A)5,4,3,2,1,6,7,8,9,10,

B)6,7,8,9,10,5,4,3,2,1,

C)6,7,8,9,10,1,2,3,4,5,

D)10,9,8,7,6,1,2,3,4,5,

答案:

B

【解析】题意中,fun()函数接收数组a,数组元素个数n以及整型变量flag,然后通过for循环遍历数组a的n个元素,若flag为1,则将数组元素降序排列,若flag为0,则将数组元素升序排列。

main()函数定义整型数组c,它包含10个元素,首先将数组c、元素个数10和1传给fun()函数,将c中10个元素逆序排列,结果为:

10,9,8,7,6,5,4,3,2,1;然后再次调用fun()函数,将数组c,元素个数5和0传给fun()函数,将c中前5个元素升序排列,结果为:

6,7,8,9,10,5,4,3,2,1,本题答案为B。

(28)有如下程序

#include?

<>

void?

get_put()

{

charch;

ch=getchar();

if(ch!

='\n')get_put();

putchar(ch);

}

main()

{

get_put();

}

程序运行时,输入AB12<回车>,则输出结果是()。

A)2100

B)21BA

C)DCBA

D)21AB

答案:

B

【解析】main()函数调用get_put()函数,get_put()是递归函数,每次使用getchar()读入一个字符存放到ch中,若ch不是字符’\n’,递归调用自身,然后调用putchar()函数输出该字符。

当输入AB12\n(<回车>)时,直到读入的字符是’\n’,输出回车符,然后回到上一层递归,逆序输出各个字符,输出结果为:

<回车>21BA,所以本题答案为B。

(29)有以下程序

#include<>

voidswap(int*a,int*b)

{intt,*tp;

t=*a;*a=*b;*b=t;

tp=a;a=b;b=tp;

printf("%d,%d,",*a,*b);

}

main()

{inti=3,j=7,*p=&i,*q=&j;

swap(p,q);

printf("%d,%d,%d,%d",i,j,*p,*q);

}

程序执行后的输出结果是

A)3,7,3,7,3,7

B)7,3,7,3,7,3

C)3,7,3,7,7,3

D)3,7,7,3,7,3

答案:

D

【解析】main()函数中,首先定义两个整型变量i和j,初值为3和7,并将i的地址赋给p,j的地址赋给q,传给swap()函数,swap()函数接收两个整型指针变量a,b,然后使用整型变量t交换a、b所指向的值并输出,通过指针变量,这次交换改变了实参i、j的值,使得i=7,j=3;指针变量tp交换a和b的值,由于a、b的值是p,q值的拷贝,所以这次交换只改变了形参a,b的值,对实参p,q的值没有改变,所以此时a指向j,b指向i,函数最后输出*a和*b,所以输出3,7;由于swap()函数改变了p和q指向的值,但未改变p,q的值,所以main()函数输出i的值为7,j的值为3,*p的值为i,*q的值为j,所以程序输出:

3,7,7,3,7,3,本题答案为D。

(30)有如下程序

#include?

<>

#include?

<>

main()

{

chara[]="THIS\0",*b="OK\0\0";

printf("%d,%d,%d,%d",strlen(a),sizeof(a),strlen(b),sizeof(b)

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

当前位置:首页 > 初中教育

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

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