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

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

1、高级语言程序设计自考题-14 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:15,分数:30.00)1.若定义 int i,*p;使 p指向 i的赋值语句是( )Ap=&i; B*p=&i;C*p=i; Dp=*&i;(分数:2.00)A.B.C.D.2.以下程序输出的结果是( )main()int *k,*a,b=50;a=&b;k=&a;printf(“%d/n“,*k);A运行出错 B50Ca 的地址 Db 的地址(分数:2.00)A.B.C.D.3.一个源文件中定义的全局变量的作用域为( )A本文件的全部范围 B本程序的全部范围C本函数的全部范围 D从定

2、义该变量开始至本文件结束(分数:2.00)A.B.C.D.4.在 C语言中,下列说法不正确的是( )A调用函数时,只能把实参的值传送给形参B在函数中,最好使用全局外部变量C形式参数只是局限于所在函数D被说明为 static存储类型的内部变量是全局变量(分数:2.00)A.B.C.D.5.C语言中规定,程序中各函数之间( )A既允许直接递归调用也允许间接递归调用B不允许直接递归调用也不允许间接递归调用C允许直接递归调用不允许间接递归调用D不允许直接递归调用允许间接递归调用(分数:2.00)A.B.C.D.6.C语言源程序中常定义多个不同的函数,函数之间不能通过( )传递数据。A虚实结合 B返回值

3、C同名的全局变量 D同名的局部变量(分数:2.00)A.B.C.D.7.函数调用语句 func(exp1,exp2),(exp3,exp4,exp5);中,实参的个数为( )A0 B3C2 D5(分数:2.00)A.B.C.D.8.下面程序的输出是( )void prtv(int *x)printf(“%d/n“,+ *x);main()int a=36;prtv(&a);A35 B36C37 D38(分数:2.00)A.B.C.D.9.关于指针运算符“*”的说法错误的是( )A是单目前缀运算符B运算对象只能是指针变量C运算结果是运算对象对应的变量或数组元素等D运算结合性是自右向左(分数:2.

4、00)A.B.C.D.10.设 int m5,*p=m;,与元素 m2等价的是( )Am+2 B*m+2C*(p+2) D*p+2(分数:2.00)A.B.C.D.11.阅读程序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语句输出的是 194,则第二个 printf语句的输出结果是( )A203 B204C1a4 D1a6(分数:2.00)A.B.C.D.12.设有数据定义语句“int i,j=7,*p=&i;”则与“i=j;”等

5、价的是( )Ai=*p; B*p=*&j;Ci=&j; Di=&p;(分数:2.00)A.B.C.D.13.设有定义语句“int x=6,*p=&x;”,则值不为 6的表达式是( )Ax B*pCp+0 D*&x(分数:2.00)A.B.C.D.14.对于 C语言中的函数,正确的叙述是( )A两个函数可以相互调用,但不能自己调用自己B程序执行可以始于任何一个函数,但结束必须在主函数C两个函数既可以定义成并列关系又可以定义成嵌套关系D一个 C程序可以由多个文件组成,一个文件又可以由多个函数组成(分数:2.00)A.B.C.D.15.定义函数时,省略函数的数据类型符,则默认的数据类型是( )Avo

6、id BcharCint Dfloat(分数:2.00)A.B.C.D.二、填空题(总题数:10,分数:20.00)16.“&”称为 1 运算符。(分数:2.00)填空项 1:_17.设有 char *a=“ABCD“,则 printf(“%c“,*a)的输出是 1。(分数:2.00)填空项 1:_18.函数间传递数据有四种方式:值传递、地址传递、 1 和全局变量传递。(分数:2.00)填空项 1:_19.值传递方式和地址传递方式都是在形参和实参之间传递数据,其区别在于值传递方式所传递的是 1。(分数:2.00)填空项 1:_20.当一个变量占用连续的若干个字节时, 1 的地址就是变量的地址。

7、(分数:2.00)填空项 1:_21.C语言中规定,在程序中表示一维数组首地址的表达式可以写成 1,还可写成数组名。(分数:2.00)填空项 1:_22.若函数要求返回一个值,则应在函数体中有一条 1 语句。(分数:2.00)填空项 1:_23.C程序中允许定义的寄存器变量一般以 1 个左右为宜。(分数:2.00)填空项 1:_24.表达式“tolower(B)”的值是 1。(分数:2.00)填空项 1:_25.执行下列程序后,*p 等于_。int a5=1,3,5,7,9,*p;p=a;p+;(分数:2.00)填空项 1:_三、程序分析题(总题数:4,分数:16.00)26.void mai

