西安交通大学习题答案《程序设计基础》答案.docx

上传人:b****6 文档编号:3791057 上传时间:2022-11-25 格式:DOCX 页数:30 大小:25.03KB
下载 相关 举报
西安交通大学习题答案《程序设计基础》答案.docx_第1页
第1页 / 共30页
西安交通大学习题答案《程序设计基础》答案.docx_第2页
第2页 / 共30页
西安交通大学习题答案《程序设计基础》答案.docx_第3页
第3页 / 共30页
西安交通大学习题答案《程序设计基础》答案.docx_第4页
第4页 / 共30页
西安交通大学习题答案《程序设计基础》答案.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

西安交通大学习题答案《程序设计基础》答案.docx

《西安交通大学习题答案《程序设计基础》答案.docx》由会员分享,可在线阅读,更多相关《西安交通大学习题答案《程序设计基础》答案.docx(30页珍藏版)》请在冰豆网上搜索。

西安交通大学习题答案《程序设计基础》答案.docx

西安交通大学习题答案《程序设计基础》答案

《程序设计基础》习题一答案

一、单项选择题(本大题共20小题,每小题2分,共40分)

1.inta[10];合法的数组元素的最小下标值为()。

A:

10

B:

9

C:

1

D:

0

答案:

D

2.以下运算符中优先级最低的是()。

A:

&&

B:

&

C:

||

D:

|

答案:

C

3.若使用一维数组名作函数实参,则以下正确的说法是()。

A:

必须在主调函数中说明此数组的大小

B:

实参数组类型与形参数组类型可以不匹配

C:

在被调用函数中,不需要考虑形参数组的大小

D:

实参数组名与形参数组名必须一致

答案:

A

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

fread(buffer,size,count,fp);其中buffer

代表的是()。

A:

一个整数,代表要读入的数据项总数

B:

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

C:

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

D:

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

答案:

C

5.对以下说明语句inta[10]={6,7,8,9,10};的正确理解是()。

A:

将5个初值依次赋给a[1]至a[5]

B:

将5个初值依次赋给a[0]至a[4]

C:

将5个初值依次赋给a[6]至a[10]

D:

因为数组长度与初值的个数不相同,所以此语句不正确

答案:

B

6.下列程序的输出结果是()。

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

{

case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,b);

}

A:

a=1,b=0

B:

a=2,b=1

C:

a=1,b=1

D:

a=2,b=2

答案:

B

7.下列程序的输出结果为()。

main()

{intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf("%f\n",x);

}

A:

27.000000

B:

27.500000

C:

28.000000

D:

28.500000

答案:

A

8.若k为int型变量,则以下程序段的执行结果是()。

k=-8567;printf("|%06D|\n",k);

A:

格式描述符不合法,输出无定值

B:

输出为|%06D|

C:

输出为|0-8567|

D:

输出为|-8567|

答案:

B

9.下列程序段的输出结果为()。

intx=3,y=2;

printf("%d",(x-=y,x*=y+8/5));

A:

1

B:

7

C:

3

D:

5

答案:

C

10.chara[]="Thisisaprogram.";输出前5个字符的语句是()。

A:

printf("%.5s",a);

B:

puts(a);

C:

printf("%s",a);

D:

a[5*2]=0;puts(a);

答案:

A

11.下列程序的输出结果是()。

main()

{charc1=97,c2=98;

printf("%d%c",c1,c2);

}

A:

9798

B:

97b

C:

a98

D:

ab

答案:

B

12.以下选项中合法的实型常数是()。

A:

5E2.0

B:

E-3

C:

.2E0

D:

1.3E

答案:

C

13.C语言中的文件类型只有()。

A:

索引文件和文本文件两种

B:

ASCII文件和二进制文件两种

C:

文本文件一种

D:

二进制文件一种

答案:

B

14.以下叙述不正确的是()。

A:

一个C源程序可由一个或多个函数组成

B:

一个C源程序必须包含一个main函数

C:

