软件开发考试题模拟题答案Word下载.docx

上传人:b****5 文档编号:18355050 上传时间:2022-12-15 格式:DOCX 页数:44 大小:56.91KB
下载 相关 举报
软件开发考试题模拟题答案Word下载.docx_第1页
第1页 / 共44页
软件开发考试题模拟题答案Word下载.docx_第2页
第2页 / 共44页
软件开发考试题模拟题答案Word下载.docx_第3页
第3页 / 共44页
软件开发考试题模拟题答案Word下载.docx_第4页
第4页 / 共44页
软件开发考试题模拟题答案Word下载.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

软件开发考试题模拟题答案Word下载.docx

《软件开发考试题模拟题答案Word下载.docx》由会员分享,可在线阅读,更多相关《软件开发考试题模拟题答案Word下载.docx(44页珍藏版)》请在冰豆网上搜索。

软件开发考试题模拟题答案Word下载.docx

()技术和软件工程管理:

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.在软件生命周期中,能准确完成程序的编码的阶段是:

6.下面程序的输出结果是:

#include<

stdio.h>

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)中的箭头代表的是:

8.下面程序的输出是:

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"

AA"

"

BB"

CC"

DD"

};

%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,则以下程序的运行结果是:

intx,y;

scanf(“%d”,&

x);

y=x>

12?

x+10:

x–12;

printf(“%d\n”,y);

A.2B.0C.8D.10

11.在C语言中,要求运算数必须是整型的运算符是:

A.%B./C.<

D.!

12.以下程序语句中

y=–1;

if(x!

=0)

if(x>

0)y=1;

elsey=0;

所表示的数学函数关系是:

–1(x<

0)1(x<

0)

A.y=0(x=0)

B.y=–1(x=0)

