全国自考计算机基础与程序设计历年真题(珍藏版)(部分有.doc
全国自考计算机基础与程序设计历年真题全国2010年7月高等教育自学考试计算机基础与程序设计试题 课程代码:02275一、单项选择题 (本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.与十进制数49等值的二进制数是(D ) A.101111 B.110000 C.110001 D.1100102.编译程序的功能是(B ) A.修改并建立源程序 B.将源程序翻译成目标程序 C.调试程序 D.命令计算机运行可执行程序 3.Turbo C 2.0中,若定义long b;则变量b在内存中分配的字节数是(C ) A.1个 B.2个 C.4个 D.8个 4.下列语句中不能实现循环结构的语句是(A ) A.if语句 B.while语句 C.dowhile语句 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 a10=l,2,3,4,5,6,7,8,9,10; printf(dn,a2); A.1 B.2 C.3 D.47.下面程序的输出结果是( ) #include <stdio.h>#include <string.h>main() char p110= abc,p2=ABC; strcat(p1,p2); printf(sn,p1); A.abcabc B.abc C.ABC D.abcABC8.设有int x=2,y,z;执行z=y=x+;后变量x的值是( ) A.0 B.1 C.2 D.39.下面程序段的输出结果是( ) 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=d10.若有下列程序段,欲使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(%dn,y); A.0 B.10 C.12 D.2212.若执行下列程序时,从键盘上输入3和4,则输出结果是( ) main() int a,b,s; scanf(dd,a,&b); s=a: if(a<b) s=b; s=s*s;printf(dn,s); A.9 B.16 C.18 D.2013.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=dn,a,b); main()ff();ff();A.a=9,b=5 B.a=9,b=4 a=9,b=5 a=9,b=4C.a=9,b=4 D.a=9,b=5a=9,b=5 a=9,b=415.设p1和p2是指向同一个字符串的指针变量,且c为字符型变量,则以下不能正确执行的赋值语句是( ) A.c=*p1+*p2; B.p2=*p1; C.p1=p2; D.c=*p1*(*p2); 16.以下选项中,对指针变量p的正确操作是( ) A.int a5,*p;p=a; B.int a5,*p;p=a; C.int a5;int *p=a5;D.int a5;int*p,p2=a;*p=*p2; 17.设有下面的结构体和结构变量定义: struct studentlong 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.619.设有说明:int u=1,v=14;表达式:u|v>>2的值是( ) A.-1 B.1 C.3 D.420.设有说明:FILE*fp;char filename10= myfile;对于fp=fopen(filename, rb+);语句,下面说法正确的是( ) A.打开名为myfile的文件读写 B.打开名为filename的文件读写 C.打开名为myfile的文件只读 D.打开名为filename的文件只读二、多项选择题 (本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分 21.下列属于计算机的输入设备的有(CDE ) A.CDROM B.打印机 C.键盘 D.鼠标 E.扫描仪 22.设有int a=3,b=-5;下面表达式值等于0的有( C) A.!a B.!b&b C.56 !=0 D.a3!=0 E.b+a =-223.下列有关函数的说法中不正确的有(AB E) A.C语言程序总是从首定义的函数起顺序执行 从主函数执行B.在C语言程序中,被调用的函数必须在main()函数中定义 在定义部分定义C.C语言程序中的main()函数必须放在程序开始部分 D.C语言程序总是从main()函数开始执行 E.定义函数时,参数表中可以没有任何参数 24.若有定义int a5,i,*p=a;且0i<5,则对a数组元素的正确引用有( ) A.ai B.*(a+i) C.*(p+i) D.*(&a+i) E.p+i25.设有说明: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 strl20,str220;简述下面各函数调用的功能。 (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=dn,a,b); 31.写出下面程序的功能;如果输入6和9,写出程序的输出结果。 main() int a,b,x,y; scanf(dd,&a,b); x=a*a+b*b;if(x>100)y=x100;printf(d,y);elseprintf(d,a+b); 32.写出下面程序的功能及运行结果。 main()int n=1,sum=0; dosum=sum+n; n+=2; while(n<100); printf(sum=dn,sum); 33.写出下面程序的功能和运行结果。 int fun(int a4) int i,j,k,temtem=a00; for(I=0;i<3;i+)for(j=0;j<4;j+)if(aij<tem)tem=aij; return(tem); main() int b34=1,3,-5,7,2,4,-6,8,10,20,-30,40; printf(dn,fun(b); 34.下列程序中字符串中各单词之间有一个空格,写出程序的输出结果。 #include <string.h>#include <stdio.h>main() char str1=How do you do; puts(str1); strcpy(str1+str1en(str1)2,es she); printf(%sn,str1); 35.写出下列程序的功能和运行结果。 #include <stdio.h>reverse (char *s) char*t,ch; for(t=s+strlen(s)-1;s<t;s+,t-)ch=*s;*s=*t;*t=ch;main() char*s1=123456; reverse(s1); printf(sn,s1); 五、编程题 (本大题共2小题,每小题12分,共24分)36.编程求20至100之间素数的累加和并输出该累加和。 37.编程生成以下A、B两个数组(不得使用输入语句输入数据或对数组初始化),将两数组对应元素相加写入C数组中,最后并排输出A、B、C三个数组全国2009年7月自考计算机基础与程序设计试题课程代码:02275一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。1.内存每个基本单元都有唯一的序号,这个序号称为( C )A.地址B.字节C.代码D.字2.计算机对编译型高级语言的执行方式是( C )A.逐条语句边解释边执行,即解释一条就执行一条B.将整个程序编译完成后再执行,不生成目标代码C.将源程序编译成目标程序,执行连接后的程序D.将源程序解释完毕后再执行3.下列转义字符中,表示换行的是( B )A.0B.n(回车换行)C.r(回行不回车)D.f4.unsigned long型数的取值范围是( D )A.-215(215-1)B.-231(231-1)C.0(216-1)D.0(232-1)5.设有int a=3;表达式a十=a *=a *=a的值是( D )A.3B.9C.81D.1626.下列四种运算符中,优先级最低的是( D )A.>=B.!C.D.|7.下列程序段的输出结果是( A )main( )int a=5,b=3,c;c=a;a=b;b=c;printf(%d,%dn,a,b);A.3,5B.5,3C.5,8D.8,38.下列程序段所表示的逻辑关系是( B )if(a<b)if(c=d)x=l;elsex=2;A.x=B.x=C.x=D.x=9.执行下列程序段后,i的结果是( B )int i=10;switch(i)case 9:i+=l;break;case 10:i+=l;break;case 11:i+=1;break;default:i+=1;break;A.10B.1lC.12D.1310.下列程序段的输出结果是( )a=100;doa=a+l;while(a>120);printf(d,a);A.100B.101C.120D.12111.关于break和continue语句,下列说法正确的是( )A.在循环体中可以用break语句结束本次循环B.在循环体中可以用continue语句结束本次循环C.break语句仅能使用在switch结构中D.可以使用continue语句跳出switch结构12.若有定义int a4=l,2,3,4;则aa0+2 * a2-a3等于( )A.1B.2C.3D.413.定义如下变量和数组,则下列程序段的输出结果是( )int i,x33=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+)if(i % 2!=1) printf(d,xii);A.19B.17C.37D.3914.若有定义static char str210,strl =China;欲将strl中的字符串拷贝到str2中去,下列正确的语句是( )A.strcpy(str2,strl);B.strcpy(strl,str2);C.strcpy(China,str2);D.strl=str2;15下列关于C程序的说法中不正确的是( ) A一个源程序文件由一个或多个函数组成 B一个C程序可以有多个名字为main的函数 C一个C程序由一个或多个源程序文件组成 D一个C程序必须有一个main函数16.用数组名作为函数调用时的实参,实际上传递的是( )A数组全部元素的值 B.数组第一个元素的值 C数组的首地址 D数组元素的个数17.设有函数( ) void print _value(int * x) printf(%dn,+ + * x);执行程序段int a=25;print_value(a);的正确输出是 A.23 B24 C.25 D.2618.语句float *p 6;的含义是( ) Ap是一个数组,有6个元素,每个元素都是浮点数 Bp是一个指针,指向有6个浮点数据的数组 Cp是一个指针数组,有6个元素,每个元素都是浮点型指针 Dp是一个指针,指向一个浮点数 19.设有下列程序( )# include stdio.hvoid main(void)unsigned x=1,y=2;printf(%dn,(xy);该程序的运行结果是A.-1B.0C.1D.220.设有说明:FILE * fp;对于fp=fopen(c:abc.dat,r+);语句,下列说法正确的是( )A打开ASCII文件读写 B打开二进制文件读写 C打开ASCII文件只读 D打开二进制文件只读 二、多项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。21.下列数据中等值的有( )A.(0.100)2B.(0.101)2C.(0.5)8D.(0.625)10E.(0.A)1622.下列有关switch语句的说法中正确的有( A BDE )A.switch后面的表达式可以为任意类型(整型、字符型)B.case后的每个常量表达式的值必须互不相同C.若case后面有两个或两个以上的执行语句,必须加花括号D.一个case对应一组执行语句,多个case不可共用同一组执行语句E.default部分可有可无23.下列对数组赋初值正确的有( )A.int a =l,2,5,8,3,7;B.int a 3=1,2,5,8,3,7;C.int a23=1,2,5,8,3,7;D.int a2 =1,2,5,8,3,7;E.int a33=l,2,5,8,3,7;24.若有说明:int a =1,2,3,4,5,6,7,8,9,0,i;当0i<10时,下列对数组元素地址正确的表示有( )A.a+lB.a+lC.a+D.aiE.a+i25.下列关于结构体类型的定义正确的有( )A.struct riverB.struct riverC.struct int branch; int branch; int branch;char name20; char name20; char name20; D.structE.struct river int branch; int branch;char name20; char name20; struct river * next;三、简答题(本大题共4小题,每小题4分,共16分)26.假设字长为8位,请写出-1的原码和补码。原码;10000001 补码;1111111127.写出for语句的一般形式并分析循环体被执行的条件。28.字符数组的初始化与字符串指针变量的初始化有什么不同?29.语句fwrite(stu,size,n,fp);中stu、size、n和fp的含义各是什么?四、阅读分析题(本大题共6小题,每小题5分,共30分)30.阅读下列程序并写出运行结果。void main (void) int a=987,b=l00,x,y;y=b;x=a/b;print ("%d,%dn",x,y);31.阅读下列程序,若输入0,3并回车,则程序的输出结果是什么?void main(void) int x,y,z;scanf ("%d,%d",x,y);if(x<y)z=x;x=y;y=z;print ("%d,%dn",x,y);32.下列程序的功能和输出结果是什么?void main(void) int k=0,total=0;while(k<=100)total+=k;k+;print("total=%dn",total);33.阅读下列程序并写出运行结果(注:A的ASCII码值为65,a的ASClI码值为97)。void main(void) int i=64;char s20,* p=s;while(i+<=73)* p=i%2=0? i+32:i;p+;* p=0;printf("%sn",s);34.阅读下列程序并写出运行结果。int fib(int n)static int f0=0,fl=l,i,f;for(i=3;i<=n;i+)f=f0+fl;f0=fl;fl=f;printf("f0=%d,fl=%dn",f0,fl);return(f);void main(void)printf("%dn",fib(3)+fib(3);35.阅读下列程序并写出程序的运行结果。#include"string.h"#include"malloc.h"struct planetchar name20;double weight;struct planet * next; * head=NULL;void main(void)struct planet * p;char * planet_name3="earth","venus","mars"double planet_weight3=25455700.565,11253300.437,7286320.512;int j;for(j=0;j<3;j+)p=(struct planet * )malloc(sizeof(struct planet);strcpy(p->name,planet_namej);p->weight=planet_weightj;p->next=head;head=p;p=p->next;printf("%s,%lfn",p->name,p->weight);五、程序设计题(本大题共2小题,每小题12分,共24分)36.从键盘上输入20个整数,求其中正数的累加和并输出结果。37.在文本文件c:pxl.dat中有10个实型数据(每两个数之间用逗号隔开),编程将这10个数按从小到大排序后,写到文本文件c:xpl.dat中。全国2009年4月自考计算机基础与程序设计试题课程代码:02275一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.衡量存储器的基本单位是(A )A. bitB. byteC. KBD. word2.Windows操作系统是( )A. 单用户、单任务B. 单用户、多任务C. 多用户、单任务D. 多用户、多任务3.组成微机主存储器的是( )A. CDROM和RAMB. 硬盘和RAMC. 硬盘和CDROMD. ROM和RAM4.下列数据中最大数是( )A. (1010010)2B. (123.4)8C. (84.5)10D. (55)165.在Turbo C 2.0中,运行一个程序后,要查看运行结果可按键( )A. Alt+F1B. Alt+F5C. Alt+F9D. Alt+F106.下列是合法C语言常量的是( )A. eB. 7E4.0C. E4D. -9.13E-307.设有int a=3,b=-4,c=5;表达式(a<b)?a:b&&c<0的值是( )A. 0B. 1C. 3D. 48.以指数形式输出实型数的格式说明符是( )A. %uB. %xC. %fD. %e9.下列程序的输出结果是( )main( ) int x=5,y;if(x<0)y=-1;if(x=0)y=0;y=1;printf(%d,y);A. -5B. -1C. 0D. 110.下列程序段的输出结果是( )i=1;while(i<3)j=1;while(j<=i)printf(%d,i+j);j+;i+;printf(n);A. 2 3 3 4B. 2 3 4C. 2 3D.2 3 4 3 4 11.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是( )A. puts (str1,str2)B. puts (str2)C. putchar (strl)D. putchar (str1,str2)12.下列关于函数的说明中不正确的是( )A. 函数名后面可以不要一对圆括号B. 函数参数类型必须作说明C. 函数形参个数可以是一个、多个或没有D. 空函数被调用时不做任何工作13.若有定义:int a5;则a数组中首元素的地址可以表示为( )A. &aB. a+1C. aD. &a114.设有char s=ta017bc;则指针变量s指向的字符串在内存中所占的字节数是( )A. 5B. 6C. 7D. 915.下列关于结构体类型的定义正确的是( )A. struct treeB. struct tree int branch; int branch;char name20;char name20,char relation;char relation,;C. struct treeD. struct tree int branch int branch;char name20char name20;char relationchar relation;16.下列各个位运算符的优先级从左到右依次降低的是( )A. | & > >B. & > > |C. > > |D. > > | 17.设有说明:int u=1,v=3,w=5;表达式:v &u|w的值是( )A. 3B. 5C. 6D. 818.设有下列程序:( )#includestdio.hmain( )unsigned x=8,y=2;printf(%dn,y|(x&y);该程序的运行结果是A. -1B. 0xffC.127 D. 6553519.若有定义# define P(x) x x x+1和说明语句:int a=2;则表达式P(2)的值是( )A. 6B. 8C. 9D. 1020.在语句fgets(str,n,p);中,下列说法不正确的是( )A. str是字符指针B. 一次可以读n个字符C. str是字符数组名D. 一次可以读n-1个字符二、多项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。21.下列关于计算机的叙述中正确的是( )A. CPU是计算机系统的部件B. I/O设备不是计算机系统的部件C. 计算机区别于其他计算工具的本质特点是能存储数据D. “裸机”是指不配置任何软件的计算机E. 计算机指令是控制计算机进行操作的命令22.设有int a=3,b=-5;下列表达式的值等于1的有( )A. a&&b<0B. fabs(b)-a-1>0C. a>b&&b<0D. (a,2,-5)=(b,2,a)E. a+b<023.下列关于break、goto、continue语句的说法中正确的是( )A. break语句能够用于循环语句中B. break语句不能用于switch语句中C. goto语句可以用于直接从多层循环中退出D. continue语句可用于跳出循环体E. continue语句不能用于switch语句中24.若有定义:int y44,( p)4;及赋值p=y;则下列语句中可以输出数组元数y20的值的语句是( )A. printf (%dn,&y20);B. printf (%dn, y20);C. printf (%dn,p20);D. printf (%dn, y2);E. printf (%dn, ( (y+2);25.设有关于结构体类型的定义:struct workerint id;char name;float salary; wl=102035,Lihua,2560.50, p;下列选项中语句语法正确的有( )A. p=wl;B. p=&wl;C. p->id=wl->idD. p->id=wl.id;E. p.salary=wl.salary;三、简答题(本大题共4小题,每小题4分,共16分)26.有无default对switch语句有什么不同的影响?27.写出do-while语句的一般形式及其执行过程。28.定义 char a =I am a student., str=a;等价于char a = I am a student., str;str=a;吗?为什么?29.设有说明:struct vegetablechar part;char color; clove;char part _ of _ vegetable 3=AA,BB,CC;char seven _ color=11,22,33,44,55,66,77;请分别写出将clove的成员part指向BB,成员color指向55的C语句。四、阅读分析题(本大题共6小题,每小题5分,共30分)30.阅读分析下面程序后,写出程序的运行结果。# include stdio.hmain ( )int a=978,x,y,z,i,j,w;x=a/100;y=(a-100 x)/10;z=a-10 y-100 x;i=y>z? z:y;j=y<=z? z:y;w=100 x+10 i+j;printf(%d,%d,%d,%dn,x,y,z,w);31.阅读分析下面程序后,写出程序的运行结果。# include stdio.hmain( )int n,m;for(n=1;n<=5;n+)for(m=1;m<=4;m+)printf(%4d,m n);printf(n);32.阅读分析下面程序后,写出程序的运行结果。#includestdio.hmain ( )int arr10,i,k=0;for(i=0;i<10;i+)arri=i;for(i=1;i<=4;i+)k+=arri+i;printf(%5d,k);33.阅读分析下面程序后,写出程序的运行结果。#includestdio.hint fun(int x)int p;if(x=0|x=1)return(3);p=x-fun(x-2);printf(%5d,p);return (p);main( )fun(9);34.阅读下面程序,分析cat函数的功能并写出程序的运行结果。#includestdio.hvoid cat(char s,char t)while(s) s+;while( s+= t+)!=0);main( )char sl80=computer,s280=Pentium_;cat(s2,s1);printf(% sn,s2);35.阅读分析下面部分程序:struct cjdchar name9;float score22; x;float t22=70.5,65.0,83.0,92.5;int j,k;请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。五、程序设计题(本大题共2小题,每小题12分,共24分)36.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。37.有若干个学生(不超过50人)的某一门课的成绩放在文件c:cj.dat中,要求编程统计出90100分,8089分,7079分,6069分,059分的人数各有多少人。全国2008年7月自考计算机基础与程序设计试卷课程代码:02275一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1一个完整的计算机系统应该包括(B)A主机和外设B主机和操作系统C硬件系统和系统软件D硬件系统和软件系统2若用八位二进制表示一个整数,则-4在计算机中的表示是(C)A11111100B11111011C10000100D000001003下列转义字符中,表示回车的是(C)A0BnCrDf4若定义double d;则d在内存中分配的字节数是(D)A1个B2个C4个D8个5下列表达式中运算结果为3的表达式是(B)A(-7)%4