全国2004年4月高等教育自学考试计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.微机一般是16位机或32位机,它指的是机器的( )。
A.速度
B.容量
C.系列号
D.字长
2.若当前路径为C盘TC子目录,仅将A盘根目录下的文件名第3个字符为P,扩展名为C的所有文件复制到C盘TC子目录下,一定成功的命令是( )。
A.COPY A:*P*.C
B.COPY A:??P*.C C:
C.COPY A:??P*.C
D.COPY ??P*.C C:TC
3.在C程序中,main函数的位置是( )。
A.必须作为第一个函数
B.必须作为最后一个函数
C.可以放在任意位置
D.必须放在它所调用的函数之后
4.设int a=3;下列哪一个表达式的值等于0( )。
A.a&&(a>0)
B.!a||a
C.a%=a
D.a>=a
5.如果a=5,b=2,c=3,d=4,则表达式a>b? a:c>d? c:d的值是( )。
A.2
B.3
C.4
D.5
6.在C程序中,设一表达式中包含有int, long, char和unsigned类型的变量和数据,这四种类型数据的转换规则是( )。
A.int→unsigned→long→char
B.char→int→long→unsigned
C.char→int→unsigned→long
D.int→char→unsigned→long
7.设有说明:int a=11, b=10;执行表达式a%=b+(a&&b)后,a的值为( )。
A.0
B.1
C.11
D.22
8.下面程序段的运行结果是( )。
main()
{
int x=1,y=2,z=3,s=0;
if(y>x)
if(y>z) s=1;
else s=2;
else s=3;
printf(”% d n”,s);
}
A.0
B.1
C.2
D.3
9.设有说明:int x=1, y=2;执行条件表达式(x=y)? ++x:--x后,x的值为:( )。
A.0
B.1
C.2
D.3
10.若k为整型变量,则下面while循环( )。
k=10;
while(k==0)k=k-1
A.执行0次
B.执行1次
C.执行10次
D.执行无限次
11.关于for(;;);语句,下面说法正确的是( )。
A.有语法错误
B.循环一次也不执行
C.循环只执行一次
D.循环执行无限次
12.以下对一维数组a的正确定义是( )。
A.int a(10);
B.int n=10, a[n];
C.int n;
D.#define SIZE 10
scanf(”%d”, &n); int a[SIZE];
int a[n];
13.以下一维数组初始化语句中,正确的是( )。
A.int a[5]={1,2};
B.int a[5]={};
C.int a[5]={5*2}
D.int a[]=(1,2,0,0,0);
14.若定义字符数组char s[5]=”BOOK”;则输出该串正确的函数调用是( )。
A.puts(s[10]);
B.puts(s);
C.printf(”%c”,s);
D.printf(”%s”,&s);
15.下列定义不正确的是( )。
A.#define PI 3.1415926
B.static char c;
C.int max(x,y);
D.int *p[5];
int x,y;
{}
16.下列哪种数据不是存放在动态存储区中( )。
A.局部自动变量
B.局部静态变量
C.函数调用时的现场保护数据
D.函数形参变量
17.设有char s[]=”top”,*p=s;p[1]=‘a’;则下面说法不正确的是:( )。
A.s[0]存放字符t
B.s[1]存放字符0
C.s[1]存放字符a
D.s[2]存放字符p
18.定义一个指向具有5个元素的一维整型数组的指针变量的正确定义为( )。
A.int *p[5];
B.int *p;
C.int (*p)[5];
D.int *p[][5];
19.下面程序的运行结果是( )。
#define SQR(x)((x)*(x))
#include
main()
{ float v=3.0;
printf(”sqr=%. 2fn”, SQR(v)+1);}
A.sqr=3.0
B.sqr=9.0
C.sqr=10
D.sqr=10.00
20.feof函数用来判断文件是否结束,如果文件没有结束,则返回值是( )。
A.-1
B.0
C.1
D.EOF
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下面哪些软件属于操作系统范畴?( )。
A.DOS
B.Foxpro
C.Turbo C
D.UNIX
E.Windows
22.在下列各说法中,正确的说法有( )。
A.与while结构相比,do…while结构至少要执行一次循环。
B.for结构和do…while结构类似,也是“先判断后执行”。
C.do…while结构是“先执行后判断”。
D.进入do…while循环的条件是:条件表达式为1。
E.退出while循环的条件是:条件表达式为1。
23.若有如下定义和赋值( &nbs来源:91exam.orgp; )。
int a=3, *p, *q;
p=&a; q=p;
则能够输出变量a的地址值的语句是:
A.printf(”%dn”,p);
B.printf(”%dn,*q”);
C.printf(”%dn”,a);
D.printf(”%dn”,*p);
E.printf(”%dn”,q);
24.设有定义int x[4][5],*p;以及赋值p=*x;则非法的表示x数组元素的形式是( )。
A.x[4][5]
B.x[1]
C.*(x[1]+2)
D.x[2][3]
E.p[20]
25.表达式~0<<2的值可以是( )。
A.-4
B.-3
C.0xfffc
D.0177774
E.65531
三、填空题(本大题共10小题,每小题1分,共10分)请在每小题的空格中填上正确答案。错填、不填均无分。
26.用一字节表示十进制-7在机内的存储形式是___________。
27.C语言中的函数应由___________和函数体两部分组成。
28.在格式输出语句中,用于字符串输出的格式符是%___________。
29.设有int x=10;则执行while(x^x) ++x;后,x的值是___________。
30.设i,y,s均为int型变量,则执行下面for循环后,y的值为___________。for(i=0, y=0; i<4;){s=i*i;y=y+s;i++;}
31.设有int y[2][3]={5,4,6,7,8,9};则y[1][1]的值为___________。
32.定义在函数内部的变量和函数的形参都是___________变量。
33.若p为指针变量,则(*p)++表示先取指针p指向的对象再使对象的___________。
34.已知定义:union{long x;int y;}data;则变量data占用内存的字节数是___________。
35.字符串读函数fgets()的格式是fgets(str,n,fp);它的功能是从与fp有联系的文件中读___________个字符。