西安交通大学15年《程序设计综合训练》考查课试题.docx
《西安交通大学15年《程序设计综合训练》考查课试题.docx》由会员分享,可在线阅读,更多相关《西安交通大学15年《程序设计综合训练》考查课试题.docx(11页珍藏版)》请在冰点文库上搜索。
![西安交通大学15年《程序设计综合训练》考查课试题.docx](https://file1.bingdoc.com/fileroot1/2023-5/18/a384cd27-4aa5-4f88-a2fa-171f926f69fd/a384cd27-4aa5-4f88-a2fa-171f926f69fd1.gif)
西安交通大学15年《程序设计综合训练》考查课试题
西安交通大学15年7月《程序设计综合训练》考查课试题
一、单选题(共50道试题,共100分。
)V1. 下列变量定义正确的是________。
A.intx_1;y;
B.intx=y=5;
C.intfor=4;
D.intprintf=2,x_y=2;
满分:
2 分
2. 有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;
则数值为9的表达式是__________
A.*P+9
B.*(P+8)
C.*P+=9
D.P+8
满分:
2 分
3.
若shortint类型数据占两个字节,则下列语句的输出为________。
intk=-1;printf(“%d,%u\n”,k,k);
A.-1,-1
B.-1,32767
C.-1,32768
D.-1,65535
满分:
2 分
4. 若变量已正确定义,与语句if(a>B、k=0;elsek=1;等效的是________。
A.
k=(a>B、?
1:
0?
B.
k=a>b;
C.
k=a<=b;
D.
a<=b?
0:
1;
满分:
2 分
5. 以下函数的类型是________。
intsum(doublex,doubley)
{ doubles;
s=x+y;
returns;
}
A.字符型
B.不确定
C.整型
D.实型
满分:
2 分
6. 在C语言中,正确的int类型的常数是_______。
A.-2U
B.059
C.3a
D.0xAF
满分:
2 分
7. 已知:
int a[10];则对a数组元素的正确引用是( )。
A.a[10]
B.a[3.5]
C.a(5)
D.a[0]
满分:
2 分
8. 当执行以下程序时,________。
#include
voidmain()
{ inta;
while(a=5)
printf("%d",a--);}
A.循环体将执行5次
B.循环体将执行0次
C.循环体将执行无限次
D.系统会当机。
满分:
2 分
9.
若有以下变量说明和数据的输入方式,则正确的输入语句为________。
变量说明:
floatx1,x2;
数据的输入方式:
4.52<回车>
3.5<回车>
A.scanf(“%f,%f”,&x1,&x2);
B.scanf(“%f%f”,&x1,&x2);
C.scanf(“%3.2f,%2.1f”,&x1,&x2);
D.scanf(“%3.2f%2.1f”,&x1,&x2);
满分:
2 分
10. 已知charx[]="hello",y[]={'h','e','a','b','e'};,则关于两个数组长度的正确描述是.
A.相同
B.x大于y
C.x小于y
D.以上答案都不对
满分:
2 分
11. 简单变量做实参时,实参与其对应的形参之间的数据传递方式是________。
A.双向值传递方式
B.地址传递方式
C.单向值传递方式
D.用户指定传递方式
满分:
2 分
12. 在C语言中,以作为字符串结束标志
A.’\n’
B.’’
C.’0’
D.’\0’
满分:
2 分
13. 下列对字符串的定义中,错误的是_____。
A.charstr[5]="abcde"
B.charstr[]="abcde"
C.char*str="abcde"
D.charstr[]={'a','b','c','d','e','\0'}
满分:
2 分
14. 若用数组名作为函数调用时的参数,则实际上传递给形参的是________。
A.数组元素的个数
B.数组的第一个元素值
C.数组中全部元素的植
D.数组首地址
满分:
2 分
15. 已知:
chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是________。
A.int
B.char
C.double
D.float
满分:
2 分
16. 在C语言中,引用数组元素时,其数组下标的数据类型允许是________。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
满分:
2 分
17. 以下函数原型说明正确的是_______。
A.floatadd(intx,inty);
B.intadd(intx;inty);
C.charadd(x,y);
D.intadd(charx[][]);
满分:
2 分
18. 若有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是()。
A.a[p]
B.p[a]
C.*(p+2)
D.p+2
满分:
2 分
19. 下列错误的语句是________。
A.intk,*p=&k;scanf(“%d”,&k);
B.intk,*p=&k;scanf(“%d”,p);
C.intk,*p;*p=&k;scanf(“%d”,p);
D.intk,*p;p=&k;scanf(“%d”,p);
满分:
2 分
20. 下面各函数中能实现打开文件功能的是
A.fopen
B.fgetc
C.fputc
D.fclose
满分:
2 分
21. 已知:
inta,*p=&a;则为了得到变量a的值,下列错误的表达式为_______。
A.p[0]
B.*p
C.&*a
D.*&a
满分:
2 分
22. C语言中规定,if语句的嵌套结构中,else总是与_______配对。
A.与最近的if配套
B.与第一个if配套
C.按缩进位置相同的if配套
D.与最近的且尚未配对的if配套
满分:
2 分
23. C语言中规定,if语句的嵌套结构中,else总是与_______配对。
A.与最近的if配套
B.与第一个if配套
C.按缩进位置相同的if配套
D.与最近的且尚未配对的if配套
满分:
2 分
24. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量x,则在另一文件中可以使用的引用说明是________。
A.externfloatx;
B.floatx;
C.externautofloatx;
D.externstaticfloatx;
满分:
2 分
25. 有程序段如下,不能表示为地址的是________。
intx=2,*p;
p=&x;
x=x+1;
A.&x
B.p
C.&p
D.&(x+1)
满分:
2 分
26. 以下函数的类型是________。
intsum(doublex,doubley)
{
doubles;
s=x+y;
returns;
}
A.字符型
B.不确定
C.整型
D.实型
满分:
2 分
27. 若有说明语句:
inty[][4]={0,0,0,0,0,0};则正确的叙述是________。
A.数组y的每个元素都可得到初值0
B.二维数组y的行数为1
C.该说明等价于inty[0][4]={0};
D.有元素y[0][0]至y[0][5]可得到初值,其余元素均得不到初值0
满分:
2 分
28. 若有以下定义:
floatx;inta,b;则错误的switch语句是________。
A.
switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("*\n");}
B.switch(a)
{case1:
printf("*\n");
case2:
printf("*\n");}
C.switch(a+b)
{case1:
printf("*\n");
case1+2:
printf("*\n");}
D.
switch(a+b);
{case1:
printf("*\n");
case2:
printf("*\n");}
满分:
2 分
29. 语句if(!
i)i++;中的条件表达式!
i等价于________。
A.i==0
B.i!
=1
C.i!
=0
D.-i
满分:
2 分
30. 若变量c为char类型,能正确判断c为小写字母的表达式是_______。
A.'a'<=c<='z'
B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)
D.(c>='a')&&(c<='z')
满分:
2 分
31. 若有定义:
intb[5];则以下对b数组元素的正确引用是_______。
A.*&b[5]
B.b+2
C.*(*(b+2))
D.*(b+2)
满分:
2 分
32. 一个共用体变量所占内存是________。
A.该共用体第一个成员所占的内存量
B.该共用体最后一个成员所占的内存量
C.该共用体占内存最多成员所占的内存量
D.该共用体所有成员所需内存量的总和
满分:
2 分
33. 组成C程序的基本单位是_______。
A.表达式与语句
B.若干文件
C.函数
D.main函数
满分:
2 分
34. 对二维数组的正确定义是( )
A.inta[][]={1,2,3,4,5,6};
B.inta[2][]={1,2,3,4,5,6};
C.inta[][3]={1,2,3,4,5,6};
D.inta[2,3]={1,2,3,4,5,6};
满分:
2 分
35. 以下叙述正确的是________。
A.函数的定义和函数的调用均不可以嵌套
B.函数的定义和函数的调用均可以嵌套
C.函数的定义可以嵌套,但函数的调用均不可以嵌套
D.函数的定义不可以嵌套,但函数的调用均可以嵌套
满分:
2 分
36. 语句if(!
i)i++;中的条件表达式!
i等价于________。
A.i==0
B.i!
=1
C.i!
=0
D.-i
满分:
2 分
37. 以读写方式打开一个已有的文本文件file1,并且FILE*fp,下面fopen函数正确的调用方式是()。
A.fp=fopen(“file1”,“r”)
B.fp=fopen(“file1”,“r+”)
C.fp=fopen(“file1”,“rb”)
D.fp=fopen(“file1”,“w”)
满分:
2 分
38. 下列为字符常量的是_______。
A.HE
B."I"
C.'Z'
D.She
满分:
2 分
39. 若有定义:
intb[5];则以下对b数组元素的正确引用是_______。
A.*&b[5]
B.b+2
C.*(*(b+2))
D.*(b+2)
满分:
2 分
40. 若有定义:
intx,*pb;则正确的赋值表达式是________。
A.pb=&x
B.pb=x
C.*pb=&x
D.*pb=*x
满分:
2 分
41.
设有intx,y;以下语句判断x和y是否相等,正确的说法是该语句________。
if(x=y)printf("xisequaltoy.");
A.语法错
B.不能判断x和y是否相等
C.编译出错
D.能判断x和y是否相等
满分:
2 分
42. 若有以下定义:
floatx;inta,b;则错误的switch语句是________。
A.switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("*\n");}
B.switch(a)
{case1:
printf("*\n");
case2:
printf("*\n");}
C.switch(a+b)
{case1:
printf("*\n");
case1+2:
printf("*\n");}
D.switch(a+b);
{case1:
printf("*\n");
case2:
printf("*\n");}
满分:
2 分
43. 下列表达式没有错误的是________。
intx,*p;
A.5.0%2
B.x+1=5
C.&p
D.&(x+1)
满分:
2 分
44. 以下有关switch语句的正确说法是_______。
A.break语句是语句中必须的一部分
B.在switch语句中可以根据需要使用或不使用break语句
C.break语句在switch语句中不可以使用
D.在switch语句中的每一个case都要用break语句
满分:
2 分
45. 下列数据中属于“字符串常量”的是( )。
A.“a”
B.{ABC}
C.‘abc\0’
D.‘a’
满分:
2 分
46. 设有定义语句“chars[]=”123”;”,则表达式“s[3]”的值是_______。
A.’1’
B.’3’
C.’\0’
D.语法出错
满分:
2 分
47. 以下叙述不正确的是_______。
A.一个C源程序文件必须包含一个main()函数
B.一个C源程序文件可由一个函数组成
C.一个C源程序文件是一个编译单位
D.一个C源程序文件可由多个函数组成
满分:
2 分
48. 若有定义charx[]="12345";chary[]={'1','2','3','4','5'};则_____________。
A.x数组与y数组的长度相同
B.x数组长度大于y的长度
C.x数组长度小于y数组长度
D.x数组等价与y数组
满分:
2 分
49. 若a为整型变量,则以下语句________。
a=-2L;printf(“%d\n”,A);
A.赋值不合法
B.输出值为-2
C.输出为不确定值
D.输出值为2
满分:
2 分
50. 下列语句中,把变量fp说明为一个文件型指针的是()。
A.FILE*fp;
B.FILEfp;
C.file*fp;
D.filefp;
满分:
2 分