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

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

1、高级语言程序设计-2 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.若 x为 int型变量,则执行以下语句后,x 的值为( ) x=6; x=+x-=x*x(分数:2.00)A.6B.-24C.36D.-602.fgetc函数是作为一个从指定文件读入一个字符的函数,下列有关描述正确的是( )(分数:2.00)A.只能读二进制文件B.只能读文本文件C.其参数是一个指针变量D.其参数是一个字符串3.在定义了数组 int a610之后,对数组元素的引用不正确的是(分数:2.00)A.*(a6+2)B.a68C.*(a61+4)D.a6

2、+54.以下运算符中,优先级最低的是(分数:2.00)A.B.C.D.5.下面程序段执行后输出的结果是( ) #includestdioh main() int a22=1,2),5,7),*P,i; p=a00; for(i=0;i2;i+) “P+=i+1: printf(“%d“,*(p-2); (分数:2.00)A.1B.2C.5D.76.若当前文件目录为 C:/tc,在 C语句中下列能表示文件 tcc 的是(分数:2.00)A.tcB.C:tc/tcC.C/tc/tcD.C/tc7.下列语句中把 P定义为一个文件指针的是( )(分数:2.00)A.FILE *PB.FILE pC.f

3、ile PD.file *P8.下面程序段执行后输出的结果是( ) #includestdioh main() int i; for(i=1;i8;i+) if(i%3)printf(“*“);continue; printf(“#“); printf(“/n“); (分数:2.00)A.*#*#*#B.*#*#*C.*#*#*D.*#*9.在 C语言中,被视为程序模块的是( )(分数:2.00)A.语句B.行语句C.程序语句块D.函数10.在函数内定义变量时,存储类型符可省略的是(分数:2.00)A.staticB.externC.autoD.register11.下列关于 continue

4、和 break的描述正确的是( )(分数:2.00)A.continue只能用于循环体中B.break只能用于循环体中C.continue只是一个语句标记D.break只能用于 switch语句块中12.以下程序输出的结果是 #includestdioh int fun(int k) if(k0)fun(k-1); printf(“%d“,k); main() int w=3;fun(w); printf(“/n“); (分数:2.00)A.3 2 1 0B.0 1 2 3C.2 1 0D.0 1 213.下列关于 if和 else的配对规则描述正确的是( )(分数:2.00)A.else总是

5、和前面最远的 if配对B.else总是和前面最近的 if配对C.if和 else的配对按程序缩进格式进行D.else可以和前面所有的 if配对14.设 char *s=“china“;则 printf(“%s,%c,%c/n“,s,*s,s3);的输出是( )(分数:2.00)A.china,c,nB.china,china,iC.c,c,nD.china,china,n15.下列说法中正确的是(分数:2.00)A.字符/0是字符串的结束标记B.字符0是字符串的结束标记C.字符/o是字符串的结束标记D.字符o是字符串的结束标记二、B填空题/B(总题数:10,分数:20.00)16.设 char