C程序的基本组成单位是函数

D:

在C程序中,注释说明只能位于一条语句的后面

答案:

D

15.以下运算符中,优先级最高的运算符是()。

A:

||

B:

%

C:

!

D:

==

答案:

C

16.执行以下程序段后,输出结果和a的值是()。

inta=10;

printf("%d",a++);

A:

10和10

B:

10和11

C:

11和10

D:

11和11

答案:

B

17.能正确表示逻辑关系:

"a≥10或a≤0"的C语言表达式是()。

A:

a>=10ora<=0

B:

a>=0|a<=10

C:

a>=10&&a<=0

D:

a>=10‖a<=0

答案:

D

18.以下叙述中错误的是()。

A:

二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B:

在程序结束时,应当用fclose函数关闭已打开的文件

C:

在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D:

不可以用FILE定义指向二进制文件的文件指针

答案:

D

19.下列程序段的输出结果为()。

floatk=0.8567;

printf("%06.1d%%",k*100);

A:

0085.6%%

B:

0085.7%

C:

0085.6%

D:

.857

答案:

B

20.若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存

空间存入整数123的语句为()。

A:

scanf("%d",p);

B:

scanf("%d",&p);

C:

scanf("%d",*p);

D:

scanf("%d",**p);

答案:

A

21.经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是()。

A:

p=p+2;

B:

p=a[5];

C:

p=a[2]+2;

D:

p=&(j+2);

答案:

A

22.以下对二维数组a的正确说明是()。

A:

inta[3][]

B:

floata(3,4)

C:

doublea[1][4]

D:

floata(3)(4)

答案:

C

23.经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在

微机上的值分别为()。

charx=65;

floaty=7.3;

inta=100;

doubleb=4.5;

A:

2,2,2,4

B:

1,2,2,4

C:

1,4,2,8

D:

2,4,2,8

答案:

C

24.以下叙述中不正确的是()。

A:

一个好的程序应该有详尽的注释

B:

在C程序中,赋值运算符的优先级最低

C:

在C程序中,j++;是一条赋值语句

D:

C程序中的#include和#define均不是C语句

答案:

B

25.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。

A:

fclose()

B:

close()

C:

fread()

D:

fwrite

答案:

A

26.staticstruct{inta1;floata2;chara3;}a[10]={1,3.5,'A'};

说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存

储方式,其中被初始化的下标变量是()。

A:

a[1]

B:

a[-1]

C:

a[0]

D:

a[10]

答案:

C

27.函数的形式参数隐含的存储类型说明是()。

A:

extern

B:

static

C:

register

D:

auto

答案:

D

28.可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的

形式存在磁盘上()。

A:

内存

B:

缓冲区

C:

文件

D:

寄存器

答案:

C

29.若用数组名作为函数的实参,传递给形参的是()。

A:

数组的首地址

B:

数组第一个元素的值

C:

数组中全部元素的值

D:

数组元素的个数

答案:

A

30.doublex;scanf("%lf",&x);不可以赋值给x变量的常量是()。

A:

123

B:

100000

C:

A'

D:

"abc"

答案:

D

31.以下的选择中,正确的赋值语句是()。

A:

a=1,b=2

B:

j++

C:

a=b=5;

D:

y=int(x)

答案:

C

32.要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,

下面符合此要求的函数调用是()。

A:

