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

下载本文档

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

文档简介

1、自学考试密押题库与答案解析高级语言程序设计自考题模拟25自学考试密押题库与答案解析高级语言程序设计自考题模拟25高级语言程序设计自考题模拟25一、单项选择题问题:1. 设有以下定义 int a43=1,2,3,4,5,6,7,8,9),10,11,12; int *ptr3=a0,*p=a0; 则以下能正确表达数组元素a12的表达式是 A.*(*ptr+1)2)B.*(*(p+5)C.*(*ptr+1)+4)D.*(*(p+1)+2)答案:C解析 int *ptr3=a0定义了指针数组ptr并给这个数组的第一个元素赋值a0,*(*ptr+1)+4)的含义是:取指针数组ptr的第一个元素值再加5

2、所得的指针量指向的内存单元的值。问题:2. 下面程序输出的结果是 main() struct cmplx int x;int y; cnum2=1,3,2,7; printf(%dn,cnum0.y/cnum0.x*cnum1.x); A.0B.1C.3D.6答案:D解析 本题主要考查的知识点为结构型变量的赋值。要点透析 cnum0.y为3,cnum0.x为1,cnum1.x为2,故3/1*2=6。问题:3. 变量定义并初始化正确的是A.int a=1,*p=a;B.int a=2,p=*a;C.int a=3,p=答案:D解析 A项中,不能将一个变量赋值给一个指针变量;B项中,*a的表达方式

3、错误;C项中,不能将变量的地址赋给变量。问题:4. 设static int a3=1,2,3;int*p=答案:A问题:5. 常用的数学处理类系统函数所在的头文件是A.mathhB.ctypehC.doshD.stdlibh答案:A问题:6. 合法的用户标识符是A.defaultB.#defineC.a+bD.book答案:D问题:7. C语言程序的三种基本结构是顺序结构、循环结构和A.选择结构B.递归结构C.嵌套结构D.转移结构答案:A问题:8. 现有下列程序语句,执行后的结果是 #includestdioh void main() char s1100=123,s2100=qwer; pu

4、ts(s1);puts(s2); printf(%s%s,s1,s2); A.123 qwer 123 qwer B.123 qwer 123qwer C.123qwerl23qwerD.123qwer 123qwer 答案:B解析 puts()函数的作用是输出字符数组中存放的字符串,并在输出完成后回车换行。问题:9. 以下程序的输出结果是(已知字母a的ASC值比字母A的ASC值大32) main() int i; for(i=A;iI;i+,i+) printf(%c,i+36); A.DEGIKB.egikC.EGIKD.degik答案:B解析 main() int i; for(i=A;

5、iI;i+,i+)/*i的初始值为字母A的ASC值,循环条件为iI,步进值为2*/ printf(%c,i+36);/*ASC值加36后已进入小写字母区域*/ 问题:10. 设char c=A;int i=1,j;,执行语句j=!c答案:B解析 由于!c的值为0,则整个表达式的值为0,不再执行后面的i+,故j=0,i=1。问题:11. 设int x=1;a=9,b=6,c=9,d=8;执行语句: if(ab )if(cb )if(bd )x=2;else x=6; 后x的值是 A.1B.2C.6D.不确定答案:C解析 当ab、cb、bd都成立时x=2,只要有一个不成立就有x=6。问题:12.

6、在循环结构中,continue语句的作用是A.继续执行本次循环B.提前退出多重循环C.提前结束本次循环D.提前退出本重循环答案:C解析 continue语句的作用是跳过continue之后的语句,重新判断循环控制条件,决定是否继续循环,故本题选C。问题:13. 为了判定两个字符串是否相等应当使用A.if(s1=s2)B.if(s1=s2)C.if(strcmp(s1,s2)=0)D.if(strcmp(s1,s2)=0)答案:C问题:14. 阅读程序 main() int a10=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(%xn,p); printf(%xn,p+

7、9); 该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是 A.203B.204C.1a4D.1a6答案:D解析 本题主要考查的知识点为指针变量与一维数组的等价关系及地址值的计算。要点透析 输出p为十六进制地址值,由于p为int型,所以p+9相当于p所对应的地址值加18,也就是十六进制数12,194加12为1a6。问题:15. 当定义一个结构型变量时系统分配给它的内存是A.各成员所需内存量的总和B.成员中占内存量最大者所需的容量C.结构中第一个成员所需内存量D.结构中最后一个成员所需内存量答案:A解析 本题主要考查的知识点为结构型变量所

