【学历类职业资格】高级语言程序设计自考题-1及答案解析.doc

上传人:visitstep340 文档编号:1380199 上传时间:2019-12-01 格式:DOC 页数:17 大小:57KB
下载 相关 举报
【学历类职业资格】高级语言程序设计自考题-1及答案解析.doc_第1页
第1页 / 共17页
【学历类职业资格】高级语言程序设计自考题-1及答案解析.doc_第2页
第2页 / 共17页
【学历类职业资格】高级语言程序设计自考题-1及答案解析.doc_第3页
第3页 / 共17页
【学历类职业资格】高级语言程序设计自考题-1及答案解析.doc_第4页
第4页 / 共17页
【学历类职业资格】高级语言程序设计自考题-1及答案解析.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、高级语言程序设计自考题-1 及答案解析(总分:98.00,做题时间:90 分钟)一、单项选择题(总题数:15,分数:30.00)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)(分数:2.00)A.B.C.D.2.下面程序输出的结果是( )main()struct cmplxint x;int y; cnum2=1,3,2,7;printf(“%d/n“,cnum0

2、.y/cnum0.x*cnum1.x);A0 B1C3 D6(分数:2.00)A.B.C.D.3.变量定义并初始化正确的是( )Aint a=1,*p=a; Bint a=2,p=*a;Cint a=3,p=&a; Dint a=4,*p=&a;(分数:2.00)A.B.C.D.4.设 static int a3=1,2,3;int*p=&a0,&a1,&a2);则与数组元素 a1等价的是( ) A*p1 Bp1 C*p+1 Dp+1(分数:2.00)A.B.C.D.5.常用的数学处理类系统函数所在的头文件是( ) Amathh Bctypeh Cdosh Dstdlibh(分数:2.00)A

3、.B.C.D.6.合法的用户标识符是( ) Adefault B#define Ca+b Dbook(分数:2.00)A.B.C.D.7.C 语言程序的三种基本结构是顺序结构、循环结构和( ) A选择结构 B递归结构 C嵌套结构 D转移结构(分数:2.00)A.B.C.D.8.现有下列程序语句,执行后的结果是( ) #includestdioh void main() char s1100=“123“,s2100=“qwer“; puts(s1);puts(s2); printf(“%s%s“,s1,s2); A123 qwer 123 qwer B123 qwer 123qwer C123q

4、werl23qwer D123qwer 123qwer(分数:2.00)A.B.C.D.9.以下程序的输出结果是(已知字母 a 的 ASC值比字母 A 的 ASC值大 32)( ) main() int i; for(i=A;iI;i+,i+) printf(“%c“,i+36); ADEGIK Begik CEGIK Ddegik(分数:2.00)A.B.C.D.10.设 char c=A;int i=1,j;,执行语句 j=!c&i+;后,i 和 j 的值分别是( )A0 和 1 B1 和 0C1 和 65 D2 和 66(分数:2.00)A.B.C.D.11.设 int x=1;a=9,

5、b=6,c=9,d=8;执行语句: if(ab )if(cb )if(bd )x=2;else x=6; 后 x 的值是( ) A1 B2 C6 D不确定(分数:2.00)A.B.C.D.12.在循环结构中,continue 语句的作用是( )A继续执行本次循环 B提前退出多重循环C提前结束本次循环 D提前退出本重循环(分数:2.00)A.B.C.D.13.为了判定两个字符串是否相等应当使用( ) Aif(s1=s2) Bif(s1=s2) Cif(strcmp(s1,s2)=0) Dif(strcmp(s1,s2)=0)(分数:2.00)A.B.C.D.14.阅读程序main()int a1

6、0=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%x/n“,p);printf(“%x/n“,p+9);该程序有两个 printf 语句,如果第一个 printf 语句输出的是 194,则第二个 printf 语句的输出结果是( )A203 B204C1a4 D1a6(分数:2.00)A.B.C.D.15.当定义一个结构型变量时系统分配给它的内存是( )A各成员所需内存量的总和 B成员中占内存量最大者所需的容量C结构中第一个成员所需内存量 D结构中最后一个成员所需内存量(分数:2.00)A.B.C.D.二、填空题(总题数:10,分数:20.00)16.一个字符型变量所

