计算机二级C语言必刷必练考试题库(500题)_第1页
计算机二级C语言必刷必练考试题库(500题)_第2页
计算机二级C语言必刷必练考试题库(500题)_第3页
计算机二级C语言必刷必练考试题库(500题)_第4页
计算机二级C语言必刷必练考试题库(500题)_第5页
已阅读5页,还剩240页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1计算机二级C语言必刷必练考试题库(500题)一、单选题1.以下叙述中错误的是()。A、C语言编写的函数源程序,其文件名后缀可以是.cB、C语言编写的函数都可以作为一个独立的源程序文件C、C语言编写的每个函数都可以进行独立的编译并执行D、一个C语言程序只能有一个主函数答案:C解析:C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。只有含有main函数的经过编译链接才能执行。答案选择C选项。2.设a、b、c是整型变量,且已正确赋初值,以下选项中错误的赋值语句是()。A、a=1%(b=c=2);B、a=(b=3)*c;C、a=b=c/10;D、a=2=(b=9)=1;答案:D解析:D项,“()”具有最高优先级,b先赋值9,再根据赋值运算符号自右向左进行赋值,再给b赋值为1,再计算2=b,赋值运算符左边必须是一个变量,但数值2是常量,语法错误。答案选择D选项。3.有以下程序#includemain(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。A、32B、24C、5D、40答案:A解析:自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for循环,循环变量i从1递增到40。在循环体中有两条嵌套的if语句,首先判断i++%5==0,即判断i++的值(i加1之前的值)是否能被5整除(判断后i被加1),然后再判断++i的值(i加1之后的值)是否能被8整除(判断后i被加1),若两个条件都满足了,就输出i的值,只有i=30时,满足i++%5==0,此时i=31,++i%8==0成立,此时i=32。答案选择A选项。4.在学生表中要查找所有年龄大于30岁姓王的男同学,应该采用的关系运算是()。A、选择B、投影C、联接D、自然联接答案:A解析:关系运算包括:选择、投影和连接。①选择:从关系中找出满足给定条件的元组。选择是从行的角度进行的运算,即从水平方向抽取记录。是单目运算。②投影:从关系模式中指定若干个属性组成新的关系。投影是从列的角度进行的运算,是单目运算。③连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。是双目运算。此题干要求从关系中找出同时满足两个条件的元组,应进行的运算是选择,答案选择A选项。5.设有定义:inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0,则a和b的值分别是()。A、87和6.0B、876和543.0C、87和543.0D、76和543.0答案:A解析:scanf函数的一般形式为:scanf(格式控制,地址表列);。其中,“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明,由“%”和格式字符组成;②普通字符,即需要原样输入的字符。“地址表列”是需要接收输入数据的一系列变量的地址。本题中的“格式控制”是“%2d%f”,其中%2d的意思是要输入一个整数,但该整数最宽只占2个字符,而%f是要输入一个浮点数。而题目要求输入的是876和543.0,所以scanf函数将87赋给a,6赋给b。答案选择A选项。6.若有定义inta;floatb;doublec;程序运行时输入:345<回车>能把值3输入给变量a、4输入给变量b、5输入给变量C的语句是()。A、scanf("%lf%lf%lf",&a,&b,&c);B、scanf("%d%lf%lf",&a,&b,&c);C、scanf("%d%f%f",&a,&b,&c);D、scanf("%d%f%lf",&a,&b,&c);答案:D解析:%d输入带符号的十进制整型数,%f以带小数点的数学形式或指数形式输入浮点数(单精度数用%f,双精度数用%lf)。答案选择D选项。7.在关系中能唯一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的()。A、连接码B、关系码C、外码D、候选码答案:D解析:二维表中的键都能唯一的标识一个元组,而其任何真子集都不能再标识,这种属性组称为该表的候选码或候选键。答案选择D选项。8.有以下程序:#includemain(){inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,得a2的值为34.得c1的值为a,得c2的值为b,程序输出结果是:12,a,34,b则正确的输入格式是(以下_代表空格,代表回车)()。A、12a34bB、12_a_34_bC、12,a,34,bD、12_a34_b答案:A解析:在输入字符型时,要求输入数据时按照一一对应的位置原样输入这些字符,即不能加逗号、回车和空格,因为这些也算是字符。答案选择A选项。9.已知字符A的ASCII代码值是65,字符变量c1的值是A,c2的值是D。则执行语句printf("%d,%d",c1,c2-2);的输出结果是()。A、

A,68B、65,66C、

