国家二级C语言机试(选择题)模拟试卷295
选择题
1.下列叙述中,正确的是( )。(A)
A. 软件交付使用后还需要进行维护
B. 软件一旦交付使用就不需要再进行维护
C. 软件交付使用后其生命周期就结束
D. 软件维护是指修复程序中被破坏的指令
解析:软件的运行和维护是指将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。而软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程。
2.有以下程序:
#include<stdio.h>
main()
{ int i=0,a=0;
while(i<20)
{for(;;)
{ if((i%5)==0)break;
else i–;
}
i+=13,a+=i;
}
printf(’’%d\n’’,a);}
程序的输出结果是( )。(D)
A. 62
B. 63
C. 23
D. 36
解析:本题考查while循环。当i<20时,进入while循环体,循环体内的for循环实现的功能是,当i值是0或5的倍数时,执行“i+=13;a+-i;”这两条语句;若i值不是5的倍数则一直执行for循环。①当i=0时,执行“i+=13;a+=i;i=13,a=13”;②判断“i=13<20”,进入while循环体,i=10时,跳出for循环,执行“i+=13;a+i;i=23,a=36”;③判断“i=23>20”,循环结束。
3.以下关于结构化程序设计的叙述中正确的是(D)
A. 结构化程序使用goto语句会很便捷
B. 一个结构化程序必须同时由顺序、分支、循环三种结构组成
C. 由三种基本结构构成的程序只能解决小规模的问题
D. 在C语言中,程序的模块化是利用函数实现的
解析:C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。仉是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提侣结构化设计以来,goto就成了有争议的语句。首先,由于goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto语句经常带米错误或隐患。它可能跳过了某些对缘的构造、变量的初始化、重要的计算等语句。Goto语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决人部分问题。
4.sizeof(double)是(B)
A. 一个双精度型表达式
B. 一个整型表达式
C. 一个不合法的表达式
D. 一种函数调用
解析:sizeof关键字为C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回卜进制整数,因此为整型表达式,表明变量所占的内存字节数。
5.T列数据结构中,不能采用顺序存储结构的是(D)
A. 栈
B. 堆
C. 队列
D. 非完全二叉树
解析:堆中某个结点的值总是不大于或不小于其父结点的值、堆总是一棵完全二叉树,可以以顺序存储结构存储;队列的存储结构分为链式存储、顺序存储两种;栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,可以以顺序存储结构存储。
6.有如下函数调用语句:
func(r1,r2+r3,(r4,r5));
该函数调用语句中,含有的实参个数是( )。(A)
A. 3
B. 5
C. 4
D. 有语法错误
解析:本题的实参个数有3个,r2+r3与(r4,r5)只是两个表达式形式的实参,首先计算出它们的结果值,以结果值作为实参。
7.通常软件测试实施的步骤是( )。(B)
A. 集成测试、确认测试、系统测试
B. 单元测试、集成测试、确认测试
C. 确认测试、集成测试、单元测试
D. 单元测试、集成测试、回归测试
解析:软件测试的实施过程主要有4个步骤:单元测试、集成测试、确认测试(验收测试)和系统测试。
8.若变量X、Y已正确定义并赋值,以下符合C语言语法的表达式是(A)
A. ++x,y=x–
B. x+1=y
C. x=x+10=x+y
D. double(x)/10
解析:用逗号将表达式连接起来的式予称为逗号表达式。其表达式的一般形式为:表达式1,表达式2,……,表达式n。最后一个表达式的值就是此逗号表达式的值。所以选项A)为C语言中的逗号表达式。赋值表达式的左侧只能是变量,不能是常最或表达式。强制类型转换表达式的形式为:(类型名)(表达式),其中(类型名)称为强制类型转换运算符,数据类型两边的圆括号不能省略。
9.以下不能将s所指字符串正确复制到t所指存储空间的是( )。
A
解析:“do{*t++=*s++;}while(*s);”不能因为当*s=‘\0’时,’while(*s)跳出循环,这样字符串结束标志‘\0’没有复制给* t,造成*t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B、C、D选项都能将‘\0’复制过去。
10.设x=061,y=016,则z=x|y的值是( )。(C)
A. 00001111
B. 11111111
C. 00111111
D. 11000000
解析:将八进制的x和y化为二进制数,分别得:x=0011 0001,y=0000 1110,则z=x|y=00110001|0000 1110=0011 1111,故本题的答案为C)。
11.以下叙述错误的是( )。(D)
A. 变量的作用域取决于变量定义语句的位置
B. 全局变量可以在函数以外的任何部位进行定义
C. 局部变量的作用域可用于其他函数的调用
D. 一个变量说明为static存储类型是为了限制其他编译单元的引用
解析:本题考查函数调用的变量作用域。全局变量不在任何函数体内定义,作用域为整个文件;局部变量在函数体内定义,作用域仅为本次函数;static类型是静态变量,为了方便其他编译单元的引用,不能随意改变。
一个函数包含两部分:函数首和函数体,函数体包括花括号内的所有语句。
12.以下选项中叙述错误的是(B)
A. 在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
B. C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
C. C程序函数中定义的自动变量,系统不自动赋确定的初值
D. C程序函数的形参不可以说明为static型变量
解析:在函数定义的静念变量,只需要赋值1次,即可保存初始值,不需要每次调用时都赋初始值。
13.若a是数值类型,则逻辑表达式 (a==1)||(a!=1)的值是(A)
A. 1
B. 0
C. 2
D. 不知道a的值,不能确定
解析:逻辑或\\
14.若有以下程序
void f(int x)
本文档预览:3600字符,共6217字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载