首页 > 全部 > 二级C语言 > 二级C语言选择题专项强化真题试卷47

二级C语言选择题专项强化真题试卷47

本单篇文档共8717字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 真题试卷 3949人下载
价格: 1.00 原价:¥8.00
收藏

二级C语言选择题专项强化真题试卷47

选择题

1.有以下程序(字母A的ASCII代码为65):

#include<stdio.h>

maln()

{

char c1=’A’,c2=’Y’t;

printf(\\(D)

A. 输出格式不合法,输出出错信息

B. A Y

C. 65 90

D. 65 89

解析:考查字符型数据。字符常量与其ASCII码值一一对应,在计算的时候,一般是字符数据对应的ASCII码参与运算,输出时会根据格式控制符输出对应的字符或者ASCII码。所以答案选D。

2.以下叙述正确的是( )。(C)

A. C语言函数不可以单独编译

B. C语言程序是由过程和函数组成的

C. C语言函数可以嵌套调用,例如:fun(fun(x))

D. C语言中除了main函数外,其他函数不可作为单独文件形式存在

解析:一个C语言程序由一个或多个函数组成,选项B错误;一个C程序可以有一个或多个程序文件,每个程序文件可以有一个或多个函数,并且每个程序文件可以单独编译,所以选项A、D错误;函数之间可以相互调用,函数体内调用自身的函数为递归函数,答案选C。

3.有以下程序段:

int m=33,n=66;

m=m^n;n=n^m;m=m^n;

执行上述语句后,m和n的值分别是( )。 .(A)

A. m=66,n=33

B. m=33,n=66

C. m=66,n=66

D. m=33,n=33

解析:m=m^n;n=n^m;m=m^n;语句实现了m和n的交换。故正确选项为A。

4.有以下程序:

#include<stdio.h>

int fun(int x,int y)

{

if(x!=y)return((x+y)/2);

else return(x);

}

main()

{

int a=4,b=5,C=6;

printf(\\(B)

A. 3

B. 6

C. 8

D. 12

解析:考查函数的调用。输出结果为fun(2*a,fun(b,c))=fun(8,5)=6,答案选B。

5.下列关于算法复杂度叙述正确的是( )。(B)

A. 最坏情况下的时间复杂度一定高于平均情况的时间复杂度

B. 时间复杂度与所用的计算工具无关

C. 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的

D. 时间复杂度与采用的算法描述语言有关

解析:算法的时间复杂度是指执行算法所需要的计算工作量,它与使用的计算机、程序设计语言以及算法实现过程中的许多细节无关,故B选项正确,D选项错误。最坏情况下的时间复杂度可以与平均情况的时间复杂度相同,故A选项错误。不同的算法时间复杂度一般不相同,故C选项错误。

6.面向对象方法中,继承是指( )。(D)

A. 一组对象所具有的相似性质

B. 一个对象具有另一个对象的性质

C. 各对象之间的共同性质

D. 类之间共享属性和操作的机制

解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

7.有以下程序:

#include

int add(int a,int b){return(a+b);}

main()

{ int k,(*f)(),13.=5,b=10;

f:add;

}

则以下函数调用语句错误的是( )。(D)

A. k=f(a,b);

B. k=add(a,b);

C. k=(*f)(a,b);

D. k=*f(a,b);

解析:*与()的优先级为()的优先级高于*,因此(*f)()定义函数指针f。f指向函数的指针,f=add,将函数add()的首地址赋给指针f,所以调用函数add()可以写为f(),其返回值是整型,不是指针类型,不能用*取指针指向的内存单元的数据,故k=*f(a,b)的调用方式错误。答案为D选项。

8.以下与存储类别有关的四组说明符中,全部属于静态类的一组是( )。(A)

A. extern和static

B. auto和static

C. register和static

D. re~ster和extern

解析:auto用于声明变量的生存期为自动,即不会将在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而将在函数中定义的变量视为局部变量。这个关键字通常会被省略,因为所有的变量默认就是auto的。

register定义的变量告诉编译器尽可能地将变量存在CPU内部寄存器中而不是通过内存寻址访问,这样可以提高效率。

static变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。当static用来修饰全局变量时,它就改变了全局变量的作用域。

extem将变量作用域限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区。extem外部声明,该变量在其他地方有被定义过。因此,答案为A选项。

9.以下程序拟实现计算sum=1+1/2+1/3+…+1/50。

#include

main()

{ int i;double 8um;

sum=1.0;

i=1;

do

{i++;sum+=1/i;}

while(i<50);

printf(\\(A)

A. sum+=1/i;

B. while(i<50);

C. sum=1,0;

D. i++;

解析:选项A中,sum+=1/i;i为整型,因此1/i是整型类型,当1/i有小数时,小数部分会被截断。因此1/i结果始终为0,导致结果出错,应改为sum+=1.0/i。因此答案为A选项。

10.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(C)

A. O(n)

B. O(n2)

C. O(log2n)

D. O(nlog2n)

解析:当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次。

11.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(B)

A. 外模式

本文档预览:3600字符,共8717字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
二级C语言选择题专项强化真题试卷47

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号