6、 strl7=“ABCDEF“,str25=“xyz“;则执行语句: printf(“%d“,strlen(strcpy(str1,str2); 后的输出是_。(分数:2.00)填空项 1:_17.设 char a,b;,则表达式 a/c*b的值的类型为 1。(分数:2.00)填空项 1:_18.设 for(k=0;k0;k-)+k;,则该循环共执行 1 次。(分数:2.00)填空项 1:_19.19,表示空类型的保留字是 1。(分数:2.00)填空项 1:_20.在 C语言中,如果下面的变量都是 int类型,则输出的结果是_。 sum=pad=5; pad=sum+,pad+,+pad; p

7、rintf(“%d/n“,pad);(分数:2.00)填空项 1:_21.以下程序的输出结果是_。 #include main() int i=010,j=10; printf(“%d,%d/n“,+i,j-);(分数:2.00)填空项 1:_22.已知在 ASC代码中,字母 A的序号为 65,以下程序输出的结果是_。 #includestdioh main() char c1=A,c2=Y; printf(“%d,%d/n“,c1,c2); (分数:2.00)填空项 1:_23.指针 s所指字符串的长度为_。 char *s=“/“Name/Address/n“;(分数:2.00)填空项 1

8、:_24.以下程序运行后输出的结果是_。 main() int a=1,b; for(b=1;b=10;b+) (if(a=8)break; if(a%2=1)a+=5;continue; a-=3: printf(“%d/n“,b); (分数:2.00)填空项 1:_25.写出“n 是小于整数 m的偶数“的 C语言表达式: 1 。(分数:2.00)填空项 1:_三、B程序分析题/B(总题数:4,分数:16.00)26.输入数据:2743回车。 #includestdioh main() int c; while(c=getchar()!=n) switch(c-2) case 0: case

9、 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+2);break; printf(“/n“);(分数:4.00)_27.#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%d/n“,a,b); (分数:4.00)_28.若输入 3个整数 3,2,1回车则下面程序的输出结果是 #includestdioh main() in

10、t i,n,aa10=0,0,0,0,0,0; scanf(“%d%d%d“,n,aa0,aa1); for(i=0;i=n;i+) printf(“%d“,aai); (分数:4.00)_29.#includestdioh typedef struct abc int a,b,c; ; main() struct abe s2=1,2,3),4,5,6; int t=-s0a+s1b; printf(“%d/n“,t); (分数:4.00)_四、B程序填充题/B(总题数:3,分数:18.00)30.一个三位整数(100999),若各位数的立方和等于该数自身,则称其为“水仙花数“(如:153=

11、1 3+53+33),找出所有的这种数。 #includestdioh main() int n,a,b,c; for(c=1;c=9;c+) for(b=0;b=9;b+) for(a=0;_;a+)/*第一空*/ n=_;/*第二空*/ if(a*a*a+b*b*b+c*c*c=_)/*第三空*/ printf(“%d/n“,n); (分数:6.00)填空项 1:_31.将一个文本文件 madat 拷贝到另一个文本文件 nadat 中。 #includestdioh main() FILE*ma,*na; ma=fopen(“madat“,_);/*第一空*/ na=fopen(“nada

12、t“,“w“); while(!feof(ma)fputc(fgete(ma),_)/*第二空*/ felose(na);_;/*第三空*/ (分数: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=%d“,m

13、ax,min); (分数:6.00)填空项 1:_五、B程序设计题/B(总题数:2,分数:16.00)33.编一个程序其功能是输入一个正整数,判断是否是素数,若为素数则输出 1,否则输出 0。(素数是只能被 1和本身整除且大于 1的自然数)(分数:8.00)_34.有一个字符串,包含 n个字符。写一个函数,将此字符串中从第 m个字符开始的全部字符复制成为另一个字符串。要求在主函数中输入字符串及 m值并输出复制结果。(分数:8.00)_高级语言程序设计-2 答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.若 x为 int型变量,则执行

14、以下语句后,x 的值为( ) x=6; x=+x-=x*x(分数:2.00)A.6B.-24 C.36D.-60解析:解析 自反赋值运算符是自右向左结合的。2.fgetc函数是作为一个从指定文件读入一个字符的函数,下列有关描述正确的是( )(分数:2.00)A.只能读二进制文件B.只能读文本文件C.其参数是一个指针变量 D.其参数是一个字符串解析:3.在定义了数组 int a610之后,对数组元素的引用不正确的是(分数:2.00)A.*(a6+2)B.a68C.*(a61+4)D.a6+5 解析:4.以下运算符中,优先级最低的是(分数:2.00)A.B.C. D.解析:5.下面程序段执行后输出

15、的结果是( ) #includestdioh main() int a22=1,2),5,7),*P,i; p=a00; for(i=0;i2;i+) “P+=i+1: printf(“%d“,*(p-2); (分数:2.00)A.1B.2C.5 D.7解析:解析 #includestdioh main() int a22=1,2,5,7,*P,i; p=a00;for(i=0;i2;i+)/*循环条件为 i2,步进值为 1*/ *p+=i+1;/*赋值无效*/ printf(“%d“,*(p-2);6.若当前文件目录为 C:/tc,在 C语句中下列能表示文件 tcc 的是(分数:2.00)A

16、.tc B.C:tc/tcC.C/tc/tcD.C/tc解析:7.下列语句中把 P定义为一个文件指针的是( )(分数:2.00)A.FILE *P B.FILE pC.file PD.file *P解析:8.下面程序段执行后输出的结果是( ) #includestdioh main() int i; for(i=1;i8;i+) if(i%3)printf(“*“);continue; printf(“#“); printf(“/n“); (分数:2.00)A.*#*#*#B.*#*#* C.*#*#*D.*#*解析:解析 #includestdioh main() int i; for(i=

17、1;i8;i+)/*循环条件为 i8,步进值为 1*/ if(i%3)printf(“*“);continue;/*如果能被 3整除打印输出“*“,并跳过后面的语句直接执行下次徨*/ printf(“#“);/*如果不能被 3整除打印输出“#“*/ printf(“/n“); 9.在 C语言中,被视为程序模块的是( )(分数:2.00)A.语句B.行语句C.程序语句块D.函数 解析:10.在函数内定义变量时,存储类型符可省略的是(分数:2.00)A.staticB.externC.auto D.register解析:11.下列关于 continue和 break的描述正确的是( )(分数:2.

18、00)A.continue只能用于循环体中 B.break只能用于循环体中C.continue只是一个语句标记D.break只能用于 switch语句块中解析:12.以下程序输出的结果是 #includestdioh int fun(int k) if(k0)fun(k-1); printf(“%d“,k); main() int w=3;fun(w); printf(“/n“); (分数:2.00)A.3 2 1 0B.0 1 2 3 C.2 1 0D.0 1 2解析:解析 #includestdioh int fun(int k) if(k0)fun(k-1); printf(“%d“,k

