《计算机二级C语言考试考前模拟试题.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言考试考前模拟试题.docx(28页珍藏版)》请在优知文库上搜索。
1、一、选择题(每小题1分,共40分)1单选题若有定义语句:doublea,*P=&a;以下叙述中错误的是()。A.定义语句中的*号是一个间址运算符B.定义语句中的*号是一个说明符C.定义语句中的P只能存放double类型变量的地址D.定义语句中,*P=&a把变量a的地址作为初值赋给指针变量P参考答案:A参考解析:在变量定义doublea,*P=&a;中,*号是一个指针运算符,而非间址运算符,所以A错误。2单选题有以下程序:Wincludcmain()IFILEfp;inta10H,2,3i11ifp=fpen(dL.lf,w-);for(i=0;3;i+)fprintf(fp.%d.i);(pn
2、ntf(fp,W);(clwe(fp);fpfopen(dl.(fat,.Mr*);fcanf(fp,-%d&n);fclose(fp);Print(%dn*n);程序运行后的输出结果是()oA. 321B. 12300C. 1D. 123参考答案:Ddl.dat:程序首先将数组a10中的元素1、2、3分别写入了文件dl.dat文件中,然后dl.datdl.dat文件中的数据123,整体写入到了变量n的空间中,所以打印n时输出的数据为123。3单选题有以下程序:MincludedefineN4V(Mdfun(intN,mlb()Iint”for(i=OjiN+)bi=ii;Imain()Iin
3、txN=ll,2.3.4.15.6.7,89.10yN.i;fun(x.y);for(i三0jiN;i+)pritf(%d.yi);printf(n);程序运行后的输出结果是()。A.1,0,7,0,B. 1, 2,3, 4,C. 1, 4,5, 9,D. 3, 4, 8,10,参考答案:A参考解析:该程序首先在定义变量时,对二维数组aN进行赋值操作;调用函数fun,函数fun的功能是将二维数组中的a00、all、a22和a33赋值给一维数组,最后将一维数组元素1,0,7,0,输出。4单选题有以下程序段:辆nduieinta.b.c;a三10;b=50;c三30;if(ab)a=b.b=c;c
4、=a:printa=%db三%dc=%dn,b,c);程序运行后的输出结果是()oA.a=10b=50c=30B.a=10b=50C=IOC.a=10b=30C=IOD.a=50b=30c=50参考答案:B参考解析:本题中ab的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即C的值为10。5单选题有以下程序:*includeman()Iinty10;while(y);PrinIf(y三%dn-.y):I程序执行后的输出结果是().AT=OB. y=-lC. y=lD. while构成无限循环参考答案:B参考解析:执行y一直到值为0,由于y一是先用再减,所以退出循环
5、时,y的值为To6单选题若有定义语句:intx=10;,则表达式x-=x+x的值为()。A.0B.-20C.-10D.10参考答案:C参考解析:算术运算符+的优先级高于-二,且-二的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C。7单选题有以下程序段:程序段:tinclude.hintj;floaty;charname50;stanf(%2d%f%s.&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,Y的值为()。A. 566.0B. 55566.0C. 7777.0D. .0参考答案:A参考解析:它
6、是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,y的值为566.0,字符数组name为7777abcE. 单选题若有定义语句:doublex,y,*px,*py;执行了PX=&x;Py=&y;之后,正确的输入语句是().A. scanf(w%If%lew,px,py);B. scanf(w%f%fw&x,&y);C. sceanf(,%f%f”,x.y);D. scanf(w%If%If,x,y);参考答案:A参考解析:因为x,y都是double型数据,所以
7、输入时的格式字符应为Mf,所以B与C错误。D选项中SCanf(%lf%If”,x,y);应为SCanf(,&x,&y);。E. 单选题有以下程序:tincluBeman()in(a3I.b三0;PnM-%d.,b=a+b);pnntf(dn*ta三2b);I程序运行后的输出结果是()。A. 1,2B. 1,OC.3,2D.0,O参考答案:A参考解析:首先打印b=a+b=l+O=l的值1,此时已给b赋值为Io然后打印a=2*b=2*l=2的值2。所以结果是1,2。10单选题有两个关系R、S如下:ABCABa32a3bOIbOC2IC2由关系R通过运算得到关系S,则所使用的运算为()。A.选择B.
8、投影C.插入D.连接参考答案:B参考解析:投影运算是指对于关系内的域指定可引入新的运算。本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。所以选择B。11单选题下列数据结构中,属于非线性结构的是()。A.循环队列B.带链队列C.二叉树D.带链栈参考答案:C参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结12单选题若有以下程序段:intr=8;PnmH-%d1.r1);程序运行后的输出结果是()A. 16B.8C.4D.2参考答案:C参考解析:本题考查位运算,属于基础知识,题目中将整型变量8,二进制表达为OOoolO00,右移一位为OOoOOl00,
9、即4,选项C正确。13单选题对于循环队列,下列叙述中正确的是()。A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针参考答案:D参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。14单选题设有定义:char*c;以下选项中能够使C正确指向一个字符串的是().A)charslr()三etring;c=tr;C)c=gelchar();B)Manfdc);D) c = siring:ABCD参考答案:A参考
10、解析:A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域。这个区域可能存放有用的指令或致据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。15单选题若变量已正确定义,在1册口1曲1双“知5,k);中,以下不可替代W的是()。A.ab+cB. ch=getcha
11、r()C.a=b+cD.a+参考答案:A参考解析:选项A是非法的表达式,C语言中没有运算符。16单选题下列排序方法中,最坏情况下比较次数最少的是()。A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序参考答案:D参考解析:冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(nT)2次,而堆排序在最坏情况下需要比较的次数是nlog2n17单选题有以下程序:includedoublef(doublex);main()Idoublea三0;inti;for(i=0;i30;i*IO)a=f(double)i);pntf(*%3.0fn.a);Idoublef(doublex)retu
12、rnxx+I;!程序运行后的输出结果是()oA. 500B. 401C. 503D. 1404参考答案:C参考解析:本题重点考察函数的定义和调用,第一次循环,a=0,i=0,返回值a=0*0+l+0=l;第二次循环,a=l,i=10,返回值a=10*10+l+l=102;第三次循环,a=102,i:20,返回值a=20*20+l+102=503;第四次循环,a=503,i=30;不符合i30,跳出循环,最后结果输出a=503t,18单选题数据库管理系统是()。A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统参考答案:B参考解析:数据库管理系统是数据库的机构,它
13、是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。19单选题有以下函数:intfun(char*)1 chart三;whiie(I);return(t-);I该函数的功能是()A.计算S所指字符串的长度B.比较两个字符串的大小C.计算S所指字符串占用内存字节的个数D.将S所指字符串复制到字符串t中参考答案:A考解析:首先char*s接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针char*t,while(*t+)不断循环直到*1为0,再将t-l,这时字符指针t指向字符串的最后一个字符,又因为S指向字符数组的首地址即字符
14、串的首地址所以return(Ls)便是返回字符数组中字符串的长度。A. 单选题以下选项中,能用作用户标识符的是()oA._0_B. 8_8C. voidD.unsigned参考答案:A参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B中以数字8开头,所以错误。C与D中用的是关键字VOid与UnSigned,所以错误。21单选题以下叙述中错误的是()。A.使用三种基本结构构成的程序只能解决简单问题B.结构化程序由顺序、分支、循环三种基本结构组成C.C语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法参考答案:A参考解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。22单选题下列叙述中正确