C语言强化训练一及答案

上传人:m**** 文档编号:148313789 上传时间:2022-09-04 格式:DOCX 页数:18 大小:45.17KB
返回 下载 相关 举报
C语言强化训练一及答案_第1页
第1页 / 共18页
C语言强化训练一及答案_第2页
第2页 / 共18页
C语言强化训练一及答案_第3页
第3页 / 共18页
点击查看更多>>
资源描述
、选择题 在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂 写在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的D)算法的时间复杂度与空间复杂度一定相关(2)在结构化程序设计中,模块划分的原则是A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中正确的是A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位置C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4)下面选项中不属于面向对象程序设计特征的是A)继承性B)多态性C)类比性D)封装性(5)下列对队列的叙述正确的是A)队列属于非线性表B)队列按先进后出原则组织数据C)队列在队尾删除数据D)队列按先进先出原则组织数据(6)对下列二叉树进行前序遍历的结果为A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ(7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为A)n+1B) n-1C) 2nD) n/28)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是A)并B)交C)投影D)笛卡儿乘积9)在 E-R 图中,用来表示实体之间联系的图形是A)矩形B)椭圆形C)菱形D)平行四边形10)下列叙述中错误的是A)在数据库系统中,数据的物理结构必须与逻辑结构一致B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持11)以下叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(12)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母B)连接符C)数字字符D)下划线(13)对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束(14)设变量均已正确定义若要通过scanf(%d%c%d%c,&a1,&c1,&a2,&c2)语句为变量al 和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注: 代表空格字符)A)10DXD20DY 回车B) 10DX20DY 回车C) 10DX 回车20口丫 回车D) 10X 回车20Y y&y!=0);C) if(x0)x-else y+;D) if(y0 & n5); 程序运行后的输出结果是A) 235B) 0235C) 02356D) 2356(21) 有以下程序main()int i,j;for(i=1;i4;i+)for(j=i;j4;j+) printf(%d*%d=%d ,i,j,i*j); printf(n); 程序运行后的输出结果是A) 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3C)1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9(22) 以下合法的字符型常量是A x13zB) 081C) 65D) nB) 1*1=11*2=2 1*3=32*2=4 2*3=63*3=9D)1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9(23) 在C语言中,函数返回值的类型最终取决于A) 函数定义时在函数首部所说明的函数类型B) return 语句中表达式值的类型C) 调用函数时主调函数所传递的实参类型D) 函数定义时形参的类型(24) 有以下函数int fun(char *s)char *t=s;while(*t+);return(t-s);该函数的功能是A) 比较两个字符串的大小B) 计算s所指字符串占用内存字节的个数C) 计算s所指字符串的长度D) 将s所指字符串复制到字符串t中(25) 有以下程序#include main()int n,*p=NULL;*p=&n;printf(Input n:); scanf(%d,&p);printf(output n:);printf(%dn,p);该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A) int n,*p=NULL;B) *p=&n;C) scanf(%d,&p)D) printf(%dn,p);(26)以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大 到小排序。void f(int b,int n,int flag)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jbj:bibj)t=bi;bi=bj;bj=t;main()int a10=5,4,3,2,1,6,7,8,9,10,i;f(&a2,5,0); f(a,5,1);for(i=0;i10;i+)printf(%d,ai);程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9,10,B) 3,4,5,6,7,2,1,8,9,10,C) 5,4,3,2,1,6,7,8,9,10,D) 10,9,8,7,6,5,4,3,2,1,(27) 有以下程序main()int a44=l,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,j,k,t; for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;kaki)t=aji;aji=aki;aki=t;/*按列排序 */ for(i=0;i4;i+)printf(%d,aii);程序运行后的输出结果是A) 1,6,5,7,B) 8,7,3,1,C) 4,7,5,2,D) 1,6,2,1,(28) 有以下程序main()int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+)for(k=i+l;k4;k+)if(aiiakk)t=aii;aii=akk;akk=t; for(i=0;i4;i+)printf(%d,a0i);程序运行后的输出结果是A) 6,2,1,1,B) 6,4,3,2,C) 1,1,2,6,D) 2,3,4,6,(29) 有以下程序void f(int *q)int i=0;for(;i5; i+) (*q)+;main()int a5 =1,2,3,4,5, i;f(a);for(i=0;i5; i+) printf(%d, ai);程序运行后的输出结果是A) 2,2,3,4,5,B) 6,2,3,4,5,C) 1,2,3,4,5,D) 2,3,4,5,6,(30) 有以下程序, q=abc, r=abcde;, q=abc, r=abcde;#include main()char p20= az , b, d strcpy(p+strlen(q), r); strcat(p, q); printf(%d %dn,sizeof(p),strlen(p); 程序运行后的输出结果是A) 20 9B) 9 9C) 20 11D) 11 11(31) 有以下程序# include main()char p20= a , b, c,z dstrcat(p, r); strcpy(p+strlen(q), q); printf(%dn,strlen(p); 程序运行后的输出结果是A) 9B) 6C) 11D) 7(32) 有以下程序void f(int n, int *r)int rl=0;if (n%3=0)r1=n/3;else if(n%5=0)r1=n/5;else f(-n, &r1);*r=r1;main()int m=7, r;f(m, &r); printf(%d, r); 程序运行后的输出结果是A) 2B) 1C) 3D) 0(33) 有以下程序main(int argc, char *argv)int n=0, i;for (i=l; ivargc; i+) n=n*10+*argvi - 0; printf(%dn,n);编译连接后生成可执行文件tt.exe。若运行时输入以下命令行 tt 12345678程序运行后的输出结果是A) 12B) 12345C) 12345678D) 136(34) 有一个名为init.txt的文件,内容如下:#define HDY(A,B) A/B#define PRINT(Y)printf(y=%dn,Y)有以下程序#include init.txtmain()int a=1,b=2,c=3,d=4,k; k=HDY(a+c,b+d);PRINT(k); 下面针对该程序的叙述正确的是A) 编译出错B) 运行出错C) 运行结果为y=0D) 运行结果为y=6(35) 有以下程序main()char ch=uvwxyz,*pc; pc=ch;printf(%cn,*(pc+5); 程序运行后的输出结果是A) zB) 0C) 元素ch5的地址D) 字符y的地址36)有以下程序 struct Sint n;int a20; voidf(struct S *p) int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+) if(p-aip-aj)t=p-ai;p-ai=p-aj; p-aj=t; main()int i; struct S s=10,2,3,l,6,8,7,5,4,10,9; f(&s);for(i=0;is.n;i+)printf(%d,s.ai); 程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9,10,B) 10,9,8,7,6,5,4,3,2,1,C) 2,3,1,6,8,7,5,4,10,9,D) 10,9,8,7,6,1,2,3,4,5,(37) 有以下程序struct Sint n;int a20; void f(int *a,int n) int i;for(i=0;in-1;i+) ai+=i;main()int i; struct S s=10,2,3,1,6,8,7,5,4,10,9; f(s.a,s.n);for(i=0;is.n;i+)printf(%d,s.ai); 程序运行后的输出结果是A) 2,4,3,9,12,12,11,11,18,9,B) 3,4,2,7,9,8,6,5,11,10,C) 2,3,1,6,8,7,5,4,10,9,D) 1,2,3,6,8,7,5,4,10,9,(38) 有以下程序main() unsigned char a=2,b=4,c=5,d; d=a|b; d&=c;printf(%dn,d); 程序运行后的输出结果是A) 3B) 4C) 5D) 6(39) 有以下程序#includemain()FILE *fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(d2.dat,w);fprintf(fp,%d%d%dn,a0,a1,a2);fprintf(fp,%d%d%dn,a3,a4,a5); fclose(fp);fp=fopen(d2.dat,r); fscanf(fp,%d%d,&k,&n);printf(%d%dn,k,n);fclose(fp);程序运行后的输出结果是A)1 2B)1 4C) 123 4D) 123 456(40) 有以下程序#includemain()FILE *fp; int i,a6=l,2,3,4,5,6; fp=fopen(d3.dat,w+b);fwrite(a,sizeof(int),6,fp);fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型 数据*/fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i6;i+)printf(%d,ai);程序运行后的输出结果是A)4,5,6,4,5,6,B) 1,2,3,4,5,6,C) 4,5,6,1,2,3,D) 6,5,4,3,2,1,二、填空题 请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)在深度为7 的满二叉树中,度为2的结点个数为 【1】 。(2)软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于 【2】 测试3)在数据库系统中,实现各种数据管理功能的核心软件称为 【3】(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试 属于 【4】 阶段。(5) 在结构化分析使用的数据流图(DFD)中,利用【5】对其中的图形元素进行确切解释。(6) 执行以下程序后的输出结果是【6】。main()int a=10;a=(3*5,a+4);printf(a=%dn,a);(7) 当执行以下程序时,输入 1234567890,则其中 while 循环体将执行 【7】 次。 #includemain()char ch;while(ch=getchar()= O )printf(#);(8) 以下程序的运行结果是【8】。int k=O;void fun(int m)m+=k;k+=m;printf(m=%d k=%d ,m,k+); main()int I=4;fun(I+); printf(I=%d k=%dn,I,k);(9) 以下程序的运行结果是【9】。main()int a=2,b=7,c=5;switch(aO)case 1:switch(bO)case 1:printf();break;case 2:printf(!);break;case O: switch(c=5)case O: printf(*); break;case 1: printf(#); break;case 2: printf($); break;default: printf(&);printf(n);(10) 以下程序的输出结果是 【10】 。#include main()printf(%dn,strlen(IBMn0121);(11) 设有定义语句:int a3=0,l2;,则数组元素al2啲值是【13】。(12) 以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大 值,输出到屏幕上。请填空。main()int x,y,z,max,*px,*py,*pz,*pmax;scanf(%d%d%d,&x,&y,&z);px=&x; py=&y; pz=&z;pmax=&max;【16】;if(*pmax*py)*pmax=*py;if(*pmax*pz)*pmax=*pz;printf(max=%dn,max);(13) 以下程序的输出结果是【17】。int fun(int *x,int n)if(n=0) return x0;elsereturn x0+fun(x+1,n-1);main()int a=1,2,3,4,5,6,7;printf(%dn,fun(a,3);(14) 以下程序的输出结果是【18】。#include main()char *s1,*s2,m;s1=s2=(char*)malloc(sizeof(char);*s1=15; *s2=20; m=*s1+*s2;printf(%dn,m);( 15)设有说明struct DATEint year;int month;int day;请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值 2006、10、1:【19】。、选择题(1) B 解析:根据时间复杂度和空间复杂度的定义可知,算法的时间复杂度与空间复杂度并不相 关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间关系的, 是独立于计算机中的,数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机 中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有 关。(2) D 解析:在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于 提高软件模块的独立性,这也是模块划分的原则。(3) A解析:软件测试是为了发现错误而执行程序的过程 ,且为了达到好的测试效果 ,应该由独 立的第三方来构造测试,程序员应尽量避免检查自己的程序。(4) C 解析:面向对象程序设计的3 个主要特征是:封装性、继承性和多态性。(5) D 解析:队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。队列具 有先进先出的特点,它是按先进先出的原则组织数据的,故本题答案为D)。(6) C 解析:二叉树前序遍历的含义是:首先访问根结点,然后按前序遍历根结点的左子树,最后 按前序遍历根结点的右子树,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的 二叉树的结构可知前序遍历的结果是:ABDYECFXZ。(7) A解析:对于任何一棵二叉树T,如果其终端结点(叶子)数为n1,度为2的结点数为n2,则 nl=n2+l。所以该二叉树的叶子结点数等于n+1。(8) B解析:在关系运算中,交的定义如下:设R1和R2为参加运算的两个关系,它们具有相同 的度n,且相对应的属性值取自同一个域,则R1H R2为交运算,结果仍为度等于n的关系,其中 的元组既属于 R1 又属于 R2。根据定义可知,不改变关系表的属性个数但能减少元组个数的是交运算,故本题答案为B)。(9) C解析:E-R模型可用E-R图来表示,它具有3个要素:实体(型)用矩形框表示,框内为实体 名称。属性用椭圆型来表示,并用线与实体连接。属性较多时也可以将实体及其属性单独列表。实体间的联系用菱形框表示。用线将菱形框与实体相连并在线上标注联系的类型。(10) A解析:数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统 上设计数据库的结构并建立数据库的过程;数据库技术的根本目标是要解决数据共享的问题; 数据库需要操作系统的支持;数据的物理结构又称数据的存储结构,就是数据元素在计算机存 储器中的表示及其配置。数据的逻辑结构是指数据元素之间的逻辑关系,它是数据在用户或 程序员面前表现的方式,在数据库系统中,数据的物理结构不一定与逻辑结构一致。(11) D解析:一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序, 然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为.obj),目标程 序不可以直接运行,它要和库函数或其它目标程序连接成可执行文件(后缀名为.exe)后方可 运行。故本题答案为 D)。(12) B解析:在C语言中,用户标识符命令规则规定:变量名只能由字母、数字或下划线3种字符 组成,且第一个字符必须为字母或下划线。在C语言中,大写字母和小写字母被认为是两个不 同的字符。据此规定A)、D)、C)三个选项是正确的,而B)选项是连字符,不在C语言规定的 命名变量标识符的范围内。(13) A解析:一个C程序总是从main函数开始执行,而不论其在程序中的位置。在main函数中 可以调用程序中的其他函数,而其他函数却不可以调用main函数。程序最后再从main函数 中结束。(14) D解析:本题中,scanf函数的格式控制没有空格,所以,对于选项A)、B)、C),输入的第一个空 格会作为字符赋值给变量c1,而不会被解释成分隔符。(15) C解析:本题主要考查C语言的库函数abs求整数的绝对值,fabs求双字节型的绝对值,pow 函数的原形是double pow(double X,double Y),计算x的y次方;exp函数的原形是double exp(double X),求10的X次方;sqrt函数的原形是double sqrt(double x),为x的平方根。故本题 答案为 C)。(16) A解析:因为int k=0;,所以B)、C)、D)三个选项的表达式的值都等于1,而A)选项的表达 式的值等于0。这是因为k+这个表达式先进行取k值的运算,然后是k值自加1。故本题 答案为 A)。(17) B解析:u格式符用来以十进制形式输出无符号整型变量,其取值范围是0 65535。本题 中无符号整型变量x=0xFFFF(十六进制)表示的是无符号整型变量的最大值65535。(18) C解析:C语言规定,在if (表达式)语句1; else语句2;这种形式的if语句中,在每一个else 前面有一个分号,整个语句结束处有一分号。在本题的C)选项中,else前面少了一个分号,这样 程序在编译时,会出现语法错误。(19) C解析:break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch 语句中,也可以出现在循环语句中。 continue 语句只是结束本次循环,即跳过本次循环体中余 下尚未执行的语句,接着再一次进行循环的条件判断。(20) A解析:因为变量的初始值分别为k=5,n=0,所以程序第一次进入循环时,执行default语句, 这时k=4,执行case 4:这个分支,结果是n=2,k=3,打印出2;程序然后进行第二次循环,这时 n=2,k=3,执行case 3:这个分支,结果是n=3,k=2,打印出3;程序进行第三次循环,这时 n=3,k=2,执行case 2: case 4:这两个分支,结果是n=5,k=l,打印出5,这时因为n=5不满足 n5 的循环条件,因此退出循环,程序运行结束。因此输出结果是235。(21) B解析:本题主要考查了 for循环的嵌套。外层for循环的自变量i从1开始,每次循环后 增1,至到i等于3结束。内层循环的自变量j每次从i开始,每次循环后增1,至到j等于3结 束。在每次外循环开始后,内层循环在一行上先打印i*j=两个乘数的积,然后换行,下次循环 从下一行开始打印。(22) A解析:C语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在C语言中 还允许用以一个开头的字符序列来表示字符常量。其中,形式ddd表示1到3位8进制 数所代表的字符;形式xhh表示1到2位16进制数所代表的字符。在本题中x13表示回 车符,是一个字符常量; 081用 8 进制数所代表的字符,但形式不正确,因为 8 进制数所 表示的字符中不会出现数字8; 65不是一个字符,而是一个十进制数字;n是用双引号 括起来的一个字符,表示一个字符串,而不是字符常量。(23) A解析:在 C 语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律自 动按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一 致。如果函数值的类型和 return 语句中的表达式类型不一致,则以函数类型为主。即函数类 型决定返回值的类型。(24) B解析:循环语句while(*t+);执行完时,指针变量t就指向了字符串结束符0之后的位置, 所以语句return(t-s);返回的就是字符串s所用内存的字节个数。(25) A解析:指针变量在定义时需要加星号,而在赋值时则不用,故选项B)错误。本题中,scanf() 函数和printf()函数都是要对指针变量p指向的地址处的数据进行访问,不是变量本身。选项 C)中多了取地址运算符,选项D)中少了指针运算符。(26) B解析:在main()中,f(&a2,5,0);语句的功能是对数组a10中从a2倒a6的数字(即 3,2,1,6,7)进行从大到小排序,这时数组a10中的数字序列变为5,4,7,6,321,8,9,10。 f(a,5,l);语句的功能是对数字序列5,4,7,6,3,2,1,8,9,10中的5,4,7,6,3进行从小到大的排序, 所以数组a10中的数字序列最终变为3,4,5,6,7,2,1,8,9,10。(27) A解析:本题利用多重 for 循环的嵌套来实现对二维数组元素的按列排序。利用最外层循 环来实现对列的控制。内部循环利用选择法对数组元素按照从小到大的顺序进行排列。最后 输出对角线上的元素值。故本题答案为A)。(28) B解析:本题使用选择法对二维数组对角线上的元素按从大到小的顺序进行排列。最后输 出数组第一行的数据。故本题答案为B)。(29) B解析:调用函数f()时,将数组a的地址传递给了指针q,此时q指向的就是数组a的第一个 元素a0。在5次循环过程中,q始终指向a0,因此a0的值增加了 5。最后的输出结果为 6,2,3,4,5。(30) C解析:函数strlen()返回的是数组的实际长度,而sizeof返回的是数组定义的总长度。因为 字符数组p20定义为20字节长度,所以sizeof(p)的值为20。strcpy(p+strlen(q),r);语句的功 能把字符数组r拷贝到字符数组p从p3开始到p7的位置中,这时字符数组p的有效字符长 度为8。然后再执行strcat(p,q);语句(字符串连接),即把字符数组q连接到字符数组p后面, 这时字符数组p的有效长度为11。(31) B解析:strcpy()函数的功能是将字符串q复制到从p3H立置开始的存储单元,同时复制字符 串结束标志0到p 6中。函数strlen()返回的是字符串中不包括0在内的实际长度,故 本题答案为 B)。(32) A解析:本题考查了函数的递归调用。在f函数中,当m=7时,程序执行”f(-n,&r1);”语句,递归 调用f(6,&r1),程序执行”r1=n/3;”语句,即r1=6/3=2,然后执行”*r=r1;语句,所以输出结果为2。(33) D解析:运行时输入该命令后,参数argc的值为4,字符串数组argv1、argv2、argv3分别 为12、 345、 678,然后取这3个参数的第一个字符,将其转化成原来的数字并组合成一个 新的三位数。(34) D 解析:本题考查的是带参数的宏定义。不仅要进行简单的字符替换,还要进行参数替换。根据宏替换的规则,本题在进行替换宏HDY时,没有像所希望的那样将HDY(a+c,b+d)替换成 (a+c)/(b+d),而是替换成了a+c/b+d,因此结果k为6。(35) A解析:将字符串的地址赋值给字符指针变量后 ,指针就指向了该字符串的第一个字符 ,即 *p=u,所以*(p+5)指向的字符是z。(36) A解析:本题中,在调用函数f()时,实参是结构体变量s的地址,所以在函数中对形参的改变 会影响到实参的数值。函数f()实现的功能是把结构体的成员数组中的值按从小到大顺序进 行排列。(37) A解析:本题中,在调用函数时将结构体变量的两个成员作为实参,其中的成员数组a实际向 函数f()传递的是该数组的地址,因此在函数f()中所对应的形参发生改变时,该数组内的数据 也会发生改变。函数f()实现的功能是将成员数组中的前9个元素分别加上该元素的下标,作 为新的元素。(38) B解析:本题考查的内容是按位与和按位或运算符的使用,由运算规则可知,d的最终结果为 4。(39) D解析:将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行 都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符 则作为它们的分隔符。故本题答案为D)。(40) A解析:首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件 的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个 int数据4。然后fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数 组中原来的前3项数据。最后数组中的数据就成了4,5,6,4,5,6,故本题答案为A)。二、选择题(1)【1】 63解析:根据二叉树的性质,一棵深度为k的满二叉树有2k-1个结点,所以深度为7的满二 叉树有27-1=127个节点;又因为在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点 数为n2,则n0=n2+1,即所以总节点数为n0+n2=2n2+1=127,所以n2=63,即度为2的结点个数为 63,所以【1】 应填入 63。(2)【2】 黑箱或黑盒 解析:黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部 结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。【3】数据库管理系统(DBMS)解析:数据库管理系统(Database Management System)简称DBMS,对数据库进行统一的管 理和控制,以保证数据库的安全性和完整性。它是数据库系统的核心软件。(4)【 4】 开发解析:软件生命周期(SDLC,软件生存周期)是软件的产生直到报废的生命周期倜期内有 问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级 到废弃等阶段,其中的编码和测试属于开发阶段。(5) 【 5】 数据字典解析:数据字典(Data Dictionary简称DD)就是用来定义数据流图中的各个成分的具体含 义。数据字典的任务是对于数据流图中出现的所有被命名的图形元素在数据字典中作为一个 词条加以定义,使得每一个图形元素的名字都有一个确切的解释。(6) 【 6】a=14解析:本题考查的是的表达式的优先级问题。先计算表达式3*5=15,再计算a+4=l4,将数 据14赋值给a,根据printf()函数内的输出格式控制串,最后的输出结果应为a=14。(7) 【 7】 0解析:通过getchar()函数来取得从键盘输入的数据,再判断其是否是字符0,如果是,则执 行一次循环,因为从键盘输入的1234567890都是整型数,不是字符,所以while循环执行的条件 始终不成立,循环体执行的次数为0。(8) 【 8】 m=4 k=4 I=5 k=5解析:由于在main()函数中,变量i=4,所以就调用fun则输出”m=4 k=4。然后变量k增1 等于 5,变量 i 增 1 等于 5,所以 main()函数的”printf(”I=%d k=%dn,I,k);语句输出”I=5 k=5。(9) 【 9】 #&解析:表达式” c=5 的值为真,所以表达式的值等于1,因此输出符号捫,然后执行” break, 继而去执行default:printf(”&);,语句,输出符号&。(10) 【10】 9解析:本题的字符串中共有9个字符,它们分别是T,B,M, n, 0, T, 2, 1, , 其中n表示换行,”表示反斜杠字符。所以本题的最后输出结果为9。(11) 【11】 0解析:本题考查的是二维数组初始化问题。题中对数组的a00,a10,a20 3个元素 分别赋值为0,1,2,其余的元素都自动赋0。所以a12的值为0。(12) 【12】 *pmax=*px解析:首先将变量 x 的值放到 max 中,然后依次和变量 y、z 进行比较。若有比 max 大的 数,将该数存放到 max 中,这样最后在 max 中的值就是 x、y、z 中的最大值。(13) 【13】 10 解析:本题考查的是函数的递归调用。在调用一个函数的过程中又直接或间接的调用该 函数本身。第一次调用时,指针 x 指向的是 a0,n 的值为 3,每调用一次 n 自减 1,x 加 1,指向数 组a中的下一个元素,当n为0时函数开始返回,最后的返回值等于a0+al+a2+a3=10。(14) 【14】 40解析:本题中指针sl和s2都指向同一个内存中的地址。因此语句”*s2=20;执行 后,*s1=*s2=20。所以m最后的值为40。(15) 【15】 struct DATE d=2006,10,1;解析:本题考查结构体变量初始化的问题。正确的语句应为struct DATE d=2006,10,1;。4
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!