1、 专门收集历年试卷 做试题,没答案?上自考365,网校名师为你详细解答! 全国2004年4月高等教育自学考试 计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.微机一般是16位机或32位机,它指的是机器的( )。 A.速度 B.容量 C.系列号 D.字长 2.若当前路径为C盘TC子目录,仅将A盘根目录下的文件名第3个字符为P,扩展名为C的所有
2、文件复制到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( )。
3、 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
4、 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
5、) 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.
6、执行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
7、 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);
8、 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.函数调用时的现场保护数据
9、 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.下面程
10、序的运行结果是( )。
#define SQR(x)((x)*(x))
#include
11、1 D.EOF 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下面哪些软件属于操作系统范畴?( )。 A.DOS B.Foxpro C.Turbo C D.UNIX E.Windows 22.在下列各说法中,正确的说法有( )。 A.与while结构相比,do…while结构至少要执行一次循环。
12、 B.for结构和do…while结构类似,也是“先判断后执行”。 C.do…while结构是“先执行后判断”。 D.进入do…while循环的条件是:条件表达式为1。 E.退出while循环的条件是:条件表达式为1。 23.若有如下定义和赋值( )。 int a=3, *p, *q; p=&a; q=p; 则能够输出变量a的地址值的语句是: A.printf(”%d\n”,p); B.printf(”%d\n,*q”); C.printf(”%d\n”,a); D.printf(”%d\n”,*p); E.prin
13、tf(”%d\n”,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
14、 三、填空题(本大题共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
15、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有联系的文件中读___________个字符。 四、简答题(本大题共
16、4小题,每小题3分,共12分) 36.简述字符常量与字符串常量的差异。 37.在C语言的if语句中,用作条件判断的“表达式”可以是什么类型的表达式? 38.用字符串指针变量处理字符串与用字符数组处理字符串有何不同? 36.简述fread函数的作用,其使用格式如下: fread(stu,size,n,fp); 其中fp为文件指针,size为字节数,n为整数,stu为内存地址。 五、阅读分析题(本大题共7小题,每小题4分,共28分) 40.阅读下列程序并写出运行结果。 #include ”stdio.h” #include ”string.h”
17、main() { char str[]=”department”,*p=s; printf(”the length of srt is %d”,strlen(p)); prinft(”\n%s”,p); } 41.阅读下列程序并写出运行结果。 main() { int i=3, b; b=(i--)+(i--)+(i--); printf(”%d,%d\n”,b,i); } 42.阅读下列程序,并回答问题。 main() {int s=0, k; for(k=4;k>=0;k
18、) { switch(k) { case 1: case 4: s++;break; case 0: case 2: break; case 3: s+=2;break; } } printf(”s=%d\n”,s); } 试回答switch语句共执行多少次并写出运行结果。 43.阅读下列程序并写出运行结果。 main() { int y[2][3]={5,4,6,7,8,9};
19、int m[2],k,j;
for (k=0;k<2;k++){
m[k]=y[k][0];
for(j=1;j<3;j++)
if(y[k][j] 20、
{ if(j%2) continue;
x++;}
x++;}
printf(”x=%d\n”,x);}
44.if(j%2) continue;语句的作用是什么?continue语句执行了多少次?
45.程序输出结果是多少?
46.设指向单向链表的头结点指针head是一个全局指针变量,且有如下程序:
void display( )
{ struct food *p=head;
while (p!=NULL)
{ printf(”%s\n”, p→name);
printf(”%d\n”, p→product);
p=p→next;
}
}
设程序已经提供了关于food结构体的全部信息,试写出结构体food的定义。
六、程序设计题(本大题共2小题,第47题8分,第48题12分,共20分)
47.对下面的3行3列的二维整型数组x:
int x[3][3]={1,2,3,4,5,6,7,8,9};
编程求每一行中元素的累加和并输出之。
48.从键盘输入一些字符,逐个把它们送到磁盘上并统计这些字符的个数,直到输入一个“#”为止。设磁盘ASCII码文件名为ab.txt。
6






