模拟试题4.docx
- 文档编号:27714755
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:28
- 大小:29.22KB
模拟试题4.docx
《模拟试题4.docx》由会员分享,可在线阅读,更多相关《模拟试题4.docx(28页珍藏版)》请在冰豆网上搜索。
模拟试题4
DDDABCDCBCBAADBDBBDAADDBCDBCCCBACAACDDCA
可行性研究
完善性
非线性结构
n+1
实体
3
852
k<=n
k++
60
ACE
X[0]
X[0]
Str[1]
30x
一、选择题
在下列各题的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)数据
B)数据元素
C)数据项
D)数据结构
(7)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A)log2n
B)n2
C)O(n1..5)
D)n(n-1)/2
(8)在深度为5的满二叉树中,叶子结点的个数为
A)32
B)31
C)16
D)15
(9)数据库系统的核心是
A)数据库
B)数据库管理系统
C)模拟模型
D)软件工程
(10)一个关系中属性个数为1时,称此关系为
A)对应关系
B)单一关系
C)一元关系
D)二元关系
(11)下面各选项中,均是C语言合法标识符的选项组是
A)33weauto
B)_23me_3ew
C)_433e_else
D)ER-DF32
(12)可在C程序中用作用户标识符的一组标识符是
A)andB)DateC)HiD)case
_2007y-m-dDr.TomBigl
(13)以下对C语言函数的有关描述中,正确的是
A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D)函数必须有返回值,返回值类型不定
(14)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是
A)函数的实参和其对应的形参共占同一存储单元
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元
D)函数的形参和实参分别占用不同的存储单元
(15)现有定义inta;doubleb;floatc;chark;,则表达式a/b+c-k值的类型为:
A)int
B)double
C)float
D)char
(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是
A)均占4个字节
B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义
D)由C语言编译系统决定
(17)有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为
A)55566.0
B)566.0
C)7777.0
D)566777.0
(18)若变量已正确定义,有以下程序段
i=0;
doprintf("%d,",i);while(i++);
printf("%d\n",i);
其输出结果是
A)0,0
B)0,1
C)1,1
D)程序进入无限循环
(19)下列程序的运行结果是
#include"stdio.h"
main()
{intx=-9,y=5,z=8;
if(x if(y<0)z=0; elsez+=1; printf("%d\n",z);} A)6 B)7 C)8 D)9 (20)若程序执行时的输入数据是"2473",则下述程序的输出结果是 #include voidmain() {intcs; while((cs=getchar())! ='\n') {switch(cs-'2') {case0: case1: putchar(cs+4); case2: putchar(cs+4); break; case3: putchar(cs+3);default: putchar(cs+2);}}} A)668977 B)668966 C)6677877 D)6688766 (21)以下程序的输出结果是 main() {inta,i;a=0; for(i=1;i<5;i++) {switch(i) {case0: case3: a+=2; case1: case2: a+=3; default: a+=5;} }printf("%d\n",a);} A)31 B)13 C)10 D)20 (22)现有如下程序段 #include"stdio.h" main() {intk[30]={12,324,45,6,768,98,21,34,453,456}; intcount=0,i=0; while(k[i]) {if(k[i]%2==0||k[i]%5==0)count++; i++;} printf("%d,%d\n",count,i);} 则程序段的输出结果为 A)7,8 B)8,8 C)7,10 D)8,10 (23)若有以下程序 #include inta[]={2,4,6,8}; main() {inti; int*p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]);} 上面程序的输出结果是 A)6 B)8 C)4 D)2 (24)有以下程序 #include main() {inti,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf("%d\n",m); } 程序的运行结果是 A)0 B)1 C)2 D)3 (25)已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2的值是′D′。 执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A)A,B B)A,68 C)65,66 D)65,68 (26)下列程序是用来判断数组中特定元素的位置所在的。 #include #include intfun(int*s,intt,int*k) {inti; *k=0; for(i=0;i if(s[*k] returns[*k];} main() {inta[10]={876,675,896,101,301,401,980,431,451,777},k; fun(a,10,&k); printf("%d,%d\n",k,a[k]);} 如果输入如下整数: 876675896101301401980431451777 则输出结果为 A)7,431 B)6 C)980 D)6,980 (27)下面程序的文件名为t.exe,在DOS下输入的命令行参数为: ttomeetme<回车> 则程序输出的结果是 #include"stdio.h" main(argc,argv) intargc;char*argv[]; {inti; printf("%d\n",argc);} A)3 B)4 C)2 D)以上答案都不正确 (28)有如下程序 inta[10]={1,2,3,4,5,6,7,8,9,10}; int*p=&a[3],b;b=p[5]; 则b的值是 A)5 B)6 C)9 D)8 (29)以下叙述中错误的是 A)改变函数形参的值,不会改变对应实参的值 B)函数可以返回地址值 C)可以给指针变量赋一个整数作为地址值 D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL (30)下面程序的输出结果是 #include main() {inta[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%d\n",*p+9);} A)0 B)1 C)10 D)9 (31)有下面程序段 #include"stdio.h" #include"string.h" main() {chara[3][20]={{"china"},{"isa"},{"bigcountry! "}}; chark[100]={0},*p=k; inti; for(i=0;i<3;i++) {p=strcat(p,a[i]);} i=strlen(p); printf("%d\n",i);} 则程序段的输出结果是 A)18 B)19 C)20 D)21 (32)若有定义: char*st="howareyou";,下列程序段中正确的是 A)chara[11],*p;strcpy(p=a+1,&st[4]); B)chara[11];strcpy(++a,st); C)chara[11];strcpy(a,st); D)chara[],*p;strcpy(p=&a[1],st+2); (33)有以下程序 #include intfun(chars[]) {intn=0; while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;} return(n); } main() {chars[10]={'6','1','*','4','*','9','*','0','*'}; printf("%d\n",fun(s)); } 程序的运行结果是 A)9 B)61490 C)61 D)5 (34)设有定义: charp[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是 A)sizeof(p) B)sizeof(char) C)sizeof(*q) D)sizeof(p[0]) (35)有以下函数 intaaa(char*s) {char*t=s; while(*t++); t--; return(t-s); } 以下关于aaa函数的功能的叙述正确的是 A)求字符串s的长度 B)比较两个串的大小 C)将串s复制到串t D)求字符串s所占字节数 (36)当用户要求输入的字符串中含有空格时,应使用的输入函数是 A)scanf() B)getchar() C)gets() D)getc() (37)下列选项中错误的说明语句是 A)chara[]={'t','o','y','o','u','\0'}; B)chara[]={"toyou\0"}; C)chara[]="toyou\0"; D)chara[]='toyou\0'; (38)以下程序的输出结果是 intf() {staticinti=0; ints=1; s+=i;i++; returns;} main() {inti,a=0; for(i=0;i<5;i++)a+=f(); printf("%d\n",a);} A)20 B)24 C)25 D)15 (39)下列程序的输出结果是 #include"stdio.h" #defineM(x,y)x%y main() {inta,m=12,n=100; a=M(n,m); printf("%d\n",a--);} A)2 B)3 C)4 D)5 (40)假定当前盘符下有两个如下文本文件: 文件名a1.txta2.txt 内容123#321# 则下面程序段执行后的结果为 #include"stdio.h" voidfc(FILE*p) {charc; while((c=fgetc(p))! ='#')putchar(c);} main() {FILE*fp; fp=fopen("a1.txt","r"); fc(fp); fclose(fp); fp=fopen("a2.txt","r"); fc(fp); fclose(fp); putchar('\n');} A)123321 B)123 C)321 D)以上答案都不正确 二、填空题 请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。 (1)软件定义时期主要包括【1】和需求分析两个阶段。 (2)软件维护活动包括以下几类: 改正性维护、适应性维护、【2】维护和预防性维护。 (3)数据的逻辑结构有线性结构和【3】两大类。 (4)某二叉树中度为2的结点有n个,则该二叉树中有【4】个叶子结点。 (5)在ER图中,矩形表示【5】。 (6)阅读下面程序,则执行后的输出结果是【6】。 #include"stdio.h" main() {intx,y,z; x=1;y=2;z=3; if(x>y)if(x>z)printf("%d",x); elseprintf("%d",y); printf("%d\n",z);} (7)以下程序的输出结果是【7】。 main() {inty=9; for(;y>0;y--) if(y%3==0) {printf("%d",--y);continue;}} (8)有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1)); printf("s=%f\n\n",s); 请填空,使下面程序段的功能与之完全相同 s=1.0;k=1; while(【8】){s=s+1.0/(k*(k+1));【9】;} printf("s=%f\n\n",s); (9)设有以下定义和语句,则*(*(p+2)+1)的值为【10】。 inta[3][2]={10,20,30,40,50,60},(*p)[2]; p=a; (10)以下程序的输出结果是【11】。 #include main() {inti; for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A'); printf("\n"); } (11)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。 请填空。 #include voidf(intx[],intn) {intp0,p1,i,j,t,m; i=j=x[0];p0=p1=0; for(m=0;m {if(x[m]>i){i=x[m];p0=m;} elseif(x[m] } t=x[p0];x[p0]=x[n-1];x[n-1]=t; t=x[p1];x[p1]=【12】;【13】=t; } main() {inta[10],u; for(u=0;u<10;u++)scanf("%d",&a[u]); f(a,10); for(u=0;u<10;u++)printf("%d",a[u]); printf("\n"); } (12)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。 请填空。 intmystrlen(char*str) {intI; for(I=0;【14】! ='\n';I++); return(I);} (13)阅读下列程序,则程序的输出结果为【15】。 #include"stdio.h" structty {intdata; charc;}; main() {structtya={30,'x'}; fun(a); printf("%d%c",a.data,a.c);} fun(structtyb) {b.data=20; b.c='y';} 一、选择题 (1)D 【解析】软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。 本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。 (2)D 【解析】测试的目的是发现软件中的错误。 经验表明,程序中存在错误的概率与该程序中已发现的错误成正比。 这一现象说明,为了提高测试效率,测试人员应该集中对待那些错误群集的程序。 (3)D 【解析】面向对象思想中的三个主要特征是: 封装性、继承性和多态性。 (4)A 【解析】当今主导的程序设计风格是"清晰第一,效率第二"的观点。 结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而在实际应用中,人们更注重程序的可理解性。 (5)B 【解析】软件设计包括软件结构设计、数据设计、接口设计和过程设计。 其中,结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。 (6)C 【解析】数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。 (7)D 【解析】假设线性表的长度为n,则在最坏情况下,冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。 (8)C 【解析】满二叉树是指除最后一层外,每一层上的所有结点都有两个叶子结点。 在满二叉树中,层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。 (9)B 【解析】数据库管理系统(DatabaseManagementSystem,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。 (10)C 【解析】在关系模型数据库中,基本结构是二维表,这种二维表称为关系。 关系的列称为属性,一个具有N个属性的关系称为N元关系。 (11)B 【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。 选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。 (12)A 【解析】在C语言中,合法标识符的命名规则是: 标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。 C语言的标识符可以分为关键字、预定义标识符和用户标识符。 选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。 (13)A 【解析】C语言中的函数可以进行递归调用,但是不能在函数中定义函数,函数不用有返回值,若有返回值,则返回值类型必确定。 (14)D 【解析】在内存中,实参单元与形参单元是不同的单元。 在C语言中,仅在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。 (15)B 【解析】双目运算中两边运算量类型转换规律: 运算数1运算数2转换结果类型 短整型长整型短整型->长整型 整型长整型整型->长整型 字符型整型字符型->整型 有符号整型无符号整型有符号整型->无符号整型 整型浮点型整型->浮点型 在a/b的时候,a、b的类型不一致,根据类型转换规则,把整型转换成double类型,之后的加、减类似。 转化规则为char,short->int->unsigned->long->double←float。 (16)D 【解析】在ANSI标准中,long、int和short分别占用4、2和2个字节。 但实际上对于某些C编译系统,int和short都占用4个字节,所以说各种类型数据占用内存大小是由选择何种C编译系统决定的。 (17)B 【解析】本题考查通过scanf函数输入数据时的格式控制问题。 变量j的格式控制为"%2d",即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。 (18)B 【解析】对于do厀hile循环,程序先执行一次循环体,再判断循环是否继续。 本题先输出一次i的值"0,",再接着判断表达式i++的值,其值为0,所以循环结束。 此时变量i的值经过自加已经变为1,程序再次输出i的值"1"。 (19)D 【解析】if卐lse语句的执行过程如下,首先计算if后面一对圆括号内表达式的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 试题