8、n()int i,a5,*p;for(i=4;i=0;i-):*(a+i)=i;for(p=a;pa+5;p+)printf(“%d/t“,*p);printf(“/n“);(分数:4.00)_27.void fot(int *p1,int *p2)printf(“%d,%d/n“,*(p1+),+*p2);int x=371,y=269;main()fot(&x,&y);fot(&x,&y);(分数:4.00)_28.main()int i,a5,*P=&a3;for(i=0;i5;i+) scanf(“%d,“,&ai); /输入 2,3,4,5,6 回车for(;P=a;P-) prin

9、tf(“%d/n“,*P);(分数:4.00)_29.main()int x36=1,2,3,4,5,6,7,8,9,(*P)6=x,s=0,k;for(k=0;k6;k+)s=s+*(*(p+1)+k);printf(“%d/n“,s);(分数:4.00)_四、程序填充题(总题数:3,分数:18.00)30.以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一个字符串存入一个字符数组,然后输出该字符数组中的字符串。main()char str51,*sptr;int i;for(i=0;i50;i+)stri=getchar();if(str j=/n)_;stri:_;sptr

10、=str;while(*sptr)putchar(*sptr_);(分数:6.00)填空项 1:_31.以下 Check函数的功能是将 value中的值四舍五入成整数,若计算后的值与 num的值相等,则显示“OK”,否则显示计算后的值。void Check(int num,float value)int val;val=_;printf(“计算后的值:%d“,val);if(_) printf(“/nOK/n“);_printf(“/nSorry,the correct answer is %d/n“,val);(分数:6.00)填空项 1:_32.以下程序的功能是将无符号八进制数字构成的字符

11、串转换为十进制整数。#include stringhmain()char s6,*p_;int n;gets(p);n=*p-_;while(_p!=/0)n=n*8+*p-0:printf(“%d/n“,n);(分数:6.00)填空项 1:_五、程序设计题(总题数:2,分数:16.00)33.编写程序,要求输入两个数,比较大小,输出大数和小数(用指针实现)。(分数:8.00)_34.在主函数中输入不同大小的实型数组,计算数组中元素的平均值。(分数:8.00)_高级语言程序设计自考题-14 答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:15,分数:30.00)1.

12、若定义 int i,*p;使 p指向 i的赋值语句是( )Ap=&i; B*p=&i;C*p=i; Dp=*&i;(分数:2.00)A. B.C.D.解析:解析 本题主要考查的知识点为指针变量的赋值。要点透析 i 是一个整型变量,p 是一个指针变量,p 中存放的只能是 i在内存中的地址值。2.以下程序输出的结果是( )main()int *k,*a,b=50;a=&b;k=&a;printf(“%d/n“,*k);A运行出错 B50Ca 的地址 Db 的地址(分数:2.00)A.B. C.D.解析:解析 本题主要考查的知识点为指针变量的赋值。要点透析 k 为指向指针的变量,k 指向指针变量 a

13、,a 指向变量 b。最后输出*k 的值等价于*a,等价于b,所以输出 50。3.一个源文件中定义的全局变量的作用域为( )A本文件的全部范围 B本程序的全部范围C本函数的全部范围 D从定义该变量开始至本文件结束(分数:2.00)A.B.C.D. 解析:解析 本题主要考查的知识点为全局变量的作用域。要点透析 全局变量的作用域是从定义点到整个程序结束,既从定义该变量时开始到该程序结束,全局变量都产生作用。4.在 C语言中,下列说法不正确的是( )A调用函数时,只能把实参的值传送给形参B在函数中,最好使用全局外部变量C形式参数只是局限于所在函数D被说明为 static存储类型的内部变量是全局变量(分

14、数:2.00)A.B. C.D.解析:解析 本题主要考查的知识点为全局外部变量。要点透析 全局外部变量破坏了模块的独立性,过多使用全局外部变量,会使程序很容易误用变量,出现混乱。5.C语言中规定,程序中各函数之间( )A既允许直接递归调用也允许间接递归调用B不允许直接递归调用也不允许间接递归调用C允许直接递归调用不允许间接递归调用D不允许直接递归调用允许间接递归调用(分数:2.00)A. B.C.D.解析:6.C语言源程序中常定义多个不同的函数,函数之间不能通过( )传递数据。A虚实结合 B返回值C同名的全局变量 D同名的局部变量(分数:2.00)A.B.C.D. 解析:7.函数调用语句 fu

