《计算机二级C语言考试考前模拟试题.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言考试考前模拟试题.docx(26页珍藏版)》请在第壹文秘上搜索。
1、一、选择题(每小题1分,共40分)1单选题有以下程序(注:字符a的ASCH码值为97):#includemain()Icharabcw;doIPrintf(%d,8%IO);while(a);I程序运行后的输出结果是()。A. 789B. abeB.abeC. 7890D.参考答案:A参考解析:因为小写字符a,b,C的ASCIl码值分别为97,98,99,而在domhile循环语句中,每次对字符的ASCil码值取余数并输出,所以分别输出7,8,9。E. 单选题有以下程序:*includentf(intx,inty)Iretum(y-x)x);:main()ini=3.b=4,c=5,d;d=f
2、(a,b).f(.c);printf(%dn,d);I程序运行后的输出结果是()0B. 10C. 8D.9参考答案:D参考解析:调用f(a,b)函数返回3,调用f(a,C)函数返回6,所以外层调用f(f(a,b),f(a,c);即调用f(3,6)函数返回9。D. 单选题下面叙述中错误的是()。A,软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebUgD.软件测试应严格执行测试计戈I,排除测试的随意性参考答案:A参考解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位
3、、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为DebUg,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计戈J,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。4单选题以下关于结构化程序设计的叙述中正确的是()B)1.2.3。1,口口02.口匚1口3(回车D)l23ABCD参考答案:D参考解析:SCanf()的格式控制串可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符,以保证匹配。所以逗号必须输入。6单选题以下四个程序中,完全正确的是()。B ) *includ
4、e main()I / programming * Z printf( programming! D ) include nain()I / * PrOgramnUng / printf( , PrograInmiM JA)WinciudcMmain();/programming/Zprintf(programming!no);,C)Winclutlemain()/PrUgramming/printf(programming!nM);ABCD参考答案:B参考解析:C语言中注释语句的注释方法是:/*注释内容*/或注释一行。所以A与C错误,D选项中预编译命令indade前丢掉了“#号。所以选择7单
5、选题算法的空间复杂度是指()oA.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D,算法在执行过程中所需要的临时工作单元数参考答案:A参考解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A08单选题有以下程序:Aincludcvoidfun(in(a.ntb)Iinttjt=a=b;b=t;Imain()Iinic10=11,2,3,4,5.6.7.8,9.0,i;for(i三0;i10;i+=2)fun(cilci1.);for(i=OjiIO;i)printf(-%d,tci)tprintf(n,);程序运行后的输出结果是()
6、。A. 1,2,3,4,5,6,7,8,9,0,B.2,1, 4,3, 6,5, 8,7, 0, 9,C.0, 9, 8,7, 6,5, 4, 3, 2,1,D.0,1, 2, 3, 4, 5, 6,7, 8, 9,参考答案:A参考解析:函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参而不能把形参的值反向地传送给实参。因此在函致调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组C中的元素的值并没有变化,选择鼠9单选题若变量x,y已正确定义并赋值,以下符合C语言语法的表达式是()0A.x+l=yB.+x,y=xC. x=z+10=z+yD. double(x)10参考答案:
7、B参考解析:A选项中不能将变量Y赋给表达式,C选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x10E. 单选题若有以下函数首部:intfun(doublex10.inin)则下面针对此函数的函数声明语句中正确的是()。A)intfun(=2.c;c=aA(b2);执行后,C的值为()。A. 7B. 9C. 8D.6参考答案:B参考解析:b为2,二进制为OOOOOOlO,执行左移两位操作后为OOoOIO00,然后与aOOOoOOOl做异或操作结果为00001001,即十进制的9。12单选题数据库应用系统中的核心问题是()。A,数据库设计B.数据库系统设计C.数据库维护D
8、.数据库管理员培训参考答案:A参考解析:数据库应用系统中的核心问题是数据库的设计。13单选题以下定义语句中正确的是()。includemain()Iinic0,k;for(klik3jk)*wikh(k)Idefault:c=k;case2:c*:break;CaS4:c三2;break;(printf(%d11,c);ABCD参考答案:B参考解析:A选项语句中b变量还没有定义不能直接用于给a变量赋值。c选项语句中*b、*c表示的是一个实型变量的地址,不能再将&b赋值给指针型变量c。D选项语句中a=0.0后面应该为逗号,不能是分号。14单选题下列叙述中正确的是()。A.在SWitCh语句中,不
9、一定使用break语句B.在switch语句中必须使用defaultC.break语句必须与switch语句中的case配对使用I).break语句只能用于switch语句参考答案:A参考解析:default语句在SWitCh语句中可以省略,所以B错误;SWiteh语句中并非每个case后都需要使用break语句,所以C错误;break语句还可以用于for等循环结构中,所以D错误。15单选题对于一个正常运行的C程序,以下叙述中正确的是(),A.程序的执行总是从main函数开始,在程序的最后一个函数中结束B.程序的执行总是从程序的第一个函数开始,在main函数结束C.程序的执行总是从main函数
10、开始D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束参考答案:C参考解析:任何一个C程序都是从主函数main开始,至主函数main结束,所以选择c选项。16单选题有以下程序:)chare;s三Olympic;B)char7;=Oiympico;C)Char&;=J*(B)Tnpic*I;D)char7s=iOlympicIj程序运行后的输出结果是()oA.7B. 5C. 3D.9参考答案:C参考解析:向SWitCh语句块传送参数后,编译器会先寻找匹配的CaSe语句块,找到后就执行该语句块,遇到break跳出;如果没有匹配的语句块,则执行default语句块。CaSe与def
11、ault没有顺序之分。所以第一次循环k的值为1,执行c+=k,C的值为1,再执行case2后的语句c+,C的值为2,遇到break语句跳出循环;第二次循环k的值为2,执行case2后面的语句c+,C的值为3,跳出循环。17单选题以下定义数组的语句中错误的是()。A. intnum3=1,2,3,4,5,6);B. intnum24=1,2,(3,4,5,6;C. intnum=l,2,3,4,5,6;D. inthum4=l,2,3,4,5,6;参考答案:B参考解析:B)选项中定义的数组为2行4列,而赋值时赋成了3行所以出错。18单选题下列语句组中,正确的是()chare;e三Olympic;
12、B)char7;=Olympic1*;C)char;s=JOlympic-;D)chars7;=i-Olympic0IjABCD参考答案:A参考解析:字符型指针变量可以用选项A的赋值方法:Char*s;s=01ympic,选项C的写法:Char*s,s=01ympic;是错误的。字符数组可以在定义的时候初始化:Chars=Olympic;?或者CharS口=01ympic”,都是正确的。但是不可以在定义字符数组后,对数组名赋值。(数组名是常量,代表数组首地址)所以选项B和选项D都是错误的。对于本例,选项B、D中字符数组8的大小至少为8,才能存放下字符串。(字符串的末尾都有结束标识0)。19单选题以下关于typedef的叙述错误的是()。A.用typedef可以增加新类型B. typedef只是将已存在的类型用一个新的名字来代替C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用typedef为类型说明一个新名,通常可以增加程序的可读性参考答案:A参考解析:typedef并不是增加了新类型,而是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以