2023年7月7日发(作者:)
全国⾃考计算机基础与程序设计历年真题(珍藏版)全国⾃考计算机基础与程序设计历年真题全国2009年7⽉⾃考计算机基础与程序设计试题课程代码:02275⼀、单项选择题(本⼤题共20⼩题,每⼩题1分,共20分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的。请将其代码填写在题后的括号内。错选、多选或未选均⽆分。1.内存每个基本单元都有唯⼀的序号,这个序号称为()A.地址B.字节C.代码D.字2.计算机对编译型⾼级语⾔的执⾏⽅式是()A.逐条语句边解释边执⾏,即解释⼀条就执⾏⼀条B.将整个程序编译完成后再执⾏,不⽣成⽬标代码C.将源程序编译成⽬标程序,执⾏连接后的程序D.将源程序解释完毕后再执⾏3.下列转义字符中,表⽰换⾏的是()A.\0B.\nC.\rD.\ed long型数的取值范围是()A.-215~(215-1)B.-231~(231-1)C.0~(216-1)D.0~(232-1)5.设有int a=3;表达式a⼗=a *=a *=a的值是()A.3B.9C.81D.1626.下列四种运算符中,优先级最低的是()A.>=B.!C.&&D.||7.下列程序段的输出结果是()main( ){int a=5,b=3,c;c=a;a=b;b=c;printf(″%d,%d\n″,a,b);}A.3,5B.5,3C.5,8D.8,38.下列程序段所表⽰的逻辑关系是()if(aif(c==d)x=l;elsex=2; A.x=?≠>=c b a 1且且B.x=??≥=< b a 2dc b a 1且 C.x=?≠<=c b a 1且且D.x=?≠=< b a 2d c b a 1且9.执⾏下列程序段后,i 的结果是( ) 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.10 B.1l C.12 D.13 10.下列程序段的输出结果是( ) a=100; do a=a+l;while(a>120);printf(″%d ″,a); A.100 B.101 C.120 D.12111.关于break 和continue 语句,下列说法正确的是( ) A.在循环体中可以⽤break 语句结束本次循环 B.在循环体中可以⽤continue 语句结束本次循环 语句仅能使⽤在switch 结构中 D.可以使⽤continue 语句跳出switch 结构12.若有定义int a[4]={l ,2,3,4};则a[a[0]+2 * a[2]-a[3]]等于( ) A.1 B.2 C.3 D.413.定义如下变量和数组,则下列程序段的输出结果是( ) int i ,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)if(i % 2!=1) printf(″%d ″,x[i][i]); A.19 B.17 C.37 D.3914.若有定义static char str2[10],strl[ ]=″China ″;欲将strl 中的字符串拷贝到str2中去,下列正确的语句是( )(str2,strl); (strl ,str2); (″China ″,str2); =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 B.24C.25D.2618.语句float *p [6];的含义是()A.p是⼀个数组,有6个元素,每个元素都是浮点数B.p是⼀个指针,指向有6个浮点数据的数组C.p是⼀个指针数组,有6个元素,每个元素都是浮点型指针D.p是⼀个指针,指向⼀个浮点数19.设有下列程序()# include ″stdio.h″void main(void){unsigned x=1,y=2;printf(″%dn″,~(x&y));}该程序的运⾏结果是A.-1B.0C.1D.220.设有说明:FILE * fp;对于fp=fopen(″c:″,″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语句的说法中正确的有()后⾯的表达式可以为任意类型后的每个常量表达式的值必须互不相同C.若case后⾯有两个或两个以上的执⾏语句,必须加花括号D.⼀个case对应⼀组执⾏语句,多个case不可共⽤同⼀组执⾏语句t部分可有可⽆23.下列对数组赋初值正确的有() a[ ][ ]={l,2,5,8,3,7}; a[ ][3]={1,2,5,8,3,7}; a[2][3]={1,2,5,8,3,7}; a[2][ ]={1,2,5,8,3,7}; a[3][3]={l,2,5,8,3,7};24.若有说明:int a[ ]={1,2,3,4,5,6,7,8,9,0},i;当0≤i<10时,下列对数组元素地址正确的表⽰有()A.&a+lB.a+lC.a++D.&a[i]E.a+i25.下列关于结构体类型的定义正确的有() { { {int branch;int branch;int branch;char name[20];char name[20];char name[20];};} } river{ {int branch;int branch;char name[20];char name[20];};struct river * next;};三、简答题(本⼤题共4⼩题,每⼩题4分,共16分)26.假设字长为8位,请写出-1的原码和补码。27.写出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{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 s[20],* 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 planet{char name[20];double weight;struct planet * next;} * head=NULL;void main(void){struct planet * p;char * planet_name[3]={"earth","venus","mars"};double planet_weight[3]={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_name[j]);p->weight=planet_weight[j];p->next=head;head=p;}p=p->next;printf("%s,%lfn",p->name,p->weight);}五、程序设计题(本⼤题共2⼩题,每⼩题12分,共24分)36.从键盘上输⼊20个整数,求其中正数的累加和并输出结果。37.在⽂本⽂件c:中有10个实型数据(每两个数之间⽤逗号隔开),编程将这10个数按从⼩到⼤排序后,写到⽂本⽂件c:中。全国2009年4⽉⾃考计算机基础与程序设计试题课程代码:02275⼀、单项选择题(本⼤题共20⼩题,每⼩题1分,共20分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。错选、多选或未选均⽆分。1.衡量存储器的基本单位是()A. bitB. byteC. KBD. s操作系统是()A. 单⽤户、单任务B. 单⽤户、多任务C. 多⽤户、单任务D. 多⽤户、多任务3.组成微机主存储器的是()A. CD—ROM和RAMB. 硬盘和RAMC. 硬盘和CD—ROMD. 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;表达式(aA. 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.23 4 3 411.已知str1和str2是字符数组名,下⾯函数中能正确地完成字符串输出的是()A. puts (str1,str2)B. puts (str2)C. putchar (strl)D. putchar (str1,str2)12.下列关于函数的说明中不正确...的是()A. 函数名后⾯可以不要⼀对圆括号B. 函数参数类型必须作说明C. 函数形参个数可以是⼀个、多个或没有D. 空函数被调⽤时不做任何⼯作13.若有定义:int a[5];则a数组中⾸元素的地址可以表⽰为()A. &aB. a+1C. aD. &a[1]14.设有char *s=″ta017bc″;则指针变量s指向的字符串在内存中所占的字节数是()A. 5 B. 6C. 7D. 915.下列关于结构体类型的定义正确的是()A. struct treeB. struct tree{ int branch; { int branch;char name[20]; char name[20],char *relation; char *relation,}; };C. struct treeD. struct tree{ int branch { int branch;char name[20] char name[20];char *relation char *relation;} }16.下列各个位运算符的优先级从左到右依次降低的是()A. | & ? > >B. ? & > > |C. ~> > ? |D. ~> > | ?17.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是()A. 3B. 5C. 6D. 818.设有下列程序:()#include″stdio.h″main( ){unsigned x=8,y=2;printf(″%dn″,y|~(x&y));}该程序的运⾏结果是A. -1B. 0xffC.127D. 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 y[4][4],( *p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是()A. printf (″%dn″,&y[2][0]);B. printf (″%dn″, y[2][0]);C. printf (″%dn″,p[2][0]);D. printf (″%dn″, y[2]);E. printf (″%dn″, *(*(y+2));25.设有关于结构体类型的定义:struct worker{int id;char *name;float salary;} wl={102035,″Lihua″,2560.50},*p;下列选项中语句语法正确的有()A. p=wl;B. p=&wl;C. p->id=wl->idD. p->id=;E. =;三、简答题(本⼤题共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 vegetable{char *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.h″main ( ){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.h″main( ){int n,m;for(n=1;n<=5;n++){for(m=1;m<=4;m++)printf(″%4d″,m *n);printf(″n″);}}32.阅读分析下⾯程序后,写出程序的运⾏结果。#include″stdio.h″main ( ){int arr[10],i,k=0;for(i=0;i<10;i++)arr[i]=i;for(i=1;i<=4;i++){k+=arr[i]+i;printf(″%5d″,k);}}33.阅读分析下⾯程序后,写出程序的运⾏结果。#include″stdio.h″int 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函数的功能并写出程序的运⾏结果。#include″stdio.h″void cat(char *s,char *t){while(*s) s++;while((*s++=*t++)!=′0′);}main( ){char sl[80]=″computer″,s2[80]=″Pentium_″;cat(s2,s1);printf(″% sn″,s2);}35.阅读分析下⾯部分程序:struct cjd{char name[9];float score[2][2];} x;float t[2][2]={70.5,65.0,83.0,92.5};int j,k;请⽤for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。五、程序设计题(本⼤题共2⼩题,每⼩题12分,共24分)36.请编程从键盘上输⼊⼗个整数,计算其中⼤于零的奇数的平均值,并输出这些⼤于零的奇数以及它们的平均值。37.有若⼲个学⽣(不超过50⼈)的某⼀门课的成绩放在⽂件c:中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的⼈数各有多少⼈。全国2008年7⽉⾃考计算机基础与程序设计试卷课程代码:02275⼀、单项选择题(本⼤题共20⼩题,每⼩题1分,共20分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。错选、多选或未选均⽆分。1.⼀个完整的计算机系统应该包括()A.主机和外设B.主机和操作系统C.硬件系统和系统软件D.硬件系统和软件系统2.若⽤⼋位⼆进制表⽰⼀个整数,则-4在计算机中的表⽰是()A.11111100 B.11111011C.10000100 D.000001003.下列转义字符中,表⽰回车的是()A.0 B.nC.r D.f4.若定义double d;则d在内存中分配的字节数是()A.1个 B.2个C.4个D.8个5.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2C.7/4*4-4 D.8/3+8/36.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5C.-4 D.-37.在printf语句中,格式说明符u表⽰()A.以⼗进制带符号形式输出整数B.以⼗六进制带符号形式输出整数C.以⼗进制⽆符号形式输出整数D.以⼗六进制⽆符号形式输出整数8.若有int a=3,b=4,c=5,d=6,x=4;执⾏下列程序段后x的值是()if(a{if(c= =d)x=c;}elsex=d++A.4 B.5C.6 D.79.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式10.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为⾮零时不执⾏循环体B.循环体⾄少被执⾏⼀次C.当表达式的值为零时循环体⼀次也不执⾏D.循环体仅被执⾏⼀次11.只能在循环语句中⽤于结束本轮循环的语句是()A.break; B.continue;C.goto D.if12.若有定义int a[4]={1,2,3,4};则a[(a[1]*a[3]+a[0])3-1)]的值是()A.1 B.2C.3 D.413.若有定义int a[3][5];则数组a在内存中分配的字节数是()A.8 B.15C.24 D.3014.已知strl和str2是字符串数组,下列哪⼀个函数能正确的完成字符串的输⼊?()A.gets(strl) B.gets(strl,str2)C.getchar(strl) D.getchar(strl,str2)15.下列关于函数的描述中正确的是()A.C程序中有调⽤关系的所有模块必须放在同⼀个源⽂件中B.函数必须有返回值,否则不能使⽤函数C.C程序必须由⼀个或⼀个以上函数构成D.C函数既可以嵌套定义⼜可以嵌套调⽤16.设有下列程序,则()int d=10;main(){int a=3;printf(“%d,%dn”,a,d);}A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量17.若有说明:int*p1,*p2,m=5,n;以下进⾏赋值的语句中合理的是()A.p1=m; B.&p2=n;C.pl=&m;p2=p1; D.*p1=&m;18.下列为指针数组定义的是()A.float(*)[6]; B.float p[6];C.float(*)(); D.float *p[6];19.设有说明:FILE*fp;对于fp=fopen(″c:″,″rb″);语句,下列说法中不正确的是()A.fp将指向⽂件B.以只读⽅式打开⼆进制⽂件C.打开⽂件的⽂件名是.以读写⽅式打开ASCII码⽂件20.ASCII码⽂件的结束可以⽤符号常量EOF表⽰。EOF的值是()A.0 B.1C.-1 D.不能确定的值⼆、多项选择题(本⼤题共5⼩题,每⼩题2分,共10分)在每⼩题列出的五个备选项中⾄少有两个是符合题⽬要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均⽆分。21.下列数据数值相等的有()A.(11111111)2 B.(377)8C.(255)10 D.(FF)16E.(256)1022.以下if语句中没有语法错误的有()A.if(x>0)printf(″%f″,x);else printf(″%f″,x);B.if(x>0){x=x+y;printf(″%f″,x)}else printf(″%f″,x)C.if(x>0){x=x+y;printf(″%f″,x);}else printf(″%f″,x);D.if(x>0)x=x+y;printf(″%f″,x);else printf(″%f″,x)E.if x>yx++;elsex--;23.设有程序如下:main(){ int i,j,a[]={1,3,5,7,9,11,13,15};i=5;switch(i){ default;printf(″%dn″,a[i]);case 1:printf(″%dn″,a[3]);case 2:printf(″%dn″,a[++i]);break;case 3:printf(″%dn″,a[--i]);}}上述程序的输出结果不包括()A.5 B.7C.9 D.11E.1324.设有定义及赋值:()int a[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;则引⽤a中值为5的元素的正确形式是A.a[5] B.a[4]C.*(a+5) D.p[5]E.*(p+5)25.设有说明:int u=1,v=3,w=7;下列表达式的值为7的有()A.u&v|w B.u|v|wC.u^v|w D.w&v|uE.u^w|v三、简答题(本⼤题共4⼩题,每⼩题4分,共16分)26.C语⾔中整型常量有⼏种形式,它们是如何表⽰的?27.写出语句if(表达式)语句1 else语句2的执⾏过程。28.若定义char *str;然后⽤gets(str);输⼊字符串可以吗?为什么?29.单个字符的读函数fgetc(fp),其中fp表⽰什么?该函数的功能是什么?四、阅读分析题(本⼤题共6⼩题,每⼩题5分,共30分)30.阅读下⾯程序并写出运⾏结果。main(){int a=47,x,y,z,w;x=a/2;y=a%2;z=a++;w=++a;printf(″%d,%d,%d,%d″,x,y,z,w);}31.阅读分析下⾯程序,请说明程序的功能;然后写出当键盘输⼊14时,程序的运⾏结果。main(){int x;scanf(″%d″,&x);if(x%5= =0 & & x%7= =0)printf(″yes″);elseprintf(″no″);}32.阅读下⾯程序并写出运⾏结果。main(){static int a[]={5,3,7,2,1,5,4,10};int s=0,k;for(k=0;k<8;k+ =3){s+ =a[k];printf(″a[%d] =%d,s=%dn″,k,a[k],s);}}33.阅读下⾯程序并写出运⾏结果。check(int n,int k){int m;do{m=n%10;n=n/10;}while(k- -);return(m);}main(){int j,y=2345;for(j=1;j<4;j++)printf(″j=%d,number is %dn″,j,check(y,j));}34.阅读分析下⾯程序并写出运⾏结果。main(){char *a[]={″Pascal″,″C Language″,″dBase″,″Cobol″};int j;for(j=3;j>=0;j- -)printf(″%sn″,a[j]);}35.阅读下⾯程序并说明语句:x=p->d[0]>p->d[1]?p->d[0]:p->d[1];的含义,然后写出程序的运⾏结果。struct number{int d[2];} n={12,8},*p=&n;main(){int x;x=p->d[0]>p->d[1]?p->d[0]:p—>d[1];printf(″%d″,x);}五、程序设计题(本⼤题共2⼩题,每⼩题12分,共24分)36.从键盘上输⼊⼀个正整数n(n≤10),求n的阶乘并输出结果。37.由键盘输⼊n*m个数,并把它们存放在⼀个n⾏m列的数组中(n、m均不超过20)。(1)按n⾏m列输出该⼆维数组;(2)求出该⼆维数组全部元素的平均值;(3)把该⼆维数组中⼤于平均值的元素的值、以及它们⾏列下标打印出来。全国2008年4⽉⾃学考试历年试卷计算机基础与程序设计试题课程代码:02275⼀、单项选择题(本⼤题共20⼩题,每⼩题1分,共20分)在每⼩题列出的四个备选项中只有⼀个是符合题⽬要求的,请将其代码填写在题后的括号内。错选、多选或未选均⽆分。1.存储容量1KB等于()A.32字节B.102字节C.202字节2字节D.302.在计算机中,指令通常是由()A.操作码、操作数组成B.源操作数、⽬标操作数组成C.反码、补码组成D.直接寻址、⽬的寻址组成3.与⼗进制数39等值的⼆进制数是()A.00100111 B.01001001
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688701575a163704.html
评论列表(0条)