A,BD、65,68答案:B解析:在C语言中,字符型数据在内存中的存储形式是ASCII码值。当需要以整型格式输出字符时,输出的也是ASCII码值。字符'A'和'D'的ASCII码值分别为65和68,c2-2对应的ASCII码值为66。答案选择B选项。10.以下选项中关于程序模块化的叙述错误的是()。A、把程序分成若干相对独立的模块,可便于编码和调试B、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序答案:C解析:把一个大程序分解成若干相对独立的子程序,大大提高了程序编制的效率。软件编制人员在进行程序设计时,首先应当集中考虑主程序中的算法,写出主程序后再动手逐步完成子程序的调用。对于这些子程序也可用调试主程序的同样方法逐步完成其下一层,就是自顶向下、逐步细化、模块化的程序设计方法。答案选择C选项。11.下列数据结构中,能用二分法进行查找的是()。A、顺序存储的有序线性表B、线性链表C、二叉链表D、有序线性链表答案:A解析:二分查找只适用于顺序存储的有序表。此处所说的有序表是指线性表中的元素按值非递减排列或非递增排列。答案选择A选项。12.以下C语言用户标示符中,不合法的是()。A、_1B、AaBcC、a_bD、a--b答案:D解析:C语言中的标识符只能由字母、数字和下画线构成,且第一个字符必须是字母或下画线,同时不能与C语言中的关键字相同。D项还有非法字符“-”。答案选择D选项。13.数据库的基本特点是()。A、数据可以共享,数据冗余大,数据独立性高,统一管理和控制B、数据可以共享,数据冗余小,数据独立性高,统一管理和控制C、数据可以共享,数据冗余小,数据独立性低,统一管理和控制D、数据可以共享,数据冗余大,数据独立性低,统一管理和控制答案:B解析:数据库的基本特点是数据可以共享、数据独立性高、数据冗余小,易移植、统一管理和控制。答案选择B选项。14.有以下程序:#includemain(){chara='H';a=(a>='A'&&a<='z')?(a-'A'+'a'):a;printf("%c\n",a);}程序运行后的输出结果是()。A、AB、aC、HD、h答案:D解析:条件表达式优先级高于赋值表达式,首先将H赋给变量a,由于问号前一个表达式成立,所以执行(a-'A'+'a'),其功能是将大写字母转换成小写字母,即H转换成h。答案选择D选项。15.以下选项中,能用作数据常量的是()。A、115LB、0118C、1-5e1.5D、o115答案:A解析:C语言中实型常量有两种表示:小数形式和指数形式。在指数形式中,字母e(或E)之前必须要有数字,且e或E后面的指数必须为整数,故C项错误;八进制整数常量以数字0开始,而不是o,故D项错误。在八进制数中的有效数字为0~7,故B项错误;L是长整型数据标识,115L为长整型常数即longint,A项正确。答案选择A选项。16.有如下程序:#includemain(){inti;for(i=0;i<5;i++)putchar('9'-i);printf("\n");}程序运行后的输出结果是()。A、54321B、98765C、'9''8''7''6''5'D、'43210'答案:B解析:本题执行过程为:i=0,输出字符9,在i<5的情况下,依次输出字符8、7、6、5。在i=5时,退出for循环。最后显示在命令窗口结果为98765,答案选择B选项。17.计算机能直接执行的程序是()。A、源程序B、目标程序C、汇编程序D、可执行程序答案:D解析:C语言是一种高级语言,C语言源程序经过C语言编译程序编译之后,生成一个后缀为.obj的二进制文件(称为目标程序),最后还要由“连接程序”(Link)软件,把此.obj文件与C语言提供的各种库函数连接在一起,生成后缀.exe的可执行程序。汇编程序是由汇编语言写成的程序,计算机不能直接执行。计算机能直接执行的程序是经过编译器处理转换为机器语言的程序。答案选择D选项。18.结构化程序所要求的基本结构不包括()。A、顺序结构B、GOTO跳转C、选择(分支)结构D、重复(循环)结构答案:B解析:结构化程序以模块化设计为中心,使用顺序、选择和循环三种基本控制结构就可以实现任何算法功能。结构化程序设计的思想包括自顶向下、逐步求精、模块化、限制使用GOTO语句。答案选择B选项。19.以下选项中,能用作用户标识符的()。A、voidB、8_8C、_0_D、unsigned答案:C解析:标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。C语言定义标识符应遵循以下六种规则:①标识符由字母、数字或下划线组成;②第一个字符必须是字母或下划线;③标识符最多由274个字符组成;④在标识符中严格区分大小写字母;⑥关键字不能作为自定义的标识符在程序中使用。A、D项皆为C语言的关键字,B项第一个字符为数字,错误。答案选择C选项。20.有以下程序:#includemain(){intfindmax(int,int,int),m;…m=findmax(a,b,c);…}intfindmax(intx,inty,intz){…}则以下叙述正确的是()。A、在main函数中声明了findmax函数B、在main函数中定义了findmax函数C、在main函数中两次调用了findmax函数D、在main函数内、外重复定义了findmax函数答案:A解析:程序中函数findmax定义放在主函数之后,主函数中声明了findmax函数。“intfindmax(int,int,int);”为函数声明,“m=findmax(a,b,c);”为函数调用,“intfindmax(intx,inty,intz){}”为函数定义。B选项是在main函数外定义的findmax函数,错误。在main函数中,出现了一次findmax函数的声明和一次findmax函数的调用,不是两次调用,C选项错误。D选项在main函数内不是定义findmax函数而是声明findmax函数。答案选择A选项。21.下列叙述中正确的是()。A、算法的效率只与问题的规模有关,而与数据的存储结构无关B、算法的时间复杂度是指执行算法所需要的计算工作量C、数据的逻辑结构与存储结构是一一对应的D、算法的时间复杂度与空间复杂度一定相关答案:B解析:采用不同的存储结构,数据处理效率是不同的,A项错误;算法的时间复杂度是指算法在计算机内执行时所需时间的度量,空间复杂度是指算法在计算机内执行时所需存储空间的度量,二者不一定相关,B项正确,D项错误;数据的逻辑结构在计算机存储空间的存放形式称为数据的存储结构,二者并非一一对应,C项错误。答案选B选项。22.有以下程序:#includemain(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是()。A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2答案:B解析:m和n的值不变,输出结果为1,2;指针*p和*q交换了指向的位置,即*p=&n,*q=&m,输出结果分别为2,1。答案选择B选项。23.关系模型允许定义3类数据约束,下列不属于数据约束的是()。A、实体完整性约束B、参照完整性约束C、属性完整性约束D、用户自定义的完整性约束答案:C解析:为了保证数据库满足业务规则,关系模型定义了:①实体完整性约束,指使用主键约束且主键不能为空值;②参照完整性约束,指不允许关系引用不存在的元组,外键要么是实际存在的元组,要么就为空;③用户定义的完整性约束,指在具体应用所涉及的数据必须满足的语义要求,由用户自己定义。答案选择C选项。24.具有3个结点的二叉树有()。A、2种形态B、4种形态C、7种形态D、5种形态答案:D解析:具有3个结点的二叉树有以下几种形态:25.以下选项中,不能对主函数中变量i和j的值进行交换的程序是()。A、#includevoidswap(int*p,int*q){int*t;*t=*p;*p=*q;*q=*t;}main(){inti=10,j=20,*a=&i,*b=&j;swap(a,b);printf("i=%dj=%d\n",i,j);}B、#includevoidswap(int*p,int*q){intt;t=*p;*p=*q;*q=t;}main(){inti=10,j=20,*a=&i,*b=&j;swap(a,b);printf("i=%dj=%d\n",i,j);}C、#include#includevoidswap(int*p,int*q){int*t;t=(int*)malloc(sizeof(int));*t=*p;*p=*q;*q=*t;free(t);}main(){inti=10,j=20;swap(&i,&j);printf("i=%dj=%d\n",i,j);}D、#includevoidswap(int*p,int*q){intt;t=*p;*p=*q;*q=t;}main(){inti=10,j=20,*x=&i,*y=&j;swap(x,y);printf("i=%dj=%d\n",i,j);}答案:A解析:A项,定义了一个临时指针t,实现两个指针地址的交换,而传入的参数是两个变量i和j的地址,但是函数内部交换的是地址值,并没有交换主函数中变量i与j的值;B项,调用函数传入的是i与j地址,函数体内交换的是地址内元素,临时变量t为整型变量,能实现i与j值交换;C项,调用函数传入的是i与j地址,函数体内交换的是地址内元素,临时变量t为整型指针,且已正确开辟内存,能实现i与j值交换;D项与B项相同,能实现i与j值交换。答案选择A选项。26.有以下程序:#includemain(){intx=011;printf("%d\n",++x);}程序运行后的输出结果是()。A、12B、11C、10D、9答案:C解析:x=011表示按照八进制赋值,则十进制数为9,所以输出++x的结果为10。答案选择C选项。27.有以下程序段:scanf("%d%d%d",&a,&b,&c);if(a<b)a==b;if(a<c)a==c;printf("%d\n",a);该程序段的功能是()。A、输出a、b、c中值相等的数值B、输出a、b、c中的最大值C、输出a、b、c中的最小值D、输出a的原始值答案:D解析:程序段执行过程为:从键盘读入3个整型数据分别赋值给a,b,c,如果a<b,判断a与b是否相等,无论结果如何不做任何改变。如果a<c,判断a与c是否相等,无论结果如何均不做任何改变。区分“==”操作符和“=”操作符。最后对于输入的a,b,c的值不做任何改变,即输出a的原始值,答案选择D选项。28.若有定义语句:inta=10;doubleb=3.14;,则表达式'A'+a+b值的类型是()。A、charB、intC、doubleD、float答案:C解析:在多目运算符相关联的运算中,如果类型不一致,系统将自动进行类型转换,使两边的类型达到一致后,再进行运算,转换的规则是由“低到高”。'A'是字符型,a是整型,b是double型。字符型数据占1个字节,整型占2个字节,doub1e型占8个字节,故三者相加后为double型,答案选择C选项。29.以下叙述中错误的是()。A、一个C程序可以包含多个不同名的函数B、一个C程序只能有一个主函数C、C程序在书写时,有严格的缩进要求,否则不能编译通过D、C程序的主函数必须用main作为函数名答案:C解析:一个C程序有且只有一个主函数main。一个C程序可以包含多个不同名字的子函数。C程序在书写时没有严格的缩进要求。答案选择C选项。30.有以下程序:#includemain(){intx=010,y=10;printf("%d,%d\n",++x,y--);}程序运行后的输出结果是()。A、10,9B、11,10C、010,9D、9,10答案:D解析:整型常量有3种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法,八进制整常量以0作为前缀。自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。x=010,即十进制的8,y=10,++x先自加后取值,输出9,y--先取值输出10,再自减y=9,答案选择D选项。31.线性表常采用的两种存储结构是()。A、散列方法和索引方式B、链表存储结构和数组C、顺序存储结构和链式存储结构D、线性存储结构和非线性存储结构答案:C解析:线性表常用的存储结构为:①顺序存储结构,物理上连续存储,空间位置隐含逻辑位置;②链式存储结构,各元素物理存储上不连续,通过指针相连。答案选择C选项。32.有以下程序:#includemain(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);elseprintf("%d\n",a--);}程序运行时键盘输入9<回车>,则输出的结果是()。A、10B、11C、9D、8答案:A解析:“++”和“—”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中if(a++<9)是先用后加,即a的值为9,所以条件不成立,但是a已经进行了自增1操作,a的值此时为10。执行else语句时,因为打印a--,是先用后减,所以先输出10,然后a的值变为9。答案选择A选项。33.有以下程序段:charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是()。A、因变量类型与格式描述符的类型不匹配输出无定值B、输出项与格式描述符个数不符,输出为零值或不定值C、a,97,12k=12D、a,97,k=12答案:D解析:字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。“ch='a'”,%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出“k=”,然后以十进制代码输出k的值,为12。答案选择D选项。34.在E-R图中,表示实体的图形是()。A、矩形B、椭圆C、菱形D、圆答案:A解析:E-R图是实体联系模式图,E-R图的三要素:①实体,用矩形框表示,框内为实体名称;②属性,用椭圆形表示,并用线与实体连接;③实体间的联系,用菱形框表示,用线将菱形框与实体相连,并在线上标注联系的类型。答案选择A选项。35.计算机软件的构成是()。A、源代码B、程序和数据C、程序和文档D、程序、数据及相关文档答案:D解析:计算机软件是程序、数据及相关文档的完整集合。答案选择D选项。36.关于程序设计基本概念,以下叙述错误的是()。A、计算机可以直接执行由任意高级语言编写的程序B、高级语言都有与之对应的编译程序或解释程序C、用任何一种计算机高级语言都可以把算法转换为程序D、结构化算法可以解决任何复杂的问题答案:A解析:A项计算机只能识别机器语言,不能直接识别由高级语言编写的程序。结构化的程序是由三种基本的结构组成的:顺序结构、选择结构和循环结构,使用这三种结构能够解决任何问题。答案选择A选项。37.下列不属于数据库设计任务的是()。A、设计数据库应用结构B、设计数据库概论结构C、设计数据库逻辑结构D、设计数据库物理结构答案:A解析:数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求,主要设计过程包括:①需求分析阶段;②概念设计阶段;③逻辑设计阶段;④物理设计阶段;⑤数据库实施;⑥数据库的运行和维护。答案选择A选项。38.下列属于黑盒测试方法的是()。A、语句覆盖B、逻辑覆盖C、边界值分析D、路径分析答案:C解析:黑盒测试用于对软件的功能进行测试和验证,不需考虑程序内部的语句和逻辑结构。黑盒测试的方法主要包括:①等价类划分法;②边界值分析法;③错误推测法;④因果图。语句覆盖、逻辑覆盖、路径分析都是白盒测试的方法。答案选择C选项。39.有如下程序:#includemain(){inta=0,b=1;if(++a==b++)printf("T");elseprintf("F");printf("a=%d,b=%d\n",a,b);printf("\n");}程序运行后的输出结果是()。A、Ta=0,b=1B、Fa=1,b=2C、Ta=1,b=2D、Fa=0,b=2答案:C解析:程序执行过程为:判断++a==b++是否成立,++a前置运算先加1,则运算符==左边表达式值为1,a=1,b++后置运算先取值,则==右边表达式值我1,b=2,即是判断1==1,成立,输出T,输出a=1,b=2。答案选择C选项。40.以下程序的功能是:通过调用calc函数,把所求得的两数之和值放入变量add中,并在主函数中输出。#includevoidcalc(floatx,floaty,float*sum){______=x+y;}main(){floatx,y,add;scanf("%f%f",&x,&y);calc(x,y,&add);printf("x+y=%f\n",add);}calc函数中下划线处应填入的是()。A、*sumB、sumC、∑D、add答案:A解析:程序的执行过程为:从键盘读入两个float类型数据,分别赋给x,y,调用函数calc将x与y的值与add变量地址传入函数,地址赋给指针sum,函数体中将两数之和放入指针指向的地址,指针正确的引用形式为:*sum,这表示变量,可以被赋值。所以横线处填写*sum。答案选择A选项。41.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是()。A、一对多B、一对一C、多对一D、多对多答案:A解析:一个运动队有多个队员,表明在运动队表中的每个队与队员表中的一个或多个队员相关;一个队员仅属于一个运动队,表明队员表中的每个队员只可以与运动队表中的一个队相关,为一对多关系。答案选择A选项。42.栈和队列的共同点是()。A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点答案:C解析:栈和队列都是操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。答案选择C选项。43.以下叙述中正确的是()。A、C语言规定必须用main作为主函数名,程序将从此开始执行B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C、C语言程序将从源程序中第一个函数开始执行D、main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等答案:A解析:用户不能指定某函数为主函数,C语言规定,程序从main函数开始执行,从main函数退出,C语言函数名区别大小写。答案选择A选项。44.设有定义intx=2;以下表达式中,值不为6的是()。A、x*=x+1B、x++,2*xC、x*=(1+x)D、2*x,x+=2答案:D解析:A项,因为赋值运算优先级最低,故先执行x+1,赋值符号右侧为3,然后再计算x*=3,所以x=2*3=6;B项,x++得3然后2*x得6;C项与A项原理一致。D项,2*x虽然结果为4,但没有赋值,此时x的值仍为2,所以最终为4。答案选择D选项。45.以下叙述中错误的是()。A、用户定义的函数中可以没有return语句B、用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C、用户定义的函数中若没有return语句,则应当定义函数为void类型D、函数的return语句中可以没有表达式答案:B解析:用户定义的函数有两种:①void函数,可以没有return语句,如果有return语句,也不可以返回任何表达式;②指定返回类型函数,至少有一个返回语句。在一个函数内,可以根据需要在多处出现return语句,但无论有多少个return语句,return语句只会被执行一次然后退出函数,并且只能返回一个函数值。AC两项,在没有返回值的函数中可以没有return语句,函数类型定义为void即可;D项,在没有返回值的函数中如果有return语句,该语句必须不带任何表达式;B项,用户定义的函数可以有多个return语句,但是只能返回一个函数值。答案选择B选项。46.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出的顺序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA答案:B解析:栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,则依次出栈的顺序应为其逆序,即EDCBA54321。答案选择B选项。47.层次型、网状型和关系型数据库划分原则是()。A、记录长度B、文件的大小C、联系的复杂程度D、数据之间的联系方式答案:D解析:数据库是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成。数据之间的关系或联系是划分数据库的主要依据。答案选择D选项。48.设有定义:inta=0,b=1;以下表达式中,会产生“短路”现象,致使变量b的值不变的是()。A、+aǁ++bB、a++ǁ++bC、++a&&b++D、a++&&b++答案:D解析:产生“短路”现象,即逻辑表达式靠后的部分不会被运算。对于逻辑或运算,表达式前半部分运算结果为1时产生“短路”现象,A选项,+a的值是0,需要计算后半部分,B选项,a的值是先使用再自增1,a++值是0,也需要计算后半部分;对于逻辑与运算,表达式前半部分运算结果为0时产生“短路”现象,C选项,a的值是先自增1再传递,传值是1,需要计算后半部分;D项,a的值是先传递再自增1,传值是0,无需要计算后半部分,可忽视b++的值,因此b值不发生改变。答案选择D选项。49.在C语言程序中,下列说法中正确的是()。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和调用均不可以嵌套D、函数的定义和调用均可以嵌套答案:B解析:C语言规定,不能在函数的内部定义函数,但函数的调用可以嵌套。答案选择B选项。50.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()。A、n+1B、n-1C、2nD、n/2答案:A解析:在任意的二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以本题中叶子结点数为n+1。答案选择A选项。51.有以下程序#includeintfun1(doublea){return(int)(a*=a);}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);printf("%4.2f",w);}程序执行后输出结果是()。A、5B、5.00C、5.21D、0.0答案:B解析:fun1(1.1)的值为1,fun1(2.0)的值为4,所以fun2(1.1,2.0)函数返5,%4.2f要求输出的实数宽度为4,其中小数点后有2位,按格式输出后为5.00。答案选择B选项。52.为了使模块尽可能独立,要求()。A、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C、模块的内聚程度要尽量低,且各模块间的偶合程度要尽量弱D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强答案:B解析:系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。答案选择B选项。53.有以下程序#includemain(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){default:printf("%d,",++b);case1:printf("%d,",++b);case2:printf("%d,",++b);}}}执行时输入:123<回车>,则输出结果是()。A、2,3,3,4,5,6,B、2,3,4,C、2,2,3,4,4,4,D、2,3,4,3,4,4,答案:A解析:考查C语言中的switch-case语句。执行switch-case语句时,一定会先进行匹配,匹配成功则执行当前case语句,再根据是否有break,判断是否继续输出,或是跳出判断。程序中输入1时,与case1匹配成功,执行后面的输出语句,输出2,且此时b=2,因为后面没有break语句,继续执行下一条输出语句,输出3。继续输入2时,与case2匹配成功,执行后面的输出语句,输出3。输入3时,没有可匹配的case语句,执行default语句,输出4,b变为4;后面没有break语句,继续执行case1后的输出语句,输出5,b变为5;同理继续执行case2后面的输出语句,输出6。答案选择A选项。54.有以下程序:#includedoublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.0f\n",a);}doublef(doublex){returnx*x+1;}程序运行后的输出结果是()。A、503B、401C、500D、1404答案:A解析:函数f的功能是计算传入的实参x的平方加一,然后将结果返回。i初始值为0,根据x*x+1,即第一次返回值为1,然后执行i=i+10,第二次i的值为10,即返回值为101+1=102,第三次i的值为20,即返回值为401+102=503。注意输出格式,5位浮点型输出。答案选择A选项。55.有以下程序:#includemain(){inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,得a2的值为34.得c1的值为a,得c2的值为b,程序输出结果是:12,a,34,b则正确的输入格式是(以下_代表空格,代表回车)()。A、12a34bB、12_a_34_bC、12,a,34,bD、12_a34_b答案:A解析:在输入字符型时,要求输入数据时按照一一对应的位置原样输入这些字符,即不能加逗号、回车和空格,因为这些也算是字符。答案选择A选项。56.下列叙述中正确的是()。A、为了建立一个关系,首先要构造数据的逻辑关系B、表示关系的二维表中各元组的每一个分量还可以分成若干数据项C、一个关系的属性名表称为关系模式D、一个关系可以包括多个二维表答案:A解析:B项错误,元组中的每一分量具有原子性,是二维表中不可分割的基本数据项;C项错误,关系模式是指关系的框架;D项错误,关系的性质有:①元组个数有限性;②元组的唯一性;③元组的次序无关性;④元组分量的原子性;⑤属性名唯一性;⑥属性的次序无关性;⑦分量值域的同一性。所以一个关系不可能包括多个二维表。答案选择A选项。57.有以下程序#includemain(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序运行后的输出结果是()。A、235B、0235C、02356D、2356答案:A解析:第一次循环k为5,执行“n=0;k--;”和“n+=2;k--;break;”输出n为2,k的值为3,第二次循环k为3,执行“n+=1;k--,break;”输出n为3,k的值为2,第三次循环k为2,执行“n+=2;k--;break;”,输出n为5,k的值为1,循环条件不成立,所以输出235。答案选择A选项。58.有以下程序#includeintfun(inta,intb){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z--);printf("%d\n",r);}程序运行后的输出结果是()。A、15B、21C、20D、31答案:B解析:函数的嵌套调用,fun函数的作用是计算两个整数的和,r=fun(fun(x,y),z--)等价于:temp=fun(x,y),r=fun(temp,z--),则temp=fun(6,7)=13,然后r=fun(13,8)=21,最后执行z--,得到z=7。答案选择B选项。59.有三个关系R、S和T如下:则由关系R和S得到T的操作是()。A、自然连接B、交C、投影D、并答案:A解析:关系运算中自然连接是使用等于运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。B项,交是指两个关系的公共部分;C项,投影是从表中选出指定的属性值组成新表,是单目运算;D项,并运算将结构相同的两个关系合并,合并后的关系包含两个关系中的所有元组。答案选择A选项。60.有以下程序:#includemain(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3;printf("%d\n",b);}程序运行后的输出结果是()。A、0B、1C、2D、3答案:C解析:“++”和“—”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。a初始定义为1,b为0,先执行--a,结果为0,即if判断为假,执行b+=2;,然后输出b的值。即b为2。答案选择C选项。61.以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是()。#includemain(){intk;printf("Enteraintnumber:");scanf("%d",&k);if_____printf("YES\n");elseprintf("NO\n");printf("%d\n",k%3);}A、((k%3==0)ǁ(k%7==0))B、(k/3==0)ǁ(k/7==0)C、((k%3=0)ǁ(k%7=0))D、((k%3==0)&&(k%7==0))答案:A解析:是否能被3或7整除表达式为(k%3==0)ǁ(k%7==0),A项正确。B项“/”为除号,错误。C项中“=”为赋值运算符,不是逻辑运算符“==”,错误。D项“&&”为逻辑与,本题应该为逻辑或“ǁ”,错误。答案选择A选项。62.算法应当具有的特性不包括()。A、可行性B、有穷性C、确定性D、美观性答案:D解析:一个算法应该具有以下五个重要的特征:有穷性,确定性,输入(零个或多个),输出(至少一个)以及可行性,不包括美观性。答案选择D选项。63.下列不属于软件设计阶段任务的是()。A、软件总体设计B、算法设计C、制定软件确定测试计划D、数据库设计答案:C解析:软件概要设计阶段的任务有:①软件体系结构设计;②软件数据结构和数据库设计;③编写概要设计文档;④概要设计文档评审。软件确认测试计划是在需求分析阶段制定的,依据需求规格说明书来验证软件的功能和性能。答案选择C选项。64.下列叙述中错误的是()。A、算法的时间复杂度与算法所处理数据的存储结构有直接关系B、算法的空间复杂度与算法所处理数据的存储结构有直接关系C、算法的时间复杂度与空间复杂度有直接关系D、算法的时间复杂度与算法程序执行的具体时间是不一致的答案:C解析:算法的时间复杂度是指执行算法所需要的计算工作量。数据的存储结构直接决定数据输入,因此会影响算法所执行的基本运算次数,A项正确;算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间,B项正确;算法的时间复杂度与空间复杂度没有直接关系,C项错误;算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节影响,而算法的时间复杂度与这些因素无关,所以算法的时间复杂度与算法程序执行的具体时间是不一致的,D项正确。答案选择C选项。65.C源程序中不能表示的数制是()。A、二进制B、八进制C、十进制D、十六进制答案:A解析:C语言中整型常量可以用十进制、八进制数、十六进制数来表示。虽然计算机只能识别二进制数,但二进制不能用源程序表示。答案选择A选项。66.数据库系统的核心是()。A、数据模型B、软件开发C、数据库设计D、数据库管理系统答案:D解析:数据库系统包括四个部分:数据库、数据库管理系统、数据库应用程序、数据库管理员。其中DBMS是为数据库的建立、使用和维护而配置的软件,是数据库系统的核心。答案选择D选项。67.以下叙述中错误的是()。A、函数的返回值类型不能是结构体类型,只能是简单类型B、函数可以返回指向结构体变量的指针C、可以通过指向结构体变量的指针访问所指结构体变量的任何成员D、只要类型相同,结构体变量之间可以整体赋值答案:A解析:函数的返回值类型可以是结构体类型,也可以是指向结构体变量的指针类型,相同类型结构体变量之间可以整体赋值,可以通过指针变量引用结构体成员。答案选择A选项。68.若变量已正确定义for(x=0,y=0;(y!=99&&x<4);x++)则以上for循环()。A、执行无限次B、执行3次C、执行4次D、执行次数不定答案:C解析:y!=99始终是true,没有起到作用;x经过4次循环后变成4,不满足x<4的条件,跳出循环。答案选择C选项。69.有以下程序:#includemain(){inti=5;do{if(i%3==1)if(i%5==2){printf("*%d",i);break;}i++;}while(i!=0);printf("\n");}程序运行的结果是()。A、*7B、*3*5C、*5D、*2*6答案:A解析:在dowhile循环中,总是先执行循环体后判断循环条件,所以循环体至少会被执行一次。在循环中,如果满足(i%3==1)&&(i%5==2),则输出i的值,并执行break;退出dowhile循环;否则i++,继续判断while条件,如果i==0,则终止dowhile循环。第1遍循环,5%3==1不成立,执行i++,i变为6,第1遍循环结束,判断(i!=0)为真,继续循环。第2遍循环,6%3==1不成立,执行i++,i变为7,第2遍循环结束,判断(i!=0)为真,继续循环。第3遍循环7%3==1成立,7%3==2成立,执行if子句printf("*%d",i);break;,输出*7之后跳出循环。答案选择A选项。70.结构化程序设计主要强调的是()。A、程序的规模B、程序的效率C、程序设计语言的先进性D、程序易读性答案:D解析:遵循结构化程序的设计原则,按结构化程序设计方法设计出的程序具有明显的优点:①程序易于理解、使用和维护;②提高了编程工作的效率,降低了软件开发成本。答案选择D选项。71.有三个关系R、S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为()。A、选择B、投影C、交D、并答案:D解析:选择和投影操作对单个关系进行操作,选择运算是对行的操作,投影运算是对列的操作。交和并运算要求参与运算的表具有相同的属性,交运算的结果是两个表的公共部分,并运算的结果包含两个表的所有元素。观察三个关系的元组可知,关系T=R∪S。答案选择D选项。72.数据库系统的三级模式不包括()。A、概念模式B、内模式C、外模式D、数据模式答案:D解析:数据库三级模式包括概念模式、外模式和内模式。答案选择D选项。73.在面向对象方法中,不属于“对象”基本特点的是()。A、一致性B、分类性C、多态性D、标识唯一性答案:A解析:对象的基本特点有:①标识惟一性,是指对象是可区分的;②分类性,是指可将具有相同属性和操作的对象抽象成类;③多态性,是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果;④封装性,是指对象的内部对外不可见,在外面不可直接使用对象的处理能力,也不能直接修改对象的内部状态;⑤模块独立性,是指模块内部各部分及模块间的关系的一种衡量标准。答案选择A选项。74.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为()。A、课号,成绩B、学号,成绩C、学号,课号D、学号,姓名,成绩答案:C解析:学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字应该是与前两个表能够直接联系且能唯一定义的学号和课号。答案选择C选项。75.以下选项中叙述正确的是()。A、C语言的标识符可分为关键字、预定义标识符和用户标识符三类B、C语言的标识符可分为语句、变量和关键字三类C、C语言的标识符可分为函数名、变量和预定义标识符三类D、C语言的标识符可分为运算符、用户标识符和关键字三类答案:A解析:C语言的标识符可分为关键字、预定义标识符和用户标识符三类,答案选择A选项。76.在结构化程序设计中,模块划分的原则是()。A、各模块应包括尽量多的功能B、各模块的规模应尽量大C、各模块之间的联系应尽量紧密D、模块内具有高内聚度、模块间具有低耦合度答案:D解析:在结构化程序设计中,模块划分的原则是:各模块应尽量包括单一功能、各模块的规模应合适(不能太大)、各模块之间的联系应尽量松散。模块独立性最大原则是模块划分的原则之一,高内聚低耦合是优秀软件设计应当遵循的规则,内聚度是一个模块内部各个元素间彼此结合的紧密程序的度量,耦合度是模块间互相连接的紧密程度的度量。答案选择D选项。77.软件生命周期是指()。A、软件产品从提出、实现、使用维护到停止使用退役的过程B、软件从需求分析、设计、实现到测试完成的过程C、软件的开发过程D、软件的运行维护过程答案:A解析:软件生命周期是指软件产品从提出、实现、使用、维护到停止使用、退役的过程。答案选择A选项。78.以下叙述正确的是()。A、do-while语句构成的循环,当while语句中的表达式值为0时结束循环B、do-while语句和while-do构成的循环功能相同C、while-do语句构成的循环,当while语句中的表达式值为非0时结束循环D、do-while语句构成的循环,必须用break语句退出循环答案:A解析:B项错误,do-while语句先执行循环体,再判断循环条件语句,while-do循环先判断循环条件语句,再执行循环体;C项错误,do-while语句构成的循环,while语句中的表达式值为0时结束循环;D项错误,do-while语句除了可以使用break语句退出循环外,还可以使用循环条件语句,当不满足循环条件时退出循环。答案选择A选项。79.负责数据库中查询操作的数据库语言是()。A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言答案:C解析:数据库语言包括:①数据定义语言,负责数据的模式定义与数据的物理存取构建;②数据操纵语言,负责数据的操纵,包括增删改查等操作;③数据控制语言,负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。答案选择C选项。80.以下叙述中错误的是()。A、C语言的可执行程序是由一系列机器指令构成的B、用C语言编写的源程序不能直接在计算机上运行C、通过编译得到的二进制目标程序需要连接才可以运行D、在没有安装C语言集成开发环境的机器上不能运行C源程序生成的exe文件答案:D解析:A项正确,C语言的可执行程序是由一系列机器指令组成的;BC项正确,用C语言编写的源程序必须经过编译,生成二进制目标代码,再经过连接才能运行;D项错误,C语言经过编译链接后的二进制目标代码可以脱离C语言集成开发环境独立运行。答案选择D选项。81.若有定义语句intb=2;则表达式(b<<2)/(3ǁb)的值是()。A、4B、8C、0D、2答案:B解析:b=2,转为二进制即为0010,首先将b左移两位,变成1000,即十进制的8,3ǁb的值为真即为1,最后计算8/1=8。答案选择B选项。82.有以下程序#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是()。A、2,3,1B、2,3,2C、2,3,3D、2,2,1答案:A解析:考查逗号表达式。注意区分,z=x++是先将x的值赋给z,在令x自增;z=++x是先将x自增,再将自增后的值赋给z;而无论是++x还是x++,都会完成x自增的运算。对于表达式“z=x++,y++,++y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(z=x++),(y++),(++y);”。然后从左向右先计算表达式z=x++,后缀自增运算先进行其他运算,再执行自增运算,所以z的值为1,x的值为2,再计算逗号表达式第二个表达式y++,此时y的值为1,y++的值为2,最后计算第三个表达式++y,y的值为3。答案选择A选项。83.有以下程序#includemain(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。A、32B、24C、5D、40答案:A解析:自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for循环,循环变量i从1递增到40。在循环体中有两条嵌套的if语句,首先判断i++%5==0,即判断i++的值(i加1之前的值)是否能被5整除(判断后i被加1),然后再判断++i的值(i加1之后的值)是否能被8整除(判断后i被加1),若两个条件都满足了,就输出i的值,只有i=30时,满足i++%5==0,此时i=31,++i%8==0成立,此时i=32。答案选择A选项。84.设有定义:doublex=2.12;,以下不能完整输出变量x值的语句是()。A、printf("x=%5.0f\n",x);B、printf("x=%f\n",x);C、printf("x=%lf\n",x);D、printf("x=%0.5f\n",x);答案:A解析:printf函数控制字符%f输出float类型,%lf输出double类型。格式控制%m.nf,表示数据输出总的宽度为m位,其中小数部分占n位。当数据的小数位多于指定宽度n时,截去右边多余的小数,并对截去的第一位小数做四舍五入处理;而当数据的小数位少于指定宽度n时,在小数的右边补零;当m小于有效位数时,整数部分输出所有有效数字并且自动对齐,小数部分按照n指定位数输出。A项按照float格式输出数据,宽度为5位,保留小数0位,输出为2,不能完整输出x。B项按照float格式输出数据,输出为2.120000。C项按照double格式输出数据,输出为2.120000。D项按照float格式输出数据,保留小数位数为5,输出为2.12000。答案选择A选项。85.以下选项中叙述正确的是()。A、函数体必须由{开始B、C程序必须由main语句开始C、C程序中的注释可以嵌套D、C程序中的注释必须在一行完成答案:A解析:函数体是函数首部下面的花括号内的部分,所以函数体必须由{开始,A选项正确。一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从main函数开始执行的,不是main语句,B选项错误。C程序中允许两种注释,以//开头的单行注释;以/*开始,以*/结束的块式注释,D选项错误。函数可以嵌套,注释不能嵌套,C选项错误。答案选择A选项。86.以下程序段中,不能实现条件“如果aA、x=(a>=b)?-10:10;B、if(a<b)x=10;elsex=-10;C、x=-10;if(b>a)x=10;D、if(a<b)x=10;if(b<a)x=-10;答案:D解析:A项:条件运算符?运算过程为:如果a>=b,x=-10,否则x=10,能实现题目中功能。B项:如果a<b,则x=10,否则x=-10,能实现题目中功能。c项:首先赋值x=-10,如果a<b,则x=10,即在a>=b情况下有x=-10,能实现题目中功能。D项:如果a<

