26
A)i=p B)a[p]=a[i] C)p=j D)p=i
(35)下列程序的运行结果为 #include void abc(char*str) { int a,b;
for(a=b=0;str[a]!='\\0';a++) if(str[a]!='c') str[b++]=str[a]; str[b]='\\0';} void main()
{ char str[]=\ abc(str);
printf(\ A)str[]=abdef (36)有以下程序 #include #include
typedef struct{ char name[9]; char sex; float score[2]; }STU; void f(STU a)
{ STU b={\′m′,850,900}; int i; strcpy(a.name,b.name); a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i]; } main()
{ STU c={\′f′,95.0,92.0}; f(c);
printf(\ }
程序的运行结果是
A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90 (37)有以下程序 #include main()
B)str[]=abcdef C)str[]=a
D)str[]=ab
27
{ FILE *fp; int a[10]={1,2,3},i,n; fp=fopen(\
for(i=0;i<3;i++) fprintf(fp,\ fprintf(fp,\ fclose(fp);
fp=fopen(\ fscanf(fp,\ fclose(fp); printf(\ }
程序的运行结果是 A)12300 B)123
C)1 D)321
(38)已知 int a=1,b=3则a^b的值为 A)3 B)1 C)2 D)4 (39)阅读下列程序,则运行结果为 #include \ fun()
{ static int x=5; x++; return x;} main() { int i,x; for(i=0;i<3;i++) x=fun();
printf(\ A)5
B)6
C)7
D)8
(40)有以下程序 #include void fun(char *t,char *s) { while(*t!=0) t++; while((*t++=*s++)!=0); } main()
{ char ss[10]=\ fun(ss,aa); printf(\
28
}
程序的运行结果是
A)accxyy,bbxxyy B)acc,bbxxyy C)accxxyy,bbxxyy D)accbbxxyy,bbxxyy 选择题
(1)D 【解析】软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。
(2)A 【解析】确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。
(3)C 【解析】对象的基本特点:标识惟一性、分类性、多态性、封装性和模块独立性。 (4)D 【解析】滥用goto 语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。
(5)A 【解析】程序执行的效率与很多因素有关,如数据的存储结构、程序所处理的数据量、程序所采用的算法等。顺序存储结构在数据插入和删除操作上的效率比链式存储结构的效率低。 (6)C 【解析】数据结构概念一般包括数据的逻辑结构、存储结构及数据上的运算集合等。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机中的存储形式。 (7)B 【解析】顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。 (8)C 【解析】树是N(N>0)个结点的有限集合,当N=0,时称为空树,对于空树没有根结点,即根结点的个数为0,对于非空树有且只有一个根结点,所以树的根结点数目为0或1。 (9)C 【解析】数据库(DataBase,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,可被各个应用程序所共享。数据库中的数据具有\集成\、\共享\的特点。
(10)B 【解析】数据库系统(Database System,简称DBS),包括数据库(Database,简称DB)和数据库管理系统(Database Management System,简称DBMS)。 (11)D 【解析】选项D)为两条语句。
(12)C 【解析】 C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项C)中goto和int是关键字,b-a中'-'不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。
(13)B 【解析】在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量,而选项B)是用双引号括起来的字符,
29
表示一个字符串常量。
(14)C 【解析】求余运算符\两边的运算对象必须是整型,而选项B)和D)中 \两边的运算对象有浮点整数据,所以选项B)和D)是错误的表达式。在选项A)中赋值表达式的两边出现相同的变量x,也是错误的。选项C)是一个逗号表达式,所以正确答案为C)。
(15)B 【解析】选项A)中包含一个不合法的运算符\选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。
(16)B 【解析】由于在main()函数中,变量 i=4,所以就调用fun(4),则输出\。然后变量k增1等于5,变量i增1等于5,所以main()函数的\语句输出\
(17)B 【解析】在本题中,选项B)实际是先计算关系表达式\的值是0还是1,再比较该值与字符'Z'之间的大小关系,显然不能实现题目所要求的功能,而选项A)、C)、D)都可以。 (18)B 【解析】本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都满足时,其最终结果才为真。当发现第一个表达式的值为假,计算机将不再执行后面表达式的运算。
本题中,由于前一个表达式的值为\假\所以,后面的表达式不再进行运算,因而n的值保持不变,仍为2。
(19)B 【解析】两个if语句的判断条件都不满足,程序只执行了c=a这条语句,所以变量c的值等于3,变量b的值没有变化,程序输出的结果为3,5,3。
(20)C 【解析】 C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。
(21)C 【解析】本题考察变量的自加\和自减\问题。当y 的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为8 5 2。
(22)C 【解析】 do while语句的一般形式为:do 循环体语句 while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
(23)D 【解析】在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。
(24)B 【解析】二维数组的初始化有以下几种形式:①分行进行初始化;②不分行进行初始化;③部分数组元素进行初始化;④省略第一维的定义,不省略第二维的定义。选项B)等号右边分了3行,大于等号左边数组的行数2。
(25)D 【解析】 C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数
30