[自学考试密押题库与答案解析]高级语言程序设计自考题模拟22_第1页
[自学考试密押题库与答案解析]高级语言程序设计自考题模拟22_第2页
[自学考试密押题库与答案解析]高级语言程序设计自考题模拟22_第3页
[自学考试密押题库与答案解析]高级语言程序设计自考题模拟22_第4页
[自学考试密押题库与答案解析]高级语言程序设计自考题模拟22_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自学考试密押题库与答案解析高级语言程序设计自考题模拟22自学考试密押题库与答案解析高级语言程序设计自考题模拟22高级语言程序设计自考题模拟22一、单项选择题问题:1. 运行下列程序后,输出结果是 void fun(int x,int y,int *cp,int *dp) *cp=x+y;*dp=x-y; main() int a=6,b=2; fun(a+b,a-b,n,a,b ); A.6,2B.8,4C.12,4D.8,2答案:C问题:2. 对函数而言,叙述正确的是A.程序中只能有一个main函数B.当函数的形参是数组时,形实结合为值传递方式C.函数中只能有一个return语句D.无参函数

2、的函数体内不能出现return语句答案:A问题:3. 以下程序的输出结果是 int d=1; fun(int p) static int d=5; d+=P: printf(%d,d ); return(d ); main() int am=3; printf(%dn,fun(a+fun(d ): A.6 9 9B.6 6 9C.6 15 15D.6 6 15答案:C解析 int d=1; fun(int p) static int d=5;/*变量d被定义为static存储类型的int整型变量,作用域仪限两数fun(int p)内。函数fun(int p)被执行之后变量d仍然存在,再次执行函

3、数fun(int p)时所使用的变量d的值是上次调用函数fun(int p)时d所得到的新值。*/ d+=P; printf(%d,d );/*每次调用都会打印输出d的值*/ return(d );/*返回d的值*/ main() int a=3; printf(%dn,fun(a+fun(d );/*此处调用函数fun(int p)时,所用的变量d为整个程序段头所定义的d*/ 问题:4. 下列程序执行后的输出结果是 main() int x=C;printf(%dn,A-x+3);) A.1B.2C.3D.5答案:A问题:5. 以下程序的执行结果是 #includestdioh main()

4、 printf(%dn,NULL); A.-1B.0C.1D.2答案:B解析 NULL的ASC值是00000000,语句printf(%dn,NULL);要求NULL以整型数据输出,所以输出是0。问题:6. 如果打开文件时,选用的文件操作方式是wb+则下列说法中正确的是A.要打开的文件必须存在B.打开文件后只能渎数据C.文件打开后删除原内容再写D.打开文件后只能写数据答案:C问题:7. 运行下列程序后,输出结果是 f(int x,int y,int *z) return(*z=x*x+y*y); main() int a=3; f(f(1,2, 答案:C问题:8. 执行下列程序后输出的结果是

5、#includestdioh main() int j,i,k=0,m=0; for(i=0;i2;i+) for(j=0;j3;j+) k+,k-=j; m=i+j; print(k=%d,m=%dn,k,m); A.k=0,m=5B.k=0,m=3C.k=1,m=5D.k=1,m=3答案:A解析 #includestdioh main() int j,i,k=0,m=0; for(i=0;i2;i+)/*循环条件是i2,步进值为1*/ for(j=0;j3;j+)/*循环条件是j3,步进值为1*/ k+,k-=j;/*此语句为逗号表达式,表达式k+和k-=j在循环for(j=0;j3;j+

6、)中都会被执行*/ m=i+j:/* 此处所使用的i和j的值都是在上述循环执行后i和j的值*/ printf(k=%d,m=%dn,k,m); 问题:9. 下列不属于面向机器语言的是A.符号语言B.二进制语言C.汇编语言D.C语言答案:D问题:10. 下列运算符中优先级最高的是A.?:B.答案:D解析 单目逻辑运算符优先于双目逻辑运算符及条件运算符。问题:11. 设有定义chara=2,b=5;求表达式ab2的值(假定现有计算机字长为16)A.-32B.32C.-23D.23答案:C解析 整型常量值在0127之间的,C语言规定可以把它看成一个字符型常量,其所对应的字符就是该值作为ASC代码值所

7、对应的那个字符。问题:12. 设enum weeksun,mon,tue,wed,thu,fri,satday;,正确的赋值语句是A.sun=0;B.sun=day;C.mon=sun+1;D.day=sun;答案:D问题:13. 若有以下定义,则不能正确地表示数组中的元素的是 char *s=1,2,3,4,5,6,7,8,9,0,; A.*sB.s9C.*(s+1)D.*(s+10)答案:D解析 *(s+10)表示由s的首地址向后偏移10个字节,产生数组地址越界。问题:14. 关于宏定义命令,叙述正确的是A.在程序编译前进行宏替换B.在程序编译时进行宏替换C.在程序编译后进行宏替换D.在程

8、序运行时进行宏替换答案:A解析 宏定义命令的一般格式是:#define 宏名 一串符号,在程序清单中可以出现已经定义过的“宏名”,称为“宏调用”;当对源程序清单进行编译之前,将把所有的“宏名”替换成对应的“一串符号”,称为“岩替换”。问题:15. 设structchar name10;int age;stu2=Tom,25,Mary,26,*p=stu;则执行语句printf(%S%dn,Pname,stu1.age);后输出结果是A.Tom25B.Tom26C.Mary25D.Mary26答案:B二、填空题问题:1. z=y*=x+9相当于_和z=y两个表达式。答案:y=y*(x+9)问题:

9、2. 转义字符n的含义是_。答案:回车换行问题:3. 在C语言中,如果下面的变量都是int类型,则输出的结果是_。 sum=pad=5; pad=sum+,pad+,+pad; printf(%dn,pad ); 答案:7问题:4. 可以将被调函数中获得的值返回主调函数的语句是_。答案:return(表达式);问题:5. 设char s3=AB,*p=s;,则*(p+2)的值是_。答案:0(或0)问题:6. 函数调用时,若实参为一个确定的值,则函数参数的传递方式是_。答案:值传递问题:7. 函数的自我调用被称为_调用。答案:递归问题:8. 函数中未指定存储类型的局部变量,其隐含的存储类型是_。

10、答案:auto(或自动型)问题:9. 请写出以下数学表达式的C语言表达式:_。 答案:a/(b*c )-2*d问题:10. 设int a=2,b=3;float x=3.5,y=2.5;,表达式(float)(a+b )/2+(int)x%(int)y的值是_。答案:3.5三、程序分析题问题:1. #includestdioh void swap(int *P,int*q) int t; t=*P;*P=*q;*q=t; main() int a=10,b=20;swap(a,b ); printf(%d%dn,a,b ); 答案:20,10解析 #includestdioh void swa

11、p(int *P,int *q)/*参数传递方式采用地址传递*/ int t; t=*p;*p=*q;*q=t;/*交换a与b的值*/ main() int a=10,b=20;swap(a,b );/*调用函数swap()*/ printf(%d%dn,a,b ); 问题:2. #define M 23? 5:6 void main() int i=3,j,k; j=i+M; k=i+(M); printf(%d,%dn,j,k); 答案:6,8问题:3. #includestdioh #includestringh main() int y=9; for(;y0;y-) if(y%03=0

12、) printf(%d,-y);continue; printf(%d,-y); 答案:8 6 4 2 0解析 #includestdioh #includestringh main() int y=9; for(;y0;y-) if(y%3=0) printf(%d,-y);continue;)/*如果y是3的倍数,则执行本行并跳过循环体后面的内容继续下一次循环*/ printf(%d,-y); 问题:4. void fun(int x,int y,int z) z=x*x+y*y; printf(%dn,z); void main() int a=31; fun(5,2,a ); prin

13、tf(%dn,a ); 答案:29 31 四、程序填充题问题:1. 完善下面程序段,以使其完成以下数学函数的计算。 #includestdioh #includemathh main() float x,y,f1,fun(); scanf(%f%f,x,y); f1=x*x/fun(_);/*第一空*/ printf(A=%fn,f1); float fun(float f) float f2; f2=f*f+sqrt(1+_/*第二空*/+_);/*第三空*/ return(f2); 答案:exp(x-y)/*第一空。由语句f1=x*x/fum(_);知此处为函数A(x,y)的表达式。且函数

14、fun()是函数表达式A(x,y)的分母,应由x、y两个变量组成。而此参数应满足语句f2=f*f+sqrt(1+_+_);和return(f2);(函数A(x,y)的分母);故空应为变f的表达式,再结合数学函数A(x,y)的原形可得到此空应为exp(x-y)*/ 2*f/*第二空。由语句f2=f*f+sqrt(1+_+_);和数学函数A(x,y)的原形可知,此空应为关于f的表达式且为2*f*/ 3*f*f/*第三空。解析同上*/ 问题:2. 函数YangHui的功能是把杨辉i角形的数据赋给二维数组的下半三角,形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 其构成规律是:

15、(1) 第0列元素和主对角线元素均为1(2) 其余元素为其左上方和正上方元素之和(3) 数据的个数每行递增1 #includestdioh #define N 5 void YangHui(int xNN) int i,j; x00=1; for(i=1;iN;i+) xi0=_=1;/*第一空*/ for(j=1;ji;j+) if(_)/*第二空*/ xij=_;/*第三空*/ 答案:xii,*第一空。将对角线置*/ i!=j*第二空,判定是否为对角线上的元素*/ xij-1+xi-1j/*第三空。根据构成规律(2)求出该元素的值*/ 问题:3. 将一个文本文件madat拷贝到另一个文本文

16、件nadat中。 #includestdioh main() FILE*ma,*na; ma=fopen(madat,_);/*第一空*/ na=fopen(nadat,w); while(!feof(ma )fputc(fgete(ma ),_)/*第二空*/ felose(na );_;/*第三空*/ 答案:r/*第一空。以只读方式打开文件madat*/ na/*第二空。向文件nadat输入从文件madat得到的字符*/ fclose(ma )/*第三空。关闭所有文件以结束复制过程*/ 五、程序设计题问题:1. 编写程序,用以建立某班级的学生档案信息,每个学生档案信息包括:姓名、邮编、电话。答案:main() struct student char name20; unsigned long zipcode; unsigned long phone; ch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论