首页计算机计算机软件软件工程 33 软件学院专业课试题-理工类(answer).docx

33 软件学院专业课试题-理工类(answer).docx

页数:10页文件大小:43.2 KB来源: 软件工程ppt课件

本课件讲解高职升本专业课试题(理工类)答案,从C语言部分试题及答案切入,依次展开软件工程概论试题及答案、高职升本专业课真题解析等内容,配合课堂示例与练习,帮助学习者掌握高职升本专业课真题解析的核心方法。

年软件学院高职升本专业课试题-理工类考场,列举x<、(x>、x<等要点
指向一维数组的指针,2C.指向一维数组的指针,该数组的基类型为intD.长度为8的一维指针数组8.以下程序段的输出结果是Achara[]=
若有以下说明和语句,314.若有以下说明和语句,则输出结果是Ccharsp[]=
查看本课件的文字版(共 10 页,供检索与复制)

第1页:年软件学院高职升本专业课试题-理工类考场

  • 年软件学院高职升本专业课试题-理工类考场号考生号姓名第一部分C语言部分100分一、单项选择题(共20小题,每题2分,共40分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。1.表示当x的取值在[1,10]和[200,210]范围内为真,否则为假的C语言表达式为CB.(x>=1
  • x<=10)
  • (x>=200
  • x<=210)D.(x>=1
  • x<=10)&&(x>=200
  • x<=210)1A.(x>=1&&x<=10)&&(x>=200&&x<=210)C.(x>=1&&x<=10)
  • (x>=200&&x<=210)2.若有以下定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则为数组元素a[i]不正确的引用是DA.*(p+i)C.p[i]B.*(a+i)D.*a[i]3.判断char型变量ch是否为数字的C表达式为BB.(ch>='0'&&ch<='9')D.(ch>=0&&ch<=9)A.('0'<=ch&ch<='9')C.(ch>="0"&&ch<="9")4.以下程序段构成的循环是Cfor(x=0,y=0;(y!=12&&x<4);x++) ;A.无限循环C.执行4次5.以下程序的输出结果是A#include<stdio.h>main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elsecontinue;printf("#");}}A.*#*#*#C.*#*#6.以下程序的输出结果是C#include<stdio.h>#defineMAX(x,y)(x)>=(y)?(x):(y)main(){inti=10,j=15;printf("%d",10*MAX(i,j));}A.15C.107.设有说明:int(*ptr)[8];则ptr是CA.指向整形变量的指针B.循环次数不定D.执行3次B.*##*##*##*##D.#*#*B.100D.150B.指向函数的指针,该函数的返回值为int数据

第2页:指向一维数组的指针

2C.指向一维数组的指针,该数组的基类型为intD.长度为8的一维指针数组8.以下程序段的输出结果是Achara[]="0123456789",*p=a+4;printf("%c",*p++);B.a[4]的地址D.5A.4C.69.下面程序的运行结果是B#include<stdio.h>main(){inta=1,b=10;do{b−=a;a++;}while(b−−<0);printf("a=%d,b=%d\n",a,b);}A.a=3,b=11C.a=1,b=−1B.a=2,b=8D.a=4,b=910.执行下面程序,输入2后的输出结果是C#include<stdio.h>main(){intk;scanf("%d",&k);switch(k){case1:printf("%d\n",k++);break;case2:printf("%d\n",k++);case3:printf("%d\n",k++);break;default:printf("Full!\n");}}A.1C. 23B.2D.2 3Full11.若有以下结构体和变量定义,则以下引用方法不.正.确.的是Dstructworker{intsno;char*name;}work,*p=&work;B.(*p).nameD.work->snoA.work.snoC.p->sno12.chars[10],*p=s;则以下不正确的表达式是BA.p=s+1;C.*(s+1)=*p;B.p=s++;D.*p++=s[2];13.以下不能对二维数组a正确初始化的语句是AA.inta[2][3]={{1,2,3},{4,5},{6}};C.inta[2][4]={1,2,3};B.inta[][3]={{1,2,3},{4,5,6}};D.inta[][3]={{1,0,1},{},{1,1}};

第3页:若有以下说明和语句

314.若有以下说明和语句,则输出结果是Ccharsp[]="\t\n\\0will\n";printf("%d",strlen(sp));A.4C.915.对于结构体类型,以下说法正确的是CA.定义结构体时不能定义结构体变量B.3D.字符串中有非法字符B.结构体变量所占的空间等于占空间最大的成员所需空间C.结构体类型可以作为返回值类型D.结构体定义后可以与标准类型一样使用,但前面必须使用struct16.在C语言中,要求运算数必须是整型的运算符是DB.++D.%A./C.!=17.以下程序段在VC6.0环境中运行的输出结果是structstudentinfo{charname[10];intSNO;charsex;}student,*ps=&student;printf("%d,%d",sizeof(student),sizeof(ps));的输出结果是BA.15,15C.15,2B.15,4D.4,218.根据17题中的结构体和变量定义,不.能.正确输出name成员的语句是CA.printf("%s",student.name);C.printf("%s",*ps.name);19.以下程序的输出结果是Amain()B.printf("%s",ps->name);D.printf("%s",(*ps).name);{inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}B.147D.输出值不定A.0650C.543020.设有以下变量定义:charstr[20],i;当输入“zhang空格hong回车”时,能正确读入“zhanghong”的程序段是CA.scanf("%s",str);B.for(i=0,str[i]=getchar();str[i]!='\n';)str[i++]=getchar();C.gets(str);D.for(i=0,str[i]=getchar();str[i]!='\0';i++)str[i]=scanf("%c",str[i]);二、填空题(共10题,每题1分,共10分)请按照试题中对应的标号顺序填写到答题表中1.C函数中若省略函数类型说明,则该函数类型默认为int。

2.局部变量默认的存储类型为auto。

3.文件包含命令#include有两种形式,区别是搜索路径不同。

包含系统文件string.h应该使用#include<string.h>。

第4页:如果要限定变量的作用域仅在当前文件有效

44.如果要限定变量的作用域仅在当前文件有效,应使用static关键字。

5.break和continue都可以用于循环结构中,其中continue只是结束本次循环,回到循环体第一条语句开始下次循环。

6.C语言变量有四种存储类别,其中关键字extern的含义是声明外部变量。

7.静态变量的初始化是在编译阶段完成的。

8.数组名作为实参使用时,传送的是数组首地址。

9.sizeof运算符的对象即可以是变量,也可以是常量。

10.C语言中多维数组可嵌套定义,即n维数组可看作元素类型为n-1维数组。

三、判断题判断下题是否正确,正确的划√,错误的划×(每题1分,共15分)1.在do-while循环中,循环体至少执行一次。

(√)2.C语言中局部变量和全部变量可以同名,并且在函数内局部变量优先于全局变量。

(√)3.预处理命令都是以#号开头,且每行只能写一条命令。

(×)4.定义二维数组时,如果对数组的所有元素赋值,则可省略长度说明。

(×)5.C语言要求所有被调用的函数一定要在调用语句之前进行定义。

(×)6.函数内定义的静态变量当函数执行完其值依然存在。

(√)7.void关键字只能用于定义函数,不能定义变量。

(×)8.一个函数直接或间接的调用自己,称作递归调用。

(√)9.全局变量是指在main函数中定义的变量。

(×)10.for(exp1;exp2;exp3)语句s;中的s可以是空语句。

(√)11.结构体可以与标准类型一样使用,但前面须用struct关键字。

(×)12.main函数称为主函数,是个无参函数。

(×)13.表达式n=++i等价于n=i;i=i+1;。

(√)14.语句chars[]="test";与chars[]={'t','e','s','t'};是等价的。

(×)15.C函数中的函数即可以嵌套定义,也可以嵌套调用。

(×)四、阅读程序题本题共5小题,每小题5分,共25分,请写出程序的运行结果1.【程序】#include<stdio.h>#include<stding.h>main(){chari,s[5][81],max=0;printf("input5strings");for(i=0;i<5;i++)gets(s[i]);for(i=0;i<5;i++)if(strlen(s+i)>max)max=i;puts(s[max]);}【运行结果】写出从键盘输入一下5个字符串时程序的运行结果"Program","test","Iamastudent","wee","computer"I am astudent

第5页:C语言部分填空与程序阅读(含答案)

52.【程序】#include<stdio.h>main(){inti,f1=1,f2=1;for(i=1;i<=5;i++){printf("\t%d\t%d",f1,f2);f1=f1+f2;f2=f1+f2;}printf("%d,%d\n",f1,f2);}【运行结果】1123581321345589,1443.【程序】#include<stdio.h>voidfun(intn){staticintfn=1;fn=fn*n;printf("\t%d",fn);}main(){inti;for(i=2;i<=5;i++)fun(i);}【运行结果】26241204.【程序】voidselect(intmax,inta[],intn){inti;max=a[0];for(i=1;i<n;i++)if(a[i]>max)max=a[i];}main(){inti,max=10,a[10]={10,20,30,40,50,60,70,80,90,100};select(max,a,10);printf("\nmax=%d",max);}【运行结果】

第6页:6max=105.【程序】写出输入84时

6max=105.【程序】写出输入84时程序运行结果#include<stdio.h>main(){intscore;printf("\ninputscore:");scanf("%d",&score);switch(score/10){case10:case9:printf("\n优");case8:printf("\n良");case7:case6:printf("\n及格");default:printf("\n不及格");}}【运行结果】良及格不及格五、编程题(本题共1题,10分)已知每张选票上按序印有候选人姓名,要求选民从中勾选3人,多选或少选都视为废票不予统计,统计选票时输入数据的格式为长度为5的由0和1组成的字符串:“1”表示对相应候选人被选中,“0”表示未选中,如“01011”表示第2、4、5个候选人被选中。

请编写程序读入每张选票的投票信息,若为有效选票则统计到结果中,当输入空串时结束,输出以下统计结果:1.总有效投票数。

2.每个候选人姓名及投票数。

提示:候选人信息已保存在以下的数组中,无须再从键盘输入。

structitem{charname[20];intcount;}mans[5]={{"name1",0},{"name2",0},{"name3",0},{"name4",0},{"name5",0}};#include<stdio.h>main(){charstr[6];inti,flag,count=0;gets(str);while(str[0]!='\0'){for(flag=0,i=0;i<6;i++)if(str[i]=='1')flag++;if(flag==3){count++;for(i=0;i<6;i++)if(str[i]=='1')mans[i].count++;}gets(str);}

第7页:C语言部分填空与程序阅读(含答案)

7printf("count=%d\n",count);for(i=0;i<5;i++)printf("%s=%d\n",mans[i].name,mans[i].count);}第二部分软件工程概论部分100分一、单项选择题(共18小题,每题2分,共36分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。

1.软件开发瀑布模型的各个阶段依次是AA.分析→设计→编码→测试→维护C.分析→定义→设计→编码→测试2.软件可行性研究一般不考虑DB.设计→定义→开发→测试→维护D.设计→分析→编码→测试→维护A.是否有足够的人员和相关的技术的来支持系统开发B.是否有足够的工具和相关的技术的来支持系统开发C.待开发软件是否有市场、经济上是否合算D.待开发软件是由会有质量问题3.需求分析阶段的主要任务是确定DB.软件的总体结构D.软件系统的功能A.软件开发方法C.软件开发的费用4.结构化分析方法(SA)的主要特点是AA.面向数据流自顶向下,逐步求精的方法C.先局部后整体的分析方法5.软件总体设计阶段的任务不.包.括.CA.设计软件的模块结构C.模块设计6.数据流图中的每个加工至少需要BA.一个输入流C.一个输入或输出流7.以下叙述中模块内聚性最高的是DA.逻辑内聚C.通信内聚B.由内向外进行分析的方法D.使用IPO图形工具分析的方法B.定义接口并建立数据结构D.生成模块设计规格说明B.一个输出流和一个输入流D.一个输出流B.时间内聚D.功能内聚8.(C)和数据流图共同构成系统的逻辑模型,没有它数据流图就不完整。

B.E-R图D.层次方框图A.系统流程图C.数据字典9.在详细设计阶段经常采用的图形工具包括DA.PAD图C.N-S图B.程序流程图D.以上都是10.Jackson设计方法是一种面向(A.对象C.数据结构C)的软件设计方法。

B.数据流D.控制结构11.按照总体设计中启发式规则,模块的作用域和控制域之间的关系应满足AA.模块的作用域应在模块的控制域之间C.模块的控制域与模块的作用域相互独立B.模块的控制域应在模块的控制域之间D.以上说法都不对12.一般来说,在软件生命周期中成本最高的阶段是DB.软件编码D.软件维护A.详细设计C.软件测试13.模块间耦合程度由低到高的顺序是B

第8页:控制耦合<

8A.控制耦合<特征耦合<公共耦合<内容耦合<数据耦合B.数据耦合<控制耦合<特征耦合<公共耦合<内容耦合C.数据耦合<特征耦合<控制耦合<公共耦合<内容耦合D.内容耦合<数据耦合<控制耦合<特征耦合<公共耦合14.常用的黑盒测试方法不包括CB.边界值分析D.错误推测A.等价类划分C.逻辑覆盖15.软件维护阶段的四类维护活动是AA.改正性维护,适应性维护,完善性维护和预防性维护B.适应性维护,完善性维护,抢救性维护和辅助性维护C.改正性维护,适应性维护,完善性维护和辅助性维护D.适应性维护,完善性维护,抢救性维护和预防性维护16.因计算机软硬件环境的变化而作出的修改软件的过程属于BB.适应性维护D.预防性维护A.改正性维护C.完整性维护17.逻辑覆盖方法中,覆盖程度最强的是AA.路径覆盖C.判定条件覆盖B.条件覆盖D.语句覆盖18.以下(A.JavaC.C++B)语句不属于面向对象的语言B.CD.C#二、填空题(共9题,每空1分,共10分)1.软件工程方法学主要包括3个要素:方法、工具和过程。

2.UML中定义9种图用于从不同角度描述系统,其中描述系统物理实现和配置的图有:构件图和部署图。

3.面向对象程序设计以对象为基本的逻辑构件,通过继承机制实现重用性。

4.数据流图可分为变换型数据流图和事务型数据流图两大类。

5.一个模块直接调用下级模块的个数称为扇出。

6.从工程管理的角度看,软件设计可分为总体设计和详细设计两大步骤。

7.“OOD”的含义是面向对象设计。

8.相同的操作用于不同的对象上可获得不同的结果,这种现象称为多态性。

9.结构化程序设计中程序的三种基本结构是:顺序、选择、循环。

三、判断题(共15题,每题1分,共15分)判断下列各题是否正确,正确的划√,错误的划×1.HIPO图是面向对象设计工具之一。

(×)2.测试过程没有发现任何错误,也不能说明软件没有错误。

(√)3.数据库设计属于软件概要设计阶段。

(×)4.软件就是完成特定功能的程序的集合。

(×)5.对象之间的通信仅通过消息传递机制。

(√)6.软件可行新分析研究的目的是最小的代价在尽可能的时间内确定该软件项目是否能够开发,是否值得去开发。

(√)7.集成测试多用于“灰盒”测试技术,即它即应用黑盒测试技术也是用白盒测试技术。

(√)8.瀑布模型可以有效地用户需求的变化,因此适合大型的系统。

(×)9.结构化程序设计要求每个模块具有单入口,单出口。

(√))10.将软件系统划分为模块时,应尽量做到高内聚低耦合。

(√11.详细设计的结构基本决定了最终程序的质量。

(√)12.验收测试是由用户依据软件需求规格说明书单独进行的。

(√)

第9页:运用面向对象方法开发的软件一般是由很多较

  • 913.运用面向对象方法开发的软件一般是由很多较小的对象组成,从而降低了软件产品的复杂性,使得开发和维护更为简单有效。(√)14.瀑布模型在实际的项目中严格顺序执行就可以成功。(×)15.从模块独立性的角度,应尽量使用内容耦合。(×)四、名词解释题(共4小题,共9分)1.软件生命周期(3分)一个软件从定义,开发,使用和维护直至最后被废弃要经历的漫长时期。2.模块独立性(2分)模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少,且接口简单。3.白盒测试(2分)又称结构测试、逻辑驱动测试或基于程序的测试,它依赖于对程序内部结构的严密检验,针对特定条件设计测试用例,对软件的逻辑路径进行测试。4.对象(2分)对象是指客观事物或概念的抽象描述,对象不仅能表示具体的实体,也能表示抽象的规则、计划、事件。五、简单题(共3小题,每题5分,共15分)1.简述面向对象开发方法的优点
  • ①与人类习惯的思维方式一致
  • ②软件稳定性好
  • ③可重用性好
  • ④适合开发大型软件产品
  • ⑤可维护性好2.决定软件可维护性的因素有哪些?
  • ①可理解性
  • ②可测试性
  • ③可修改性
  • ④可移植性
  • ⑤可重用性3.简述快速原型模型及其特点原型模型是一个快速开发的过程。首先和用户沟通进行主要功能的需求分析和快速设计,然后建立一个原型模型,再请用户进行评价和反馈。开发人员根据用户的反馈进一步细化需求,改进原型系统的设计,如此反复直至用户满意。特点:优点:
  • (1)出品速度快。
  • (2)逐步求精。
  • (3)开发阶段迭代。缺点:

第10页:10(1)实现过程中不应有的折衷方案

  • 10
  • (1)实现过程中不应有的折衷方案。
  • (2)开发者急于完成原型而忽略了整体设计和可维护性;
  • (3)用户的参与过多也造成了软件开发管理的混乱。六、应用题(共15分)某教学管理信息系统中要求用户输入成绩,成绩限制为0到100之间的整数,小数或其他字符无效。如果输入成绩不在此范围内,则显示“输入错误”,输入的成绩小于60,则显示“不及格”,大于等于60显示“及格”。要求:分别用
  • (1)等价类划分。
  • (2)边界值分析法设计测试用例,以测试程序的“输入成绩”功能。
  • (1)依据题目,划分的等价类为:不合理等价类合理等价类输入等价类2.含有非数字字符3.有小数点
  • 1.整数数字输入类型6.小于07.大于
  • 1004.0至59之间
  • 5.60至100之间成绩范围采用等价划分法设计的测试用例如下:覆盖范围期望结果测试数据1、5输入有效(及格)881、4输入有效(不及格)352输入无效A3输入无效0.16输入无效-107输入无效101
  • (2)边界值法设计测试用例的情况如下表所示:期望结果测试数据边界值输入无效-10输入有效(不及格)0输入有效(不及格)1输入有效(不及格)5960输入有效(及格)60输入有效(及格)61输入有效(及格)99100输入有效(及格)100输入无效101
顶部目录