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

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

1、高级语言程序设计-3 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.在位移位运算中,操作数左移一位,其结果相当于操作数( )(分数:2.00)A.乘以 2B.除以 2C.乘以 4D.除以 42.若 x、y、z、m、n 均为 int型变量,则执行下面语句后 z的值为( ) m=10;n=5; x=(-m=n+)?-m:+n; y=m+; z=n;(分数:2.00)A.5B.6C.7D.103.定义函数时,下列选项中可以作为函数存储类型的是( )(分数:2.00)A.registerB.autoC.externD.void4.关于函

2、数 fseek(a,b,c)的说法错误的是( )(分数:2.00)A.参数 a是文件型指针,指向所需要的文件B.参数 b是 int型,表示从开始位置的偏移字节数C.参数 c是 int型,表示定位的起始位置D.函数返回值是 int型,定位正确返回 0;定位错误返回非 05.执行语句“char a10=“abcd“),* p=a;”后,*(p+2)的值是( )(分数:2.00)A.“abcd“B.bC.CD./06.下列程序段运行后,x 的值是( ) int a=1,b=0,x=1; if(!(-a)x-; if(b)x=7;else+x;(分数:2.00)A.0B.1C.7D.87.下列语言中不

3、属于面向过程的语言是( )(分数:2.00)A.B语言B.C语言C.汇编语言D.ALGOL语言8.下列关于 do-while语句的描述错误的是( )(分数:2.00)A.可构成多重循环结构B.循环次数不可能为 0C.循环次数可能为 0D.先执行后判断9.若有以下语句: int x=1,3,5,10,12; int * ptr=x; 则数据组元素“10”的地址是( )(分数:2.00)A.x+3B.(x+3)C.ptrD.ptr+1010.若有以下宏定义: #define N 2 #define Y(n) (n+1)*N) 则执行语句 z=8*N+Y(1);后 z的值为( )(分数:2.00)A

4、.20B.16C.14D.不确定11.函数调用“strcpy(str3,strcat(str1,str2)”的功能是( )(分数:2.00)A.将字符串 str1复制到字符串 str2中,再连接到字符串 str3后B.将字符串 str1连接到字符串 str2后,再复制到 str3中C.将字符串 str2连接到 str1后,再复制到 str3中D.将字符串 str2复制到 str1中,再连接到 str3后12.下列选项中不是转义字符的是( )(分数:2.00)A./B./0C./tD.O7413.若 a、b 为 int型变量,则执行以下语句后 a的值为( ) a=1;b=10; dob-=a;

5、a+;)while(b-0);(分数:2.00)A.1B.3C.4D.514.在 C语言中,c和“c“存储所占用的字节数分别是( )(分数:2.00)A.1,1B.1,2C.2,1D.2,215.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是( )(分数:2.00)A.数据的长度B.数组的首地址C.数组的第一个元素的值D.整个数据元素的值二、B填空题/B(总题数:10,分数:20.00)16.高级语言编写的程序被称为 1,它是不能在计算机上直接运行的,必须将其翻译成二进制程序后才能执行。(分数:2.00)填空项 1:_17.位运算的对象只能是 1。(分数:2.00)填空项 1:_1

6、8.下面程序的输出结果是_。 #includestdio. h main() static char b=“Hello!world!“; char *chp=b6; while(-chp=b0)putchar(*chp); putchar(/n); (分数:2.00)填空项 1:_19.请写出以下数学表达式的 C语言表达式: 1。(分数:2.00)填空项 1:_20.下列程序语句执行后的结果是_。 main() int x=f;printf(“%c/n“,A+(x-a+1);(分数:2.00)填空项 1:_21.表示条件“10x100 或 x0“的 c语言表达式是 1。(分数:2.00)填空项

7、 1:_22.若已知 a=10、b=20,则表达式!ab 的值为 1。(分数:2.00)填空项 1:_23.没 int b=2;表达式(b2)/(b1)的值是 1。(分数:2.00)填空项 1:_24.下列语句执行后输出的结果是_。 main() double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%d/n“,d*y); (分数:2.00)填空项 1:_25.如果形参是数组名,则传递方式称为“ 1“。(分数:2.00)填空项 1:_三、B程序分析题/B(总题数:4,分数:16.00)26.请在该程序段右侧写出其输出结果。 int aa33=2,

