奥鹏西安交通大学课程考试《程序设计基础高起专》参考资料答案.docx
《奥鹏西安交通大学课程考试《程序设计基础高起专》参考资料答案.docx》由会员分享,可在线阅读,更多相关《奥鹏西安交通大学课程考试《程序设计基础高起专》参考资料答案.docx(39页珍藏版)》请在冰豆网上搜索。
奥鹏西安交通大学课程考试《程序设计基础高起专》参考资料答案
西安交通大学课程考试复习资料
单选题
1.以下不能正确定义二维数组的选项是()
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
2.下列选项中正确的语句组是()
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
答案:
D
3.若有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
4.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
答案:
B
5.用下列语句定义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
6.用户定义的函数不可以调用的函数是()
A.非整型返回值的
B.本文件外的
C.main函数
D.本函数下面定义的
答案:
C
7.以下运算符中,优先级最高的运算符是()
A.*=
B.>=
C.(类型)
D.+
答案:
C
8.以下叙述中正确的是()
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
答案:
B
9.以下不能正确定义二维数组的选项是()
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
10.下列程序的输出结果是()。
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
11.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
A.int
B.float
C.double
D.不确定
答案:
C
12.逻辑运算符两侧运算对象的数据类型()
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
答案:
D
13.结构体类型的定义允许嵌套是指()
A.成员是已经或正在定义的结构体型
B.成员可以重名
C.结构体型可以派生
D.定义多个结构体型
答案:
A
14.C语言中,定义结构体的保留字是()
A.union
B.struct
C.enum
D.typedef
答案:
B
15.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
答案:
D
16.若二维数组a有m列,则在a[i][j]前的元素个数为()。
A.j*m+I
B.i*m+j
C.i*m+j-1
D.i*m+j+1
答案:
B
17.逻辑运算符两侧运算对象的数据类型()。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
答案:
D
18.结构体类型的定义允许嵌套是指()。
A.成员是已经或正在定义的结构体型
B.成员可以重名
C.结构体型可以派生
D.定义多个结构体型
答案:
A
19.C语言中,要求运算数必须是整型的运算符是()。
A.^
B.%
C.!
D.>
答案:
B
20.设有说明.charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()。
A.float
B.char
C.int
D.double
答案:
D
21.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A.int
B.float
C.double
D.不确定
答案:
C
22.设:
inta=4,b=5;则表达式8>4-!
0||2&&5>4的结果为()
A.0
B.1
C.-1
D.无法计算
答案:
B
23.下列哪个不是算法的特征()
A.有穷性
B.可行性
C.不确定性
D.输入
答案:
C
24.
以下程序中,while循环的循环次数是()
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(I==5)break;
i++;
}
......
}
A.1
B.10
C.6
D.死循环,不能确定次数
答案:
D
25.C语言中要求对变量作强制定义的主要理由是()。
A.便于移植
B.便于写文件
C.便于编辑预处理程序的处理
D.便于确定类型和分配空间
答案:
D
26.以下运算符中优先级最低的是()。
A.&&
B.&
C.||
D.|
答案:
C
27.以下程序的输出结果是()intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20
B.24
C.25
D.15
答案:
D
28.已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是()。
A.一个整数,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
答案:
C
29.有如下程序,该程序的输出的结果是()intaddc(inta,intb,intc){c=a+b;return(c);}main(){intx=4,y=2,z,r;z=x+y;r=addc(addc(x,y,z),addc(y,z,x),z);printf("%d\n",r);}
A.36
B.12
C.14
D.6
答案:
C
30.以下叙述中错误的是()。
A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B.在程序结束时,应当用fclose函数关闭已打开的文件
C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D.不可以用FILE定义指向二进制文件的文件指针
答案:
D
31.下列类型中错误的是()
A.unsigned
B.unsignedfloat
C.unsignedlongint
D.unsignedint
答案:
B
32.fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
A.字符串读入后不会自动加入'\0'
B.fp是file类型的指针
C.fgets函数将从文件中最多读入n-1个字符
D.fgets函数将从文件中最多读入n个字符
答案:
C
33.以下函数,哪个不属于动态申请空间的标准库函数()
A.malloc()
B.calloc()
C.free()
D.strcmp()
答案:
D
34.若有说明inta[3][4];则a数组元素的非法引用是()。
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
答案:
D
35.每条C语句后面都要有一个()
A.逗号
B.冒号
C.分号
D.括号
答案:
C
36.以下的选择中,正确的赋值语句是()。
A.a=1,b=2
B.j++
C.a=b=5;
D.y=int(x)
答案:
C
37.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。
A.EOF
B.0
C.非零值
D.NULL
答案:
C
38.以下选项中不属于C语言的类型的是()
A.signedshortint
B.unsignedlongint
C.unsignedint
D.longshort
答案:
D
39.以下不能定义为用户标识符的是()
A.scanf
B.Void
C._3com_
D.int
答案:
D
40.若有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
41.以下数值中,不正确的八进制数或十六进制数是()。
A.0x16
B.016
C.-1
D.0xaaaa
答案:
C
42.doublex;scanf("%lf",&x);不可以赋值给x变量的常量是()。
A.123
B.100000
C.A'
D."abc"
答案:
D
43.下列程序的输出结果为()。
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
44.若k为int型变量,则以下程序段的执行结果是()。
k=-8567;printf("|%06D|\n",k);
A.格式描述符不合法,输出无定值
B.输出为|%06D|
C.输出为|0-8567|
D.输出为|-8567|
答案:
B
45.以下标识符中,不能作为合法的C用户定义标识符的是()。
A.putchar
B._double
C._123
D.INT
答案:
A
46.inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是()。
A.2
B.3
C.4
D.不一定
答案:
B
47.以下正确的说法是:
在C语言中()。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.形参是虚拟的,不占用存储单元
答案:
A
48.以下程序的输出结果是()。
main(){chars[]="123",*p;p=s;printf("%c%c%c\n",*p++,*p++,*p++);}
A.123
B.321
C.213
D.312
答案:
B
49.若有以下程序#includevoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}则以下叙述中不正确的是()
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:
提示对对f函数重复说明
D.函数f无返回值,所以可用void将其类型定义为无值型
答案:
C
50.执行下列两个语句后,输出的结果为()charc1=66,c2=98;printf(“%c,%d”,c1,c2);
A.66,98
B.66,b
C.B,97
D.B,98
答案:
D
51.若用数组名作为函数的实参,传递给形参的是()。
A.数组的首地址
B.数组第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
答案:
A
52.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
53.若有以下的定:
intt[3][2];能正确表示t数组元素地址的表达式是()。
A.&t[3][2]
B.t[3]
C.&t[1]
D.t[2]
答案:
D
54.下列标识符中,不合法的C语言用户自定义标识符是()。
A.printf
B.enum
C._
D.sin
答案:
B
55.以下程序段的输出结果是()inta=1234;printf("%2d\n",a);
A.12
B.34
C.1234
D.提示出错、无结果
答案:
C
56.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));}
A.5
B.4
C.6
D.不确定
答案:
C
57.下列程序段的输出结果为()。
Intx=3,y=2;printf("%d",(x-=y,x*=y+8/5));
A.1
B.7
C.3
D.5
答案:
C
58.在C语言中,char型数据在内存中的存储形式是()。
A.补码
B.反码
C.原码
D.ASCII码
答案:
D
59.在C语言中,形参的缺省存储类是()。
A.auto
B.register
C.static
D.extern
答案:
A
60.以下选项中合法的实型常数是()。
A.5E2.0
B.E-3
C..2E0
D.1.3E
答案:
C
61.关于switch语句说法不正确的是()
A.case的次序不影响执行结果
B.每个case语句后面的常量可以不同
C.在执行完一个case语句后转到下一个case语句执行
D.每个case语句后面表达式只能是常量
答案:
B
62.函数rewind的作用是()。
A.使位置指针重新返回文件的开头
B.将位置指针指向文件中所要求的特定位置
C.使位置指针指向文件的末尾
D.使位置指针自动移至下一个字符位置
答案:
A
63.chara[]="Thisisaprogram.";输出前5个字符的语句是()。
A.printf("%.5s",a);
B.puts(a);
C.printf("%s",a);
D.a[5*2]=0;puts(a);
答案:
A
64.有如下的数组staticinta[10];则()
A.该数组没有被初始化
B.数组的所有元素都被赋值为0
C.数组的第一个元素是a[1]
D.数组共有11个元素
答案:
B
65.若inti=10;执行下列程序后,变量i的正确结果是()switch(i){case0:
i+=1;case10:
i+=1;case11:
i+=1;default:
i+=1;}
A.10
B.11
C.12
D.13
答案:
C
66.若有inta[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A.非法,2
B.&a[1][0],2
C.&a[0][1],3
D.a[0][0],4
答案:
B
67.若x=2,y=3则x&y的结果是()。
A.0
B.2
C.3
D.5
答案:
B
68.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!
y)的值是()。
A.0
B.语法错
C.1
D."假"
答案:
C
69.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
答案:
A
70.若使用一维数组名作函数实参,则以下正确的说法是()。
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.在被调用函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
答案:
A
71.关于数组,下列说法错误的是()
A.在任何一个数组中,数组元素的类型都是一致的
B.<常量表达式>不允许是变量
C.一维数组中的各个元素在内存中是按顺序存放的
D.C语言运行时要检查数组的边界,即下标值超界时,系统会报错
答案:
D
72.关于结构体,下列说法错误的是()
A.不能将一个结构体变量作为一个整体进行输入和输出。
B.对成员变量可以像普通变量一样进行各种运算。
C.结构体变量的地址主要用作函数参数传递结构体的地址。
D.结构体变量赋初值与数组不同,可以不一一对应。
答案:
D
73.以下语句中,不能实现回车换行的是()。
A.printf("\n");
B.putchar("\n");
C.fprintf(stdout,"\n");
D.fwrite("\n",1,1,stdout);
答案:
B
74.以下叙述正确的是()
A.可以把define和if定义为用户标识符
B.可以把define定义为用户标识符,但不能把if定义为用户标识符
C.可以把if定义为用户标识符,但不能把define定义为用户标识符
D.define和if都不能定义为用户标识符
答案:
B
75.()是用来描述对象的属性和行为的
A.实体
B.类
C.对象
D.现象
答案:
B
76.经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是()。
A.p=p+2;
B.p=a[5];
C.p=a[2]+2;
D.p=&(j+2);
答案:
A
77.以下运算符中,优先级最高的运算符是()。
A.=
B.!
=
C.*(乘号)
D.()
答案:
D
78.下列四个选项中,均是C语言关键字的选项是()。
A.auto、enum、include
B.switch、typedef、continue
C.signed、union、scanf
D.if、struct、type
答案:
B
79.以下叙述中正确的是()。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占编译时间
D.在以下定义中CR是称为"宏名"的标识符#defineCR045
答案:
C
80.以下对C语言函数的描述中,正确的是()。
A.C程序必须由一个或一个以上的函数组成
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个程序文件中
答案:
A
81.inta[10];合法的数组元素的最小下标值为()。
A.10
B.9
C.1
D.0
答案:
D
82.设:
x=9;y=++x;,则产生的结果是()
A.x=9;y=9;
B.x=10;y=10;
C.x=9;y=10;
D.x=10;y=9;
答案:
B
83.对于如下的表达式:
inta[3][4],*p;p=*a;执行p++操作之后,*p表示取()的内容。
A.a[0][0]
B.a[1][0]
C.a[1][1]
D.a[0][1]
答案:
D
84.设intx=1,y=1;表达式(!
x||y--)的值是()。
A.0
B.1
C.2
D.-1
答案:
B
85.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()
A.p=2*(int*)malloc(sizeof(int));
B.p=(int*)malloc(2*sizeof(int));
C.p=(int*)malloc(2*2);
D.p=(int*)calloc(2,sizeof(int));
答案:
A
86.关于指针,下列说法错误的是()
A.指针变量是用来存放内存地址的
B.&表示取变量地址运算
C.*表示取指针变量所指向的变量内容的运算
D.可以将整数赋给指针变量
答案:
D
87.若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为()。
A.scanf("%d",p);
B.scanf("%d",&p);
C.scanf("%d",*p);
D.scanf("%d",**p);
答案:
A
88.函数的形式参数隐含的存储类型说明是()。
A.extern
B.static
C.register
D.auto
答案:
D
89.以下选项中,与k=n++完全等价的表达式是()。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
答案:
A
90.若有下列定义和语句,则对a数组元素的非法引用是()。
Inta[2][3],(*pt)[3];pt=a;
A.pt[0][0]
B.*(pt+1)[2]
C.*(pt[1]+2)
D.*(a[0]+2
答案:
B
91.执行以下程序段后,输出结果和a的值是()。
Inta=10;printf("%d",a++);
A.10和10
B.10和11
C.11和10
D.11和11
答案:
B
92.下列说法错误的是()
A.else总是和它上面的,离它最近的if配对
B.条件表达式可以不用括号括起来。
C.整个if语句在程序中被看作是一条语句
D.if语句中的各语句可以是一条语句,也可以是复合语句
答案:
B
多选题
1.能正确表示逻辑关系:
"a≥10"的C语言表达式是()。
A.a≥10
B.!
(a<10)
C.a>=10
D.x4=1+2=3;
答案:
B,C
2.若以下选项中的变量已正确定义,则不正确的赋值语句是()。
A.int
B.x=3*x+x
C.x3=0x12
D.x4=1+2=3;
答案:
A,D
3.以下叙述正确的是()
A.预处理命令行都必须以"#"开始
B.在程序中凡是以"#"开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.#defineABCD是正确的宏定义
答案:
A,B,D
4.C语言中三种基本的类型为()
A.int
B.char
C.float
D.struct
答案: