02275计算机基础与程序设计考题及答案至.docx
- 文档编号:29986591
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:53
- 大小:333.40KB
02275计算机基础与程序设计考题及答案至.docx
《02275计算机基础与程序设计考题及答案至.docx》由会员分享,可在线阅读,更多相关《02275计算机基础与程序设计考题及答案至.docx(53页珍藏版)》请在冰豆网上搜索。
02275计算机基础与程序设计考题及答案至
全国2011年4月自学考试计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.计算机处理信息时,CPU一般是以一组二进制数码为单位进行处理的,这组二进制数码称为()
A.wordB.MBC.KBD.bit
2.下列不属于计算机硬件系统的是()
A.操作系统B.控制器C.存储器D.运算器
3.下面转义字符中,表示换页的是()
A.\0B.\nC.\rD.\f
4.在TurboC2.O中,保存源程序在主菜单File项中可选择()
A.LoadB.NewC.SaveD.Quit
5.下面表达式结果为3的是()
A.(-7)%4B.(-7.O)%4.0C.7%(-4)D.7.O%4.O
6.设有intx=2,y,z;执行z=y=x++;后变量z的值是()
A.0B.1C.2D.3
7.下面不正确的关系表达式是()
A.a=3B.a<3C.a>=b>cD.a>b>c
8.设有声明intx=1,y=2,z;执行z=x>y?
x+2:
y-2后变量z的值是()
A.0B.1C.2D.3
9.设有intb=-1;则执行printf("%u\n”,b);后的输出是()
A.-1B.ffffC.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,3C.5,8D.8,13
11.设有声明intx=-1;执行if(x<0)x=-x-1;后变量x的值是()
A.-1B.0C.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.fgetsC.fputcD.fputs
15.在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()
A.externB.registerC.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.4C.5D.8
20.设有下面程序:
()
#include"stdio.h"
voidmain(void)
{
unsignedx=1,y=3,z=5;
printf("%d\n",x
y);
}
该程序的运行结果是A.1B.3C.5D.7
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选、少选或未选均无分。
21.与十进制10.625等值的数有()
A.(10.101)2B.(1010.101)2C.(12.101)8D.(12.5)8E.(A.A)16
22.下面合法的C语言用户定义的标识符有()
A.autoB._123C.ABCD.Turbo_cE.int
23.下面属于TurboC提供的数学函数有()
A.acosB.tanC.putsD.sqrtE.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文本文件中。
第6页第7页为2011年4月份答案
全国2011年7月自学考试计算机基础与程序设计试题
课程代码:
02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列存储设备中,属于主机范畴的是()
A.光盘B.硬盘C.内存D.U盘
2.下列属于计算机软件系统的是()
A.内存储器B.操作系统C.显示器D.CPU
3.在TurboC2.0中,在主菜单File项中选择OsShell后,要重新回到TurboC2.0,应使用的命令是()
A.ReturnB.ExitC.QuitD.New
4.下面合法的C语言标识符是()
A.int_B.intC.πD.file.c
5.若有inta,b;下面正确使用变量a,b的表达式是()
A.7.0%3.0B.(a+b)++C.7++D.a+′a′+b
6.下面几种运算符中,优先级最低的是()
A.||B.,C.=D.?
:
7.设有inta=3,b=-4,c=5;表达式(a>b)?
a&&c<0:
b的值是()
A.0B.1C.3D.-4
8.设有intx=2,y,z;执行z=y=x++;后变量y的值是()
A.0B.1C.2D.3
9.若有inta=8,b=5;语句printf(“%d”,a>b);的执行结果是()
A.0B.1C.5D.8
10.下面程序的输出结果是()
main()
{inta=3,b=5;
a+=b;b+=a;
printf(“%d,%d”,a,b);}
A.3,5B.5,3C.8,13D.13,21
11.若有inta=8,b=12,max,min;执行语句
if(a>b){max=a;min=b;}
else{max=b;min=a;}
的结果是()
A.max的值是8,min的值是12B.max的值是8,min的值是8
C.max的值是12,min的值是8D.max的值是12,min的值是12
12.执行下面程序段后,a的值是
inta=100;
do
{a++;}while(a>120);()
A.100B.101C.120D.121
13.若有定义intch[5][4];则数组ch中的元素的个数是()
A.9B.12C.15D.20
14.若有定义charstr[20];能使数组str得到字符串"Iamaboy"的正确输入方法是()
A.gets(str);B.str=getchar();C.scanf("%c",str);D.scanf("%s",str);
15.若主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为()
A.直接递归调用B.间接递归调用C.并行调用D.嵌套调用
16.下面关于函数参数的说法中,不正确的是()
A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式
C.实参可以是数组元素或数组名D.形参应与其对应的实参类型一致
17.若有定义intb[2][3]={0},(*p)[3]=b;对b数组第i行第j列(设i,j已正确说明并赋
值)元素的不正确的引用是()
A.*(*(p+i)+j)B.*(p[i]+j)C.*(p+i)+jD.(*(p+i))[j]
18.设有下面的结构体和结构变量定义:
Structtea
{
char*name;
floatprice,weight;
};
structteateal={"green_tea",2.0,28.5};
structtea*p_struct=&teal;
语句:
printf("%s,%.1f",p_struct—>name,p_struct—>price*p_struct—>weight);
的输出结果是()
A.57.0B.57.0,green_teaC.green_tea,57.0D.green_tea
19.若有定义intx=5,y=6;下面表达式值为0的是()
A.x^xB.x&yC.x|yD.y>>2
20.下列函数中向文件一次读一个字符的函数是()
A.fgetcB.fputcC.fgetsD.fputs
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选、少选或未选均无分。
21.与十进制100等值的数有()
A.(1100100)2B.(1011011)2C.(144)8D.(64)16E.(5F)16
22.下面合法的C语言常量有()
A.′tc′B.3e2.5C.0xfdeD.1e8E.′\n′
23.下面属于C语言中输入或输出函数的有()
A.scanfB.printfC.putcharD.main
E.pow
24.下面关于函数的说法中,不正确的有()
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值类型不一致,以函数值类型为准
D.如果形参与实参的类型不一致,以实参类型为准
E.形参与实参的对应关系由形参名和实参名决定
25.设有关于结构体类型的定义:
structdatabase
{
charname[20];
floatspeed;
}dbl={"Oracle",125600.56},db2,*p=&db2;
下面选项中语句正确的有()
A.p=&dbl;B.p=dbl;
C.strcpy(p—>name,"Sybase");D.p—>speed=dbl.speed;
E.strcpy(p—>name,dbl.name)
三、简答题(本大题共4小题,每小题4分,共16分)
26.下面是求1到100之和的程序
main()
{inti,sum=0;
for(i=1;i<=100;i++)
sum+=i;
printf("%d\n",sum);
}
问如何修改循环体,使其仅求前10个数之和。
27.若有下面定义:
intnum[10]={0,1,2,3,4,5,6,7,8,9),*p=num;
设数组num的首地址是65484。
问:
(1)表达式p+8表示什么?
其值是多少?
(2)表达式*(p+8)表示什么?
其值是多少?
28.设有说明:
unsignedx=0x1234;下面表达式
(1)、
(2)的运算结果的十六进制值是什么?
(1)(x&0xff00)>>8|(x&0xff)<<8
(2)x&0xff00>>8|x&0xff<<8
29.设有说明:
structisland{intid;charname[10];floatarea;}a,*p=&a;写出对p所指的成员id、area分别赋值101、34521.65,使p所指的指针成员name指向"Wang"的C语句分别是:
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下列程序并写出运行结果。
main()
{inta=55,x,y;
x=(int)(a/8.0);
y=a-8*x;
printf("%d,%d\n",x,y);
}
31.阅读下列程序并写出运行结果。
main()
{floatx;inta=0;
scanf("%f",&x);
switch(x/10-5)
{case7:
a++;
case6:
a++;printf("%d,",a);
case5:
a++;break;
case4:
a++;
default:
a++;printf("%d,",a);
case1:
a+=2:
}
printf("%d\n",a);
}
(1)当程序运行后输入115.5后,写出程序的执行结果。
(2)当再次运行程序后输入45后,写出程序的执行结果。
32.阅读下列程序并写出运行结果。
main()
{ints=0,k=1,i;
for(i=0;i<10;i++)
{k=k+i;
s+=k;
if(i>3)break;
s+=2*k:
printf("s=%d\n",s);
}
printf("s=%d\n",s);
}
33.阅读下列程序并写出运行结果。
main()
{inta[4][4],i,j;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=i+j;
for(i=1;i<4;i++){
for(j=1;j<=i;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
34.阅读下列程序并写出运行结果。
intsum1;
main()
{intsum2=0,i,f1(int),f2(int);
for(i=1;i<=5;i++)
sum1+=f1(i);
for(i=1;i<=5;i++)
sum2+=f2(i);
printf("sum1=%d\n",sum1);
printf("sum2=%d\n"sum2);
}
intf1(inta)
{staticints1=1;
s1*=a;
returns1;
}
intf2(inta)
{autoints2=1;
s2*=a;
returns2;
}
35.阅读下列程序并写出运行结果。
main()
{chars[]="abcdel2345",*q=s;
inta=0;
for(;q
printf("%c",*q);
a=f(s);
printf("\na=%d\n",a);
}
intf(char*p)
{intx=0;
while(*p++!
=′\0′)
x++;
returnx;
}
五、编程题(本大题共2小题,每小题12分,共24分)
36.从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。
37.从二进制文件c:
\abc.dat中读出10个float型数据存放于数组a中,然后将数组a中的数据按从小到大的次序输出在屏幕上。
2011.7计算机基础与程序设计试题答案
1
2
3
4
5
6
7
8
9
10
C
B
B
A
D
B
A
C
B
C
11
12
13
14
15
16
17
18
19
20
C
B
D
A
D
B
C
C
A
1
2
3
4
5
ACD
CDE
ABC
ABC
ACDE
三、简答题
26、main()
{inti,sum=0;
for(i=1;i<=10;i++)
sum+=i;
printf("%d\n",sum);
}
27、
(1)65484+16
(2)8
29、p->id=101;p->area=345212.65;strcpy(p->name,”wang”);
31、
(1)12
(2)13
32、S=3
S=9
S=21
S=42
S=53
33、2
34
456
34、Sum1=153
Sum2=15
35、abcde
a=10
36、
#include"stdio.h"
main()
{
inta[30],i,sum=0;
printf("input30nubmers:
");
for(i=0;i<=29;i++)
scanf("%d",&a[i]);
for(i=0;i<=29;i++)
if(a[i]%3==0)
{printf("%5d",a[i]);
sum=sum+a[i];
}
printf("\n%d",sum);
getch();
}
37、
#include"stdio.h"
main()
{FILE*fp;
floata[10],x;
inti=0,j=0;
if((fp=fopen("c:
\abc.dat","r")==NULL)
exit(0);
while(fscanf(fp,"%f",&a[i++])!
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02275 计算机 基础 程序设计 考题 答案