8、占用内存空间。要点透析 当定义了结构型变量时,需要给其分配内存,分配内存的字节数等于该结构型所有成员占用的字节数之和二、填空题问题:1. 一个字符型变量所占内存的字节数是_。答案:1问题:2. 若全局整型变量未初始化,则默认的初始值是_。答案:0问题:3. 按文件中数据存放的格式,可以把磁盘文件分为_和文本文件。答案:二进制文件问题:4. C语言程序的注释可以出现在程序中的任何地方,它总是以_符号作为开始标记。答案:/*或/问题:5. 可以将被调函数中获得的值返回给主调函数的语句是_。答案:return或返回语句问题:6. 表示条件10x100或x0的c语言表达式是_。答案:x10x100x0

9、问题:7. 设int a=10;,则执行语句a+=a-=a+a;后a的值是_。答案:-20问题:8. 若函数内定义变量的存储类别是static,该变量被称为_静态变量。答案:内部(或局部)问题:9. 文件包含命令是以_为开头的编译预处理命令。答案:#include问题:10. 在执行循环结构或switch结构时,能够立即退出该结构的语句是_。答案:break三、程序分析题问题:1. 若输入3个整数3,2,1回车则下面程序的输出结果是 #includestdioh main() int i,n,aa10=0,0,0,0,0,0; scanf(%d%d%d,n,aa0,aa1); for(i=0;

10、i=n;i+) printf(%d,aai); 答案:0000解析 #includestdioh main() int i,n,aa10=0,0,0,0,0,0; scanf(%d%d%d,8n,aa0,aa1);/*输入时因格式不匹配而导致n,aa0,aa1三个变量只有n获得值3*/ for(i=0;i=n;i+) printf(%d,aai); 问题:2. 请在该程序段右侧写出其输出结果。 int aa33=2,4,6; main() int j,*p=aa00; for(j=0;j2;j+) if(j=0) aajj+1=*p+1; else+P; print(%d,*p); 答案:23

11、解析int aa33=2,4),6;main()int j,*p=aa00;for(j=0;j2;j+)/*限定循环只有两次,j=0一次、j=1一次*/if(j=0)/*第一次执行循环时,j=0成立*/aajj+1=*p+1;/*将3赋给a01*/else+P;/*第二次执行循环时,j=0不成立,执行这个语句*/printf(%d,*p);/*两次循环都执行,第一次打印a00第二次打印a01。*/问题:3. #inclucdestdioh void prly(int*x) prinlf(%dn,+*x); main() int a=25; prty(a ): printf(%dn,a ): 答

12、案:26解析 #includestdioh void prty(int*x) printf(%d,+*x);/*打印输出指针变量x所指向的内存单元的数据自增1后的值*/ main() int a=25; prty(a ): printf(%dn,a );/*打印输出此时变量a的值。注意main()函数对函数prty()的调用所采用的参数传递方式是地址传递方式;即a的值会被函数prty()改变*/ 问题:4. 在C盘中有一个名为temp.txt的文本文件。 #include stdio.h #include stdlib.h main() int i,n; FILE*fp; if(fp=fope

13、n(c:temp.txt,w+)=NULL) printf(can not set the temp filen);exit(0); for(i=1;i=10;i+)fprintf(fp,%3d,i); for(i=0;i5;i+) fseek(fp,*6L,SEEK_SET); fscanf(fp,%d, 答案:1 3 5 7 9四、程序填充题问题:1. 将一个十进制整数转变成一个二进制整数。 #includestdioh main() int i=0j,n,num20; scanf(%d,_);/*第一空*/ while(n!=0) numi+=_;/*第二空*/ n=_;)/*第三空*/

14、 for(j=i-1;j=0;j-) printf(Ha,numj); printf(n); 答案:n/*第一空。从键盘上输入十制数n*/ n%2/*第二空。取余数填补低位*/ n/2/*第三空*。为下一次循环进行更高的一位运算做准备/ 问题:2. 求数组a的所有元素之和。 #define N 3 void main() int i,j,sum=0; int aNN=2,4,6,8,10,12,14,16,18; for(i=0;iN;_) /*第一空*/ for(j=0;_;j+) /*第二空*/ sum=sum+_; /*第三空*/ printf(sum=%dn,sum); 答案:第一空:

15、i+ 第二空:jN(或j3) 第三空:aij 问题:3. 将10个数输入数组中,求出其中最大数和最小数并输出。 #includestdioh main() int i,max,min,a10; for(i=0;i10;i+) seanf(%d,_);/*第一空*/ max=a0: min=a0; for(i=1;_;i+)/*第二空*/ if(aimax) max=ai; else if(aimin) _;/*第三空*/ printf(max=%d,min=%d,max,min); 答案:ai/*第一空。给数组的元素输入内容*/ i10/*第二空。循环并逐项比较*/ min=ai/*第三空。min获得相对较小值*/ 五、程序设计题问题:1. 求出10到500之内能同时被3、7整除的数,并输出;然后求出其和值。答案:解析 #includestdioh main() int i,sum=0; for(i=10;i=500;i+)/*限定处理范围为10500*/ if(i%3)=0(i%7)=0)/*判断是否能同时被3、7整除*/ printf(%dt,i),sum+=i;/*输出该数并累加*/ printf(nsum=%dn,sum);/

温馨提示

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

评论

0/150

提交评论