《全国2013年7月自考计算机基础与程序设计试题答案(10页).doc》由会员分享,可在线阅读,更多相关《全国2013年7月自考计算机基础与程序设计试题答案(10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-全国2013年7月自考计算机基础与程序设计试题答案-第 - 10 - 页全国2013年7月自考计算机基础与程序设计试题一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相代码涂黑。错涂、多涂或未涂均无分。1一个完整的计算机系统应该包括A主机和外设B主机和操作系统C硬件系统和系统软件(P1)D硬件系统和软件系统2内存中每个基本单元都有唯一的序号,这个序号称为A地址(P5)B字节C代码D字3计算机对编译型高级语言的执行方式是A逐条语句边解释边执行,即解释一条就执行一条B将整个程序编译完成后再执行,不生成目标程
2、序C将源程序编译成目标程序,执行连接后的程序(P16或24图)D将源程序解释完毕后再执行4下面几种运算符中,优先级最高的是A|B,C=D?:分析A逻辑或,B逗号,C赋值,D条件,参考P209或P405设有int x=2, y, z;执行z=y=x;后变量x的值是A0B1(P36)本题X=1,Y=2,Z=2,相当于z=(y=(x-)C2D36若有下列程序段,欲使a=2, b=3,对应正确的数据输入方式是(其中表示换行)。 int a,b; scanf(a= %d,b= %d, &a, &b);A2Ba=2 b=33Ca=2, b=3D2,37设有声明int a=5,b=10; 执行a=a+b,b
3、=a-b,a=a-b之后,变量a和b的值是A.5和5B5和-5C5和10D10和58下面程序段输出的结果是 main() int x=5,y; if(x0)y=l; if(x=0)y=0; y=l; printf(%d,y);A.-5B-1C0D.19若执行下列程序时,从键盘输入数据3和4,则程序的输出结果是 main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(ab) s=b; s=s*s; printf(%d ,s);A.14B16C18D2010只能在循环语句中用于结束本轮循环,即跳过循环体中它下面的语句的语句是A. break;B. continue
4、;C. gotoD. if11下面程序段的输出结果是 for(i=1;i3;i+) for(j=1;j3;j+) printf ( %d ,i+j); printf(n);A2 3 3 4B2 3 4C2 3D23 43 412已知strl和str2是字符串,下面函数调用中能正确地完成字符串的输出的是A. puts(strl,str2)B. puts(str2)C. putchar(strl)D. putchar(strl,str2)13下列程序的输出结果是 # include main() char s10 =a, b, c,; s3= 0; printf(%dn , strlen(s);A
5、3B4C10D输出值不确定14设有声明int a5=(1,2,3,4,5),b3=2,4,6);则表达式ab2一b1的值是A1B2C3D415若没有定义局部变量的存储类别,则系统默认的存储类别是A. registerB. staticC. autoD. extern16执行下面代码片段之后,变量x的值是 int x=1, *p; p=&x;+x;*p=5;A1B2C4D517执行下面代码片段之后,表达式*(p+1)的值是 int x5=1,3,5,7,9,*p; p= &x0; *(p+1)=*(p+3)+x2;A3B7C10D1218下面关于结构体类型的定义中,正确的定义是( B )A. s
6、truct student B. struct student int xh, int xh; char name 10, char name 10; int n1, int n1;C. struct student D. struct student int xh, int xh; char name 10, char name10; int n1, int n1;19设有声明int a=l,b=2;执行:b=av|wv之后,变量u的值是A3B5C12D15二、多项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其选出并将“答题纸”的相
7、应代码涂黑。错涂、多涂、少涂或未涂均无分。21对于下面的for循环结构 for(表达式1;表达式2;表达式3) 语句 以下叙述正确的有A表达式1最先求值;B表达式3最先求值;C语句在表达式2求值之后才有可能执行;D语句在表达式2求值之后肯定能够执行;E语句执行后才对表达式3求值22对于下面的do- while循环结构 do 语句 while(x&!y| |z); 其语句仅仅执行1次的条件有A.x等于0或者z等于0Bx等于0且z等于0Cy不等于0且z等于0Dy不等于0且z不等于0Ex,y,z都等于023设有声明int x45;且整型变量i和j满足:,则下面能够表示数组元素xij的有A.*(*(x
8、+i)+j)B.(*(x+i)+j)C.*(xi+j)D.(xi+j)E.*(*(x+i)+j24关于结构体类型,下面叙述正确的有A结构体类型是由用户定义的B结构体类型是由系统定义的C结构体类型的成员允许是不同的数据类型D定义结构体类型之后才能定义该结构体类型的变量E定义结构体类型变量之后才能定义结构体类型25设有声明int x=1,y=2,z=3;下面表达式的值为0的有Ax2CyyDx&yEz&y&x分析A=8 E=2非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。三、简答题(本大题共4小题,每小题4分,共16分)26.C语言规定对程序中所用的变量必须“先
9、定义,后使用”,主要目的是什么?预先告诉系统该变量用来存放什么类型的数据,要分配给他多少个字节存储单元。27设有程序 int main(void) int a,b,c,m; scanf(%d%d%d,&a,&b,&c); if(ca+b) if(ab)m=a; else m=b; else if(ba) m=a; else m=b; printf(m= %dn,m); return 0;请简述程序的功能。答:如果输入的第三个数大于前两个数之和则输出前两个数中较大的值,否则输出前两个数中较小的值。28.简述下面程序的功能。 int main(void) int i,n; scanf( %d ,
10、&n) ; for(i=l;i=A) printf( %C , ch) ; ch; i+; if(i%5= =0) printf( n) ;答:YXWVUTSRQPONMLKJIHGFEDCB33请写出下面程序的运行结果。# include stdio.h # include string.hint main(void) char ch,s30 = tneduts a era uoy ; int i=0,j ; j = strlen(s) -1; for( ;ij; i+ , j)ch=si;si=sj;sj=ch; printf( % sn ,s) ;答:you are a student3
11、4请写出下面程序的运行结果。# include stdio. hint main(void) int i,n; for(i=10;i15 ; i+=4) n=i- 4 ; printf( n% d, % dtgcd= % dn ,i,n,gcd(i, n) ); return 0;int gcd(int a, int b) int t;while(b)t=a%b;a=b;b=t; return a;答:10,6 gcd=214,10 gcd=235请写出下面程序的运行结果。 # include stdio. hint main(void) int i,score10 = 88,78,46,91
12、,43,32,63,72,21,83 ; bob_sort(score,10) ; for(i= 0; i10, i+) printf( %d, , scorei) ; printf( n) ; return 0;int bob_sort(int * p,int n) int t,i,j;for(i=0;in-2;i+) for(j =0;j * (p+j+l) t= * (p+j); * (p+j) = * (p+j+l) ; * (p+j+l)=t; 答:21,32,43,63,72,78,88,91,83,分析:因为in-2和jn-2-i没有等于,所以不是21,32,43,63,72,7
13、8,83,88,91,五、程序设计题(本大题共2小题,每小题12分,共24分)36输入10个整数,先求后面9个数中大于第1个数的那些数的累加和,再输出这10个数以及累加和。main()int a10,i,sum1=0,sum2=0; for(i=0;i10;i+) scanf(%d,&ai); for(i=1;ia0) sum1=sum1+ai; printf(%dn,sum1); for(i=0;i10;i+) printf(%d ,ai); sum2=sum2+ai; printf(n); printf(%d,sum2);37用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中。 (第一行的$在第20列)答:#include main()int i,j;FILE *fp;fp=fopen(c:1x.dat,w);for(i=0;i4;i+) for(j=0;j20-i;j+) printf(%c, ); fprintf(fp,%c, ); for(j=0;ji*2+1;j+) printf(%c,S); fprintf(fp,S); printf(n); fprintf(fp,n); fclose(fp);