最新西安交通大学习题答案《程序设计基础》答案Word文档下载推荐.docx
《最新西安交通大学习题答案《程序设计基础》答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《最新西安交通大学习题答案《程序设计基础》答案Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
,a,b);
}
a=1,b=0
a=2,b=1
a=1,b=1
a=2,b=2
7.下列程序的输出结果为()。
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("
%f\n"
x);
27.000000
27.500000
28.000000
28.500000
8.若k为int型变量,则以下程序段的执行结果是()。
k=-8567;
|%06D|\n"
k);
格式描述符不合法,输出无定值
输出为|%06D|
输出为|0-8567|
输出为|-8567|
9.下列程序段的输出结果为()。
intx=3,y=2;
%d"
(x-=y,x*=y+8/5));
7
3
5
10.chara[]="
Thisisaprogram."
;
输出前5个字符的语句是()。
%.5s"
a);
puts(a);
%s"
a[5*2]=0;
11.下列程序的输出结果是()。
{charc1=97,c2=98;
%d%c"
c1,c2);
9798
97b
a98
ab
12.以下选项中合法的实型常数是()。
5E2.0
E-3
.2E0
1.3E
13.C语言中的文件类型只有()。
索引文件和文本文件两种
ASCII文件和二进制文件两种
文本文件一种
二进制文件一种
14.以下叙述不正确的是()。
一个C源程序可由一个或多个函数组成
一个C源程序必须包含一个main函数
C程序的基本组成单位是函数
在C程序中,注释说明只能位于一条语句的后面
15.以下运算符中,优先级最高的运算符是()。
%
!
==
16.执行以下程序段后,输出结果和a的值是()。
inta=10;
a++);
10和10
10和11
11和10
11和11
17.能正确表示逻辑关系:
"
a≥10或a≤0"
的C语言表达式是()。
a>
=10ora<
=0
=0|a<
=10
=10&
a<
=10‖a<
18.以下叙述中错误的是()。
二进制文件打开后可以先读文件的末尾,而顺序文件不可以
在程序结束时,应当用fclose函数关闭已打开的文件
在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
不可以用FILE定义指向二进制文件的文件指针
19.下列程序段的输出结果为()。
floatk=0.8567;
%06.1d%%"
k*100);
0085.6%%
0085.7%
0085.6%
.857
20.若有int*p=(int*)malloc(sizeof(int));
则向内存申请到内存
空间存入整数123的语句为()。
scanf("
p);
&
p);
*p);
**p);
21.经过下列的语句intj,a[10],*p;
定义后,下列语句中合法的是()。
p=p+2;
p=a[5];
p=a[2]+2;
p=&
(j+2);
22.以下对二维数组a的正确说明是()。
inta[3][]
floata(3,4)
doublea[1][4]
floata(3)(4)
23.经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在
微机上的值分别为()。
charx=65;
floaty=7.3;
inta=100;
doubleb=4.5;
2,2,2,4
1,2,2,4
1,4,2,8
2,4,2,8
24.以下叙述中不正确的是()。
一个好的程序应该有详尽的注释
在C程序中,赋值运算符的优先级最低
在C程序中,j++;
是一条赋值语句
C程序中的#include和#define均不是C语句
25.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。
fclose()
close()
fread()
fwrite
26.staticstruct{inta1;
floata2;
chara3;
}a[10]={1,3.5,'
A'
};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存
储方式,其中被初始化的下标变量是()。
a[1]
a[-1]
a[0]
a[10]
27.函数的形式参数隐含的存储类型说明是()。
extern
static
register
auto
28.可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的
形式存在磁盘上()。
内存
缓冲区
文件
寄存器
29.若用数组名作为函数的实参,传递给形参的是()。
数组的首地址
数组第一个元素的值
数组中全部元素的值
数组元素的个数
30.doublex;
%lf"
x);
不可以赋值给x变量的常量是()。
123
100000
abc"
31.以下的选择中,正确的赋值语句是()。
a=1,b=2
j++
a=b=5;
y=int(x)
32.要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,
下面符合此要求的函数调用是()。
fopen("
\user\abc.txt"
"
r"
)
\\user\\abc.txt"
r+"
rb"
w"
33.与实际参数为实型数组名相对应的形式参数不可以定义为()。
floata[];
float*a;
floata;
float(*a)[3];
34.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
自动(auto)
静态(static)
外部(extern)
寄存器(register)
35.下面有关for循环的正确描述是()。
for循环只能用于循环次数已经确定的情况
for循环是先执行循环循环体语句,后判断表达式
在for循环中,不能用break语句跳出循环体
for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
36.下列语句的结果是()。
{intj;
j=3;
%d,"
++j);
j++);
3,3
3,4
4,3
4,4
37.执行下列程序后,其输出结果是()。
{inta=9;
a+=a-=a+a;
%d\n"
18
-18
-9
38.以下函数调用语句中实参的个数是()。
func((e1,e2),(e3,e4,e5));
2
语法错误
39.下列四个选项中,均是C语言关键字的选项是()。
autoenuminclude
switchtypedefcontinue
signedunionscanf
ifstructtype
40.下列数组说明中,正确的是()。
staticcharstr[]="
China"
staticcharstr[];
str="
staticcharstr1[5],str2[]={"
str1=str2;
staticcharstr1[],str2[];
str2={"
strcpy(str1,str2);
41.C语言中,要求运算数必须是整型的运算符是()。
^
>
42.以下不能正确定义二维数组的选项是()。
inta[2][2]={{1},{2}};
inta[][2]={1,2,3,4};
inta[2][2]={{1},2,3};
inta[2][]={{1,2},{3,4}};
43.设intx=1,y=1;
表达式(!
x||y--)的值是()。
-1
44.下列选项中正确的语句组是()。
chars[8];
s={"
Beijing"
char*s;
s="
45.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
则输出结果不为5
的语句为()。
*(a+5));
p[5]);
*(p+5));
*p[5]);
46.设变量a是整型,f是实型,i是双精度型,则表达式10+'
a'
+i*f值的
数据类型为()。
int
float
double
不确定
47.以下叙述正确的是()。
在C程序中,main函数必须位于程序的最前面
C程序的每行中只能写一条语句
C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可发现注释中的拼写错误
48.inta=1,b=2,c=3;
if(a>
b)a=b;
c)a=c;
则a的值为()。
不一定
49.C语言中,定义结构体的保留字是()。
union
struct
enum
typedef
50.逻辑运算符两侧运算对象的数据类型()。
只能是0或1
只能是0或非0正数
只能是整型或字符型数据
可以是任何类型的数据
51.以下叙述中正确的是()。
C语言的源程序不必通过编译就可以直接运行
C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C源程序经编译形成的二进制代码可以直接运行
C语言中的函数不可以单独进行编译
52.下列程序的输出结果是()。
53.若二维数组a有m列,则在a[i][j]前的元素个数为()。
j*m+i
i*m+j
i*m+j-1
i*m+j+1
54.用下列语句定义a,b,c,然后执行b=a、c='
b'
+b,则b,c的值是()。
longa=0xffffff;
intb;
charc;
0ffffff和0x61
-1和98
-1和97
指向同一地址
55.在调用函数时,如果实参是简单变量,它与对应形参之间的数据
传递方式是()。
地址传递
单向值传递
由实参传给形参,再由形参传回实参
传递方式由用户指定
56.以下数值中,不正确的八进制数或十六进制数是()。
0x16
16
-16
0xaaaa
57.以下运算符中,优先级最高的运算符是()。
*=
=
(类型)
+
58.以下选项中,与k=n++完全等价的表达式是()。
k=n,n=n+1
n=n+1,k=n
k=++n
k+=n+1
59.结构体类型的定义允许嵌套是指()。
成员是已经或正在定义的结构体型
成员可以重名
结构体型可以派生
定义多个结构体型
60.用户定义的函数不可以调用的函数是()。
非整型返回值的
本文件外的
main函数
本函数下面定义的
二.多选题(本大题共20小题,每小题2分,共40分)
1.以下对C语言中的函数描述不正确的有()。
可以嵌套定义,不可以嵌套调用
不可以嵌套定义,可以嵌套调用
可以嵌套定义,也可以嵌套调用
嵌套定义和嵌套调用都不允许
ACD
2.以下叙述正确的是()。
预处理命令行都必须以"
#"
开始
在程序中凡是以"
开始的语句行都是预处理命令行
C程序在执行过程中对预处理命令行进行处理
#defineABCD是正确的宏定义
ABD
3.以下描述错误的是()。
continue语句的作用是重新开始一次循环体的执行
只能在循环体内和switch语句体内使用break语句
在循环体内使用break语句和continue语句的作用相同
从多重循环嵌套中退出是,只能使用goto语句
CD
4.有定义语句:
intx,y;
若要通过scanf("
%d,%d"
x,&
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,
正确的有()。
1112<
回车>
11,<
空格>
12<
11,12<
12<
BCD
5.以下合法的十六进制数是()。
oxff
0Xabc
0x01
0X9X
BC
6.以下描述正确的是()。
调用函数时,实参可以是表达式
调用函数时,实参与形参可以共用内存单元
调用函数时,将为形参分配内存单元
调用函数时,实参与形参的类型必须一致
7.以下选项中合法的表达式是()。
0<
=x<
100
i=j==0
(char)(65+3)
x+1=x+1
ABC
8.设有以下定义
inta=0;
doubleb=1.25;
charc='
#defined2
则下面语句中正确的是()。
c++;
d++;
9.以下对二维数组a进行正确初始话的是()。
staticcharword[]='
Turbo\0'
staticcharword[]={'
T'
'
u'
r'
o'
\0'
staticcharword[]={"
Turbo\0"
staticcharword[]="
10.符合C语言语法的实型常量是()。
1.2E0.5
3.14.159E
.5E-3
E15
11.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是()。
a=b=c=d=100;
c+b;
d=(c=22)-(b++);
12.以下关于数组描述错误的是()。
数组的大小是固定的,但可以有不同的类型的数组元素
数组的大小是可变的,但所有数组元素的类型必须相同
数组的大小是固定的,所有数组元素的类型必须相同
数组的大小是可变的,可以有不同的类型的数组元素
13.以下正确的if语句形式是()。
if(x>
y&
x!
=y);
if(x==y)x+=y;
if(x!
=y)scanf("
x)elsescanf("
if(x<
y){x++;
y++;
14.以下叙述中正确的是()。
一个C源程序必须包含一个main()函数
C源程序的基本组成单位是函数
在C源程序中,注释说明只能位于一条语句的最后
15.以下合法的十六进制数是()。
16.以下选项中,合法的字符常量是()。
'
\t'
\17'
n"
\xaa'
17.以下用户标识符,其中合法的是()。
return
f2_G3
A3-3
abc
BD
18.以下可以定义为用户标识符的有()。
scanf
short
_3com_
AC
19.以下选项中合法的表达式是()。
20.以下不符合C语言语法的实型常量是()。
21.4个选项中,可以看作是一条语句的有()。
{;
a=0,b=0,c=0;
0);
if(b==0)m=1;
n=2;
22.以下选项中,合法的字符常量是()。
23.以下描述正确的是()。
使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成
while循环是先判断表达式,后执行循环语句
do-while和for循环均是先执行循环语句,后判断表达式
for,while和do-while循环中的循环体均可以由空语句构成
24.以下关于数组描述错误的是()。
25.以下选项中不是C语言合法整数的是()。
10110
0386
0Xffa
x2a2
26.若以下选项中的变量已正确定义,则不正确的赋值语句是()。
x1=26.8%3
x=3*x+x
x3=0x12
x4=1+2=3;
AD
27.下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。
可以是整型或字符型数据
28.下列选项中是C语言合法标志符的有()。
good_morning
main
stdio.h
8abc
AB
29.以下对switch语句和break语句中描述错误的有()。
在switch语句中必须使用break语句
break语句只能用于switch语句
在switch语句中,可以根据需要使用或不使用break语句
break语句是switch语句的一部分
30.以下叙述中正确的是()。
31.下对C语言中的函数描述不正确的有()。
32.设有以下定义