19、); /*这是一个递归调用过程,先输出的是处于最底层的一次调用;即当 k=1时调用函数 fun()时的输出结果*/ main() int w=3;fun(w);/*调用函数 fun()*/ printf(“/n“); 13.下列关于 if和 else的配对规则描述正确的是( )(分数:2.00)A.else总是和前面最远的 if配对B.else总是和前面最近的 if配对 C.if和 else的配对按程序缩进格式进行D.else可以和前面所有的 if配对解析:14.设 char *s=“china“;则 printf(“%s,%c,%c/n“,s,*s,s3);的输出是( )(分数:2.00)A

20、.china,c,n B.china,china,iC.c,c,nD.china,china,n解析:15.下列说法中正确的是(分数:2.00)A.字符/0是字符串的结束标记 B.字符0是字符串的结束标记C.字符/o是字符串的结束标记D.字符o是字符串的结束标记解析:二、B填空题/B(总题数:10,分数:20.00)16.设 char strl7=“ABCDEF“,str25=“xyz“;则执行语句: printf(“%d“,strlen(strcpy(str1,str2); 后的输出是_。(分数:2.00)填空项 1:_ (正确答案:3)解析:解析 strcpy()是将字符串 str2复制到

21、 str1中,且 str1中原有的字符将被覆盖。17.设 char a,b;,则表达式 a/c*b的值的类型为 1。(分数:2.00)填空项 1:_ (正确答案:整型)解析:18.设 for(k=0;k0;k-)+k;,则该循环共执行 1 次。(分数:2.00)填空项 1:_ (正确答案:0)解析:解析 k 的初始值已经不能满足循环执行的条件了,故该循环体共执行了 0次。19.19,表示空类型的保留字是 1。(分数:2.00)填空项 1:_ (正确答案:void)解析:20.在 C语言中,如果下面的变量都是 int类型,则输出的结果是_。 sum=pad=5; pad=sum+,pad+,+p

22、ad; printf(“%d/n“,pad);(分数:2.00)填空项 1:_ (正确答案:7)解析:21.以下程序的输出结果是_。 #include main() int i=010,j=10; printf(“%d,%d/n“,+i,j-);(分数:2.00)填空项 1:_ (正确答案:9,10)解析:22.已知在 ASC代码中,字母 A的序号为 65,以下程序输出的结果是_。 #includestdioh main() char c1=A,c2=Y; printf(“%d,%d/n“,c1,c2); (分数:2.00)填空项 1:_ (正确答案:65,89)解析:23.指针 s所指字符串

23、的长度为_。 char *s=“/“Name/Address/n“;(分数:2.00)填空项 1:_ (正确答案:14)解析:24.以下程序运行后输出的结果是_。 main() int a=1,b; for(b=1;b=10;b+) (if(a=8)break; if(a%2=1)a+=5;continue; a-=3: printf(“%d/n“,b); (分数:2.00)填空项 1:_ (正确答案:4)解析:解析 main() int a=1,b; for(b=1;b=10;b+),/*b 从 1到 10,步进位为 1的循环*/ if(a=8)break;/*当 a=8 时循环被终止*/

24、if(a%2=1)a+=5;continue;/*如 a为奇数,则执行“a+=5;continue;“*/ a-=3;/*如果上述两条件 a都不满足则执行本行*/ printf(“%d/n“,b); 25.写出“n 是小于整数 m的偶数“的 C语言表达式: 1 。(分数:2.00)填空项 1:_ (正确答案:!(n%2)nm)解析:三、B程序分析题/B(总题数:4,分数:16.00)26.输入数据:2743回车。 #includestdioh main() int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4);

25、 case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+2);break; printf(“/n“);(分数:4.00)_正确答案:()解析:66877 解析 #includestdioh main() int c; while(c=getchar()!=/n/*从键盘获得字符*/ switch(c-2)/*开始进行分支选择*/ case 0: case 1:putchar(c+4);/*如果此行语句被执行,则其下面的一行语句将被无条件执行。*/ case 2:putchar(c+4);break;/*如果此行语句被执

26、行则仅执行这一行。*/ case 3:putchar(c+3);/*同 casel*/ case 4:putchar(c+2);break;/*同case3*/ printf(“/n“);27.#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%d/n“,a,b); (分数:4.00)_正确答案:()解析:20,10 解析 #includestdioh void swap(int *P,int *q)/*参数传递方式采用地址传递*/ i

27、nt t; t=*p;*p=*q;*q=t;/*交换 a与 b的值*/ main() int a=10,b=20;swap(a,b);/*调用函数 swap()*/ printf(“%d%d/n“,a,b);28.若输入 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+) printf(“%d“,aai); (分数:4.00)_正确答案:()解析:0000 解析 #includestdioh main() int i,

28、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); 29.#includestdioh typedef struct abc int a,b,c; ; main() struct abe s2=1,2,3),4,5,6; int t=-s0a+s1b; printf(“%d/n“,t); (分数:4.00)_正确答案:()解析:4 解析 #includestdioh typedef struct abc i