7、占内存的字节数是 1。(分数:2.00)填空项 1:_17.若全局整型变量未初始化,则默认的初始值是 1。(分数:2.00)填空项 1:_18.按文件中数据存放的格式,可以把磁盘文件分为 1 和文本文件。(分数:2.00)填空项 1:_19.C 语言程序的注释可以出现在程序中的任何地方,它总是以 1 符号作为开始标记。(分数:2.00)填空项 1:_20.可以将被调函数中获得的值返回给主调函数的语句是 1。(分数:2.00)填空项 1:_21.表示条件“10x100 或 x0“的 c 语言表达式是 1。(分数:2.00)填空项 1:_22.设 int a=10;,则执行语句 a+=a-=a+a

8、;后 a 的值是 1。(分数:2.00)填空项 1:_23.若函数内定义变量的存储类别是 static,该变量被称为 1 静态变量。(分数:2.00)填空项 1:_24.文件包含命令是以 1 为开头的编译预处理命令。(分数:2.00)填空项 1:_25.在执行循环结构或 switch 结构时,能够立即退出该结构的语句是 1。(分数:2.00)填空项 1:_三、程序分析题(总题数:4,分数:16.00)26.若输入 3 个整数 3,2,1回车则下面程序的输出结果是 #includestdioh main() int i,n,aa10=0,0,0,0,0,0; scanf(“%d%d%d“,n,a

9、a0,aa1); for(i=0;i=n;i+) printf(“%d“,aai); (分数:4.00)_27.请在该程序段右侧写出其输出结果。 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); (分数:4.00)_28.#inclucdestdioh void prly(int*x) prinlf(“%d/n“,+*x); main() int a=25; prty(a ): printf(“%d/n“,a ): (分数:4.00)_29.在 C

10、盘中有一个名为 temp.txt 的文本文件。#include stdio.h#include stdlib.hmain()int i,n;FILE*fp;if(fp=fopen(“c:/temp.txt“,“w+“)=NULL)printf(“can not set the temp file/n“);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“,&n);printf(“%3d“,n);fclose(fp);(分数:4.00)_四、程序填充题(总题

11、数:3,分数:18.00)30.将一个十进制整数转变成一个二进制整数。 #includestdioh main() int i=0j,n,num20; scanf(“%d“,_);/*第一空*/ while(n!=0) numi+=_;/*第二空*/ n=_;)/*第三空*/ for(j=i-1;j=0;j-) printf(“Ha“,numj); printf(“/n“); (分数:6.00)填空项 1:_31.求数组 a 的所有元素之和。#define N 3void main()int i,j,sum=0;int aNN=2,4,6,8,10,12,14,16,18;for(i=0;iN

12、;_) /*第一空*/for(j=0;_;j+) /*第二空*/sum=sum+_; /*第三空*/printf(“sum=%d/n“,sum);(分数:6.00)填空项 1:_32.将 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=%

13、d“,max,min); (分数:6.00)填空项 1:_五、程序设计题(总题数:2,分数:14.00)33.求出 10 到 500 之内能同时被 3、7 整除的数,并输出;然后求出其和值。(分数:8.00)_34.在一个二维数组(定义为 int a55;)中形成并按下列形式输出矩阵各元素的值。 1 0 0 0 0 2 1 0 0 0 3 2 1 0 0 4 3 2 1 0 5 4 3 2 1(分数:6.00)_高级语言程序设计自考题-1 答案解析(总分:98.00,做题时间:90 分钟)一、单项选择题(总题数:15,分数:30.00)1.设有以下定义 int a43=1,2,3,4,5,6,

14、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)(分数:2.00)A.B.C. D.解析:解析 “int *ptr3=a0“定义了指针数组 ptr 并给这个数组的第一个元素赋值“a0“,“*(*ptr+1)+4)“的含义是:取指针数组 ptr 的第一个元素值再加 5 所得的指针量指向的内存单元的值。2.下面程序输出的结果是( )main()struct cmplxint x;int y; cnum2=1,3,2,7;pri

15、ntf(“%d/n“,cnum0.y/cnum0.x*cnum1.x);A0 B1C3 D6(分数:2.00)A.B.C.D. 解析:解析 本题主要考查的知识点为结构型变量的赋值。要点透析 cnum0.y 为 3,cnum0.x 为 1,cnum1.x 为 2,故 3/1*2=6。3.变量定义并初始化正确的是( )Aint a=1,*p=a; Bint a=2,p=*a;Cint a=3,p=&a; Dint a=4,*p=&a;(分数:2.00)A.B.C.D. 解析:解析 A 项中,不能将一个变量赋值给一个指针变量;B 项中,*a 的表达方式错误;C 项中,不能将变量的地址赋给变量。4.设

