1、全国计算机等级考试二级C语言试题集五二级C语言试题集(五)一、选择题(1)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为A)log2nB)n2C)O(n1.5)D)n(n-1)/2(2)算法分析的目的是A)找出数据结构的合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性D)分析算法的效率以求改进(3)线性表L=(a1,a2,a3,ai,an),下列说法正确的是A)每个元素都有一个直接前件和直接后件B)线性表中至少要有一个元素C)表中诸元素的排列顺序必须是由小到大或由大到小D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件(4)在
2、单链表中,增加头结点的目的是A)方便运算的实现B)使单链表至少有一个结点C)标识表结点中首结点的位置 D)说明单链表是线性表的链式存储实现(5)软件工程的出现是由于A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展(6)软件开发离不开系统环境资源的支持,其中必要的测试数据属于A)硬件资源B)通信资源C)支持软件D)辅助资源(7)在数据流图(DFD)中,带有名字的箭头表示A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序D)数据的流向(8)分布式数据库系统不具有的特点是A)数据分布性和逻辑整体性B)位置透明性和复制透明性C)分布性D)数据冗余(9)关系表中
3、的每一横行称为一个A)元组B)字段C)属性D)码(10)下列数据模型中,具有坚实理论基础的是A)层次模型B)网状模型C)关系模型D)以上3个都是(11)以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面(12)在C语言中,int,char和short三种类型数据在内存中所占用的字节数A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定(13)以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中
4、允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符(14)C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符(15)已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是A)x%(-3)B)w+=-2 C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)(16)x,y,z被定义为int型变量,若从键盘给x,y,z输入数
5、据,正确的输入语句是A)INPUT x、y、z;B)scanf(%d%d%d,&x,&y,&z);C)scanf(%d%d%d,x,y,z);D)read(%d%d%d,&x,&y,&z);(17)设x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是printf(%d,%dn,x-,-y);A)10,3B)9,3C)9,2D)10,2(18)以下程序的输出结果是main() int a=4,b=5,c=0,d;d=!a&!b|!c;printf(%dn,d); A)1B)0C)非0的数D)-1(19)执行下列程序时输入:123456789 输出结果是main() char s100
6、; int c, i;scanf(%c,&c); scanf(%d,&i); scanf(%s,s);printf(%c,%d,%sn,c,i,s);A)123,456,789B)1,456,789C)1,23,456,789D)1,23,456(20)下面有关for循环的正确描述是A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来(21)以下程序的输出结果是main() int i,j,x=0;for(i=0;i2;i+) x+;for
7、(j=0;jb)&(n=cd)后n的值是A)1B)2C)3D)4(26)以下描述中正确的是A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,是先执行一次循环,再进行判断D)do-while循环中,根据情况可以省略while(27)以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n) int i,j=0,p;p=j;for(i=j;iN;I+)if(aiAP)_;return(p);在下划线处应填入的是A)i
8、=pB)ap=aiC)p=jD)p=I(28)以下叙述正确的是A)函数可以嵌套定义但不能嵌套调用B)函数既可以嵌套调用也可以嵌套定义C)函数既不可以嵌套定义也不可以嵌套调用D)函数可以嵌套调用但不可以嵌套定义(29)若有说明语句char a=It is mine;char *p=It is mine;则以下不正确的叙述是A)a+1表示的是字符t的地址B)p指向另外的字符串时,字符串的长度不受限制C)p变量中存放的地址值可以改变D)a中只能存放10个字符(30)以下程序的运行结果是sub(int x,int y,int *z)*z=y-x;main() int a,b,c;sub(10,5,&a
9、);sub(7,a,&b);sub(a,b,&c);printf(M,M,Mn,a,b,c);A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7(31)若二维数组a有m列,则计算任一元素aij在数组中相对位置的公式为 (假设a00位于数组的第一个位置上)A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1(32)下列说法正确的是int i,x;for(i=0,x=0;i=9 &x!=876;i+)scanf(%d,x);A)最多的执行10次B)最多执行9次C)是无限循环D)循环体一次也不执行(33)若有下面的程序片段:int12=0,*p3,*pp,i;
10、for(i=0;i3;i)pi=&ai*4;pp=p;则对数组元素的错误引用是A)pp01B)a10C)p31D)*(*(p+2)+2)(34)若有说明:int a34=0;则下面正确的叙述是A)只有元素a00可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值0(35)对下面程序描述正确的一项是 (每行程序前面的数字表示行号)1 main()2 3 float a3=0.0;4 int i;5 for(i=0;i3;i+)scanf(%d,&ai);6 for(i=1;i3;i+)a0=a0+ai;7 printf(%fn,a0);
11、8 A)没有错误B)第3行有错误C)第5行有错误D)第7行有错误(36)以下不正确的说法是C语言规定:A)实参可以是常量,变量或表达式B)形参可以是常量,变量或表达式C)实参可以为任何类型D)形参应与其对应的实参类型一致(37)已有如下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为int a34;f(a);A)f(array34)B)f(int array3)C)f(int array4)D)f(int array)(38)下面程序的输出结果为main() int a,b;b=(a=3*5,a*4,a*5);printf(%d,b);A)60B)75C)65D)无确定值(39)在位运算中,操作数右移一位,其结果相当于A)操作数乘以2B)操作数除以2 C)操作数乘以4D)操作数除以4(40)有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1