1(x>

0)0(x>

0(x<

0)–1(x<

C.y=–1(x=0)

D.y=1(x=0)

13.若有以下函数定义:

myfun(doublea,intn)

{……}

则myfun函数值的类型是

A.void

B.double

C.int

D.char

14.软件需求分析应确定用户对软件的:

15.C语言中main函数参数的非法表示形式是:

A.main(char*argv[],intargc)

B.main(inta,char**b)

C.main(inty,char*x[])

D.main(intargv,char*argc[])

16.以下的for循环:

for(x=0,y=0;

(y!

=123)&

&

(x<

4);

x++)

17.C语言规定,函数返回值的类型由:

18.下面描述中,不符合结构化程序设计风格的是:

A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

D.限制使用goto语句

19.以下程序中

main()

{intx=3,y=0,z=0;

if(x=y+z)printf("

****"

);

elseprintf("

####"

B.输出****

C.可以通过编译,但是不能通过连接,因而不能运行

D.输出####

20.执行下面程序片段的结果是:

intx=123;

do

{printf("

=\n"

x--);

while(!

21.下述对C语言字符数组的描述中错误的是:

B.字符数组中的字符串可以整体输入、输出

“=”对字符数组整体赋值

22.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是:

D

A.acbed

B.decab

C.deabc

23.C语言提供的合法的数据类型关键字是:

24.以下程序的输出结果正确的是:

sub(int*s,inty)

{staticintt=3;

y=s[t];

t––;

{inta[]={1,2,3,4},i,x=0;

for(i=0;

i<

4;

i++){

sub(a,x);

%d"

x);

}

\n"

A.1234B.0000C.4321

25.C程序中的语句:

char*func(intx,inty);

它是:

A.对函数func的定义

B.对函数func的调用

C.对函数func的原型说明

D.不合法的

26.下列程序的运行结果是:

{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;

%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.对下述程序,描述正确的是:

main()

{inta,b;

scanf("

%d,%d"

&

a,&

if(a>

b)a=b;

b=a;

elsea++;

b++;

a,b);

B.若输入4,5则输出5,6

C.若输入5,4则输出4,5

D.若输入5,4则输出5,5

29.下面程序的输出是:

{intarr[10],i,k=0;

10;

i++)

arr[i]=i;

for(i=1;

k+=arr[i]+i;

%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后一对圆括号中的表达式,以下叙述中错误的是:

6.下列叙述中错误的是:

7.若有以下程序

#include

voidf(intn);

{voidf(intn);

f(5);

voidf(intn)

%d\n"

n);

}

则以下叙述中正确的是:

ABD

A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

C.对于以上程序,编译时系统会提示出错信息:

提示对f函数重复说明

D.函数f无返回值,所以可用void将其类型定义为无返回值型

8.根据C语言的语法规则,下列()是合法标识符:

B.NameC.R5D._exam

9.下列关于复合语句和空语句的说法正确的是:

“{”开头,由“}”结尾的

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);

{sum=sum+k;

4.main()

{intk,a(8);

for(k=0;

k<

10;

k++)

scanf(“%d”,&

a(k));

......}

intk,a[8];

a[k]);

5.main()

{inta;

scanf(“%d”,a);

if(a=1)printf(“One\n”);

%d,"

if(a==1)

四.编程题(共计10分)

编写一个函数intfun(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。

  如,输入如下整数:

  234345753134436458100321135760  则输出结果为6,100。

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

  #include<

conio.h>

  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]);

 答案

  {inti;

  *k=0;

/*k所指的数是数组的下标值*/

  for(i=0;

t;

  if(s[*k]>

s[i])

  *k=i;

/*找到数组的最小元素,把该元素的下标赋给k所指的数*/

  returns[*k];

/*返回数组的最小元素*/}

模拟题:

一.单项选择题(每题2分,共计60分)

1.根据C语言的语法规则,下列()个是不合法标识符:

B.Name

C.Rern5

D._exam

2.属于C语言的数据类型是:

3.假设变量a,i已正确定义,且i已正确赋值,合法的语句是:

A.a==1

B.++i;

C.a=a++=5;

D.a=int(i);

4.设有以下定义和语句,则*(*(p+2)+1)的值为:

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的表达式是:

A.*p+6B.*(p+6)C.*p+=5D.p+5

6.有以下程序

{FILE*fp;

inti=20,j=30,k,n;

fp=fopen("

d1.dat"

w"

);

fprintf(fp,"

i);

j);

fclose(fp);

r"

fscanf(fp,"

%d%d"

,&

k,&

n);

printf("

%d%d\n"

k,n);

程序运行后的输出结果是:

A

A.2030

B.2050

C.3050

D.3020

7.以下说法中正确的是:

A.C语言程序总是从main()函数开始执行

B.在C语言程序中,要调用函数必须在main()函数中定义

C.C语言程序总是从第一个函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

8.Break语句的正确的用法是:

A.无论在任何情况下,都中断程序的执行,退出到系统下一层

B.在多重循环中,只能退出最靠近的那一层循环语句

C.跳出多重循环

D.只能修改控制变量

9.在下列程序中,没有构成死循环的是:

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值的语句是:

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语言中各种基本数据类型的存储空间长度排列为:

≤long≤int≤float≤double

≤float≤long≤int≤char

≤int≤long≤float≤double

≤int≤long≤char≤double

12.以下选项中,定义s为合法的结构体变量的是:

A.typedefstructabc

{doublea;

charb[10];

}s;

B.struct

C.structABC

ABCs;

D.typedefABC

13.下面程序的运行结果是:

#include“stdio.h”

{inta[]={8,2,9,4,1},*p;

*(p+2)+=2;

printf(“%d,%d”,*p,*(p+2));

A.8,11B.9,16C.2,11D.8,10

14.字符串指针变量中存入的是:

A.字符串的首地址。

B.字符串

D.字符串变量。

15.C语言中以只读方式打开一个文件应选择()参数:

A.“r”

B.“w”

C.“rb”

D.“a”

16.以下能正确表示x在-5到-1或5到1范围(含5和1)内,值为“真”的表达式是:

A.(x>

=-5)||(x<

=-1)&

=5)&

(x>

=1)

B.!

=-5||x<

=-1&

x<

=5||x>

C.x<

-5&

x>

-1||x<

1&

D.(x<

-5)||(x>

-1&

1)||(x>

5)

17.设有数组定义:

chararray[]=”China”;

则数组所占的存贮空间为:

B.5个字节

C.6个字节

D.7个字节

18.已知函数的调用形式:

fread(buf,size,count,fp),参数buf的含义是:

C

A.一个整型变量,代表要读入的数据项总数

B.一个文件指针,指向要读的文件

C.一个指针,指向要读入数据的存放地址

D.一个存储区,存放要读的数据项

19.为了避免嵌套的条件分支语句if—else的二义性,C语言规定:

C程序中的else总是与()组成配对关系:

20.在C语言中,int,char和short三种类型数据在内存中所占用的字节数:

21.能正确表示a和b同时为正或同时为负的逻辑表达式是:

A.a>

=0||b>

=0)&

(a<

0||b<

B.(a>

=0&

b>

0&

b<

C.(a+b>

0)&

(a+b<

D.a*b>

22.假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为:

23.设整型变量a为5,使b不为2的表达式是:

c

A.b=a/2

B.b=6-(--a)

C.b=a%2

D.b=a>

3?

2:

24.表达式“1?

(0?

3:

2):

(10?

1:

0)”的值为:

B.2

C.1

D.0

25.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是:

c

A.<

类型标识符>

(*a)[3]

B.<

*a[2]

C.<

*a[3]

D.以上写法都不对。

26.表达式y=(13>

15:

6>

7?

8:

9)的值为:

D.1

27.以下定义中,标识符prtint(*prt)[3]:

B.是一个指针数组名,每个元素都是一个指向整数变量的指针

C.是一个指针,它指向一个具有三个元素的一维数组

28.若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值是:

A.EOFB.0C

29.c语言中int型数-8在内存中的存储形式为:

a

C.0000000000001000

30.表示关系x≥y≥z,应使用C语言表达式:

=y)&

(y>

=z)

B.(x>

=y)AND(y>

C.(x>

=y>

D.(x>

=z)&

(每题2分,共计20分)

1.下面叙述错误的是:

2.假设以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述正确的是:

A.struct是结构体类型的关键字

B.structstu是用户定义的结构体类型

C.stutype是用户定义的结构体类型名

3.下列关于字符串的说法中正确的是:

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.以下选项中能使指针正确指向字符串的是:

A.char*ch;

*ch=“hello”

B.char*ch=“hello”

C.char*ch=“hello”;

ch=“bye”

D.char*ch”;

ch=“hello”

6.下列标识符正确的是:

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;

以下对赋值语句叙述正确的是:

A.*p=*q变i中的值。

B.p=oxffd0;

将改变p的值,使p指向地址为ffd0的存储单元。

C.*q=*p;

等同于a=i;

D.*p=*q;

是取q所指变量的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1