16、 static int a3=1,2,3;int*p=&a0,&a1,&a2);则与数组元素 a1等价的是( ) A*p1 Bp1 C*p+1 Dp+1(分数:2.00)A. B.C.D.解析:5.常用的数学处理类系统函数所在的头文件是( ) Amathh Bctypeh Cdosh Dstdlibh(分数:2.00)A. B.C.D.解析:6.合法的用户标识符是( ) Adefault B#define Ca+b Dbook(分数:2.00)A.B.C.D. 解析:7.C 语言程序的三种基本结构是顺序结构、循环结构和( ) A选择结构 B递归结构 C嵌套结构 D转移结构(分数:2.00)A.

17、 B.C.D.解析:8.现有下列程序语句,执行后的结果是( ) #includestdioh void main() char s1100=“123“,s2100=“qwer“; puts(s1);puts(s2); printf(“%s%s“,s1,s2); A123 qwer 123 qwer B123 qwer 123qwer C123qwerl23qwer D123qwer 123qwer(分数:2.00)A.B. C.D.解析:解析 puts()函数的作用是输出字符数组中存放的字符串,并在输出完成后回车换行。9.以下程序的输出结果是(已知字母 a 的 ASC值比字母 A 的 ASC值

18、大 32)( ) main() int i; for(i=A;iI;i+,i+) printf(“%c“,i+36); ADEGIK Begik CEGIK Ddegik(分数:2.00)A.B. C.D.解析:解析 main() int i; for(i=A;iI;i+,i+)/*i 的初始值为字母 A 的 ASC值,循环条件为 iI,步进值为 2*/ printf(“%c“,i+36);/*ASC值加 36 后已进入小写字母区域*/ 10.设 char c=A;int i=1,j;,执行语句 j=!c&i+;后,i 和 j 的值分别是( )A0 和 1 B1 和 0C1 和 65 D2 和

19、 66(分数:2.00)A.B. C.D.解析:解析 由于!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 的值是( ) A1 B2 C6 D不确定(分数:2.00)A.B.C. D.解析:解析 当“ab“、“cb“、“bd“都成立时 x=2,只要有一个不成立就有 x=6。12.在循环结构中,continue 语句的作用是( )A继续执行本次循环 B提前退出多重循环C提前结束本次循环 D提前退出本重循环(分数:2.

20、00)A.B.C. D.解析:解析 continue 语句的作用是跳过 continue 之后的语句,重新判断循环控制条件,决定是否继续循环,故本题选 C。13.为了判定两个字符串是否相等应当使用( ) Aif(s1=s2) Bif(s1=s2) Cif(strcmp(s1,s2)=0) Dif(strcmp(s1,s2)=0)(分数:2.00)A.B.C. D.解析:14.阅读程序main()int a10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%x/n“,p);printf(“%x/n“,p+9);该程序有两个 printf 语句,如果第一个 printf

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

22、解析 本题主要考查的知识点为结构型变量所占用内存空间。要点透析 当定义了结构型变量时,需要给其分配内存,分配内存的字节数等于该结构型所有成员占用的字节数之和二、填空题(总题数:10,分数:20.00)16.一个字符型变量所占内存的字节数是 1。(分数:2.00)填空项 1:_ (正确答案:1)解析:17.若全局整型变量未初始化,则默认的初始值是 1。(分数:2.00)填空项 1:_ (正确答案:0)解析:18.按文件中数据存放的格式,可以把磁盘文件分为 1 和文本文件。(分数:2.00)填空项 1:_ (正确答案:二进制文件)解析:19.C 语言程序的注释可以出现在程序中的任何地方,它总是以