8、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)_27.请在该程序段右侧写出其输出结果。 main() int n3,j,k,l; for(j=0;j3;j+) nj=0; l=3: for(j=0;jl;j+) for(k=0;kl;k+) nk=nj+1: print(“%d/n“,n1); (分数:4.00)_28.请在该程序段右侧写出其输出结果。 fun3(int x) static int a=3; a+=x; return(a); main

9、() int k=2,m=1,n; n=fun3(k); n=fun3(m); printf(“%d/n“,n);)(分数:4.00)_29.请在该程序段右侧写出其输出结果。 main() char *s=“121“; int k=0,a=0,b=0; do k+: if(k%2=0) a=a+sk-0;continue;) b=b+sk-0; a=a+sk-0;while(sk+1); printf(“k=%d a=%d b=%d/n“,k,a,b); (分数:4.00)_四、B程序填充题/B(总题数:3,分数:18.00)30.输入一个字符串,(换行为结束标志)统计数字(09 不单独统计)

10、、空白和其他字符出现的次数。 #includestdio. h main() char C; int_;/*第一空*/ while(c=getchar()!=/n) if(_)/*第二空*/ digit+; else if(c=“c=/t)+blank; else_;/*第三空*/ printf(“digit=%d,blank=%d,other=%d“,digit,blank,other); (分数:6.00)填空项 1:_31.下面程序的作用是求以下算式中 X、Y、Z 的值,请在“_“处填入正确的内容。 main() int X,Y,Z,j,result=768; for(x=0;_;x+)

11、 /*第一空*/ for(y=0;y10;y+) for(z=0;z10;z+) j=( )+(100*y+10*z+z); /*第二空*/ if(_) /*第三空*/ printf(”X=%d,Y=%d,Z=%d/n”,x,y,z); (分数:6.00)填空项 1:_32.在 C盘根目录下创建一个名为”c. txt”的文本文件,文本文件的内容从键盘读取,直到遇到“/n“(回车键)为止。程序清单如下: #includestdioh #included_/*第一空*/ void main() FILE *fp; char c; if(fp=fopen(“C:/c.txt“,“_“)=NULL)/

12、*第二空*/ printf(“can not open file!/n“);exit(0);) while(_)!=/n)/*第三空*/ fput(c,fp); fclose(fp); (分数:6.00)填空项 1:_五、B程序设计题/B(总题数:2,分数:16.00)33.从键盘上输入若干个正整数,求其中最大数和最小数,输入的数以 0为终止标记。(分数:8.00)_34.用下列公式计算 的值:(精度要求为)。(分数:8.00)_高级语言程序设计-3 答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.在位移位运算中,操作数左移一位,其

13、结果相当于操作数( )(分数:2.00)A.乘以 2 B.除以 2C.乘以 4D.除以 4解析:解析 本题主要考查考牛对移位运算的理解。左移位时,原有各位的值向左移动一位,即各位的值由低位向高位移动一位,移出的空位补 0。而计算机中所使用的数据都是以二进制数的形式表示,左移一位的结果是原先的 2倍。2.若 x、y、z、m、n 均为 int型变量,则执行下面语句后 z的值为( ) m=10;n=5; x=(-m=n+)?-m:+n; y=m+; z=n;(分数:2.00)A.5B.6C.7 D.10解析:解析在整个语句执行的过程中,n 一共自加了两次。第一次在“(-m=n+)?“条件判定中,第二

14、次在判定条件不成立时选择执行“:“后的语句“+n;“。故 n=7。3.定义函数时,下列选项中可以作为函数存储类型的是( )(分数:2.00)A.registerB.autoC.extern D.void解析:4.关于函数 fseek(a,b,c)的说法错误的是( )(分数:2.00)A.参数 a是文件型指针,指向所需要的文件B.参数 b是 int型,表示从开始位置的偏移字节数 C.参数 c是 int型,表示定位的起始位置D.函数返回值是 int型,定位正确返回 0;定位错误返回非 0解析:解析 参数 b是长整型,表示从开始位置的偏移字节数。5.执行语句“char a10=“abcd“),* p

