版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年江苏省常州市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为________。
A.24B.48C.72D.53
2.链表不具有的特点是()。A.A.不必事先估计存储空间
B.可随机访问任意元素
C.插入、删除不需要移动元素
D.所需空间与线性表长度成正比
3.
4.
5.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为()
A.并运算B.交运算C.差运算D.积运算
6.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII形式存放在一个文本文件中
D.C语言源程序经编译后生成扩展名为.obj的目标文件
7.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是()。A.因变量类型与格式描述符的类型不匹配输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12
8.用树形结构表示实体之间联系的模型的是
A.关系模型B.网状模型C.层次模型D.以上三个都是
9.用向量和单链表示的有序表均可使用折半查找方法来提高查找速度()A.是B.否
10.下列叙述中错误的是()。
A.一个C语言程序只能实现一种算法
B.c程序可以由多个程序文件组成
C.C程序可以由一个或多个函数组成
D.一个c函数可以单独作为一个C程序文件存在
11.在非线性结构中,每个结点()。
A.无直接前趋
B.只有一个直接前趋和个数不受限制的直接后继
C.只有一个直接前驱和后继
D.有个数不受限制的直接前驱和后继
12.数据字典(DD)所定义的对象都包含于()。
A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图
13.广告系统为了做地理位置定向,将IPV4分割为627672个区间,并标识了地理位置信息,区间之间无重叠,用二分查找将IP地址映射到地理位置信息,请问在最坏的情况下,需要查找多少次?()
A.17B.18C.19D.20
14.链表不具备的特点是()
A.所需空间与其长度成正比B.不必事先估计存储空间C.插入删除不需要移动元素D.可随机访问任一节点
15.设x、y、z、t均为int型变量,则执行以下语句后,t的值是()x=y=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
16.有以下程序
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
程序运行后的输出结果是A.运行后报错B.66C.611D.510
17.下列二维数组初始化语句中,不正确的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
18.语句:“printf("%d",(a=)&&(b=-2));”的输出结果是()。
A.无输出B.结果是不确定C.-1D.1
19.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有()
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,c,b,a}
D.{c,d,b,e,f,a,g}
20.以下程序的输出结果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
二、2.填空题(20题)21.以下程序的运行结果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
22.在进行软件结构设计时,应遵循的最主要原理是【】。
23.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
24.以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
25.在软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错直至回归测试的过程称为【】。
26.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
27.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
28.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。
main()
{double[10][22];
intn;
......
fun(s);
}
29.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
30.在scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是跳过对应的输入数据;当输入以下数据时,100200300400500<回车>,下面语句的执行结果为【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
31.下列程序的输出结果是【】。
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
32.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
33.通常将软件产品从提出、实现、使用维护到不再使用的过程称为【】。
34.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。
35.以下程序的输出结果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
36.请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。
#include<stdio.h>
【】(double,double);
main()
{doublex,y;
scanf("%If%If",&x,&y);
printf("%If\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
37.用以下程序把从键盘输入的字符存放到一个文件中,用字符#作为结束符,请按题意要求填空完善程序。
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenameoffile\n");
gets(fname);
if(fp=fopen(【】))==NULL)
{printf("can'topen\n");
【】;
}
while((ch=getchar())!='#')
fputc(【】);
fclose(fp);
}
38.有以下语句段:
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式输出n1和n2的值:
n1=10
n2=20
每个输出行从第一列开始,请填空。
39.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
40.下列语句的输出结果是【】。
chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);
三、1.选择题(20题)41.按照“后进先出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
42.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
43.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
44.结构化程序设计方法在软件开发中用于______。
A.需求分析B.详细设计C.可行性分析D.程序设计
45.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
46.下面程序的输出结果是()。voidprty(int*x){printf("%din",++*x);}main(){inta=25;prty(&a);}
A.23B.24C.25D.26
47.信息隐蔽的概念与下述______概念直接相关。
A.软件结构定义B.模块独立性C.模块类型划分D.模拟耦合度
48.指出下面不正确的赋值语句
A.a++;B.a==b;C.a+=b;D.a=1,b=1;
49.设计程序时,应采纳的原则之一是()。
A.程序的结构应有助于读者的理解B.限制goto语句的使用C.减少或取消注释行D.程序越短越好
50.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
51.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()
A.for语句中的三个表达式可以同时省略
B.for语句可以用于循环次数不确定的情况
C.for语句中表达式2只能是关系表达式或逻辑表达式
D.for语句中表达式1和表达式3可以是逗号表达式
52.已知在ASCⅡ代码中,字母A的序号为65,以下程序的输出结果是______。#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}
A.65,90B.因输出格式不合法,输出错误信息C.A,YD.65,89
53.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf("%d",&);s=*π*r*r;printf("s=%f\n",s);}出错的原因是
A.注释语句书写位置错误
B.存放圆半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量
54.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是——。
A.10234B.12344C.12334D.12234
55.下列关于线性表的叙述中,不正确的是()
A.线性表可以是空表
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表是由n个元素组成的一个有限序列
56.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
57.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以用tyPedef将已存在的类型用新的名字来表示
C.用typedef定义新的类型名后,原有类型名仍有效
D.用tyPedcf可以为各种类型起别名,但不能为变量起别名
58.已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针;指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
59.下列程序的输出结果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
60.若有定义和语句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf(%d,%d\n",*p,**pp);则输出结果是()。
A.20,10B.20,20C.10,20D.10,10
四、选择题(20题)61.有以下程序
62.为用户与数据库系统提供接口的语言是
A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言
63.(68)下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件
B.数据库是一个关系
C.数据库是一组文件
D.数据库是一个结构化的数据集合
64.
65.若有“doublea;”,则正确的输入语句是()。A.A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a);
D.scanf("1e",&a);
66.
67.以下程序运行后,输出结果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
68.
69.有以下程序:
voidmain()
{inta=15,b=21,m=0;
switch(a%3)
{case0:m++;break;
case1:m++;
switch(b%2)
{defaule:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
程序运行后的输出结果是()。
A.1B.2C.3D.4
70.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。A.A.数据库系统B.文件系统C.人工管理D.数据项管理
71.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
72.有以下程序:
I程序运行后的输出结果是()。
A.0B.3C.7D.8
73.
74.下列描述中,不符合结构化程序设计风格的是
A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B.注重提高程序的执行效率
C.自顶向下
D.限制使用goto语句
75.
76.若有定义语句:
则strlen(s)的值是()。
A.7B.8C.9D.10
77.
78.
有以下程序:
fun(intx,inty){return(x+y);)
main
{inta=1,b=2,c=2,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的结果是()。
A.6B.7C.8D.9
79.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程
B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C.关系中的每一列称为元组,一个元组就是一个字段
D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
80.有以下程序:
程序运行后的输出结果是()。
A.8B.2C.4D.1
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<math.h>intproc(inta,intb,intc){if(a+b>c&&b+c>aa+c>b){if(a==b&&b==c)//****found****return1;elseif(a==b||b==c||a==c)return2;//****found****elsereturn3;}elsereturn0;}voidmain{inta,b,C,shape;printf("\nlnputa,b,C:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=proc(a,b,c);printf("\n\nTheshape:%d\n",shape);}
六、程序设计题(1题)82.规定输入的字符串中只包含字母和+号。编写函数fun,其功能是:除了字符串前导和尾部的母号外,将其他的*号全部删除。形参h已指向字符串中第一个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。
参考答案
1.D
2.B链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。
3.C
4.D
5.AA)【解析】关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,新关系中包含两个关系中的所有元组。
6.AC语言中的非执行语句不会被编译,不会被转换成二进制的机器指令,所以A选项错误。由C语言构成的指令序列称为C语言源程序,C语言源程序经过C语言编译程序编译之后,生成一个扩展名为.obj的二进制文件(称为目标文件);最后要由“连接程序”把此目标文件与C语言提供的各种库函数连接起来生成一个扩展名为.exe的可执行文件。故本题答案为A选项。
7.D解析:在用基本输出函数printf时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出;如果格式说明个数多于输出项个数,则对于多余的格式项输出不定值或0。
8.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。
9.N
10.A答案A
解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。
11.D
12.C数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
13.D
14.D
15.C
16.C解析:本题中第一行代码对指针P进行了初始化,其指向数组a的第6个元素,在其后的操作中p的值也没有改变过,所以最后输出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代码中对q指向的值进行赋值,等价于*q=a[10]=11,所以输出结果*q为11。
17.D解析:在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0;C语言规定,对于二维数组,只可以省略第1个方括号中的常量表达式,而不能省略第2个方括号中的常量表达式;赋的初值不能多于事先定义好的数组元素个数。
在选项D)赋值表达式中,对每一维的元素赋初值应用{},而不是()。
18.D因为在逻辑表达式中,两边的赋值表达式都成立,即值为1,故选择D选项。
19.B
20.B
21.#&#&解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b<0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。
22.模块独立原理模块独立原理
23.1616解析:本题中a+=8相当于a=a+8。对表达式逐步进行求解:在a+=(a=8)中,首先a被赋值为8,语句等价于a+=8;即a=a+8;结果为a=16。
24.6262解析:本题考查的是宏定义。带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为:6+8*6+8,代入i,j的值得到62。
25.校正性维护校正性维护
26.doublemax或externdoublemaxdoublemax或externdoublemax解析:函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递.函数声明的一般格式为:类型标识符函数名(类型标识符形参,…);这些信息就是函数定义中的第一行的内容。本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。
27.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。
28.voidfun(doubleb[10][22])voidfun(doubleb[10][22])解析:本题答案:voidfun(doubleb[10][22])。
29.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
30.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳过对应的输入数据,所以第二个输入数200被跳过去了,只有100,300,400三个数被从键盘输入了进来。
31.HelloHello解析:执行b[5]=0;是给数组的第6个元素赋值为0,即将Hello后的空格变为0。当输出字符串时遇到0终止输出。
32.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。
33.软件生命周期软件生命周期解析:软件产品从考虑其概念开始,到该软件产品不再使用为止的整个时期都属于软件生命周期,一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等。
34.输出结果输出结果解析:注意:测试的基本方法和步骤。
35.5432154321解析:在while循环中,d=n%10;语句每次求得的结果是n个位上的数值,例如12345÷10所得的余数就是个位上的5。接下来输出得到的个位数字d,然后执行n/=10;语句,该语句等价于n=n/10;。在C语言中,如果/运算的两个运算分量都是整数,那所得的结果也截尾取整,所以12345/10=1234,即n-=n/10;语句的作用是让n截去个位上的数字。由此可知,随着while循环的继续,n依次为12345、1234、123、12、1,而每次输出n的个位数字将为5、4、3、2、1。故本题应填543210。
36.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函数中调用了一个max函数,而max函数是在调用之后定义的,所以要求填空的内容应该是对函数进行声明的语句。由max函数的定义可知此函数是double型的,因此空格处应该填doublemax或externdoublemax。
37.fname"#"exit(0)chfp
38.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根据输出结果,可以确定“格式控制”为n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原样输出的字符,“%d”是按十进制整数输出,“\\n”是转义字符,用于输出回车换行。
39.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
40.31371f3131,37,1f,31解析:此题考查了printf函数的格式字符,题中d是以十进制形式输出,o是以八进制形式输出,x是以十六进制形式输出,u以不带符号的十进制数输出。
41.B解析:“后进先出”表示最后被插入的元素最先能被删除。选项A中,队列是指允许在—端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则:选项B中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。队列和栈都届于线性表,它们具有顺序存储的特点,所以才有“先进先出”和“后进先出”的数据组织方式。双向链表使用链式存储方式,二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。所以选项C和选项D错误。本题的正确答案为选项B。
42.D答案D
解析:在选项D中,n是一个整型的变量。C语言规定,在一维数组的定义中,其下标只能是常量表达式,不能包含变量。
43.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
44.B
45.B在本题中,题目告诉我们程序中调用scanf函数给变量a输入数值的方法是错误的,要求我们找出其错误的原因,这是一类错误原因分析题。
在本题程序中,首先定义两个整型指针变量p和q,然后定义两个整型变量a和b,让指针变量p执行变量a,接着输出提示语句“请输入a”,执行格式输入语句scanf,由于输入语句的输入列表中给出的应该是输入的地址,即存放输入数据的存储地址,但在本题的输入语句中给出的是*p,这表示一个数值,而非地址。因此,无法完成数据的输入,若要完成输入,可以将*p改为p。
根据上面的分析,我们可以知道本题程序出错的原因是*p表示的是变量a的值,而不是变量a的地址。因此本题正确答案选B。
46.D解析:执行prty(&a);将变量a的地址传递给形参。x是指针型变量,值为变量a的地址,*x就是取存储单元的值即25,输出*x加1后的值26。
47.B解析:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不合晰问的。模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。衡量软件的模块独立性的度量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性越强。而内聚性是信息隐蔽和局部化概念的自然扩长。
48.B解析:本题考核的知识点是赋值语句的正确使用。C语言中赋值语句是由赋值表达式加“;”构成的.赋值表达式的形式为:变量:表达式;。选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句.只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符,所以,4个选项中B符合题意。
49.AA。【解析】程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。程序滥用goto语句将使程序流程无规律,可读性差;添加注释行有利于对程序的理解.不应减少或取消,程序的长短要依据实际的需要而定,并不是越短越好。
50.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
51.C
52.D解析:在C语言中,将一字符常量赋值给一个变量,是把此字符常量所对应的ASCII码值赋值给此字符变量,所以一个字符既可作为字符形式输出,也可以整数形式输出。
53.D解析:计算圆面积的赋值语句中使用了非法变量π。所以,答案为选项D)。注意:注释语句可以出现在程序中的任意位置,故选项A)中的描述错误;圆的半径可以是整型,也可以是实型,定义成哪种类型都不算错,故选项B)中的描述错误;显而易见,选项D)中的描述也错误。
54.C解析:由于用了宏定义a[10]~a[19]均为0。函数fun的功能是把从a[n]到a[m]中的元素依次赋给后面的一个元素。调用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。
55.CC)【解析】线性表是一种线性结构,由n(n≥O)个元素组成,所以线性表可以是空表。但是性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C)是错误的。
56.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表)字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
57.A解析:选项A)错误,原因是typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。
58.C解析:这是一道考查fread函数的题。buf是一个指针,fread是读入数据的存放地址;fwrite是输出数据的地址(以上指的是起始地址)。
59.A解析:本题考查函数的递归调用。
在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准体育场地租赁合同2024年度范本
- 安徽省宿州市省、市示范高中2024-2025学年高一上学期11月期中考试 化学 含解析
- 饭店服务员合同
- 别墅庭院绿化设计与施工合同二零二四年
- 2024年度虚拟现实技术研发劳务合同
- 二零二四年企业信息系统升级改造合同
- 二零二四年度软件开发合同:某互联网公司与某软件开发团队签订合同3篇
- 二零二四年度智能零售系统开发与部署合同
- 股权比例合同范本
- 受法律保护的土地转让协议书(2篇)
- 公交公司冬季安全行车培训
- 文学短评三百字
- 小学美术-点彩游戏-苏少版
- 民法典买卖合同
- 人工智能在环境保护与资源管理中的应用与创新
- 冬奥会饮食健康知识讲座
- 2024年的大数据与人工智能
- 热塑性树脂课件
- 劳务外包服务方案(技术方案)
- 血常规报告单
- 儿童绘本故事:牙齿大街的新鲜事
评论
0/150
提交评论