B,则x=10,如果b<a,则x=-10,其中没有对a=b进行判断,不能实现题目中功能,答案选择D选项。87.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()。A、控制流B、加工C、存储文件D、源和潭答案:A解析:数据流图从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,其图符包括:①加工、②数据流、③存储文件、④源和潭。答案选择A选项。88.数据结构主要研究的是数据的逻辑结构、数据的运算和()。A、数据的方法B、数据的存储结构C、数据的对象D、数据的逻辑存储答案:B解析:数据结构是相互之间存在一种或多种特定关系的数据元素的集合,主要研究数据元素及其之间的相互关系和数据运算,包括:①数据的逻辑结构;②数据的存储结构;③数据的运算。其中逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。答案选择B选项。89.数据流程图(DFD图)是()。A、软件概要设计的工具B、软件详细设计的工具C、结构化方法的需求分析工具D、面向对象方法的需求分析工具答案:C解析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模,是结构化方法的需求分析工具。答案选择C选项。90.下面关于算法的叙述中,正确的是()。A、算法的执行效率与数据的存储结构无关B、算法的有穷性是指算法必须能在执行有限个步骤之后终止C、算法的空间复杂度是指算法程序中指令(或语句)的条数D、算法所执行的基本运算次数与问题的规模无关答案:B解析:A项错误,不同的数据存储结构有不同的数据读取效率,会影响到算法的执行;C项错误,算法的空间复杂度是对这个算法所需要的内存空间的量度,包括:①算法程序所占的空间;②输入的初始数据所占的存储空间;③算法执行中所需要的额外空间;D项错误,算法所执行的基本运算次数与问题的规模有关。答案选择B选项。91.有以下程序:#includemain(){intx=1,y=2,z=3;if(x>1)if(y>x)putchar('A');elseputchar('B');elseif(z<x)putchar('C');elseputchar('D');}程序的运行结果是()。A、DB、CC、BD、A答案:A解析:A项正确,main函数中,首先判断条件x>1,因为x=1,不满足条件,程序跳入else语句判定z<x是否成立,z=3,x=1,条件不成立,输出字母D。答案选择A选项。92.下列叙述中正确的是()。A、每一个结点有两个指针域的链表一定是非线性结构B、所有结点的指针域都为非空的链表一定是非线性结构C、循环链表是循环队列的链式存储结构D、线性结构的存储结点也可以有多个指针答案:D解析:D项正确,双向链表结点具有多个指针域。A项错误,双向链表结点具有两个指针域,属于线性结构;B项错误,循环链表所有结点的指针域都为非空,属于线性结构;C项错误,循环链表是链表,循环队列属于队列,队列只能在队尾入队,在队头出队,链表可以在任何位置插入、删除。答案选择D选项。93.有以下程序:#includemain(){charc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}printf("\n");}程序运行后从第一列开始输入以下数据:2473<回车>程序的输出结果是()。A、668977B、4444C、6677877D、68766答案:A解析:本题执行过程为:读入c='2',c-'2'=0,首先匹配case0,依次输出6,6,后执行break语句,跳出分支结构;读入c='4',c-'2'=2,匹配case2,输出8,执行break语句,跳出分支结构;读入c='7',c-'2'=5,匹配default,输出9,执行break语句,跳出分支结构;读入c='3',c-'2'=1,匹配case1,依次输出7,7,执行break语句,跳出分支结构。输入回车,结束循环。答案选择A选项。94.设有一个商店的数据库,记录客户及其购物情况,由三个关系组成:商品(商品号,商品名,单价,商品类别,供应商),客户(客户号,姓名,地址,电邮,性别,身份证号),购买(客户号,商品号,购买数量),则关系购买的键为()。A、客户号B、商品号C、客户号,商品号D、客户号,商品号,购买数量答案:C解析:在购买关系中,商品号、客户号、购买数量三个属性均不能唯一标识元组,但商品号与客户号构成的集合、商品号、客户号、购买数量构成的集合都可以唯一标识购买关系,可以作为候选键,而前者为最小属性集。答案选择C选项。95.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列的元素个数为()。A、15B、16C、20D、0或35答案:D解析:在循环队列中,front为队首指针,指向队首元素的前一个位置;rear为队尾指针,指向队尾元素。front=rear=15时,①循环队列可能为空,队首和队尾指针都指向空元素,此时循环队列的元素个数为0;②循环队列可能为满,此时循环队列的元素个数为35。答案选择D选项。96.有以下程序:#includemain(){inta,b,k,m,*p1,*p2;k=1,m=8;p1=&k,p2=&m;a=/*p1-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}编译时编译器提示错误信息,你认为出错的语句是()。A、a=/*p1-m;B、b=*p1+*p2+6;C、k=1,m=8;D、p1=&k,p2=&m;答案:A解析:a=/*p1-m;语句不符合语法规范,可写作a/=(*p1-m);,表示a=a/(*p1-m);。答案选择A选项。97.有以下程序:#includemain(){intx=23;do{printf("%2d\n",x--);}while(!x);}程序的执行结果是()。A、输出321B、输出23C、不输出任何内容D、陷入无限循环答案:B解析:“%2d”表示按宽度为2,右对齐方式输出,若不够两位,左边补空格。程序执行过程为:输出x为23,之后x自减得x=22,!x为假,while条件不成立,退出循环。此题需要注意x--和--x的区别,在逻辑表达式中,x--是先传递x的值,再执行自减1,此题就是这种情况,--x是先自减1,再执行传递x的值。答案选择B选项。98.数据流图中带有箭头的线段表示的是()。A、控制流B、事件驱动C、模块调用D、数据流答案:D解析:数据流图基本符号的含义:①矩形表示数据的外部实体;②圆角的矩形表示变换数据的处理逻辑;③缺少右半边的矩形表示数据的存储;④箭头表示数据流。答案选择D选项。99.若有定义语句inta,b;doublex;则下列选项中没有错误的是()。A、switch(x%2){case0:a++;break;case1:b++;break;default:a++;b++;}B、switch((int)x/2.0){case0:a++;break;case1:b++;break;default:a++;b++;}C、switch((int)x%2){case0:a++;break;case1:b++;break;default:a++;b++;}D、switch((int)(x)%2){case0.0:a++;break;case1.0:b++;break;default:a++;b++;}答案:C解析:switch语句中,表达式的类型应与case语句后的常量类型保持一致,并且switch的判断条件只能为整型或字符型,case后面为常量表达式。A项,x%2得到的是浮点型数据,而case语句后的常量是整型数据,类型不一致;B项,(int)x/2.0得到的也是浮点型数据,类型不一致;D项,(int)x%2.0得到的是整型数据,而case语句后的常量是浮点型数据,类型也不一致。答案选择C选项。100.针对简单程序设计,以下叙述的实施步骤正确的是()。A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档答案:A解析:简单程序设计的步骤是首先要确定算法和数据结构,然后编码、调试,最后整理相关文档。答案选择A选项。101.有以下程序#includevoidfun(int*p,int*q){intt;t=*p;*p=*q;*q=t;*q=*p;}main(){inta=0,b=9;fun(&a,&b);printf("%d%d\n",a,b);}程序的输出结果是()。A、09B、00C、90D、99答案:D解析:main函数中变量a和b以传地址的方式传递参数,形参的改变会导致实参的改变。fun函数的作用是先交换两个指针的指向的值,即p指针指向的值是9,q指针指向的值是0,然后将p指针指向的值赋给q指针,q指针指向的值也成了9,所以a和b的值均为9,答案选择D选项。102.在一棵二叉树上,第5层的结点数最多是()。A、8B、9C、15D、16答案:D解析:二叉树中,第i层上至多有2i-1个结点,所以第5层的结点数最多为25-1=16。答案选择D选项。103.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A、switch(a+b){case1:printf("*\n");casec:printf("**\n");}B、switch((int)x);{case1:printf("*\n");case2:printf("**\n");}C、switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}D、switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}答案:D解析:D项正确,标号可以是整型表达式。A项错误,case是关键字,与其后面的常量表达式合称case语句标号。常量表达式的类型必须与swicth后圆括号中的表达式类型相同,各case语句标号的值应该互不相同。c是变量,不能作为表达式放在case后面;B项错误,switch后面不应该有分号;C项错误,switch参数值类型必须是这几种类型之一:int,long,short,byte,char。答案选择D选项。104.用树形结构来表示实体之间联系的模型称为()。A、关系模型B、层次模型C、网状模型D、数据模型答案:B解析:层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。答案选择B选项。105.C语言中char类型数据占字节数为()。A、3B、4C、1D、2答案:C解析:char为关键字。字符变量在内存中占一个字节,可以存放ASCII字符集中的任何字符。答案选择C选项。106.以下可以将任意一个两位整数n的个位数与十位数对换的表达式为()。A、(n-n/10×10)×10+n/10B、n-n/10×10+n/10C、n/10+(n-n/10)D、(n-n/10)×10+(n/10)答案:A解析:A项n/10得到十位数字,n-n/10得到个位数字,将个位数乘以10加上十位数字,(n-n/10×10)×10+n/10实现将任意一个两位整数个位数与十位数对换,A项正确。B项n-n/10×10得到个位数字,n/10为十位数字,n-n/10×10+n/10实现两位整数个位数与十位数之和,B项错误。C项n/10+(n-n/10)=n,不能实现题目中要求,C项错误。D项n/10是十位数字,n-n/10为原两位整数减去十位数字,不是个位数字,D项错误。答案选择A选项。107.下列形式中不合法的常量是()。A、2.E8B、-.28C、-028D、2e-8答案:C解析:-028表示的是八进制的整型常量,但八进制的数字只能用0~7表示。AD两项为指数形式的实数表示,在e或E的前面必须要有数字,且e或E后面的指数必须为整数;B项,为整数常量。答案选择C选项。108.下面对软件特点描述错误的是()。A、软件没有明显的制作过程B、软件是一种逻辑实体,不是物理实体,具有抽象性C、软件的开发、运行对计算机系统具有依赖性D、软件在使用中存在磨损、老化问题答案:D解析:软件的特点有:①具有抽象性,是逻辑实体;②没有明显的制作过程;③在使用期间不存在磨损、老化问题;④对硬件和环境具有依赖性;⑤复杂性高,成本昂贵;⑥开发涉及诸多的社会因素。答案选择D选项。109.以下选项中,能用作数据常量的是()。A、o115B、0118C、1-5e1.5D、115L答案:D解析:C语言中实型常量有两种表示:小数形式和指数形式。在指数形式中,字母e(或E)之前必须要有数字,且e或E后面的指数必须为整数,故C项错误;八进制整数常量以数字0开始,而不是o,故A项错误。在八进制数中的有效数字为0~7,故B项错误;L是长整型数据标识,115L为长整型常数即longint,D项正确。答案选择D选项。110.下面属于白盒测试方法的是()。A、边界值分析法B、基本路径测试C、等价类划分法D、错误推测法答案:B解析:白盒测试是把程序看成装在一只透明的白盒子里,测试者完全了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作。白盒测试的主要技术有逻辑覆盖测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论