国家二级C语言机试(选择题)模拟试卷26(共270题)_第1页
国家二级C语言机试(选择题)模拟试卷26(共270题)_第2页
国家二级C语言机试(选择题)模拟试卷26(共270题)_第3页
国家二级C语言机试(选择题)模拟试卷26(共270题)_第4页
国家二级C语言机试(选择题)模拟试卷26(共270题)_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

国家二级C语言机试(选择题)模拟试卷26(共9套)(共270题)国家二级C语言机试(选择题)模拟试卷第1套一、选择题(本题共40题,每题1.0分,共40分。)1、下列描述中不属于软件特点的是()。A、软件是一种逻辑实体,具有抽象性B、软件在使用中不存在磨损、老化问题C、软件复杂性高D、软件使用不涉及知识产权标准答案:D知识点解析:软件不像硬件一样具有实物的特性,而是一种逻辑实体,具有抽象性;开发复杂性高,成本昂贵;在运行、使用期间不存在磨损、老化问题。故A、B和C选项正确。由于软件是一种知识产品,受知识产权法的保护,所以D选项不正确。2、磁盘处于写保护状态时其中的数据A、不能读出,不能删改B、可以读出,不能删改C、不能读出,可以删改D、可以读出,可以删改标准答案:B知识点解析:磁盘处于写保护状态时其中的数据可以读出来,但是不能修改和删除。3、下列链表中,其逻辑结构属于非线性结构的是()。A、二叉链表B、循环链表C、双向链表D、带链的栈标准答案:A知识点解析:二叉链表是二叉树的链式存储结构,属于非线性结构,其余选项均属于线性结构,所以选择A。4、设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A、15B、16C、20D、0或35标准答案:D知识点解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0:第二种情况是队头指针第一次到达15,而尾指针第二次到达15,此时元素个数为35。5、有以下定义:inta;longb;doublex,Y;则以下选项中正确的表达式是A、a%(int)(x-Y)B、a=x<>yC、(a*y)%bD、y=x+y=x标准答案:A知识点解析:选项B)中<>运算符不存在,选项C)中double类型不能进行取余(%)操作,要求两个运算数必须是整数,选项D)中x+y=x错误。6、以下叙述中正确的是()。A、计算机只接收由0和1代码组成的二进制指令或数据B、计算机只接收由0和1代码组成的十进制指令或数据C、计算机可直接接收并运行C源程序D、计算机可直接接收并运行任意高级语言编写的源程序标准答案:A知识点解析:二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高低,晶体管的导通和截止等。二进制数运算简单,大大简化了计算中运算部件的结构,故选项A正确。7、以下叙述中正确的是A、a表示一一个字符常量B、’\0’表示字符0C、表达式:’a’>’b’的结果是“假”D、’\’"是非法的标准答案:C知识点解析:字符常量可以参加关系运算,按照其存储的ASCII码值进行比较,’a’>’b’不成立,值为假。而’\0’表示NULL,ASCII码值为0。8、若有定义:inta,b;通过语句scanf("%d;%d",&a,&b);能把整数3赋给变量a,5赋给变量b的输入数据是A、3,5B、35C、3;5D、35标准答案:C知识点解析:在采用scanf这个函数输入数据时,要严格遵守其输入的规则定义。本题此函数定义的规则是,在两个整数之间加分号输入。9、以下叙述中不正确的是()。A、在不同的函数中可以使用相同的名字的变量B、函数中的形式参数是局部变量C、在一个函数内定义的变量只在本函数范围内有效D、在一个函数内的复合语句中定义的变量在本函数范围内有效标准答案:D知识点解析:此题考查的是变量的作用范围。选项D)中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。10、下列叙述中正确的是A、在switch语句中必须使用defaultB、break语句必须与switch语句中的case配对使用C、在switch语句中,不一定使用break语句D、break语句只能用于switch语句标准答案:C知识点解析:break为C语言关键字,又称间断语句。break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。default是关键字,起标号的作用,代表所有case标号之外的那些标号。default标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有default标号。11、数据流图(DFD)中的有向箭头(→)表示A、数据流B、控制流C、输入流D、输出流标准答案:A知识点解析:数据流图(DataFlowDiagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流程图中有以下几种主要元素:→:数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成;□:数据源或宿(“宿”表示数据的终点)。代表系统之外的实体;○:对数据的加工(处理)。加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出:〓:数据存储。表示信息的静态存储。12、下列叙述中正确的是()。A、continue语句的作用是使程序的执行流程跳出包含它的所有循环B、break语句只能用在循环体内和switch语句体内C、在循环体内使用break语句和continue语句的作用相同D、break语句只能用于switch语句体中标准答案:B知识点解析:continue语句的作用是跳过循环体中剩余的语句而进行下一次循环,所以A选项错误。break语句的作用是终止正在执行的switch流程,跳出switch结构或者强制终止当前循环,从当前执行的循环中跳出,所以C、D选项错误。13、有以下程序:#includeintfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;plintfi“%d\n”,fun(2*a,fun(b,c)));}程序的运行结果是()。A、6B、3C、8D、12标准答案:A知识点解析:本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)的返回值为5,所以第二次调用为fun(8,5)=6,所以选择A选项。14、下列定义数组的语句中错误的是()。A、intnum[][3]:{{1,2},3,4,5,6};B、intnum[2][4]={{1,2},{3,4},{5,6}};C、intnum[]={1,2,3,4,5,6};D、intnum[][4]={1,2,3,4,5,6};标准答案:B知识点解析:B选项中定义的数组为2行4列,而赋值时赋成了3行,所以出错。15、以下选项中不合法的标识符是A、FORB、&aC、printD、_00标准答案:B知识点解析:合法的标识符要满足组成字符为a~z以及A~Z,数字字符0到9和下划线,其中数字不开头,不能是关键字。选项B)中,&不属于组成字符,是错误的。16、下面描述不属于软件特点的是A、软件是一种逻辑实体,具有抽象性B、软件在使用中不存在磨损、老化问题C、软件复杂性高D、软件使用不涉及知识产权标准答案:D知识点解析:计算机软件的特点:①软件是由一个人或许多人共同完成的高强度智力劳动的结晶,是建立在知识、经验和智慧基础上的具有独创性的产物,是一种逻辑实体,具有抽象性。由于软件具有独创性(即原始性),所以软件著作权人对软件产品依法享有发表权、开发者身份权、使用权、许可权、获得报酬权以及转让权;②软件产品是无形的,即没有质量,也没有体积及其他物理性质,它只收藏在某种有形的载体中,如磁盘等介质,而且是通过该载体进行交易;③软件产品的复制(批量生产)是极其简单的,其复制成本同其开发成本相比较,几乎可以忽略不计;④软件产品维护同17、sizeof(double)是A、一个双精度型表达式B、一个整型表达式C、一个不合法的表达式D、一种函数调用标准答案:B知识点解析:sizcof关键字为C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。18、软件设计一般划分为两个阶段,两个阶段依次是A、总体设计(概要设计)和详细设计B、算法设计和数据设计C、界面设计和结构设计D、数据设计和接口设计标准答案:A知识点解析:软件设计可以分为概要设计和详细设计两个阶段。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。所以选项A正确。19、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错main()/*Beginning*/{intr;floats;scanf("%d",r);s=*π*r*r;printf("s=%f\n",s);}出错的原因是A、注释语句书写位置错误B、存放圆半径的变量r不应该定义为整型C、输出语句中格式描述非法D、计算圆面积的赋值语句使用了非法变量标准答案:D知识点解析:本题考查了C语言的基本输入输出函数。选项A错误,代码里面的注释是正确的,“/*”和“*/”配对;选项B错误,r变量定义为整型是可以的;选项C输出语句格式正确;选项D正确,计算s的时候s=*π*r*r使用了未定义变量π。20、以下叙述中正确的是A、程序的算法只能使用流程图来描述B、N—S流程图只能描述简单的顺序结构的程序C、计算机可以直接处理C语言程序,不必进行任何转换D、结构化程序的三种基本结构是循环结构、选择结构、顺序结构标准答案:D知识点解析:结构化程序有三种基本结构循环结构、选择结构、顺序结构,描述算法常见的有文字描述,流程图,盒图,伪代码等。N-S图为盒图,可以描述比较复杂的程序结构,而计算机不能直接处理C程序,只能处理二进制代码。21、下列关于C语言文件的叙述中正确的是()。A、文件由一系列数据依次排列组成,只能构成二进制文件B、文件由结构序列组成,可以构成二进制文件或文本文件C、文件由数据序列组成,可以构成二进制文件或文本文件D、文件由字符序列组成,其类型只能是文本文件标准答案:C知识点解析:本题考查文件的概念。文件由数据序列组成,可以构成二进制文件或文本文件,所以答案为C选项。22、以下叙述中正确的是A、C语言程序总是从最前面的函数开始执行B、C语言程序总是从main函数开始执行C、C语言程序中main函数必须放在程序的开始位置D、C语言程序所调用的函数必须放在main函数的前面标准答案:B知识点解析:C语言中一个源程序都有一个且只能有一个main函数,即主函数:C语言规定必须用main作为主函数名。其后的一对圆括号中可以是空的,但不能省略。程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个程序都必须有一个且只能有一个主函数。一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而调用函数的定义位置和调用没有直接关系。23、以下选项中关于C语言常量的叙述错误的是A、常量分为整型常量、实型常量、字符常量和字符串常量B、经常被使用的变量可以定义成常量C、常量可分为数值型常量和非数值型常量D、所谓常量,是指在程序运行过程中,其值不能被改变的量标准答案:B知识点解析:常量指在程序运行过程中,其值不能被改变的量。常量分为整型常量(即整常数)、实型常量、字符型常量和字符串常量。常量也可以按数据类型分为为数据常量和非数据常量。变量是指在程序运行过程中,其值能被改变的量。24、若在定义语句:inta,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是A、scanf("%d%d%d",a,b,c);B、scanf("%d",a,b,c);C、scanf("%d",p);D、scanf("%d",&p);标准答案:C知识点解析:程序语句inta,b,c,*p=&c;定义了三个整型变量a,b,c,和一个整型指针变量p,并且把变量c的地址赋给p。scanf函数的一般形式为“scanf(“格式控制字符串”,地址列表)”,其中的地址列表应当是存放输入数据变量的地址。25、以下叙述中正确的是A、打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖B、在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第个数据C、C语言中的文件是流式文件,因此只能顺序存取数据D、当对文件的读(写)操作完成之后,、必须将它关闭,否则可能导致数据丢失标准答案:D知识点解析:在C语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以“a”的方式对一个已打开的文件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。26、有下列程序:#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen("d2.dat","rb");fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printf("%d",a[i]);}程序的运行结果是A、1,2,3,1,2,3,0,0,0,0,B、1,2,3,0,0,1,2,3,0,0,C、123,0,0,0,0,123,0,0,0,0,D、1,2,3,O,O,0,0,0,0,0,标准答案:B知识点解析:首先用函数fopen()以“wb”的方式打开文件“d2.dat”,然后调用两次fwtite函数将数组a的5个元素,依次输出到文件fp中,共10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为“1,2,3,0,0,1,2,3,0,0”。27、有以下程序voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序的运行结果是A、876543B、321678C、1098765D、345678标准答案:B知识点解析:函数fun(inta[],intn)的功能是实现整型数组a[]元素的逆置操作。在主函数中当执行fun(k,5)时,对k[10]中的子数组k[5]={1,2,3,4,5}的首尾元素进行逆置,此时k[10]={5,4,3,2,1,6,7,8,9,10}。所在循环语句中输出从第2~7个数组元素时,其值分别为321678。28、在函数调用过程中,如果函数如funA调用函数funB,函数funB又调用了函数如funA,则A、称为函数的直接递归调用B、称为函数的间接递归调用C、称为函数的循环调用D、C语言中不允许这样的递归调用标准答案:B知识点解析:本题考查递归的概念,C语言中函数可以直接或间接调用自身,称为递归调用。本题中funA调用funB,然后funB又调用funA,即funA间接调用了自身。29、若有以下程序#includetypedefstructstu{charname[10],gender;intscore;}STU;voidf(STUa,STUB){b=a;printf("%s,%c,%d,",,b.gender,b.score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(a,b);printf("%s,%c,%d\n",,b.gender,b.score);}则程序的输出结果是A、Qian,f,350,Qian,f,350B、Zhao,m,290,Zhao,m,290C、Zhao,m,290,Qian,f,350D、Zhao,m,290,Zhao,f,350标准答案:C知识点解析:本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会首先输出被重新复制的b值,且与a相同,而执行完f函数后,b值并不会改变,所以还是维持原值,选项C正确。30、有以下程序#include<stdio.h>inta=1,b=2;voidfun1(inta,intb)main(){printf("%d%d",a,b);}{fun1(5,6);fun2();voidfun2()printf("%d%d\n",a,b);{a=3;b:4;}}程序运行后的输出结果是A、3456B、1256C、5612D、5634标准答案:D知识点解析:函数fun1()的作用是输出局部变量a和b的值,在主函数中执行fun1(5,6)的结果是输出5,6;函数。fun2()的作用是给变量a和b分别赋值3,4;执行fun2()的作用是输出3,4。31、以下叙述中正确的是A、结构体类型中的各个成分均不能是数组或指针B、结构体类型的变量,不能在声明结构体类型组成时一起定义C、使用typedef定义新类型名后,新类型名与原类型名实际上是等价的D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义标准答案:C知识点解析:C语言允许用typedef说明一种新类型名,typedef语句的作用仅仅是用“标识符”来代表己存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。结构体变量定义有下面三种形式:(1)先定义结构,再说明结构变量。(2)在定义结构类型的同时说明结构变量。(3)直接说明结构变量。32、有以下程序#include<stdio.h>main(){inta=2,b;b=a<<2;printf("%d\n",b);}A、4B、6C、8D、2标准答案:C知识点解析:表达式a<<2,把a向左移动2位,相当于扩大4倍。33、以下叙述中正确的是A、charca[3][5]={"A","BB","CCC"};是不合语法的B、字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组C、charca[][5]={"A","BB","CCC"};是不合语法的D、char*ca[3]={"A","BB","CCC"};是不合语法的标准答案:B知识点解析:字符串数组,也就是二维字符数组,其中每个元素为一个字符串,选项B)的说法正确。选项A)和C)对于ca的定义是正确的。选项D)定义一个指针数组,可以保存多个字符串的首地址。34、有以下函数intfun(char*s){char*t=s;while(*t++);return(t-s);)该函数的功能是A、比较两个字符串的大小B、计算s所指字符串的长度C、计算s所指字符串占用内存字节的个数D、将s所指字符串复制到字符串t中标准答案:C知识点解析:在函数fun(char*s)中,首先用字符指针变量t指向s,而循环语句while(*t++);的功能是使指针变量t指向字符串变量s的末尾,这时退出循环,因而语句return(t-s);返回的就是字符串s所指字符串的长度。35、以下程序段中的变量已正确定义for(i=0;i<4;i++,i++)for(k=l;k<3;k++);printf("*");程序段的输出结果是A、********B、****C、**D、*标准答案:A知识点解析:本题考查循环语句,题中第二个(内层)for循环之后有一个分号,意思是每次循环中的操作为空,不执行任何操作。再循环结束后执行printf语句,即只打出一个*。36、结构化程序设计中,下面对goto语句使用描述正确的是A、禁止使用goto语句B、使用goto语句程序效率高C、应避免滥用goto语句D、以上说法均错误标准答案:C知识点解析:结构化程序设计中,要注意尽量避免goto语句的使用,故选C。37、有如下程序#include#defineD(x)4*x+1main(){inti=2,j=4;printf("%d\n",D(i+j));}程序运行后的输出结果是()。A、8,32B、16,32C、8,16D、16,16标准答案:A知识点解析:宏替换是使用宏名代替一个字符串,是一种机械的、简单的置换,直接在替换处展开而不做语法检测,所以FNA(FNB(a))=FNB(a)*FNB(a)=a+a*a+a,结果为8,语句FNB(FNA(b))=FNA(b)+FNA(b)=b*b+b*b,结果为32,所以答案选A。38、软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是A、测试B、设计C、可行性研究D、实现标准答案:C知识点解析:开发阶段包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计3个阶段,实施则包括编码和测试两个阶段,C不属于开发阶段。39、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是A、1:1联系B、m:1联系C、1:m联系D、m:n联系标准答案:C知识点解析:两个实体集间的联系实际上是实体集间的函数关系,主要有一对一联系(1:1)、一对多联系(1:m)、多对一联系(m:1)、多对多联系(m:n)。对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系(1:m),答案选C。40、已定义以下函数intfun(int*p){return*p;}fun函数返回值是A、一个整数B、不确定的值C、形参p中存放的值D、形参p的地址值标准答案:A知识点解析:返回值为指针变量指向的数据,该数据已被定义为整型。因此A选项正确。国家二级C语言机试(选择题)模拟试卷第2套一、选择题(本题共25题,每题1.0分,共25分。)1、软件生命周期是指()。A、软件产品从提出、实现、使用维护到停止使用退役的过程B、软件从需求分析、设计、实现到测试完成的过程C、软件韵开发过程D、软件的运行维护过程标准答案:A知识点解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始到该软件产品不能使用为止的整个时期都属于软件生命周期。2、以下叙述中正确的是A、标识符的长度不能任意长,最多只能包含16个字符B、语言中的关键字不能作变量名,但可以作为函数名C、用户自定义的标识符必须“见名知义”,如果随意定义,则会出编译错误D、标识符总是由字母、数字和下划线组成,且第一个字符不得为数字标准答案:D知识点解析:标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。C语言合法标识符的命名规则是:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线;③大写字母与小写字母被认为是两个不同的字符;④C语言规定了一个标识符允许的字符个数,为32,超过的字符将不被识别。C语言的标以符可分为以下3类:①火键字,不能用于为自定义标识符命名。②预定义标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知义,但是没有特殊规定。3、下列描述中正确的是A、软件测试应该由程序开发者来完成B、程序经调试后一般不需要再测试C、软件维护只包括对程序代码的维护D、以上三种说法都不对标准答案:D知识点解析:为了达到好的测试效果,应该由独立的第三方进行测试工作。因为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度是会不同程度地存在障碍的,所以选项A错误。在程序调试时,修改了一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项B错误。所谓软件维护,就是将交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改,所以选项C错误。4、数据库设计中反映用户对数据要求的模式是A、内模式B、概念模式C、外模式D、设计模式标准答案:C知识点解析:概念模式,是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(DataDescriptionLanguage,DDL,)来描述、定义的,体现、反映了数据库系统的整体观。外模式对应于用户级,它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,也称为子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它反映了用户对数据的要求。包含模式中允许特定用户使用的那部分数据,用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DataManipulationLaJlguage,DML)对这些数据记录进行描述。内模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。5、若有定义语句:intx=10;,则表达式x-=x+x的值为()。A、0B、-20C、-10D、10标准答案:C知识点解析:算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C选项。6、计算机程序设计的模块化一般是哪一项实现的?()A、语句B、程序行C、函数D、变量标准答案:C知识点解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,多个函数便可以实现程序的模块化设计。7、下列叙述中错误的是A、C程序可以由多个程序文件组成B、一个C语言程序只能实现一种算法C、C程序可以由一个或多个函数组成D、一个C函数可以单独作为一个C程序文件存在标准答案:B知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。在C语言中一个算法是用函数来实现的。一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C语言程序可以实现多种算法。8、软件生命周期可分为定义阶段、开发阶段和维护阶段,下面属于开发阶段任务的是A、软件运行B、可行性研究C、软件开发计划D、软件集成测试标准答案:D知识点解析:开发阶段由三个阶段组成:设计、实现和测试。可行性研究和软件开发计划属于定义阶段;软件运行属于维护阶段。9、对于一个正常运行的C程序,以下叙述中正确的是A、程序的执行总是从程序的第一个函数开始,在main函数结束B、程序的执行总是从main函数开始,在程序的最后一个函数中结束C、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D、程序的执行总是从main函数开始标准答案:D知识点解析:一个C语言源程序无论包括了多少函数,在正常情况下总是从main函数开始执行,从main函数结束。10、在满足实体完整性约束的条件下A、一个关系中应该有一个或多个候选关键字B、一个关系中只能有一个候选关键字C、一个关系中必须有多个候选关键字D、一个关系中可以没有候选关键字标准答案:A知识点解析:在关系数据库中,实体完整性的概念是主属性不能为空。在满足实体完整性的前提下,必须在关系中存在主属性,也就是在关系中应该有候选关键字。一个关系中可以有一个或者多个候选关键字。11、若有定义语句intb=2;,则表达式(b<<2)/(3||b)的值是()。A、4B、8C、0D、2标准答案:B知识点解析:2的二进制数为010,左移两位后的二进制数为01000,转成二制数为8,(3||2)为真即1,8/1=8,所以结果为8。12、学院的每名教师只能属于一个系,则实体系和实体教师间的联系是A、一对多B、多对多C、多对一D、一对一标准答案:A知识点解析:一对多关系是关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。本题中一个是体系有多个老师,但老师只能属于一个系,因此是一对多关系。13、以下程序函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序voidflintb[],intn,intflag)main(){intid,t;{inta[10]={5,4,3,2,1,6,7,8,9,10},i;for(i=0;ib[j]:b[i]A、1,2,3,4,5,6,7,8,9,10,B、3,4,5,6,7,2,1,8,9,10,C、5,4,3,2,1,6,7,8,9,10,D、10,9,8,7,6,5,4,3,2,1,标准答案:B知识点解析:本题主要考查函数的调用。在main函数中,两次调用f函数进行排序,f函数有三个参数,第一个参数是数组地址,第二个参数是需要排序的数据个数,第三个参数指定排序依据。第一次调用f函数的时候,从第三个元素开始对5个元素进行从大到小的排序,因此调用f函数转换数组a的值分别为:5,4,7,6,3,2,1,8,9,10;第二次调用f函数对数组a的前5个元素进行从小到大的排序,因此排序完成后数组a的值变成;3,4,5,6,7,2,1,8,9,10。14、sizeof(double)是A、一个双精度型表达式B、一个整型表达式C、一个不合法的表达式D、一种函数调用标准答案:B知识点解析:sizeof关键字为C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。15、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的输出结果是A、a=10b=50c=30B、a=10b=30c=10C、a=10b=50c=10D、a=50b=30c=50标准答案:C知识点解析:本题的程序段首先定义三个整型变量a,b,c,并且其初始值分别等于10,50,30,然后判断a>b是否成立,如果条件成立,则把b的值赋给a,把c的值赋给b。由a和b的初始值可知,此条件表达式不成立,所以a和b的值保持不变。再执行下一条语句,把a的值赋给c,所以c的当前值等于10,最后由输出语句输出变量a,b,c的当前值,分别为10,50,10。16、以下结构体类型说明和变量定义中正确的是A、typedefstruct{intn;charc;}REC;RECtl,t2;B、structREC;{intn;charc;);RECt1,t2;C、typedefstructREC;{intn=0;charc=’A’;}tl,t2;D、struct{intn;charc;}REC;RECtl,t2;标准答案:A知识点解析:定义结构体类型的一般形式为:struct结构体名{成员列表};struct结构体名后不能加“:”号,所以选项B、C错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为structt1,t2:选项A为用户自定义类型,其为正确的定义形式。17、有以下程序#include#includeStructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={1001,"ZhangDa",1098.0};al=f(a);printf("%d,%s,%6.1f\n",a.a,a,b,a.c);}structAf(StructAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returnt;}程序运行后的输出结果是A、1002,ZhangDa,1202.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0标准答案:B知识点解析:在主函数中定义结构体A的变量a,并对其赋初值,再调用函数f(a),在函数f(a)中对结构体变量a的各个成员重新进行了赋值操作,并把其值返回在屏幕上输出。18、设有定义语句:char*aa[2]={"abcd","ABCD"};则以下叙述正确的是A、aa数组的两个元素只能存放含有4个字符的一维数组的首地址B、aa数组的值分别是字符串"abcd"和"ABCD"C、aa是指针变量,它指向含有两个元素的字符型数组D、aa[0]存放了字符串"abcd"的首地址标准答案:D知识点解析:题目中char*aa[2],定义了指针数组aa,有两个元素,aa[0]存放"abcd"地址,而aa[1]存放"ABCD"地址。19、有下列程序:main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf("%d",t[2-i][i]);}程序执行后的输出结果是A、753B、369C、751D、357标准答案:D知识点解析:由于在程序中定义了二维数组t[][3]={9,8,7,6,5,4,3,2,1};由二维数组的存储方式按行存储,即初始化完第一行的所有列再初始化下一行的元素。可知这是一个3行3列的二维数组,第一行的元素为{9,8,7},第二行的元素为{6,5,4},第三行的元素为{3,2,1}。然后用for循环输出t[2][0]、t[1][1]、t[0][2],它们的值分别为3、5、7。20、以下叙述中正确的是A、int*p1;int**p2;int*p3;都是合法的定义指针变量的语句B、指针变量只能通过求地址运算符(&)来获得地址值C、语句p=NULL;与p=\0;是等价的语句D、语句p=NULL;执行后,指针p指向地址为0的存储单元标准答案:A知识点解析:B选项描述不正确,指针变量可以通过求地址运算符(&)来获得地址值,可以通过指针变量获得地址值,还可以通过标准函数获得地址值;C选项中,p=NULL;和p=0;或p=’\0’;等价;D选项中,语句p=NULL;执行后,指针p并不是指向地址为0的存储单元,而是具有一个确定的值-"空"。因此A选项正确。21、有以下程序,程序运行后的输出结果是#include<stdio.h>#defineSUB(X,Y)(X+1)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}A、20B、12C、16D、25标准答案:C知识点解析:宏展开的结果(a+++1)*b++,后缀自加表达式参加运算,先用a和b的初值得到表达式的值,进行计算,然后a和b在自加。因此计算结果为16。22、有以下程序#includevoidfun(int*x,ints,intn){inti;for(i=s;i>=n;i--)*(x+i+3)=*(x+i);}main(){intm[]={0,1,2,3,4,5,6,7,8,9},k;fun(m,10-4,3);for(k=0;k<10;k++)printf("%d",m[k]);}程序的运行结果是()。A、0123453456B、0123456345C、0123456666D、0123454569标准答案:A知识点解析:函数fun()的功能是将数组x下标为n+3至s+3的元素被下标为n到s的元素覆盖,所以调用函数fun(m,10-4,3);结束后数组m中第7到10个元素被数组m的第4到7个元素覆盖,数组中的元素为{0,1,2,3,4,5,3,4,5,6},答案选A。23、有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}A、50B、45C、60D、55标准答案:C知识点解析:在函数intfun(intx[],intn)的定义中,变量sum使用了static修饰符,这说明了变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储区中占据着永久的存储单元。即使退出函数之后,下次再进入该函数时,静态局部变量继续使用原来存储单元中原来的值。函数intfun(intx[],intn)的功能是求出数组x[]各个元素的和。所以在主函数中,调用函数Fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用Fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。24、有以下程序structS{inta,b;)data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是A、11B、20C、21D、10标准答案:C知识点解析:在题目中定义了结构体S类型的数组变量data,并对其赋初值。在程序中定义了指向结构体S类型的变量p,并把数组data的第二个元素data[1]的值赋给它,所以此时成员变量p.a的值等于20,在输出时分别加1,所以输入结果为选项C。25、有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母#include#includevoidfun(char*p){inti=0;while(p[i]){if(p[i]==’’&&islower(p[i-1]))p[i-1]=p[i-1]-’a’+’A’;i++;}}main(){chars1[100]="abcdEFG!";fun(s1);printf("%s\n",s1);}程序运行后的输出结果是A、abcdEFg!B、AbCdEFg!C、abcdEFG!D、aBcDEFG!标准答案:D知识点解析:调用fun函数后,实参数组名s1传给形参指针p,p也指向数组s1。fun函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句p[i-1]=p[i-1]-’a’+’A’;即p[i-1]=p[i-1]-32,意思是将p[i-1]中的字符转换为大写。因此D选项正确。国家二级C语言机试(选择题)模拟试卷第3套一、选择题(本题共25题,每题1.0分,共25分。)1、下面属于整数类的实例是()。A、0x518B、0.518C、-518D、518E-2标准答案:A知识点解析:选项B)和选项D)均为小数,选项C)为字符串常量,选项A表示的是十六进制整数,所以选A)。2、设循环队列的存储空间为Q(1:m),初始状态为front=rear=m。经过一系列正常的操作后,front=1,rear=m。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为A、mB、m-1C、m-2D、1标准答案:C知识点解析:经过一系列正常的操作后,front=1,rear=m,那么最坏情况下需要的比较次数为rear-front-1=m-1-1=m-2。3、下列各选项中,不属于序言性注释的是()。A、程序标题B、程序设计者C、主要算法D、数据状态标准答案:D知识点解析:注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。4、若有以下程序#includemain(){intb=10,a=-11;a%=b%=4;printf("%d%dha",a,b);}则程序的输出结果是A、12B、.1.2C、-12D、1-2标准答案:C知识点解析:对于表达式a%=b%=4为复合的赋值运算,结合性自右至左,相当于先计算b=b%4,a=a%b;结果的符号和第一个操作数的符号相同,因此b为2,a的结果为-1.5、有以下程序#includemain(){intx;scanf("%d",&x);if(x<=3);elseif(x!=10)printf("%d\n",x);}程序运行时,输入的值在哪个范围才会有输出结果A、不等于10的整数B、大于3或等于10的整数C、小于3的整数D、大于3且不等10的整数标准答案:D知识点解析:题目中,虽然else和第二个if不在同一行上,但等价于在同一行上,因此,程序的意思是当x大十3且不等于10时打印出来。6、在E-R图中,用来表示实体联系的图形是A、椭圆形B、矩形C、菱形D、三角形标准答案:C知识点解析:构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity)一用矩形表示;属性(Attribute)-椭圆形表示,联系(Relationship)一用菱形表示,菱形框内写明联系名。7、数据字典(DD)所定义的对象都包含于()。A、软件结构图B、方框图C、数据流图(DFD图)D、程序流程图标准答案:C知识点解析:数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各元素做出详细的说明。8、数据库系统的核心是A、数据模型B、数据库管理系统C、数据库D、数据库管理员标准答案:B知识点解析:数据库管理系统(DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。所以,数据库管理系统是数据系统的核心。9、数据库管理系统的基本功能不包括A、数据库访问B、数据库定义C、数据库的建立和维护D、数据库和网络中其他系统的通信标准答案:D知识点解析:数据库管理系统的主要功能包括:数据库定义,数据操作,数据库的运行管理,数据组织、存储与管理,数据库的保护,数据库的维护和通信。数据库不能和网络中的其他系统通信。10、公司的开发人员可以同时参加多个项目的开发,则实体开发人员和实体项目问的联系是A、多对多B、一对多C、多对一D、一对一标准答案:A知识点解析:多对多关系是关系数据库中两个表之间的一种关系,该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关。第二个表中的一个行也可以与第一个表中的一个或多个行相关。本题中,开发人员可以同时参加多个项目,而一个项目也需要多个开发人员来完成,因此,是多对多关系。11、设有课程关系模式:R(C#,Cn,T,TA)(其中,C#为课程号,Cn为课程名,T为教师名,Ta为教师地址)并且假定不同课程号可以有相同的课程名,每个课程号下只有一位任课教师,但每位教师可以有多门课程。关系R中对主属性的传递依赖为A、(C#,T)→TaB、C#→Cn,Cn→TaC、C#→T,T→TaD、C#→Tn标准答案:C知识点解析:R关系模式中,不同课程号可以对应相同的课程名而每个课程号下自由一位任课教师,因此课程号和教师名为传递依赖、教师名和教师地址为传递依赖,因此R对主属性的传递依赖为“C#→T→Ta”。12、一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是A、一对多B、一对一C、多对一D、多对多标准答案:A知识点解析:因为一个实体运动队有多个队员,一个队员仅属于一个运动队。所以实体运动队和队员的联系是一对多。选项A正确。13、若有定义语句:doublea,*p=&a;以下叙述中错误的是A、定义语句中的*号是一个说明符B、定义语句中的p只能存放double类型变量的地址C、定义语句中*p=&a把变量a的地址作为初值赋给指针变量pD、定义语句中的*号是一个间址运算符标准答案:D知识点解析:在指针定义语句“doublea,*p=&a”中,指针变量p前面的*号,只是一个说明符,说明变量p是指针类型的变量。14、有以下程序#includeinta=1,b=2;voidfunl(inta,intb){printff"%d%d",a,b);)voidfun2(){a=3;b=4;)main(){fun1(5,6);fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是A、3456B、1256C、5612D、5634标准答案:D知识点解析:函数fun1()的作用是输出局部变量a和b的值,在主函数中执行fun1(5,6)的结果是输出5,6:函数fun2()的作用是给变量a和b分别赋值3,4;执行fun2()的作用是输出3,4。15、表达式3.6-5/2+1.2+5%2的值是A、4.3B、4.8C、3.3D、3.8标准答案:D知识点解析:计算5/2,结果取整数值2。计算3.6-2,结果与高精度数据保持一致,即为1.6。计算1.6+1.2,结果为2.8。计算5%2,结果为1。计算2.8+1结果为3.8。所以选择D选项。16、若变量已正确定义,在if(W)pfintf(”%d\11”,k);中,以下不可替代W的是A、ch=getchar(1B、a--b+cC、a<>b+cD、a++标准答案:C知识点解析:在if()语句的括号是一个合法的C语言表达式即可,如果表达式的值为0,则不执行if语句,否则执行if语句,而在选项C中,符号<>不是C语言的合法运算符,如果要表达a大于或小于b+c可用a!b+c或(a>b+c)‖(ab+c。所以它不是一个合法的C语言表达式。17、有以下程序#includeintfun(inta,intB){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z--);printf("%d\n",r);}程序运行后的输出结果是A、21B、15C、20D、31标准答案:A知识点解析:函数fun的功能是返回两个形参的和。调用函数fun(x,y)时,将变量x=6和y=7的值分别传送变量a和b,并且通过语句returna+b;将13返回给主函数。继续调用函数fun(13,z--),这里z--指将z的值参与运算后,再将z的值减1操作;将13和8分别传送变量a和b,且通过语句returna+b;将21返回给主函数。因此A选项正确。18、下列选项中,能正确定义数组的语句是A、intnum[];B、intN=2008;intnum[N];C、intnum[0..2008];D、#defineN2008intnum[N];标准答案:D知识点解析:在定义一维数组时,数组的下标应该是一个确定的整数值。要注意的是在定义二维数组时,其第一维下标可以省略,但第二维下标不能省略。19、下列程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序voidflintb[],intn,intflag)main(){inti,j,t;{inta[10]={5,4,3,2,1,6,7,8,9,10},i;for(i=0;ib[j]:b[i]A、1,2,3,4,5,6,7,8,9,10,B、3,4,5,6,7,2,1,8,9,10,C、5,4,3,2,l,6,7,8,9,10,D、10,9,8,7,6,5,4,3,2,1,标准答案:B知识点解析:主函数中进行了两次f函数的调用。第一次传递给形参数组b的地址为元素a[2]的地址,n接收数据位5,因此数组b中元素为3,2,1,6,7,此时nag的值为0,进行由大到小排序,而数组b和实参数组a共用一段存储空间,第一次调用结束以后,数组a的值为5,4,7,6,3,2,1,8,9,10。第二次调用f函数,形参数组接收实参数组a的首地址,取5个元素,由小到大排序,调用结束以后,数组a的值为3,4,5,6,7,2,1,8,9,10。20、为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在处应填入的选项是Structlink{chardata;}node;A、structlink*next;B、linknext;C、link*next;D、structlinknext;标准答案:A知识点解析:单链表为动态分配的存储空间,在分配时,每个结点之间可以是不连续的(结点内是连续的)。结点之间的联系用指针实现,即在结点结构中定义一个成员项用来存放下一结点的首地址,这个用于存放地址的成员,常把它称为指针域,该指针为了保持链表中结点的地址,因此其基类型和结点的类型相同,选项为A。21、有以下程序intd=1;voidfun(intp){intd=5;d+=p++;printf("%d",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}程序的输出结果是A、96B、94C、84D、85标准答案:C知识点解析:代码考查点为全局变量和局部变量的同名问题,若全局变量和某个函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,访问的是局部变量,与同名的全局变量不发生任何关系。主函数执行fun(3)时候,执行调用函数fun,使用局部变量d=5,执行d+=p++,相当于d=d+(p++),得到d的值为8,输出。函数调用结束,转到主函数,继续执行d+=a++,此时d为全局变量,执行语句以后,d值为4。22、若有以下程序#includeintk=7;voidf(int**s){int*t=&k;*s=t;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,*p=&i,**r=&p;f(r);printf("%d,%d,%d\n",i,*p,**r);}则程序的输出结果是A、3,7,7,7,7,7B、7,7,7,3,3,3C、3,3,3,7,7,7D、7,7,7,3,7,7标准答案:D知识点解析:本题考查了二级指针,二级指针可以保存一级指针的地址。主函数中p指向i,r指向p,函数调用后s指向p,在f函数中t指向全局变量k=7,s指向t,同时s保存了实参p的地址,此时p也指向t,输出三个7,流程转到主函数,i的值为3,p以及r的值为7。23、以下语句中存在语法错误的是A、charss[][20]={"right?"};B、char*ss[6];ss[1]="right?";C、char*ss[]={"right?"};D、charss[6][20];ss[1]="right?";标准答案:A知识点解析:选项A中定义了二维数组ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到,而选项C和A不同,选项C为指针数组,对于指针变量可以保存常量字符串的地址。24、有以下程序#include#includemain(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。A、3,3,3B、2,2,3C、1,2,3D、1,1,3标准答案:A知识点解析:语句"a=b=c=(int*)malloc(sizeof(int));"将指针a、b、c指向了同一个内存地址,所以,*a、*b、*c始终保持一致,语句"*a=1;*b=2,*c=3;"执行完毕后,*a=*b=*c=3,语句"a=b"只是把b指向的地址指给指针a,执行完毕后仍然*a=*b=*c=3,所以输出结果为选项A)。25、C语言程序中,运算对象必须是整型数的运算符是A、&&B、/C、%D、*标准答案:C知识点解析:%取余运算是二目运算符,且要求运算对象必须为整数,所以选C。国家二级C语言机试(选择题)模拟试卷第4套一、选择题(本题共40题,每题1.0分,共40分。)1、下列叙述中正确的是A、有一个以上根结点的数据结构不一定是非线性结构B、只有一个根结点的数据结构不一定是线性结构C、循环链表是非线性结构D、双向链表是非线性结构标准答案:B知识点解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。2、下面叙述中正确的是()。A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:A知识点解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。3、下列与队列结构有关联的是A、函数的递归调用B、数组元素的引用C、多重循环的执行D、先到先服务的作业调度标准答案:D知识点解析:队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。4、软件生存周期中,解决软件“做什么”的阶段是()。A、需求分析B、软件设计C、软件实现D、可行性研究标准答案:A知识点解析:软工生命周期可细化为可行性研究和计划制定、需求分析、软件设计(总体设计和详细设计)、编码、软件测试、运行和维护等阶段。需求分析是对待开发软件提出的需求进行分析并给出详细定义,是解决软件“做什么”的阶段。软件设计是解决软件“怎么做”的阶段。5、下面不属于软件需求规格说明书内容的是()。A、软件的可验证性B、软件的功能需求C、软件的性能需求D、软件的外部接口标准答案:A知识点解析:软件需求规格说明应重点描述软件的目的,软件的功能需求、性能需求、外部接口、属性及约束条件等。6、下面不属于软件需求规格说明书内容的是()。A、软件的可验证性B、软件的功能需求C、软件的性能需求D、软件的外部接口标准答案:A知识点解析:软件需求规格说明应重点描述软件的目的,软件的功能需求、性能需求、外部接口、属性及约束条件等。7、若有以下程序,则程序的输出结果是#includemain(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-0’;printf("%c%d\n",c1,c2);}A、H9B、H’9’C、F’9’D、表达式不合法输出无定值标准答案:A知识点解析:字符常量允许进行简单的算术运算,则’C’+5表示H,而’9’-’0’则表示数值9。8、有以下程序#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知识点解析:存程序中,整形变量x、y的初值郜为1,赋值语句z=x++,y++,++y右边的“x++,y++,++y”是一个逗号表达式,所以逗号表达式的值为++y的值。执行逗号表达式“x++,y++,++y”后,x的值为2,y的值为3,z取逗号表达式的值,为1。9、以下不合法的数值常量是()。A、8.0E0.5B、1e1C、011D、0xabcd标准答案:A知识点解析:A选项中E后面的指数必须为整型数据,所以错误。C选项中011表示的是八进制常量,0xabcd表示的是十六进制常量。10、数据库设计的根本目标是要解决A、数据共享问题B、数据安全问题C、大量数据存储问题D、简化数据维护标准答案:A知识点解析:数据库应用系统中的一个核心问题就是设计一个能满足用户要求、性能良好的数据库,这就是数据库设计。数据库设计是在一定平台制约下,根据信息需求与处理需求设计出性能良好的数据模式。数据库设计的根本目标是要解决数据共享的问题。11、下列叙述中正确的是A、在switch语句中必须使用defaultB、break语句必须与switch语句中的case配对使用C、在switch语句中,不一定使用break语句D、break语句只能用于switch语句标准答案:C知识点解析:break为C语言关键字,又称间断语句。break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。default是关键字,起标号的作用,代表所有case标号之外的那些标号。default标号可以出现在语句体中任何标号位置上。在switch语句体中也可以没有default标号。12、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。A、1B、0C、2D、不知道a的值,不能确定标准答案:A知识点解析:逻辑或“||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为1,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零。13、有以下程序:#include<stdio.h>main(){inty=10;while(Y一);printf(’’y=%d\n’’,y);}程序执行后的输出结果是()。A、y=0B、y=-1C、y=1D、while构成无限循环标准答案:B知识点解析:执行y-直到值为0,由于y-是先用再减,所以退出循环时,y的值为-1。14、若有以下程序main(){inta=-2,b=0;do{++b;)while(a++);printf(’’%d,%d\n’’,a,b);)则程序的输出结果是A、0,2B、1,2C、1,3D、2,3标准答案:C知识点解析:由于a的初始值等于.2,所以while循环语言执行三次结束,第一次a=-2,b=1,然后判断循环条件a++非零,执行第二次循环体a=-1,b=2,判断循环条件非零,执行循环体a=0,b=3,判断循环条件为0,此时变量a的值等于1。15、若有定义语句:char*s1="OK",*s2="ok";以下选项中,能够输出"OK"的语句是A、if(strcmp(s1,s2)!=0)puts(s1);B、if(strcmp(s1,s2)!=0)puts(s2);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);标准答案:A知识点解析:字符串比较函数strcmp的功能是对s1和s2所指字符串进行比较。如果s1s2,返回正数,所以对于本题米说,能够输出“OK”的语句是选项A)所指的语句。16、在E—R图中,用来表示实体的图形是A、矩形B、椭圆形C、菱形D、三角形标准答案:A知识点解析:作E—R图中,用矩形表示实体集,在矩形内写上该实体集的名字;用椭圆形表示属性:用菱形(内部写上联系名)表示联系。17、有以下程序#includeintfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A、4B、1C、OD、8标准答案:A知识点解析:在子函数fun()中定义局部静态变量x,其初值等于1,然后再把其值扩大1倍后返回。在主函数中执行for循环语句2次,调用函数fun()两次,所以变量s的值等于4。这里要强调的一点是当函数fun()执行完毕后,局部静态变量x的值不会丢失,仍然有效。18、下列叙述中正确的是A、数据库系统减少了数据冗余B、经规范化后的数据库系统避免了一切冗余C、数据库系统比文件系统能管理更多的数据D、数据库系统中数据的一致性是指数据类型一致标准答案:A知识点解析:数据库主要特点:实现数据共享、减少数据的冗余度、数据的独立性、数据实现集中控制、数据一致性和可维护性,以确保数据的安全性和可靠性和故障恢复。所谓数据一致性,就是当多个用户试图同时访问一个数据库,它们的事务同时使用相同的数据时,可能会发生以下四种情况:丢失更新、未确定的相关性、不一致的分析和幻想读。19、以下叙述中正确的是A、在C语言程序设计中,所有函数必须保存在一个源文件中B、在算法设计时,可以把复杂任务分解成一些简单的子任务C、只要包含了三种基本结构的算法就是结构化程序D、结构化程序必须包含所有的二三种基本结构,缺一不可标准答案:B知识点解析:模块化设计思想,就是把复杂的任务分成简单的子任务,用函数或者过程捕述子任务,C语言中一个程序可以包括多个源文件,每个源文件可以有若干个函数,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成,不一定全要包括这三种结构,而算法不等于程序。20、设有定义语句:char*aa[2]={"abcd","ABCD"};则以下叙述正确的是A、aa数组的两个元素只能存放含有4个字符的一维数组的首地址B、aa数组的值分别是字符串"abcd"和"ABCD"C、aa是指针变量,它指向含有两个元素的字符型数组D、aa[0]存放了字符串"abcd"的首地址标准答案:D知识点解析:题目中char*aa[2],定义了指针数组aa,有两个元素,aa[0]存放"abcd"地址,而aa[1]存放”ABCD"地址。21、有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fpr4ntf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的运行结果是()。A、321B、12300C、1D、123标准答案:D知识点解析:程序首先将数组a[10]中的元素1、2、3分别写入了文件d1.dat文件中,然后又将d1.dat文件中的数据123整体写到变量n的空间中,所以打印n时输出的数据为123。22、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)()。A、printf("%d\n",’A’);B、printf("%c\n",’a’-32);C、printf("%c\n",65);D、printf("%c\n",’B’-1);标准答案:A知识点解析::printf函数中的格式控制符若为"%d"则表示按照十进制整数输出,选项A)输出的是字符A的ASCII值,而不是字符A,答案选A)。23、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’);C、printf("%c\n",65);D、printf("%c\n",’B’-1);标准答案:B知识点解析:在选项B)的输出函数中,大写字符’A’以整型数据的形式输出。24、以下叙述中正确的是A、break语句不能用于提前结束for语句的本层循环B、continue语句使得整个循环终止C、使用break语句可以使流

温馨提示

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

评论

0/150

提交评论