29、nt a,b,C; ;/*定义一个结构体类型*/ main() struct abc s2=1,2,3,4,5,6;/*定义一个结构体数组 s2并赋初值*/ int t=-s0a+s1b;/*引用结构体数组元素的成员进行计算,计算 t的值*/ printf(“%d/n“,t); 四、B程序填充题/B(总题数:3,分数:18.00)30.一个三位整数(100999),若各位数的立方和等于该数自身,则称其为“水仙花数“(如:153=1 3+53+33),找出所有的这种数。 #includestdioh main() int n,a,b,c; for(c=1;c=9;c+) for(b=0;b=9;

30、b+) for(a=0;_;a+)/*第一空*/ n=_;/*第二空*/ if(a*a*a+b*b*b+c*c*c=_)/*第三空*/ printf(“%d/n“,n); (分数:6.00)填空项 1:_ (正确答案:a=9/*第一空。明确个位数的范围(从 09)*/)解析:100*c+10*b+a/*第二空。计算并求出这个三位数*/ n/*第三空。将各位数的立方和与这个三位数进行比较以确定其是否为“水仙花数“*/31.将一个文本文件 madat 拷贝到另一个文本文件 nadat 中。 #includestdioh main() FILE*ma,*na; ma=fopen(“madat“,_)

31、;/*第一空*/ na=fopen(“nadat“,“w“); while(!feof(ma)fputc(fgete(ma),_)/*第二空*/ felose(na);_;/*第三空*/ (分数:6.00)填空项 1:_ (正确答案:“r“/*第一空。以只读方式打开文件 madat*/)解析:na/*第二空。向文件 nadat 输入从文件 madat 得到的字符*/ fclose(ma)/*第三空。关闭所有文件以结束复制过程*/32.将 10个数输入数组中,求出其中最大数和最小数并输出。 #includestdioh main() int i,max,min,a10; for(i=0;i10;

32、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 获得相对较小值*/五、B程序设计题/B(总题数:2,分数:16.00)33.编一个程序其功能是输入一个正整数,判断是否是素数,若为素数则输出 1,否则输出 0。

33、(素数是只能被 1和本身整除且大于 1的自然数)(分数:8.00)_正确答案:()解析:#includestdioh main() int i,x,y=1; scanf(“%d1,x);/*输入数值 x*/ for(i=2;i=x/2;i+) if(x%i=0)y=0;break/*用 x逐一对 2以上到 x/2之间的正整数求余*/ printf(“%d/n“,y); 34.有一个字符串,包含 n个字符。写一个函数,将此字符串中从第 m个字符开始的全部字符复制成为另一个字符串。要求在主函数中输入字符串及 m值并输出复制结果。(分数:8.00)_正确答案:()解析:#includestdioh

34、#includectypeh char copystr(char *p1,char *p2,int m) int n=0; while(nm-1)/*寻找第 m个字符*/ n+; p1+;) while(*p1!=/0)/*复制从第 m个字符到字符串结束这_段字符到*p2 中*/ *p2=*p1; p1+; p2+; *p2=/0; main() int m; char str180,str280; printf(“Please input a string(length80):/n“); scanf(“%s“,str1);printf(“/nWhich character starting from?/n“); scanf(“%d“,m); if(strlen(str1)m) printf(“/nError input!“); else copystr(str1,str2,m);/*调用函数 copystr()进行字符串输出*/ printf(“/nResuh is:%skn“,str2);

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

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

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