fopen("A:

\user\abc.txt","r")

B:

fopen("A:

\\user\\abc.txt","r+")

C:

fopen("A:

\user\abc.txt","rb")

D:

fopen("A:

\\user\\abc.txt","w")

答案:

B

33.与实际参数为实型数组名相对应的形式参数不可以定义为()。

A:

floata[];

B:

float*a;

C:

floata;

D:

float(*a)[3];

答案:

C

34.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。

A:

自动(auto)

B:

静态(static)

C:

外部(extern)

D:

寄存器(register)

答案:

A

35.下面有关for循环的正确描述是()。

A:

for循环只能用于循环次数已经确定的情况

B:

for循环是先执行循环循环体语句,后判断表达式

C:

在for循环中,不能用break语句跳出循环体

D:

for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

答案:

D

36.下列语句的结果是()。

main()

{intj;

j=3;

printf("%d,",++j);

printf("%d",j++);

}

A:

3,3

B:

3,4

C:

4,3

D:

4,4

答案:

D

37.执行下列程序后,其输出结果是()。

main()

{inta=9;

a+=a-=a+a;

printf("%d\n",a);

}

A:

18

B:

9

C:

-18

D:

-9

答案:

C

38.以下函数调用语句中实参的个数是()。

func((e1,e2),(e3,e4,e5));

A:

2

B:

3

C:

5

D:

语法错误

答案:

A

39.下列四个选项中,均是C语言关键字的选项是()。

A:

autoenuminclude

B:

switchtypedefcontinue

C:

signedunionscanf

D:

ifstructtype

答案:

B

40.下列数组说明中,正确的是()。

A:

staticcharstr[]="China";

B:

staticcharstr[];str="China";

C:

staticcharstr1[5],str2[]={"China"};str1=str2;

D:

staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);

答案:

A

41.C语言中,要求运算数必须是整型的运算符是()。

A:

^

B:

%

C:

!

D:

>

答案:

B

42.以下不能正确定义二维数组的选项是()。

A:

inta[2][2]={{1},{2}};

B:

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

C:

inta[2][2]={{1},2,3};

D:

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

答案:

D

43.设intx=1,y=1;表达式(!

x||y--)的值是()。

A:

0

B:

1

C:

2

D:

-1

答案:

B

44.下列选项中正确的语句组是()。

A:

chars[8];s={"Beijing"};

B:

char*s;s={"Beijing"};

C:

chars[8];s="Beijing";

D:

char*s;s="Beijing";

答案:

D

45.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5

的语句为()。

A:

printf("%d",*(a+5));

B:

printf("%d",p[5]);

C:

printf("%d",*(p+5));

D:

printf("%d",*p[5]);

答案:

D

46.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的

数据类型为()。

A:

int

B:

float

C:

double

D:

不确定

答案:

C

47.以下叙述正确的是()。

A:

在C程序中,main函数必须位于程序的最前面

B:

C程序的每行中只能写一条语句

C:

C语言本身没有输入输出语句

D:

在对一个C程序进行编译的过程中,可发现注释中的拼写错误

答案:

C

48.inta=1,b=2,c=3;

if(a>b)a=b;

if(a>c)a=c;

则a的值为()。

A:

1

B:

2

C:

3

D:

不一定

答案:

A

49.C语言中,定义结构体的保留字是()。

A:

union

B:

struct

C:

enum

D:

typedef

答案:

B

50.逻辑运算符两侧运算对象的数据类型()。

A:

只能是0或1

B:

只能是0或非0正数

C:

只能是整型或字符型数据

D:

可以是任何类型的数据

答案:

D

51.以下叙述中正确的是()。

A:

C语言的源程序不必通过编译就可以直接运行

B:

C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C:

C源程序经编译形成的二进制代码可以直接运行

D:

C语言中的函数不可以单独进行编译

52.下列程序的输出结果是()。

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{

case1:

switch(y)

{

case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,b);

}

A:

a=1,b=0

B:

a=2,b=1

C:

a=1,b=1

D:

a=2,b=2

答案:

B

53.若二维数组a有m列,则在a[i][j]前的元素个数为()。

A:

j*m+i

B:

i*m+j

C:

i*m+j-1

D:

i*m+j+1

答案:

B

54.用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()。

longa=0xffffff;

intb;charc;

A:

0ffffff和0x61

B:

-1和98

C:

-1和97

D:

指向同一地址

答案:

C

55.在调用函数时,如果实参是简单变量,它与对应形参之间的数据

传递方式是()。

A:

地址传递

B:

单向值传递

C:

由实参传给形参,再由形参传回实参

D:

传递方式由用户指定

答案:

B

56.以下数值中,不正确的八进制数或十六进制数是()。

A:

0x16

B:

16

C:

-16

D:

0xaaaa

答案:

C

57.以下运算符中,优先级最高的运算符是()。

A:

*=

B:

>=

C:

(类型)

D:

+

答案:

C

58.以下选项中,与k=n++完全等价的表达式是()。

A:

k=n,n=n+1

B:

n=n+1,k=n

C:

k=++n

D:

k+=n+1

答案:

A

59.结构体类型的定义允许嵌套是指()。

A:

成员是已经或正在定义的结构体型

B:

成员可以重名

C:

结构体型可以派生

D:

定义多个结构体型

答案:

A

60.用户定义的函数不可以调用的函数是()。

A:

非整型返回值的

B:

本文件外的

C:

main函数

D:

本函数下面定义的

答案:

C

二.多选题(本大题共20小题,每小题2分,共40分)

1.以下对C语言中的函数描述不正确的有()。

A:

可以嵌套定义,不可以嵌套调用

B:

不可以嵌套定义,可以嵌套调用

C:

可以嵌套定义,也可以嵌套调用

D:

嵌套定义和嵌套调用都不允许

答案:

ACD

2.以下叙述正确的是()。

A:

预处理命令行都必须以"#"开始

B:

在程序中凡是以"#"开始的语句行都是预处理命令行

C:

C程序在执行过程中对预处理命令行进行处理

D:

#defineABCD是正确的宏定义

答案:

ABD

3.以下描述错误的是()。

A:

continue语句的作用是重新开始一次循环体的执行

B:

只能在循环体内和switch语句体内使用break语句

C:

在循环体内使用break语句和continue语句的作用相同

D:

从多重循环嵌套中退出是,只能使用goto语句

答案:

CD

4.有定义语句:

intx,y;若要通过scanf("%d,%d",&x,&y);

语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,

正确的有()。

A:

1112<回车>

B:

11,<空格>12<回车>

C:

11,12<回车>

D:

11,<回车>12<回车>

答案:

BCD

5.以下合法的十六进制数是()。

A:

oxff

B:

0Xabc

C:

0x01

D:

0X9X

答案:

BC

6.以下描述正确的是()。

A:

调用函数时,实参可以是表达式

B:

调用函数时,实参与形参可以共用内存单元

C:

调用函数时,将为形参分配内存单元

D:

调用函数时,实参与形参的类型必须一致

答案:

ACD

7.以下选项中合法的表达式是()。

A:

0<=x<100

B:

i=j==0

C:

(char)(65+3)

D:

x+1=x+1

答案:

ABC

8.设有以下定义

inta=0;

doubleb=1.25;

charc='A';

#defined2

则下面语句中正确的是()。

A:

a++;

B:

b++;

C:

c++;

D:

d++;

答案:

ABC

9.以下对二维数组a进行正确初始话的是()。

A:

staticcharword[]='Turbo\0';

B:

staticcharword[]={'T','u','r','b','o','\0'};

C:

staticcharword[]={"Turbo\0"};

D:

staticcharword[]="Turbo\0";

答案:

BCD

10.符合C语言语法的实型常量是()。

A:

1.2E0.5

B:

3.14.159E

C:

.5E-3

D:

E15

答案:

ABD

11.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是()。

A:

a=b=c=d=100;

B:

d++;

C:

c+b;

D:

d=(c=22)-(b++);

答案:

ABD

12.以下关于数组描述错误的是()。

A:

数组的大小是固定的,但可以有不同的类型的数组元素

B:

数组的大小是可变的,但所有数组元素的类型必须相同

C:

数组的大小是固定的,所有数组元素的类型必须相同

D:

数组的大小是可变的,可以有不同的类型的数组元素

答案:

ABD

13.以下正确的if语句形式是()。

A:

if(x>y&&x!

=y);

B:

if(x==y)x+=y;

C:

if(x!

=y)scanf("%d",&x)elsescanf("%d",&y);

D:

if(x

答案:

ABD

14.以下叙述中正确的是()。

A:

一个C源程序可由一个或多个函数组成

B:

一个C源程序必须包含一个main()函数

C:

C源程序的基本组成单位是函数

D:

在C源程序中,注释说明只能位于一条语句的最后

答案:

ABC

15.以下合法的十六进制数是()。

A:

oxff

B:

0Xabc

C:

0x01

D:

0X9X

答案:

BC

16.以下选项中,合法的字符常量是()。

A:

'\t'

B:

'\17'

C:

"n"

D:

'\xaa'

答案:

ABD

17.以下用户标识符,其中合法的是()。

A:

return

B:

f2_G3

C:

A3-3

D:

abc

答案:

BD

18.以下可以定义为用户标识符的有()。

A:

scanf

B:

short

C:

_3com_

D:

int

答案:

AC

19.以下选项中合法的表达式是()。

A:

0<=x<100

B:

i=j==0

C:

(char)(65+3)

D:

x+1=x+1

答案:

ABC

20.以下不符合C语言语法的实型常量是()。

A:

1.2E0.5

B:

3.14.159E

C:

.5E-3

D:

E15

答案:

ABD

21.4个选项中,可以看作是一条语句的有()。

A:

{;}

B:

a=0,b=0,c=0;

C:

if(a>0);

D:

if(b==0)m=1;n=2;

答案:

ABC

22.以下选项中,合法的字符常量是()。

A:

'\t'

B:

'\17'

C:

"n"

D:

'\xaa'

答案:

ABD

23.以下描述正确的是()。

A:

使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成

B:

while循环是先判断表达式,后执行循环语句

C:

do-while和for循环均是先执行循环语句,后判断表达式

D:

for,while和do-while循环中的循环体均可以由空语句构成

答案:

ABD

24.以下关于数组描述错误的是()。

A:

数组的大小是固定的,但可以有不同的类型的数组元素

B:

数组的大小是可变的,但所有数组元素的类型必须相同

C:

数组的大小是固定的,所有数组元素的类型必须相同

D:

数组的大小是可变的,可以有不同的类型的数组元素

答案:

ABD

25.以下选项中不是C语言合法整数的是()。

A:

10110

B:

0386

C:

0Xffa

D:

x2a2

答案:

BD

26.若以下选项中的变量已正确定义,则不正确的赋值语句是()。

A:

x1=26.8%3

B:

x=3*x+x

C:

x3=0x12

D:

x4=1+2=3;

答案:

AD

27.下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。

A:

只能是0或1

B:

只能是0或非0正数

C:

可以是整型或字符型数据

D:

可以是任何类型的数据

答案:

ABD

28.下列选项中是C语言合法标志符的有()。

A:

good_morning

B:

main

C:

stdio.h

D:

8abc

答案:

AB

29.以下对switch语句和break语句中描述错误的有()。

A:

在switch语句中必须使用break语句

B:

break语句只能用于switch语句

C:

在switch语句中,可以根据需要使用或不使用break语句

D:

break语句是switch语句的一部分

答案:

ABD

30.以下叙述中正确的是()。

A:

一个C源程序可由一个或多个函数组成

B:

一个C源程序必须包含一个main()函数

C:

C源程序的基本组成单位是函数

D:

在C源程序中,注释说明只能位于一条语句的最后

答案:

ABC

31.下对C语言中的函数描述不正确的有()。

A:

可以嵌套定义,不可以嵌套调用

B:

不可以嵌套定义,可以嵌套调用

C:

可以嵌套定义,也可以嵌套调用

D:

嵌套定义和嵌套调用都不允许

答案:

ACD

32.设有以下定义

inta=0;

doubleb=1.25;

charc='A';

#defined2

则下面语句中正确的是()。

A:

a++;

B:

b++;

C:

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

当前位置:首页 > 高等教育 > 艺术

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

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