|
二、填空题
(1)在树形结构中,树根结点没有 【1】 。 解析: 在树形结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。
(2)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向 【2】 的设计方法。 解析: 结构化分析方法主要包括:面向数据流的结构化分析方法(SA-Structured analysis),面向数据结构的Jackson方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSD-Data structured system development method)。
(3)面向对象的模型中,最基本的概念是对象和 【3】 。 解析: 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。
(4)软件设计模块化的目的是 【4】 。 解析: 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程,由此分解来降低复杂性。
(5)数据模型按不同应用层次分成3种类型,它们是概念数据模型、 【5】 和物理数据模型。 解析: 数据是现实世界符号的抽象,而数据模型(data model)则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束行为,为数据库系统的信息表示与操作提供一个抽象的框架。 数据模型按不同的应用层次分成3种类型,它们是概念数据模型(conceptual data model)、逻辑数据模型(logic data model)、物理数据模型(physical data model)。
(6)以下程序段的输出结果是【6】。 main () {int a=2,b=3,c=4; a*=16+(b++)-(++c); printf("%d",a); } 解析: a*=16+(b++)-(++c)等价于a=a*(16+(b++)-(++c)),b++的值为3,++c的值为5,请注意前缀++和后缀++的用法。
(7)若变量n中的值为24,则print()函数共输出【7】行,最后一行有【8】个数。 void print (int n,int aa[]) {int i; for (i=1; i<1;i++) {printf ("m", aa[i]); if(!(i%5)) printf ("\n"); } printf ("\n"); } 解析: 语句if(!(i%))printf("\n");是将每5个数输出一行,因为n的值为24,所以共输出5行,最后一行有4个数。
(8)调用C语标准库函数时要求用【9】命令。 解析: include命令可调用标准的C语言库函数,可以用一对括号或一对双引号,但要在前面加"#"。
(9)stract函数的作用是【10】。 解析: 连接两个字符数组中的字符串
(10)C语言程序的注释可以出现在程序中的任何地方,一个注释以【11】作为开始和结束。 解析: C语言程序的注释可以出现在程序基本单词之间的任何地方,C语言程序的注释以′/*′作为开始标记,并以′*/′作为结束标记。
(11)设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是 【12】 。 解析: 按位异成运算的一个重要应用是让某个整型变量的二进位取反,0变成1,而1变成0。这只要设计这样一个位串信息,让要变反的位为1,不要改变的位为0,用这个位串信息与整型变量按位加就能得到希望的结果。要使字节的高4位取反,低4位不变,则需要位串信息是11110000。
(12)若已知a=10,b=20,则表达式!a解析: 计算表达式!a (13)设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【14】 。 for(i=0, j=10; i<=j; i++, j--)k=i+j; 解析: 该for语句以i为0,j为10初始化,循环条件是i<=j,每次循环后i增1、j减1,循环体是将i与j的和赋给k。这样变量k将保存的是最后一次赋给它的值。一次循环后i为1、j为9,二次循环后i为2、j为8,……,五次循环后i为5、j为5,继续第六次循环,将i与j的和10存于k后,i为6、j为4,结束循环。所以循环执行后k为10。
(14)下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。 #include #include void fun(int a[],int n, int *max, int *d) { int i; *max=a[0]; *d=0; for(i=0;【15】;i++) if(*max<【16】) {*max=a[i];*d=i;} } main() { int i, x[20], max, index, n=10; randomize(); for(i=0;i{ x[i]=rand()P; printf("M",x[i]); } printf("\n"); fun(x,n,&max,&index); printf("Max=],Index=M\n",max,index); } 解析: 该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。
(15)以下程序的输出结果是【17】。 void fun() { static int a=0; a+=2; printf("%d",a); } main() { int cc; for(cc=1;cc<4;cc++)fun(); printf("\n"); } 解析: 本题考查静态局部变量的使用。用关键字static声明的局部变量为"静态局部变量",其值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。
(16)以下程序的输出结果是【18】 。 #define MAX(x,y)(x)>(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf("%d\n",t); } 解析: 本题综合考查带参数的宏以及三目运算符的计算方法,“?”运算符是一个三目运算符,其一般形式是:<表达式1>?<表达式2>:<表达式3>。“?” 运算符的含义是:先求表达式1的值,如果为真,则求表达式2的值并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值并把它作为整个表达式的值。注意,在本题中宏替换时可采用逐步求解,最终为7>6?7:6*10,即t=7>6?7:60,其值为t=7。
(17)用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char*)【19】 ; 解析: malloc函数的参数可以是一个具体的常数,也可以是一个表达式。在本题中,可以是malloc(11),也可以借助于sizeof运算符来表示。
(18)以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE *myf; long f1; myf=【20】 ("test.t","rb"); fseek(myf,0,SEEK_END); f1=ftell(myf); fclose(myf); printf("%d\n",f1); 解析: 函数fopen的原型为FILE *fopen(char *filename,char *mode),功能为以mode指定的方式打开名为filename的文件;函数fseek的原型为int fseek(FILE *fp,long offset,int base),功能为将fp所指向的文件的位置指针移到以base所指出的位置为基准。以offset是以字节为单位的位移量;函数ftell的原型为long ftell(FILE *fp),功能为返回fp所指向的文件中的读写位置;函数fclose的原型为int fclose(FILE *fp),功能为关闭fp所指的文件,释放文件缓冲区。
共4页: 上一页 [1] [2] 3 [4] 下一页
|