15、nc(exp1,exp2),(exp3,exp4,exp5);中,实参的个数为( )A0 B3C2 D5(分数:2.00)A.B.C. D.解析:解析 本题主要考查的知识点为函数的参数。要点透析 此函数的实参只有两个,即两个逗号表达式(exp1,exp2)和(exp3,exp4,exp5)。8.下面程序的输出是( )void prtv(int *x)printf(“%d/n“,+ *x);main()int a=36;prtv(&a);A35 B36C37 D38(分数:2.00)A.B.C. D.解析:解析 本题主要考查的知识点为指针变量作为形参时的函数调用。要点透析 题中将变量 a的地址值

16、作为参数传给形参 int*x,+*x 即+a,故输出为 37。9.关于指针运算符“*”的说法错误的是( )A是单目前缀运算符B运算对象只能是指针变量C运算结果是运算对象对应的变量或数组元素等D运算结合性是自右向左(分数:2.00)A.B. C.D.解析:10.设 int m5,*p=m;,与元素 m2等价的是( )Am+2 B*m+2C*(p+2) D*p+2(分数:2.00)A.B.C. D.解析:解析 考查知识点为指针变量与一维数组的等价关系要点透析 当指针变量指向一维数组后,对下标为 i的数组元素引用一共有下列四种方法:*(指针变量+i)、*(数组名+i)、指针变量i、数组名i。11.阅

17、读程序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语句输出的是 194,则第二个 printf语句的输出结果是( )A203 B204C1a4 D1a6(分数:2.00)A.B.C.D. 解析:解析 本题主要考查的知识点为指针变量与一维数组的等价关系及地址值的计算。要点透析 输出 p为十六进制地址值,由于 p为 int型,所以 p+9相当于 p所对应的地址值加 18,也就是十六进制数 12,194 加 12为 1a6。12.设有数

18、据定义语句“int i,j=7,*p=&i;”则与“i=j;”等价的是( )Ai=*p; B*p=*&j;Ci=&j; Di=&p;(分数:2.00)A.B. C.D.解析:13.设有定义语句“int x=6,*p=&x;”,则值不为 6的表达式是( )Ax B*pCp+0 D*&x(分数:2.00)A.B.C. D.解析:解析 本题主要考查的知识点为指针变量。要点透析 p+0 就是 p,p 是 x的地址,不是表达式。14.对于 C语言中的函数,正确的叙述是( )A两个函数可以相互调用,但不能自己调用自己B程序执行可以始于任何一个函数,但结束必须在主函数C两个函数既可以定义成并列关系又可以定义

19、成嵌套关系D一个 C程序可以由多个文件组成,一个文件又可以由多个函数组成(分数:2.00)A.B.C.D. 解析:15.定义函数时,省略函数的数据类型符,则默认的数据类型是( )Avoid BcharCint Dfloat(分数:2.00)A.B.C. D.解析:解析 本题主要考查的知识点为函数的默认数据类型。要点透析 数据类型符确定了函数返回值的数据类型,如果没有返回值,必须用 void,省略数据类型符时,默认为 int。二、填空题(总题数:10,分数:20.00)16.“&”称为 1 运算符。(分数:2.00)填空项 1:_ (正确答案:取地址)解析:17.设有 char *a=“ABCD

20、“,则 printf(“%c“,*a)的输出是 1。(分数:2.00)填空项 1:_ (正确答案:A)解析:18.函数间传递数据有四种方式:值传递、地址传递、 1 和全局变量传递。(分数:2.00)填空项 1:_ (正确答案:返回值)解析:19.值传递方式和地址传递方式都是在形参和实参之间传递数据,其区别在于值传递方式所传递的是 1。(分数:2.00)填空项 1:_ (正确答案:参数值)解析:20.当一个变量占用连续的若干个字节时, 1 的地址就是变量的地址。(分数:2.00)填空项 1:_ (正确答案:第一个字节)解析:21.C语言中规定,在程序中表示一维数组首地址的表达式可以写成 1,还可