15、=a;”后,*(p+2)的值是( )(分数:2.00)A.“abcd“B.bC.C D./0解析:6.下列程序段运行后,x 的值是( ) int a=1,b=0,x=1; if(!(-a)x-; if(b)x=7;else+x;(分数:2.00)A.0B.1 C.7D.8解析:解析 本题主要考查考生对单目运算符“-“和“+“的掌握。这两个单目运算符如果是前缀则先减或加 1,后使用对象;如果是后缀则先使用对象,后减或加 1。只要使用了这两个运算符,变量最终的值一定是进行减或加 1运算后的值。 int a=1,b=0,x=1;/*此处定义并给 a、b、c 三个整型变量赋值*/ if(!(-a)x-

16、;/*如果 a进行减 1运算后的值为“0“则 x减 1,如果不为“0“则跳过*/ if(b)x=7;else+x;/*如果 b不为“0“则变量 x被赋值为“7“,如果 b为“0“则 x加 1*/7.下列语言中不属于面向过程的语言是( )(分数:2.00)A.B语言B.C语言C.汇编语言 D.ALGOL语言解析:8.下列关于 do-while语句的描述错误的是( )(分数:2.00)A.可构成多重循环结构B.循环次数不可能为 0C.循环次数可能为 0 D.先执行后判断解析:9.若有以下语句: int x=1,3,5,10,12; int * ptr=x; 则数据组元素“10”的地址是( )(分数

17、:2.00)A.x+3 B.(x+3)C.ptrD.ptr+10解析:解析 数组名代表数组的首地址。计算数组元素的地址时将数组首地址加上相应的偏移量即可。10.若有以下宏定义: #define N 2 #define Y(n) (n+1)*N) 则执行语句 z=8*N+Y(1);后 z的值为( )(分数:2.00)A.20 B.16C.14D.不确定解析:11.函数调用“strcpy(str3,strcat(str1,str2)”的功能是( )(分数:2.00)A.将字符串 str1复制到字符串 str2中,再连接到字符串 str3后B.将字符串 str1连接到字符串 str2后,再复制到 s

18、tr3中C.将字符串 str2连接到 str1后,再复制到 str3中 D.将字符串 str2复制到 str1中,再连接到 str3后解析:12.下列选项中不是转义字符的是( )(分数:2.00)A./B./0C./tD.O74 解析:13.若 a、b 为 int型变量,则执行以下语句后 a的值为( ) a=1;b=10; dob-=a; a+;)while(b-0);(分数:2.00)A.1B.3C.4D.5 解析:解析当第一次进入循环时 a=1,先执行“b-=a;a+;“此时 b=9,a=2;然后判定 b是否小于 0。如果 b小于 0,断续执行循环体;如果 b不小于 0,循环终止。完成判定

19、后 b自减 1。如此循环体被执行四次,最终因 b=-30 而终止。循环终止时 a=5、b=-4。14.在 C语言中,c和“c“存储所占用的字节数分别是( )(分数:2.00)A.1,1B.1,2 C.2,1D.2,2解析:15.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是( )(分数:2.00)A.数据的长度B.数组的首地址 C.数组的第一个元素的值D.整个数据元素的值解析:解析 数组名通常表示的是数组的首地址,故答案选 B。二、B填空题/B(总题数:10,分数:20.00)16.高级语言编写的程序被称为 1,它是不能在计算机上直接运行的,必须将其翻译成二进制程序后才能执行。(分

20、数:2.00)填空项 1:_ (正确答案:源程序)解析:17.位运算的对象只能是 1。(分数:2.00)填空项 1:_ (正确答案:整型数据)解析:18.下面程序的输出结果是_。 #includestdio. h main() static char b=“Hello!world!“; char *chp=b6; while(-chp=b0)putchar(*chp); putchar(/n); (分数:2.00)填空项 1:_ (正确答案:!olleH)解析:解析“b6“所表示的位置是“w“的位置;“while(-chp=b0)putchar(*chp);“中由于“-“是前置的,所以在执行判

21、定前指针“chp“先行自减 1。循环体“while(-chp=b0)putchar(*chp);“结束的条件是“chpb0“,循环过程中输出相应字符。19.请写出以下数学表达式的 C语言表达式: 1。(分数:2.00)填空项 1:_ (正确答案:a/(b*c)-2*d)解析:20.下列程序语句执行后的结果是_。 main() int x=f;printf(“%c/n“,A+(x-a+1);(分数:2.00)填空项 1:_ (正确答案:G)解析:解析x=f则f-a=5,A+5+1=G。对一下 ASC码表就行了。21.表示条件“10x100 或 x0“的 c语言表达式是 1。(分数:2.00)填空

22、项 1:_ (正确答案:x10x100x0)解析:22.若已知 a=10、b=20,则表达式!ab 的值为 1。(分数:2.00)填空项 1:_ (正确答案:1)解析:23.没 int b=2;表达式(b2)/(b1)的值是 1。(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 因 b=2,其二进制表达式为。0000010(若计算机为八位机)。右移两化后其值为00000000(右移时高位补 0;其十进制值为 0),最终得出表达式的值为 0。24.下列语句执行后输出的结果是_。 main() double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; pri

23、ntf(“%d/n“,d*y); (分数:2.00)填空项 1:_ (正确答案:0)解析:解析因定义的变量 x和 y都是 int型,故在执行语句“x=1.2;“时 x获得的值是 1;在执行语句“y=(x+3.8)/5.0;“时,x 以所获得的值“1“参加运算,最终“(x+3.8)/5.0“的值小于 1。故 y所获得的值为0。25.如果形参是数组名,则传递方式称为“ 1“。(分数:2.00)填空项 1:_ (正确答案:地址传递方式)解析:三、B程序分析题/B(总题数:4,分数:16.00)26.请在该程序段右侧写出其输出结果。 int aa33=2,4,6; main() int j,*p=aa

24、00; for(j=0;j2;j+) if(j=0) aajj+1=*p+1; else+P; print(“%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第

25、二次打印 a01。*/ 27.请在该程序段右侧写出其输出结果。 main() int n3,j,k,l; for(j=0;j3;j+) nj=0; l=3: for(j=0;jl;j+) for(k=0;kl;k+) nk=nj+1: print(“%d/n“,n1); (分数:4.00)_正确答案:()解析:5 解析 main() int n3,j,k,l; for(j=0;j3;j+) nj=0; /*给数组元素赋初值“0“*/ l=3: for(j=0;jl;j+) /*限定循环三次*/ for(k=0;kl;k+) /*限定循环三次*/ nk=nj+1; /*每次循环加 1,注意每次循

26、环 nj的值是不同的*/ printf(“%d/n“,n1); 28.请在该程序段右侧写出其输出结果。 fun3(int x) static int a=3; a+=x; return(a); main() int k=2,m=1,n; n=fun3(k); n=fun3(m); printf(“%d/n“,n);)(分数:4.00)_正确答案:()解析:4 解析 fun3(int x) static int a=3; a+=x; /*a 获得 a+x的值*/ return(a); /*返同 a的值*/ main() intk=2,m=1,n; n=fun3(k); n=fun3(m); /*

27、此处 n获得的值是 fun3(m)的值,覆盖了此前 fun3(k)的值*/ printf(“%d/n“,n);29.请在该程序段右侧写出其输出结果。 main() char *s=“121“; int k=0,a=0,b=0; do k+: if(k%2=0) a=a+sk-0;continue;) b=b+sk-0; a=a+sk-0;while(sk+1); printf(“k=%d a=%d b=%d/n“,k,a,b); (分数:4.00)_正确答案:()解析:k=2 a=3 b=2 解析 main() char *s=“121“; /*获得字符数组“121“的首地址*/ int k=

28、0,a=0,b=0: do k+; if(k%2=0) a=at sk-0;continue;) /*“0“以 ASC值参与运算*/ b=b+sk-0; /*数组 s内的元素以 ASC值参与运算*/ a=a+sk-0;while(sk+1); /*循环终止条件是 sk+1为空*/ printf(“k=%d a=%d b=%d/n“,k,a,b); 四、B程序填充题/B(总题数:3,分数:18.00)30.输入一个字符串,(换行为结束标志)统计数字(09 不单独统计)、空白和其他字符出现的次数。 #includestdio. h main() char C; int_;/*第一空*/ while

29、(c=getchar()!=/n) if(_)/*第二空*/ digit+; else if(c=“c=/t)+blank; else_;/*第三空*/ printf(“digit=%d,blank=%d,other=%d“,digit,blank,other); (分数:6.00)填空项 1:_ (正确答案:digit=0,blank=0,other=0/*第一空。*/)解析:定义三个变量并赋以 0的初值,以分别记录三种类型字符的个数。 c=0c=9/*第二空。判断字符是否为数字,满足条件就是数字。*/ other+/*第三空。如上述两个条件都不能满足,则说明该字符为其他字符;变量 othe

30、r自加 1以做记录。*/31.下面程序的作用是求以下算式中 X、Y、Z 的值,请在“_“处填入正确的内容。 main() int X,Y,Z,j,result=768; for(x=0;_;x+) /*第一空*/ for(y=0;y10;y+) for(z=0;z10;z+) j=( )+(100*y+10*z+z); /*第二空*/ if(_) /*第三空*/ printf(”X=%d,Y=%d,Z=%d/n”,x,y,z); (分数:6.00)填空项 1:_ (正确答案:x10/*第一空,因 x可能是 09 之间的任意数字,故循环上限条件是 x10*/)解析:100*x+10*y+z/*第

31、二空,此处为算式中加数 XYZ的数学表达式*/ j=resuh /*第三空,判定计算结果是否满足算式要求*/32.在 C盘根目录下创建一个名为”c. txt”的文本文件,文本文件的内容从键盘读取,直到遇到“/n“(回车键)为止。程序清单如下: #includestdioh #included_/*第一空*/ void main() FILE *fp; char c; if(fp=fopen(“C:/c.txt“,“_“)=NULL)/*第二空*/ printf(“can not open file!/n“);exit(0);) while(_)!=/n)/*第三空*/ fput(c,fp);

32、fclose(fp); (分数:6.00)填空项 1:_ (正确答案:stdlibh/*第一空。“exit(0)“函数所在的头文件是“stdlihh“,故需在编译时加入“stdlihh“头文件*/)解析:w/*第二空,“W“表示的打开文件的模式,若文件不存在则自动建立一个新文件接受写入数据*/ c=getchar()/*第三空,此处是一个判定条件,判定从键盘输入数据是否满足条件*/五、B程序设计题/B(总题数:2,分数:16.00)33.从键盘上输入若干个正整数,求其中最大数和最小数,输入的数以 0为终止标记。(分数:8.00)_正确答案:()解析:#includestdioh main()

33、int x,max=0,min=0; scanf(“%d“,x); while(x) /*此处的判定条件见为需要,当输入“0“时断开循环*/ if(xmin)min=x; if(xmax)max=x; sanf(“%d“,x); /*此处是在循环体内的输入语句,是对整个循环的支撑*/ printt(“%d,%d/n“,max,min); 34.用下列公式计算 的值:(精度要求为)。(分数:8.00)_正确答案:()解析:#includestdioh #inchldemathh main() float pi=0.0n=1.0,s=1.0,t; dot=s/n; pi+=t; s*=(-1.0); /*以上三条语句的顺序相当重要,也是整个程序的核心*/ n+=2: while(fabs(t)=le-4); /*此处以确定所得到的值是否满足的精度要求*/ printf(“pi=%f/n“,4*pi);

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

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

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