资源描述
专门收集历年试卷
做试题,没答案?上自考365,网校名师为你详细解答!
全国2002年4月高等教育自学考试
计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
1.计算机能够自动按照人们的意图进行工作的最基本思想是( )
A.采用逻辑部件 B.存储程序和数据
C.控制代码 D.总结结构
2.若要显示C盘TC子目录下名为EXAM.C的内容一定成功的命令是( )
A.TYPE C:\TC\EXAM B.TYPE EXAM.C
C.COPY CON C;\TC\EXAM.C D.COPY C:\TC\EXAM.C CON
3.编辑程序的功能是( )
A.修改并建立源程序 B.将源程序翻译成目标程序
C.调试程序 D.命令计算机执行指定的程序
4.设int a=2,b;则执行b=a&&1;语句后,b的结果是( )
A.0 B.1 C.2 D.3
5.逗号表达式(a=3*5,a*4),a+15的值是( )
A.15 B.60 C.30 D.75
6.在C程序中,设一表达式中包含有int,long, unsigned和char类型的变量和数据,则表达式最后的运算结果类型是( )
A.int B.char C.unsigned D.long
7.下面程序段的运行结果是( )
main ( )
{int a=11,b=10,c=0;
a/=b+(b&&c);
printf(″%d\n″a);}
A.0 B.1 C.1.1 D.11
8.两次运行下面程序,如果从键盘上分别输入6和4,则程序的输出结果是( )
main ( )
{int x;
scanf(″%d″,&x);
if(x++>5) printf(″%d″,x);
else printf(″%d\n″,x-1);}
A.7和5 B.6和3 C.7和4 D.6和4
9.表达式y<3? -1.0∶1的值的类型应是( )
A.不确定 B.实型 C.整型 D.无符号整型
10.语句while(!e);中,条件!e等价于( )
A.e=0 B.e!=0 C.e!=1 D.e=0
11.下面程序的运行结果是( )
main( )
{int i=1,sum=0;
lop:sum=sum+i ;
i=i+2;
if(i<6)goto lop;
printf (″sum=%d\n″,sum);}
A.suu=4 B.sum=9 C.sum=16 D.sum=25
12.若定义int x[10];则Turbo C编译系统为该数组分配( )个字节存储单元。
A.10 B.11 C.20 D.21
13.以下对一维数组a中的所有元素进行正确初始化的是( )
A.int a[10]==(0,0,0,0); B.int a[10]={ };
C.int a[ ]={0}; D.int a[10]={10*2};
14.若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( )
A.scanf(″%c″,&c[10]); B.gets(c);
C.scanf(″%s″,&c); D.gets(c[10]);
15.若有如下函数定义:
add(float x, float y)
{……}
则下列说法正确的是( )
A.函数返回值类型不确定 B.函数返回值是float型
C.函数返回值是int型 D.函数返回值是void型
16.下面程序的运行结果是( )
fun(a,b)
int a,b;
{static c=1;
if (c==1)
a=b+c;
else
a=b-c
c++;
printf(″a=%d,b=%d\n″,a,b);}
main( )
{int a=3, b=5;
fun(a,b);
fun(a+1,b-1);}
A.a=6,b=5 B.a=5,b=5 C.a=6,b=5 D.a=6,b=6
a=5,b=5 a=4,b=4 a=2,b=4 a=5,b=3
17.若输入5和2后,下面程序的运行结果是( )
void swap(x1,x2)
int *x1, *x2;
{int *x;
x=x1;x1=x2;x2=x;}
main( )
{int a,b,*p1,*p2;
scanf(″%d,%d″,&a,&b);
p1=&a,p2=&b;
if(a>b) swap(p1,p2);
printf(″%d,%d\n″,*p1,*p2);}
A.5,2 B.5,5 C.2,5 D.2,2
18.若有定义int *x[3],b[10];则正确的赋值语句是( )
A.x=b[0]; B.x=b; C.x[0]=b[0]; D.x[0]=&b[0];
19.下面程序的运行结果是( )
#define ADD(x) x+x
void mian( )
{int a=2,b=1;
prinft(″%d\n″,3*ADD(a+b));}
A.9 B.10 C.12 D.18
20.则FILE *fp;char ch;ch=fgetc(fp);可以推知fgetc函数的原型可以是( )
A.void fgetc( ); B.char fgetc( )
C.char fgetc(int); D.int fgetc(FILE *fp);
二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。多选、少选、错选均无分。
21.下面哪些是组成MS—DOS操作系统的模块( )
A.COMMAND.COM B.IO.SYS C.MSDOS.SYS
D.Turbo C E.BOOT
22.与十进制141等值的数是( )
A.(10001101)2 B.(10001110)2 C.(215)8
D.(8D)16 E.(8E)16
23.设a=1,b=-3,c=0,下面表达式为0的是( )
A.b>a&&a<c B.a-3‖(c=0) C.(c>a)>(b>5)
D.!a&&b‖a&&(c+1) E.(1,2,5)==(1,3,3)
24.在下列各说法中,正确的说法有( )
A.break语句只能用于循环语句
B.break语句只能用于switch语句和循环语句
C.break语句可用于switch语句
D.break语句可用于循环语句
E.break语句不能用于switch语句
25.若有如下定义及赋值( )
int x=9,*p,*p1;
p=&x;p1=p;
则可以输出变量x的地址的语句是
A.printf(″%d\n″,x) B.printf(″%d\n″,*p);
C.printf(″%d\n″,p1); D.printf(″%d\n″,&x);
E.printf(″%d\n″,*p1);
26.有函数定义如下:( )
void ss(x)
int *x;
{……}
则主函数中引用函数ss的正确形式是
A.main( ) B.main( ) C.main( )
{int a[5]; {int a[5].*p=a; {int a[5];
… … …
ss(a); ss(p); ss(a[0]);
… } … } … }
D.main( ) E.main( )
{int a[5],*p=a; {int a[5],*p=a;
… …
ss( p[0]); ss(*p);
… } … }
27.若有定义int x[4][5],(*p)[5];及赋值p=x;则下列表示数组地址的形式中,地址值相等的是( )
A.*(x+1) B.x+1 C.x[2]
D.P+1 E.*(p+1)
28.设有定义int a[3][6],*p;则正确的指向数组元素的指针赋值是( )
A.p=*a; B.p=a[0]; C.p=a
D.p=a+1; E.p=*(a[0]+1);
29.有以下定义和语句:( )
struct stud {char name [10];
int age;}
struct stud s, *ps;
ps=&s;
则下面正确的语句是
A.s={″Mary″,30} B.(*ps)→age=30 C.s.name=″Mary″;
D.scanf(″%d″,&ps→age); E.strcpy(ps→name,″Mary″);
30.设有int a=123;a^0xff00可以使a的( )
A.低字节取反 B.高字节取反 C.低字节不变
D.高字节不变 E.高低字节都取反
三、填空题(本大题共10小题,每小题1分,共10分)
31.设字长为八位,十进制—100在机内的存储形式是______。
32.C语言程序由main( )函数开始执行,应在______函数中结束。
33.在格式输出语句中,用于带符号的十进制长整型输出的格式符是______。
34.当a=2,b=3,c=1时,执行以下程序段后,输出结果是______。
if(a>b)
if(a>c)
printf(″%d\n″,a);
else
printf (″%d\n″,b);
printf(″end\n″);
35.设i,n,p均为int型变量,则执行以下程序段后,p的值为______。
p=1;n=4;
for(i=1;i<=n;i++)
p=p*i;
36.以下程序的输出结果是______。
main ( )
{int a[3][3]={1,2,3,4,5,6,7,8,9},i,s=0;
for(i=0;i<=2;i++) s=s+a[i][i];
printf (″s=%d\n″,s);}
37.所谓变量的______就是可引用变量的范围,通常取决于变量被定义的位置。
38.设p1,p2为同类型的指针变量,若有p1==p2,则说明p1与p2指向______。
39.在union std
{int fjh;
char addr [30];
} wang;
中,wang是具有″union std″共用体类型的______。
40.字符串写函数fputs( )的格式是fputs(str,fp);它的功能是______。
四、简答题(本大题共4小题,第41、42题每小题2分,第43、44题每小题3分,共10分)
41.描述一个C程序开发过程的流程图。
42.将下列条件语句逻辑关系写得更清晰一些(必要时可把if嵌套的有关部分写成复合语句)。
if(a<b) if(c<d) x=0; else
if(a<c) if(b<d) x=1; else x=2;else
if(a<d) if(b<c) x=3; else x=4;else
x=5;else x=6;
43.定义char *str=″program″;和定义char str[]=″program″;是等价的吗?为什么?
44.简述feof函数返回值的含义。
五、阅读分析题(本大题10小题,每小题2分,共20分)
45.阅读下列程序,写出运行结果。
main( )
{unsigned a;
int b=-1;
a=b;
printf(″%u\n″,a);
printf(″a=%x″,a);}
46.阅读下列程序,并回答问题:
main( )
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1: switch(y)
{case 0; a++;break;
case 1: b++;break;}
case 2:a++;b++;break;
case 3:a++;b++;}
printf(″a=%d,b=%d\n″,a,b);}
请分析该程序的执行过程并写出运行结果。
第47、48、49题请参阅下面程序,并回答相关问题:
#define N 8
main( )
{int a=1,b-1,i;
for (i=1,i<=N/2;i++)
{printf(″%5d %5d″,a,b);
if(i%2==0) printf(″\n″);
a=b+a;b=a+b;}}
47.printf(″\n″);语句执行多少次?
48.程序输出结果是什么?
49.若把if(i%2==0)print(″\n″);语句删除,程序输出效果与48题有何不同?
第50、51、52题请参阅下面程序,并回答相关问题。
main( )
{int num;
scanf(″%d″,&num);
if(prime(num))
printf(″%d is prime number″,num);
else
printf(″%d is not a prime number″,num);}
int prime(num)
int num;
{int flag =1,n;
for(n=2;n<num/2&&flag==1;n++)
if(num%n==0) flag=0;
return (flag);}
50.prime 函数的功能是什么?
51.当输入23时,程序运行结果是什么?
52.flag变量的作用是什么?
第53、54题请参阅下面程序,并回答相关问题。
struct node {int x;
struct node * next;};
void print(struct node * head)
{struct node *p;
p=head;
while (p!=NULL)
{printf(″%d\n″,p→x);
p=p→next;
}
}
53.函数print完成的功能。
54.语句p=p→next;的作用。
六、程序设计题(本大题共2小题,第55小题8分,第56小题12分,共20分)
55.将26个英文字母按aAbBcCdD……zZ先小写后大写的顺序逐个打印出来。
56.编程实现将字符串str2连接到字符串str1的末尾并输出str1串。(不得使用C中的strcat标准库函数)
全国2002年4月高等教育自学考试
计算机基础与程序设计试题参考答案
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.B 2.D 3.A 4.B 5.C
6.D 7.B 8.C 9.B 10.A
11.B 12.C 13.C 14.B 15.C
16.C 17.A 18.D 19.B 20.D
二、多项选择题(本大题共10小题,每小题2分,共20分)
21.ABCE 22.ACD 23.ACE 24.BCD 25.CD
26.AB 27.ABDE 28.AB 29.DE 30.BC
三、填空题(本大题共10小题,每小题1分,共10分)
31.10011100
32.main( )
33.%ld
34.end
35.24
36.s=15
37.作用域
38.同一对象或同一变量
39.变量
40.向与fp有联系的文件中写一串字符。
四、简答题(本大题共4小题,第41、42题每小题2分,第43、44题每小题3分,共10分)
41.
42.if(a<b)
{ if(c<d)x=0;
else if(a<c)
{if (b<d)x=1;
else x=2;
}
else if(a<d)
{if(b<c)x=3;
else x=4;
}
else x=5;
}
else x=6;
43.不等价,前者定义的str是字符串指针变量,后者定义的str是字符数组。前者str中只存放字符串″program″的首地址,后者str中逐个存放字符串″program″中的字符。
44.设文件指针为fp,若feof(fp)的值为1,表示与fp有联系的文件结束,若feop(fp)的值为0,表示与fp有联系的文件没有结束。
五、阅读分析题(本大题共10小题,每小题2分,共20分)
45.运行结果为 65535
a=ffff
46.本程序关键是对switch执行过程的理解,其执行过程如下:
(1)根据x=1执行外层switch中Case 1后的语句,该语句又是一个switch语句。
(2)根据y=0执行内层switch中的Case 0后的语句。
此时a=1,并跳出内层switch语句。
(3)由于外层switch中Case 1后无Break语句,故流程转入 Case 2后的语句,此时,a=2,b=1,并跳出外层switch.
最后输出结果 a=2,b=1。
47.2次。
48.1 1 2 3
5 8 13 21
49.程序输出结果在同一行上显示。
50.函数功能是判断一个数是否为素数。
51.结果为:23 is prime number
52.flag的作用是使for循环立即终止退出,当有一个n可以整除num时。这样可以提高执行速度。
53.输出head所指链表的所有元素。
54.使指针p指向下一个结点。
六、程序设计题(本大题共2小题,第55小题8分,第56小题12分,共20分)
55.#include <stdio.h>
void main(void)
{char ch1=′a′,ch2=′A′;
while(ch1<=′z′)
{printf(″%c″,ch1);ch1++;
printf(″%c,ch2″);ch2++;
}
printf(″\n″);
}
56.#include<stdio.h>
void mystrcat(char*,char*);
void main(void)
{char * str1=″ahcd″,str2=″dcfg″;
mystrcat(str1,str2);
prinft(″%s″,str1);
}
void mystrcat(char * s, shar*t)
{int i=0,j=0;
while (s[i]!=′\0′)
i++;
while((s[i]=t[j])!=′\0′)
{i++;
j++;}
}
9
展开阅读全文