软件开发考试题模拟题答案.docx
- 文档编号:5373209
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:44
- 大小:56.91KB
软件开发考试题模拟题答案.docx
《软件开发考试题模拟题答案.docx》由会员分享,可在线阅读,更多相关《软件开发考试题模拟题答案.docx(44页珍藏版)》请在冰豆网上搜索。
软件开发考试题模拟题答案
软件开发
考试试卷
(机密)
考试声明
本人已经认真阅读考试注意事项,承诺遵守考试纪律,自己不作弊、不协助他人作弊;考试后不向其他人泄漏考题内容,维护考试的机密性。
特此声明。
考生签名:
年月日
答题纸
考生信息
姓名
性别
学历
考试专业
单位
身份证号码
一、单选题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
二、多选题
1
2
3
4
5
6
7
8
9
10
三、改错题
1.
2.
3.
4.
5.
四.编程题
注:
选择题请将答案填写在答题纸上,填写在其它位置无效。
软件开发考核试卷
考试说明:
1、本次考试类型为笔试,请考生用蓝色圆珠笔或钢笔答题,不得用铅笔,用铅笔者本试卷作废;
2、本次考试时间为60分钟,共计100分;
3、试卷表面必须保持清洁,不得在试卷上作记号,一经发现取消该考生卷面成绩;
4、请将答案写在答题纸上,填写在其他位置无效。
题(每题2分,共计60分)
1.软件工程研究的内容包括:
()技术和软件工程管理:
D
2.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为:
C
A.32B.6C.8D.16
3.下列描述正确的是:
A
A.C语言程序中各函数之间既允许直接递归调用也允许间接递归调用
B.C语言程序中不允许直接递归调用也不允许间接递归调用
C.C语言程序中允许直接递归调用不允许间接递归调用
D.C语言程序中不允许直接递归调用允许间接递归调用
4.下面关于完全二叉树的叙述中,错误的是:
B
A.除了最后一层外,每一层上的结点数均达到最大值
D.具有结点的完全二叉树的深度为[log2n]+1
5.在软件生命周期中,能准确完成程序的编码的阶段是:
C
6.下面程序的输出结果是:
B
#include
sub(x,y,z)
intx,y,*z;
{*z=y–x;}
main(){
inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A.5,2,3B.–5,–12,–7C.–5,–12,–17D.5,–2,–7
7.程序流程图(PFD)中的箭头代表的是:
B
8.下面程序的输出是:
C
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
9.符合C语言语法的赋值语句的是:
D
A.a=7+b+c=a+7B.a=a+7
C.a=7+b,b++,a+7;D.a=7+b,c=a+7;
10.若运行时给变量x输入12,则以下程序的运行结果是:
B
main(){
intx,y;
scanf(“%d”,&x);
y=x>12?
x+10:
x–12;
printf(“%d\n”,y);
}
A.2B.0C.8D.10
11.在C语言中,要求运算数必须是整型的运算符是:
A
A.%B./C. 12.以下程序语句中 y=–1; if(x! =0) if(x>0)y=1;elsey=0; 所表示的数学函数关系是: C –1(x<0)1(x<0) A.y=0(x=0) B.y=–1(x=0) 1(x>0)0(x>0) 0(x<0)–1(x<0) C.y=–1(x=0) D.y=1(x=0) 1(x>0)0(x>0) 13.若有以下函数定义: C myfun(doublea,intn) {……} 则myfun函数值的类型是 A.void B.double C.int D.char 14.软件需求分析应确定用户对软件的: D 15.C语言中main函数参数的非法表示形式是: D A.main(char*argv[],intargc) B.main(inta,char**b) C.main(inty,char*x[]) D.main(intargv,char*argc[]) 16.以下的for循环: C for(x=0,y=0;(y! =123)&&(x<4);x++) 17.C语言规定,函数返回值的类型由: A 18.下面描述中,不符合结构化程序设计风格的是: C A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 D.限制使用goto语句 19.以下程序中 main() {intx=3,y=0,z=0; if(x=y+z)printf("****"); elseprintf("####"); } D B.输出**** C.可以通过编译,但是不能通过连接,因而不能运行 D.输出#### 20.执行下面程序片段的结果是: B intx=123; do {printf("=\n",x--);} while(! x); 21.下述对C语言字符数组的描述中错误的是: C B.字符数组中的字符串可以整体输入、输出 “=”对字符数组整体赋值 22.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是: D A.acbed B.decab C.deabc 23.C语言提供的合法的数据类型关键字是: B 24.以下程序的输出结果正确的是: B #include sub(int*s,inty) {staticintt=3; y=s[t];t––; } main() {inta[]={1,2,3,4},i,x=0; for(i=0;i<4;i++){ sub(a,x);printf("%d",x);} printf("\n"); } A.1234B.0000C.4321 25.C程序中的语句: char*func(intx,inty);它是: C A.对函数func的定义 B.对函数func的调用 C.对函数func的原型说明 D.不合法的 26.下列程序的运行结果是: A main() {unionEXAMPLE {struct {intx;inty;}in; inta; intb; }e; e.a=1;e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b; printf("%d,%d\n",e.in.x,e.in.y); } A.4,8B.2,6C.8,16D.12,16 27.下列选项中可用于C语言用户标识符的是: B A.voiddefineword B.a3_b3_123Car C.For-abcIFCase 28.对下述程序,描述正确的是: A main() {inta,b; scanf("%d,%d",&a,&b); if(a>b)a=b;b=a; elsea++;b++; printf("%d,%d",a,b);} B.若输入4,5则输出5,6 C.若输入5,4则输出4,5 D.若输入5,4则输出5,5 29.下面程序的输出是: B main() {intarr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i; for(i=1;i<4;i++) k+=arr[i]+i; printf("%d\n",k);} A.8B.6C.4D.12 30.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是: BD intw[10]={23,54,10,33,47,98,72,80,61},*p=w; A.(p+5)*B.*(p+5)C.p%[5]D.p[5%] 二.多项选择题(每题2分,共计20分) 1.下列有关函数的说法中正确的是: ABC A.C语言中的函数只具有static和extern两种类型 B.C语言中允许函数的递归调用 C.调用函数时,C语言要求实参与形参的个数,类型完全一致 D.C语言函数的缺省数据类型是空类型(void型) 2.下面的变量说明中()是错误的: ABD A.char: a,b,c; B.chara;b;c; C.chara,b,c; D.chara,b,c 3.假如有以下调用语句,则正确的fun函数的首部是: ABC main() {… inta[50],n; … fun(n,&a[9]); … } A.voidfun(intm,intx[]) B.voidfun(ints,inth[41]) C.voidfun(intp,int*s) D.voidfun(intn,inta) 4.下列常量中哪些是合法的: BCD A.2e32.6 B.0.2e-5 C.“basic” D.0x4b00 5.关于if后一对圆括号中的表达式,以下叙述中错误的是: ABC 6.下列叙述中错误的是: BCD 7.若有以下程序 #include voidf(intn); main() {voidf(intn); f(5); } voidf(intn) {printf("%d\n",n);} 则以下叙述中正确的是: ABD A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f C.对于以上程序,编译时系统会提示出错信息: 提示对f函数重复说明 D.函数f无返回值,所以可用void将其类型定义为无返回值型 8.根据C语言的语法规则,下列()是合法标识符: BCD B.NameC.R5D._exam 9.下列关于复合语句和空语句的说法正确的是: ABD “{”开头,由“}”结尾的 C.复合语句内,可以有执行语句,不可以有定义语句部分 10.下列说法中错误的是: ACD B.静态(static)类型变量的生存期贯穿于整个程序的运行期间 三.改错题(每题2分,共计10分) 将下列程序中不正确的语句改正。 1.main() {intk; k=35555; printf(“%d“,k);} 答案: longintk;printf(“%ld“,k);} 2.main() {intn; floats=1.0; for(n=10;n>1;n--) s=s+1/n; printf(“%\n”,s);} 3.main() {intsum,k; sum=0; k=1; while(k<=100) sum=sum+k; k++; printf(“sum=%d\n”,sum);} 答案: while(k<=100) {sum=sum+k; k++;} 4.main() {intk,a(8); for(k=0;k<10;k++) scanf(“%d”,&a(k)); ......} 答案: intk,a[8]; scanf(“%d”,&a[k]); 5.main() {inta; scanf(“%d”,a); if(a=1)printf(“One\n”);} 答案: printf("%d,",&a);if(a==1) 四.编程题(共计10分) 编写一个函数intfun(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。 如,输入如下整数: 234345753134436458100321135760 则输出结果为6,100。 注: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include intfun(int*s,intt,int*k) { } main() {inta[10]={234,345,753,134,436,458,100,321,135,760},k; clrscr(); fun(a,10,&k); printf("%d,%d\n",k,a[k]); } 答案 intfun(int*s,intt,int*k) {inti; *k=0;/*k所指的数是数组的下标值*/ for(i=0;i if(s[*k]>s[i]) *k=i;/*找到数组的最小元素,把该元素的下标赋给k所指的数*/ returns[*k];/*返回数组的最小元素*/} 模拟题: 一.单项选择题(每题2分,共计60分) 1.根据C语言的语法规则,下列()个是不合法标识符: A B.Name C.Rern5 D._exam 2.属于C语言的数据类型是: C 3.假设变量a,i已正确定义,且i已正确赋值,合法的语句是: B A.a==1 B.++i; C.a=a++=5; D.a=int(i); 4.设有以下定义和语句,则*(*(p+2)+1)的值为: D int[3][2]={10,20,30,40,50,60},(*p)[2]; p=a; A.16B.32C.64D.60 5.inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为6的表达式是: C A.*p+6B.*(p+6)C.*p+=5D.p+5 6.有以下程序 #include main() {FILE*fp;inti=20,j=30,k,n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n); fclose(fp); } 程序运行后的输出结果是: A A.2030 B.2050 C.3050 D.3020 7.以下说法中正确的是: A A.C语言程序总是从main()函数开始执行 B.在C语言程序中,要调用函数必须在main()函数中定义 C.C语言程序总是从第一个函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 8.Break语句的正确的用法是: B A.无论在任何情况下,都中断程序的执行,退出到系统下一层 B.在多重循环中,只能退出最靠近的那一层循环语句 C.跳出多重循环 D.只能修改控制变量 9.在下列程序中,没有构成死循环的是: D A.inti=100; while (1) {i=i0+1; if(i>100)break; } B.for(;;); C.intk=10000; do{k++;}while(k>10000); D.ints=36; while(s)--s; 10.设有定义: longx=-123456L;则以下能够正确输出变量x值的语句是: B A.printf(“x=%d\n”,x) B.printf(“x=%ld\n”,x) C.printf(“x=? l\n”,x) D.printf(“x=%D\n”,x); 11.C语言中各种基本数据类型的存储空间长度排列为: C ≤long≤int≤float≤double ≤float≤long≤int≤char ≤int≤long≤float≤double ≤int≤long≤char≤double 12.以下选项中,定义s为合法的结构体变量的是: B A.typedefstructabc {doublea; charb[10]; }s; B.struct {doublea; charb[10]; }s; C.structABC {doublea; charb[10]; } ABCs; D.typedefABC {doublea; charb[10]; } ABCs; 13.下面程序的运行结果是: A #include“stdio.h” main() {inta[]={8,2,9,4,1},*p; p=a; *(p+2)+=2; printf(“%d,%d”,*p,*(p+2));} A.8,11B.9,16C.2,11D.8,10 14.字符串指针变量中存入的是: A A.字符串的首地址。 B.字符串 D.字符串变量。 15.C语言中以只读方式打开一个文件应选择()参数: A A.“r” B.“w” C.“rb” D.“a” 16.以下能正确表示x在-5到-1或5到1范围(含5和1)内,值为“真”的表达式是: A A.(x>=-5)||(x<=-1)&&(x<=5)&&(x>=1) B.! (x>=-5||x<=-1&&x<=5||x>=1) C.x<-5&&x>-1||x<1&&x>5 D.(x<-5)||(x>-1&&x<1)||(x>5) 17.设有数组定义: chararray[]=”China”;则数组所占的存贮空间为: C B.5个字节 C.6个字节 D.7个字节 18.已知函数的调用形式: fread(buf,size,count,fp),参数buf的含义是: C A.一个整型变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 19.为了避免嵌套的条件分支语句if—else的二义性,C语言规定: C程序中的else总是与()组成配对关系: C 20.在C语言中,int,char和short三种类型数据在内存中所占用的字节数: D 21.能正确表示a和b同时为正或同时为负的逻辑表达式是: D A.a>=0||b>=0)&&(a<0||b<0) B.(a>=0&&b>=0)&&(a<0&&b<0) C.(a+b>0)&&(a+b<=0) D.a*b>0 22.假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为: C 23.设整型变量a为5,使b不为2的表达式是: c A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3? 2: 1 24.表达式“1? (0? 3: 2): (10? 1: 0)”的值为: B B.2 C.1 D.0 25.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是: c A.<类型标识符>(*a)[3] B.<类型标识符>*a[2] C.<类型标识符>*a[3] D.以上写法都不对。 26.表达式y=(13>12? 15: 6>7? 8: 9)的值为: C D.1 27.以下定义中,标识符prtint(*prt)[3]: D B.是一个指针数组名,每个元素都是一个指向整数变量的指针 C.是一个指针,它指向一个具有三个元素的一维数组 28.若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值是: C A.EOFB.0C 29.c语言中int型数-8在内存中的存储形式为: a C.0000000000001000 30.表示关系x≥y≥z,应使用C语言表达式: A A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=z)&(y>=z) (每题2分,共计20分) 1.下面叙述错误的是: ACD 2.假设以下说明语句 structstu {inta; floatb; }stutype; 则下面的叙述正确的是: ABD A.struct是结构体类型的关键字 B.structstu是用户定义的结构体类型 C.stutype是用户定义的结构体类型名 3.下列关于字符串的说法中正确的是: ACD A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志 B.′\0′作为标志占用存储空间,计入串的实际长度 ′\0′ D.在C语言中,字符串常量隐含处理成以′\0′结尾 4.下列对数组操作正确的语句是: abc A.inta[5]; B.charb[]={‘h’,’e’,’l’,’l’,’o’}; C.inta[]={2,3,4,5}; D.charb[3][]={1,2,3,4,5,6}; 5.以下选项中能使指针正确指向字符串的是: BCD A.char*ch;*ch=“hello” B.char*ch=“hello” C.char*ch=“hello”;ch=“bye” D.char*ch”;ch=“hello” 6.下列标识符正确的是: ABD A.x1y B._123 C.2ab D._ab 7.若有以下定义和赋值double*q,a=5.5;int*p,i=1;double*q,a=5.5;int*p,i=1;p=&i;q=&a;以下对赋值语句叙述正确的是: ACD A.*p=*q变i中的值。 B.p=oxffd0;将改变p的值,使p指向地址为ffd0的存储单元。 C.*q=*p;等同于a=i; D.*p=*q;是取q所指变量的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 考试题 模拟 答案