全国2010年7月高等教育自学考试计算机基础与程序设计试题 
课程代码:02275
一、单项选择题 (本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选、多选或未选均无分. 
1.与十进制数49等值的二进制数是( ) 
A.101111 
B.110000 
C.110001 
D.110010
2.编译程序的功能是( ) 
A.修改并建立源程序 
B.将源程序翻译成目标程序 
C.调试程序 
D.命令计算机运行可执行程序 
3.Turbo C 2.0中,若定义long b;则变量b在内存中分配的字节数是( ) 
A.1个 
B.2个 
C.4个 
D.8个 
4.下列语句中不能实现循环结构的语句是( ) 
A.if语句 
B.while语句 
C.do—while语句 
D.for语句 
5.以下程序的输出结果是( ) 
main()
{ int y=10; 
while(y——); 
printf("y=%d",y); 
}
A.y=-1 
B.y=0 
C.y=1 
D.y=随机值 
6.下列程序的输出结果是( ) 
main()
{ int a[10]={l,2,3,4,5,6,7,8,9,10}; 
printf(″%d\n″,a[2]); 
}
A.1 
B.2 
C.3 
D.4
7.下面程序的输出结果是( ) 
#include <stdio.h>
#include <string.h>
main()
{ char p1[10]= ″abc″,p2[]=″ABC″; 
strcat(p1,p2); 
printf(″%s\n″,p1); 
}
A.abcabc 
B.abc 
C.ABC 
D.abcABC
8.设有int x=2,y,z;执行z=y=x++;后变量x的值是( ) 
A.0 
B.1 
C.2 
D.3
9.下面程序段的输出结果是( ) 
main()
{ int a=2,b=5; 
printf(″a=%%%d,b=%%9%d″,a,b);}
A.a=2,b=5 
B.a=2%,b=5% 
C.a=%2,b=%5 
D.a=%d,b=%d
10.若有下列程序段,欲使a=2,b=3,对应正确的数据输入法是(其中<CR>表示回车)
( ) 
int a,b; 
scanf(″%d,%d″,&a,&b); 
A.2<CR> 
B.a=2,b=3<CR>
3<CR>
C.a=2b=3<CR> 
D.2,3<CR>
11.若运行时给变量x输入12,则以下程序的运行结果是( ) 
main()
{ int x,y; 
scanf(″%d″,&x); 
y=x>12?x+10:x-12; 
printf(″%d\n″,y); 
}
A.0 
B.10 
C.12 
D.22
12.若执行下列程序时,从键盘上输入3和4,则输出结果是( ) 
main()
{ int a,b,s; 
scanf(″%d%d″,&a,&b); 
s=a: 
if(a<b) s=b; 
s=s*s;
printf(″%d\n″,s); 
}
A.9 
B.16 
C.18 
D.20
13.C语言的auto型变量存储在( ) 
A.动态存储区中 
B.静态存储区中 
C.计算机CPU的寄存器中 
D.外存储器中 
14.以下程序的输出结果是( ) 
ff()
{ int a=l,c=8; 
static int b=4;
if(b= =4)
{a+=c;b++;}
else
(a+=c;b--;)
printf(″a=%d,b=%d\n″,a,b); 
}
main()
{ff();ff();}
A.a=9,b=5 
B.a=9,b=4 
a=9,b=5 
a=9,b=4
C.a=9,b=4 
D.a=9,b=5
a=9,b=5 
a=9,b=4
15.设p1和p2是指向同一个字符串的指针变量,且c为字符型变量,则以下不能正确执行的赋值语句是( ) 
A.c=*p1+*p2; 
B.p2=*p1; 
C.p1=p2; 
D.c=*p1*(*p2); 
16.以下选项中,对指针变量p的正确操作是( ) 
A.int a[5],*p;p=&a; 
B.int a[5],*p;p=a; 
C.int a[5];int *p=a[5];
D.int a[5];int*p,p2=a;*p=*p2; 
17.设有下面的结构体和结构变量定义: 
struct student
{
long id: 
char*name; 
int math;
}; 
struct student studl; 
关于结构体类型变量赋值正确的是( ) 
A.studl.id=1001;studl.name=″Tom″; 
B.id=1001;*studl. name=″Tom″; 
C.studl.id=1001;studl.*name=″Tom″; 
D.studl.id=1001L;*studl.name=″Tom″; 
18.设有说明:int x=7,y=1;表达式:x&~y的值是( ) 
A.0 
B.2 
C.4 
D.6
19.设有说明:int u=1,v=14;表达式:u|v>>2的值是( ) 
A.-1 
B.1 
C.3 
D.4
20.设有说明:FILE*fp;char filename[10]= ″myfile″;对于fp=fopen(filename, 
″rb+″);语句,下面说法正确的是( ) 
A.打开名为myfile的文件读写 
B.打开名为filename的文件读写 
C.打开名为myfile的文件只读 
D.打开名为filename的文件只读
	
    
	
二、多项选择题 (本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内.错选、多选、少选或未选均无分. 
21.下列属于计算机的输入设备的有( ) 
A.CD—ROM 
B.打印机 
C.键盘 
D.鼠标 
E.扫描仪 
22.设有int a=3,b=-5;下面表达式值等于0的有( ) 
A.!a 
B.!b&&b 
C.5/6 !=0 
D.a%3!=0 
E.b+a ==-2
23.下列有关函数的说法中不正确的有( ) 
A.C语言程序总是从首定义的函数起顺序执行 
B.在C语言程序中,被调用的函数必须在main()函数中定义 
C.C语言程序中的main()函数必须放在程序开始部分 
D.C语言程序总是从main()函数开始执行 
E.定义函数时,参数表中可以没有任何参数 
24.若有定义int a[5],i,*p=a;且0≤i<5,则对a数组元素的正确引用有( ) 
A.a[i] 
B.*(a+i) 
C.*(p+i) 
D.*(&a+i) 
E.p+i
25.设有说明:int x=0,y=1,z=2;则下列表达式中结果非0的有( ) 
A.~x&y 
B.x&y&z 
C.z>>2 
D.(y<<1)&z 
E.y&z
三、简答题(本大题共4小题,每小题4分,共16分)26.写出for语句的一般形式及执行过程. 
27.函数fputc()的功能是什么?
28.将下面的各种运算符按优先级从高到低排列出来.(相同优先级的用"、"号分隔,不同优先级的按由高到低的顺序用"→"号分隔)
,、?:、>=、==、/、()、!、||、&&、=
29.若有char strl[20],str2[20];简述下面各函数调用的功能. 
(1)gets(strl)
(2)strcmp(strl,str2)
四、阅读分析题 (本大题共6小题,每小题5分,共30分)30.写出下列程序的运行结果. 
main()
{ int a=10,b=8,c; 
c=a;
a=b;
b=c;
printf(″a=%d,b=%d\n″,a,b); 
}
31.写出下面程序的功能;如果输入6和9,写出程序的输出结果. 
main()
{ int a,b,x,y; 
scanf(″%d%d″,&a,&b); 
x=a*a+b*b;
if(x>100)
{y=x/100;printf(″%d″,y);}
else
printf(″%d″,a+b); 
}
32.写出下面程序的功能及运行结果. 
main()
{
int n=1,sum=0; 
do{
sum=sum+n; 
n+=2; 
}while(n<100); 
printf(″sum=%d\n″,sum); 
}
33.写出下面程序的功能和运行结果. 
int fun(int a[][4])
{ int i,j,k,tem
tem=a[0][0]; 
for(I=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]<tem)tem=a[i][j]; 
return(tem); 
}
main()
{ int b[3][4]={{1,3,-5,7},{2,4,-6,8},{10,20,-30,40}}; 
printf(″%d\n″,fun(b)); 
}
34.下列程序中字符串中各单词之间有一个空格,写出程序的输出结果. 
#include <string.h>
#include <stdio.h>
main()
{ char str1[]=″How do you do″; 
puts(str1); 
strcpy(st
[1]