23、1 符号作为开始标记。(分数:2.00)填空项 1:_ (正确答案:/*或/)解析:20.可以将被调函数中获得的值返回给主调函数的语句是 1。(分数:2.00)填空项 1:_ (正确答案:return 或返回语句)解析:21.表示条件“10x100 或 x0“的 c 语言表达式是 1。(分数:2.00)填空项 1:_ (正确答案:x10x100x0)解析:22.设 int a=10;,则执行语句 a+=a-=a+a;后 a 的值是 1。(分数:2.00)填空项 1:_ (正确答案:-20)解析:23.若函数内定义变量的存储类别是 static,该变量被称为 1 静态变量。(分数:2.00)填空

24、项 1:_ (正确答案:内部(或局部))解析:24.文件包含命令是以 1 为开头的编译预处理命令。(分数:2.00)填空项 1:_ (正确答案:#include)解析:25.在执行循环结构或 switch 结构时,能够立即退出该结构的语句是 1。(分数:2.00)填空项 1:_ (正确答案:break)解析:三、程序分析题(总题数:4,分数:16.00)26.若输入 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;i=n;i+)

25、 printf(“%d“,aai); (分数:4.00)_正确答案:(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); 27.请在该程序段右侧写出其输出结果。 int aa33=2,4,6; main() int j,*p=aa00; for(j=0;j2;j+) if(j=0) aajj+1=*p+1; else+P; pr

26、int(“%d“,*p); (分数:4.00)_正确答案:(23)解析:解析 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。*/ 28.#inclucdestdioh void prly(int*x) pri

27、nlf(“%d/n“,+*x); main() int a=25; prty(a ): printf(“%d/n“,a ): (分数:4.00)_正确答案:(26)解析:解析 #includestdioh void prty(int*x) printf(“%d“,+*x);/*打印输出指针变量 x 所指向的内存单元的数据自增 1 后的值*/ main() int a=25; prty(a ): printf(“%d/n“,a );/*打印输出此时变量 a 的值。注意 main()函数对函数 prty()的调用所采用的参数传递方式是地址传递方式;即 a 的值会被函数 prty()改变*/ 29.

28、在 C 盘中有一个名为 temp.txt 的文本文件。#include stdio.h#include stdlib.hmain()int i,n;FILE*fp;if(fp=fopen(“c:/temp.txt“,“w+“)=NULL)printf(“can not set the temp file/n“);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“,&n);printf(“%3d“,n);fclose(fp);(分数:4.00)_正确答案:(

29、1 3 5 7 9)解析:四、程序填充题(总题数:3,分数:18.00)30.将一个十进制整数转变成一个二进制整数。 #includestdioh main() int i=0j,n,num20; scanf(“%d“,_);/*第一空*/ while(n!=0) numi+=_;/*第二空*/ n=_;)/*第三空*/ for(j=i-1;j=0;j-) printf(“Ha“,numj); printf(“/n“); (分数:6.00)填空项 1:_ (正确答案:n/*第一空。从键盘上输入十制数 n*/ n%2/*第二空。取余数填补低位*/ n/2/*第三空*。为下一次循环进行更高的一位运

30、算做准备/)解析:31.求数组 a 的所有元素之和。#define N 3void 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=%d/n“,sum);(分数:6.00)填空项 1:_ (正确答案:第一空:i+第二空:jN(或 j3)第三空:aij)解析:32.将 10 个数输入数组中,求出其中最大数和最小数并输出。 #includestdioh main() int i,max,min,a10;

31、 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); (分数:6.00)填空项 1:_ (正确答案:ai/*第一空。给数组的元素输入内容*/ i10/*第二空。循环并逐项比较*/ min=ai/*第三空。min 获得相对较小值*/)解析:五、程序设计题(总题数:2,分数:14.00)33.求出 10 到 500 之内能同时被 3、7 整除的数,并输

32、出;然后求出其和值。(分数:8.00)_正确答案:()解析:解析 #includestdioh main() int i,sum=0; for(i=10;i=500;i+)/*限定处理范围为 10500*/ if(i%3)=0(i%7)=0)/*判断是否能同时被 3、7 整除*/ printf(“%d/t“,i),sum+=i;/*输出该数并累加*/ printf(“/nsum=%d/n“,sum);/*输出和值*/ 34.在一个二维数组(定义为 int a55;)中形成并按下列形式输出矩阵各元素的值。 1 0 0 0 0 2 1 0 0 0 3 2 1 0 0 4 3 2 1 0 5 4 3 2 1(分数:6.00)_正确答案:(main() int i,j,a55 for(i=0;i5;i+) for(j=0;j5;j+) if(ij)aij=0; else aij=i-j+1; for(i=0;i5;i+) for(j=0;j5;j+)printf(“%5d“,aij); printf(“/n“) )解析:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1