21、写成数组名。(分数:2.00)填空项 1:_ (正确答案:&数组名0)解析:22.若函数要求返回一个值,则应在函数体中有一条 1 语句。(分数:2.00)填空项 1:_ (正确答案:return(表达式))解析:23.C程序中允许定义的寄存器变量一般以 1 个左右为宜。(分数:2.00)填空项 1:_ (正确答案:2)解析:24.表达式“tolower(B)”的值是 1。(分数:2.00)填空项 1:_ (正确答案:b)解析:25.执行下列程序后,*p 等于_。int a5=1,3,5,7,9,*p;p=a;p+;(分数:2.00)填空项 1:_ (正确答案:3)解析:三、程序分析题(总题数:

22、4,分数:16.00)26.void main()int i,a5,*p;for(i=4;i=0;i-):*(a+i)=i;for(p=a;pa+5;p+)printf(“%d/t“,*p);printf(“/n“);(分数:4.00)_正确答案:(0 1 2 3 4)解析:27.void fot(int *p1,int *p2)printf(“%d,%d/n“,*(p1+),+*p2);int x=371,y=269;main()fot(&x,&y);fot(&x,&y);(分数:4.00)_正确答案:(371,270371,271)解析:28.main()int i,a5,*P=&a3;f

23、or(i=0;i5;i+) scanf(“%d,“,&ai); /输入 2,3,4,5,6 回车for(;P=a;P-) printf(“%d/n“,*P);(分数:4.00)_正确答案:(5432)解析:29.main()int x36=1,2,3,4,5,6,7,8,9,(*P)6=x,s=0,k;for(k=0;k6;k+)s=s+*(*(p+1)+k);printf(“%d/n“,s);(分数:4.00)_正确答案:(15)解析:四、程序填充题(总题数:3,分数:18.00)30.以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一个字符串存入一个字符数组,然后输出该字符数

24、组中的字符串。main()char str51,*sptr;int i;for(i=0;i50;i+)stri=getchar();if(str j=/n)_;stri:_;sptr=str;while(*sptr)putchar(*sptr_);(分数:6.00)填空项 1:_ (正确答案:break/0+)解析:31.以下 Check函数的功能是将 value中的值四舍五入成整数,若计算后的值与 num的值相等,则显示“OK”,否则显示计算后的值。void Check(int num,float value)int val;val=_;printf(“计算后的值:%d“,val);if(_

25、) printf(“/nOK/n“);_printf(“/nSorry,the correct answer is %d/n“,val);(分数:6.00)填空项 1:_ (正确答案:(int)(value*10+5)/10)num=valelse)解析:32.以下程序的功能是将无符号八进制数字构成的字符串转换为十进制整数。#include stringhmain()char s6,*p_;int n;gets(p);n=*p-_;while(_p!=/0)n=n*8+*p-0:printf(“%d/n“,n);(分数:6.00)填空项 1:_ (正确答案:=s0*+)解析:五、程序设计题(总

26、题数:2,分数:16.00)33.编写程序,要求输入两个数,比较大小,输出大数和小数(用指针实现)。(分数:8.00)_正确答案:(main() int a,b,*p1,*p2,*p;scanf(“%d,%d“,&a,&h);p1=&a;p2=&b;if(ab)p=p1;p1=p2;p2=p;printf(“max=%d,min=%d/n“,*p1,*p2);)解析:34.在主函数中输入不同大小的实型数组,计算数组中元素的平均值。(分数:8.00)_正确答案:(float average(float array,int n) in i;float sum=0,av:for(i=0;in;i+)

27、sum=sum+arrayi;av=sum/n;return av;Main() int i;float score16,score210,ave;printf(“please input 6 scores for score1:“);for(i=0;i6;i+)scanf(“%f“,&score1i);ave=average(score1,6);printf(“average score is%5.2f/n“,ave);printf(“please input 10 scores for score2:“);for(i=0;i10;i+)scanf(“%f“,&score2i);ave=average(score2,10);printf(“average score is%5.2f/n“,ave);)解析:

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

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

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