全国计算机基础与程序设计0227高等教育自学考试试题与答案.docx
《全国计算机基础与程序设计0227高等教育自学考试试题与答案.docx》由会员分享,可在线阅读,更多相关《全国计算机基础与程序设计0227高等教育自学考试试题与答案.docx(25页珍藏版)》请在冰豆网上搜索。
全国计算机基础与程序设计0227高等教育自学考试试题与答案
全国2011年4月高等教育自学考试
计算机基础与程序设计试题
课程代码:
02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.计算机处理信息时,CPU一般是以一组二进制数码为单位进行处理的,这组二进制数码称为()
A.wordB.MB
C.KBD.bit
2.下列不属于计算机硬件系统的是()
A.操作系统B.控制器
C.存储器D.运算器
3.下面转义字符中,表示换页的是()
A.\0B.\n
C.\rD.\f
4.在TurboC2.O中,保存源程序在主菜单File项中可选择()
A.LoadB.New
C.SaveD.Quit
5.下面表达式结果为3的是()
A.(-7)%4B.(-7.O)%4.0
C.7%(-4)D.7.O%4.O
6.设有intx=2,y,z;执行z=y=x++;后变量z的值是()
A.0B.1
C.2D.3
7.下面不正确的关系表达式是()
A.a=3B.a<3
C.a>=b>cD.a>b>c
8.设有声明intx=1,y=2,z;执行z=x>y?
x+2:
y-2后变量z的值是()
A.0B.1
C.2D.3
9.设有intb=-1;则执行printf("%u\n”,b);后的输出是()
A.-1B.ffff
C.177777D.65535
10.下面程序段的输出结果是()
main()
{inta=3,b=5,c;
c=a+b;a=b;b=c;
printf("%d,%d",a,b);}
A.3,5B.5,3
C.5,8D.8,13
11.设有声明intx=-1;执行if(x<0)x=-x-1;后变量x的值是()
A.-1B.0
C.1D.2
12.关于break语句,以下说法不正确的是()
A.它可以用于循环语句中
B.它可以用于switch语句中
C.可以从最内层循环结构中直接跳出最外层循环结构
D.可以从当前switch结构中跳出
13.下面能正确将字符串"Boy"进行完整赋值操作的语句是()
A.chars[3]={′B′,′o′,′y′};B.chars[]="Boy";
C.chars[3]={"Boy"};D.chars[3];
s[O]=′B′;s[1]=′o′;s[2]=′y′;
14.下列函数中向文件一次读一串字符的函数是()
A.fgetcB.fgets
C.fputcD.fputs
15.在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()
A.externB.register
C.autoD.static
16.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()
A.地址传递B.单向值传递
C.由实参传给形参,再由形参传回给实参D.由用户指定方式
17.设有声明语句inta[2][3],(*p)[3]=a;则对a数组元素正确引用的是()
A.(p+1)[O]B.*(*(p+2)+1)
C.*(p[1]+1)D.p[1]+2
18.设有下面的结构体和结构变量定义:
()
structcar
{
longid:
char*name;
};
structcarcarl;
关于结构体类型变量赋值不正确的是
A.carl.id=10101;B.carl.name="BlueSky";
C.carl.*name="BlueSky";D.carl.id=123456L;
19.设有声明和语句:
()
unsignedintx=1,y=2;
x<<=y+1;
则x的值是
A.1B.4
C.5D.8
20.设有下面程序:
()
#include"stdio.h"
voidmain(void)
{
unsignedx=1,y=3,z=5;
printf("%d\n",
x
y);
}
该程序的运行结果是
A.1B.3
C.5D.7
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选、少选或未选均无分。
21.与十进制10.625等值的数有()
A.(10.101)2B.(1010.101)2
C.(12.101)8D.(12.5)8
E.(A.A)16
22.下面合法的C语言用户定义的标识符有()
A.autoB._123
C.ABCD.Turbo_c
E.int
23.下面属于TurboC提供的数学函数有()
A.acosB.tan
C.putsD.sqrt
E.exp
24.自定义函数有n1,n2,n3三个形式参数且为整型,函数正确的定义形式有()
A.intfun(intnl,n2,n3){…}
B.intfun(intnl,intn2,intn3){…}
C.intfun(nl,n2,n3)
intnl,n2,n3;{…}
D.intfun(n1,n2,n3)
{intnl,n2,n3;…}
E.intfun(nl,n2,n3)
{intn1,intn2,intn3;…}
25.设有关于结构体类型的定义:
()
structmankind
{
charname[20];
intage;
floatweight:
}person,*p;
下面各个供选项中语句都正确的有
A.person.name="Li";
person.age=15;
B.strcpy(person.name,"Wang");
Person->age=15;
C.p=&person;
p->age=25;
D.strcpy(person.name,"Tom");
p=&person;
E.strcpy(person.name,"Tom"),p=&person;
p->weight=97.2;
三、简答题(本大题共4小题,每小题4分,共16分)
26.设有下面程序:
voidmain(void)
{
intx:
x=1:
while(x<20){
printf("x=%d\n",x);
x+=2:
}
}
请把程序改写为for结构。
27.声明语句chars[20]="computer";
能用下面的语句替代吗?
为什么?
chars[20];
s="computer";
28.设有说明:
structnode{
intnum;
charname[12];
charsex;
floatincome;
}a,*ptr=&a;
写出对ptr所指成员num,name,sex,income分别赋值123,"zhang",′m′,654.25的赋值语句。
29.设有说明:
unsignedx=10;试写出通过仅对x进行移位操作的表达式,使表达式的值为16。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下列程序并写出运行结果。
voidmain(void)
{
intx=1,y=2;
charch=′a′:
x++;y-=2;++ch;
printf("%c,%d,%d\n",ch,x,y);
}
31.阅读下列程序并写出运行结果。
voidmain(void)
{
intx=11;
switch(x-1){
caseO:
printf("x=%d\n",x++);
break:
case10:
printf("x=%d\n",x*2);
case20:
printf("x=%d\n",x*4);
default:
printf("x=%d\n",x);
}
}
32.阅读下列程序,当依次输入11,l2,l3,14,16这5个数时,请写出程序的运行结果。
voidmain(void)
{
intx,i,s=O;
for(i=O;i<5;i++){
scanf("%d",&x);
if(x%2)continue;
printf("%d\t",x);
s+=x;
}
printf("\n");
printf("s=%d\n",s);
}
33.阅读下列程序并写出运行结果。
voidmain(void)
{
intx=3,y[7]={1,3,5,8,9,11,12};
intt=O,b=7,f=O,m;
m=(b+t)/2;
while(b-t>=O)
if(y[m]==x){f=1;
printf("\ny[%d]=%d\n",m,y[m]);
break;
}
elseif(y[m]>x)
{
b=m-1;printf("%d\t",y[m]);
m=(b+t)/2;}
else{
t=m+1;printf("%d\t",y[m]);
m=(b+t)/2;}
if(!
f)
printf("\nnotfind!
\n");
34.阅读下列程序序并写出运行结果。
intfun(inty);
voidmain(void)
{
intx[4]={3,5,7,O},s=0,i=0;
while(x[i]){
s+=fun(x[i]);
i++;
printf("s=%d\n",s);
}
}
intfun(inty)
{
staticinta=O;
a=a+y;
returna;
}
35.阅读下列程序并写出运行结果。
voidf1(char*t,char*s);
voidmain(void)
{
chars1[20]="abcdl2345",t1[20]="xyz";
printf("%s\n%s\n",s1,t1);
f1(t1,s1);
printf("%s\n",t1);
}
voidf1(char*t,char*s)
{
while((*t=*s)!
=′\0′){
t++;
s++;
}
}
五、编程题(本大题共2小题,每小题12分,共24分)
36.从键盘输入20个整数存放到数组a中,计算数组a中下标为奇数的所有元素的和。
37.从键盘上输入20个字符存放到一个字符数组s中。
对数组s中的元素按升序(由小到大)排序,再将排序后的结果写到c:
\abc.dat文本文件中。
全国2011年4月高等教育自学考试
计算机基础与程序设计试题
课程代码:
02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.计算机处理信息时,CPU一般是以一组二进制数码为单位进行处理的,这组二进制数码称为()
A.wordB.MB
C.KBD.bit
2.下列不属于计算机硬件系统的是()
A.操作系统B.控制器
C.存储器D.运算器
3.下面转义字符中,表示换页的是()
A.\0B.\n
C.\rD.\f
4.在TurboC2.O中,保存源程序在主菜单File项中可选择()
A.LoadB.New
C.SaveD.Quit
5.下面表达式结果为3的是()
A.(-7)%4B.(-7.O)%4.0
C.7%(-4)D.7.O%4.O
6.设有intx=2,y,z;执行z=y=x++;后变量z的值是()
A.0B.1
C.2D.3
7.下面不正确的关系表达式是()
A.a=3B.a<3
C.a>=b>cD.a>b>c
8.设有声明intx=1,y=2,z;执行z=x>y?
x+2:
y-2后变量z的值是()
A.0B.1
C.2D.3
9.设有intb=-1;则执行printf("%u\n”,b);后的输出是()
A.-1B.ffff
C.177777D.65535
10.下面程序段的输出结果是()
main()
{inta=3,b=5,c;
c=a+b;a=b;b=c;
printf("%d,%d",a,b);}
A.3,5B.5,3
C.5,8D.8,13
11.设有声明intx=-1;执行if(x<0)x=-x-1;后变量x的值是()
A.-1B.0
C.1D.2
12.关于break语句,以下说法不正确的是()
A.它可以用于循环语句中
B.它可以用于switch语句中
C.可以从最内层循环结构中直接跳出最外层循环结构
D.可以从当前switch结构中跳出
13.下面能正确将字符串"Boy"进行完整赋值操作的语句是()
A.chars[3]={′B′,′o′,′y′};B.chars[]="Boy";
C.chars[3]={"Boy"};D.chars[3];
s[O]=′B′;s[1]=′o′;s[2]=′y′;
14.下列函数中向文件一次读一串字符的函数是()
A.fgetcB.fgets
C.fputcD.fputs
15.在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()
A.externB.register
C.autoD.static
16.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()
A.地址传递B.单向值传递
C.由实参传给形参,再由形参传回给实参D.由用户指定方式
17.设有声明语句inta[2][3],(*p)[3]=a;则对a数组元素正确引用的是()
A.(p+1)[O]B.*(*(p+2)+1)
C.*(p[1]+1)D.p[1]+2
18.设有下面的结构体和结构变量定义:
()
structcar
{
longid:
char*name;
};
structcarcarl;
关于结构体类型变量赋值不正确的是
A.carl.id=10101;B.carl.name="BlueSky";
C.carl.*name="BlueSky";D.carl.id=123456L;
19.设有声明和语句:
()
unsignedintx=1,y=2;
x<<=y+1;
则x的值是
A.1B.4
C.5D.8
20.设有下面程序:
()
#include"stdio.h"
voidmain(void)
{
unsignedx=1,y=3,z=5;
printf("%d\n",
x
y);
}
该程序的运行结果是
A.1B.3
C.5D.7
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选、少选或未选均无分。
21.与十进制10.625等值的数有()
A.(10.101)2B.(1010.101)2
C.(12.101)8D.(12.5)8
E.(A.A)16
22.下面合法的C语言用户定义的标识符有()
A.autoB._123
C.ABCD.Turbo_c
E.int
23.下面属于TurboC提供的数学函数有()
A.acosB.tan
C.putsD.sqrt
E.exp
24.自定义函数有n1,n2,n3三个形式参数且为整型,函数正确的定义形式有()
A.intfun(intnl,n2,n3){…}
B.intfun(intnl,intn2,intn3){…}
C.intfun(nl,n2,n3)
intnl,n2,n3;{…}
D.intfun(n1,n2,n3)
{intnl,n2,n3;…}
E.intfun(nl,n2,n3)
{intn1,intn2,intn3;…}
25.设有关于结构体类型的定义:
()
structmankind
{
charname[20];
intage;
floatweight:
}person,*p;
下面各个供选项中语句都正确的有
A.person.name="Li";
person.age=15;
B.strcpy(person.name,"Wang");
Person->age=15;
C.p=&person;
p->age=25;
D.strcpy(person.name,"Tom");
p=&person;
E.strcpy(person.name,"Tom"),p=&person;
p->weight=97.2;
三、简答题(本大题共4小题,每小题4分,共16分)
26.设有下面程序:
voidmain(void)
{
intx:
x=1:
while(x<20){
printf("x=%d\n",x);
x+=2:
}
}
请把程序改写为for结构。
27.声明语句chars[20]="computer";
能用下面的语句替代吗?
为什么?
chars[20];
s="computer";
28.设有说明:
structnode{
intnum;
charname[12];
charsex;
floatincome;
}a,*ptr=&a;
写出对ptr所指成员num,name,sex,income分别赋值123,"zhang",′m′,654.25的赋值语句。
29.设有说明:
unsignedx=10;试写出通过仅对x进行移位操作的表达式,使表达式的值为16。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下列程序并写出运行结果。
voidmain(void)
{
intx=1,y=2;
charch=′a′:
x++;y-=2;++ch;
printf("%c,%d,%d\n",ch,x,y);
}
31.阅读下列程序并写出运行结果。
voidmain(void)
{
intx=11;
switch(x-1){
caseO:
printf("x=%d\n",x++);
break:
case10:
printf("x=%d\n",x*2);
case20:
printf("x=%d\n",x*4);
default:
printf("x=%d\n",x);
}
}
32.阅读下列程序,当依次输入11,l2,l3,14,16这5个数时,请写出程序的运行结果。
voidmain(void)
{
intx,i,s=O;
for(i=O;i<5;i++){
scanf("%d",&x);
if(x%2)continue;
printf("%d\t",x);
s+=x;
}
printf("\n");
printf("s=%d\n",s);
}
33.阅读下列程序并写出运行结果。
voidmain(void)
{
intx=3,y[7]={1,3,5,8,9,11,12};
intt=O,b=7,f=O,m;
m=(b+t)/2;
while(b-t>=O)
if(y[m]==x){f=1;
printf("\ny[%d]=%d\n",m,y[m]);
break;
}
elseif(y[m]>x)
{
b=m-1;printf("%d\t",y[m]);
m=(b+t)/2;}
else{
t=m+1;printf("%d\t",y[m]);
m=(b+t)/2;}
if(!
f)
printf("\nnotfind!
\n");
34.阅读下列程序序并写出运行结果。
intfun(inty);
voidmain(void)
{
intx[4]={3,5,7,O},s=0,i=0;
while(x[i]){
s+=fun(x[i]);
i++;
printf("s=%d\n",s);
}
}
intfun(inty)
{
staticinta=O;
a=a+y;
returna;
}
35.阅读下列程序并写出运行结果。
voidf1(char*t,char*s);
voidmain(void)
{
chars1[20]="abcdl2345",t1[20]="xyz";
printf("%s\n%s\n",s1,t1);
f1(t1,s1);
printf("%s\n",t1);
}
voidf1(char*t,char*s)
{
while((*t=*s)!
=′\0′){
t++;
s++;
}
}
五、编程题(本大题共2小题,每小题12分,共24分)
36.从键盘输入20个整数存放到数组a中,计算数组a中下标为奇数的所有元素的和。
37.从键盘上输入20个字符存放到一个字符数组s中。
对数组s中的元素按升序(由小到大)排序,再将排序后的结果写到c:
\abc.dat文本文件中。