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

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

1、高级语言程序设计-1 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.下列不属于面向机器语言的是( )(分数:2.00)A.符号语言B.二进制语言C.汇编语言D.C 语言2.执行下列程序段后,*p 的值是( ) char *p=“asdf“; printf(“%c“,*(p+strlen(p);(分数:2.00)A.语句错误B.sC.dD.a3.设 char str100;int I=5;,则引用数组元素的错误形式的是( )(分数:2.00)A.strI+10B.*(srr+C.(str+I-1)D.*(str+)+4.通常适用于

2、从被调用函数中将一个值传回主调函数的参数传递方式是( )(分数:2.00)A.利用返回值数据传递方式B.利用形参与实参传递数据的方式C.利用全局变量传递数据的方式D.以上都不对5.设 a=5,b=3;,执行语句“printf(“%d,%d,(a,b),(b,a);“输出是( )(分数:2.00)A.5,3B.3,5C.5,5D.3,36.下列关于函数的说法不正确的是( )(分数:2.00)A.函数是一个可反复使用的程序段B.main()函数也可以做被调函数C.函数参数的输入和输出统称为“函数问数据的传递“D.从定义的角度来分,可分为用户函数和系统函数两类7.字符串“2008 Olympic“在

3、存储单元中所占用的字节数是( )(分数:2.00)A.9B.10C.11D.138.当执行以下程序段时( ) doy-;while(-y) printf(“%d/n“,y-);(分数:2.00)A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误9.设 int b=2;表达式(b2)/(b1)的值是( )(分数:2.00)A.2B.4C.6D.810.设置变量定义为:int a=0x53;int b=6;,求表达式ab 的值(假定现有计算机字长为 16)( )(分数:2.00)A.82B.-82C.72D.-7211.为了判定两个字符串是否相等应当使用( )(

4、分数:2.00)A.if(s1=s2)B.if(s1=s2)C.if(strcmp(s1,s2)=0)D.if(strcmp(s1,s2)=0)12.设 char c5=a,b,/0,C,/0);则 printf(“%s“,c);的输出是( )(分数:2.00)A.abB.abC.abcD.“ab/0c“13.下列关于文件随机定位函数 fseek()的描述正确的是( )(分数:2.00)A.若定位正确返回非零值B.包含在头文件 stdlih 中C.本函数只能用于二进制文件D.本函数可以使用文件内部指针直接指向需要的某个数据14.以下程序的运行结果是( ) #includestdioh main

5、() int a=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a5,*q=NULL; printf(“%d%d/n“,*p,*q);(分数:2.00)A.运行后报错B.6 0C.6 12D.5 515.下列表达式的值为 0 的是( )(分数:2.00)A.3%5B.3*5C.3/5.0D.35二、B填空题/B(总题数:10,分数:20.00)16.有以下程序 #includestdioh main() char s=“159“,*P; p=s; printf(“%C“,*p+); printf(“%C“,*p+); 程序运行后的输出结果是_。(分数:2.00)填空项

6、1:_17.以下程序运行时若从键盘输入:10 20 30回车,输出结果是_。 #includestdioh main() int i=0,j=0,k=0; scanf(“%d%*d%d“,i,j,k); printf(“%d%d%d/n“,i,j,k); (分数:2.00)填空项 1:_18.有如下程序 #includestdioh int rune(int a,int b) return(a+b);) main() int x=2,y=5,z=8,r; r=rune(rune(x,y),z); printf(“%dkn“,r); 该程序的输出结果是_。(分数:2.00)填空项 1:_19.表

7、示整数 X 的绝对值大于 5 时值为“真“的 C 语言表达式是: 1。(分数:2.00)填空项 1:_20.用来定义寄存器类型变量的 C 语言保留字是 1。(分数:2.00)填空项 1:_21.分别用十进制表示整形常量-0xlf 为 1。(分数:2.00)填空项 1:_22.在 Turbo C 中语言源程序的扩展名为 1。(分数:2.00)填空项 1:_23.在函数调用过程中,如果形参是指针变量,则实参必须是 1。(分数:2.00)填空项 1:_24.判断一个字符是否是英文字母的函数是 1。(分数:2.00)填空项 1:_25.读字符串函数是 1。(分数:2.00)填空项 1:_三、B程序分析

8、题/B(总题数:4,分数:16.00)26.#includestdioh void fun(int m,int n,int ar4,int*bar) int i,j,x; for(i=0;i3;i+) x=ari0; for(j=0;j3;j+) bari=X; main() int a34=12,41,36,28,19,33,15,27,3,27,19,1),b3,i; fun(3,4,a,b); for(i=0;i3;i+)printf(“%4d“,bi); printf(“/n“); (分数:4.00)_27.#includestdioh void swap(int x,int y) i

9、nt t; t=x;x=y;y=t; printf(“%d%d“,x,y); main() int a=3,b=4; swap(a,b); printf(“%d%d/n“,a,b); (分数:4.00)_28.#includestdioh main() char *a=“12134211“; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k=strlen(a);k+) switch(*a+) default:v4+; case1:v1+; case3:v3+; case2:v2+;) printf(“v1=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3

10、,v4);(分数:4.00)_29.#includestdioh int fun(int h) static int a3=1,2,3); int k; for(k=0;k3;k+)ak+=ak-h; for(k=1;k3;k+)printf(“%d/t“,ak); return(ah); main() int t=1;fun(fun(t);(分数:4.00)_四、B程序填充题/B(总题数:3,分数:18.00)30.以下程序求 a 数组中的所有素数的和,函数 isprime 用来判断自变量是否为素数。素数是只能被 1 和本身整除且大于 1 的自然数。 #includestdioh int i

11、sprime(int x) int i,r=1; for(i=2;i=x/2;i+) if(x%i=0)r=0;break;) _;/*第一空*/ main() int i,a10,sum=0; printf(“Enter 10 nums:/n“); for(i=0;i10;i+) scanf(“%d“,ai); for(i=0;i10;i+) if(_)/*第二空*/(printf(“%d“,ai); _;/*第三空*/ printf(“/nThe sum=%d/n“,sum); (分数:6.00)填空项 1:_31.下面程序的功能是调用函数 fun 计算:m=1-2+3-4+9-10,并输

12、出结果。 #includestdioh int fun(int n) intm=0,f=1,i; for(_;i-n;i+)/*第一空*/ m+=i*f; f=_;/*第二空*/ return m; main() printf(“m=%d/n“,_);)/*第三空*/(分数:6.00)填空项 1:_32.下面程序的功能是:先从键盘上输入一个 3 行 3 列矩阵的各个元素的值,然后输出主对角线之和。 #includestdioh main() int a33,sum; int i,j; _;/*第一空*/ for(i=0;i3;i+) for(_)/*第二空*/ scanf(“%d“,aij);

13、 for(i=0;i3;i+) sum=_;/*第三空*/ printf(“sum=%d/n“,sum); (分数:6.00)填空项 1:_五、B程序设计题/B(总题数:2,分数:16.00)33.编程要求输出两个字符串对应位置相等的字符,并输出其位置号(自然编号)。(分数:8.00)_34.建立一个磁盘文件,文件名由键盘输入,文件内容也由键盘输入。文件内容的输入以“*“作为输入结束标志。(分数:8.00)_高级语言程序设计-1 答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.下列不属于面向机器语言的是( )(分数:2.00)A.符

14、号语言B.二进制语言C.汇编语言D.C 语言 解析:2.执行下列程序段后,*p 的值是( ) char *p=“asdf“; printf(“%c“,*(p+strlen(p);(分数:2.00)A.语句错误B.sC.dD.a 解析:解析 指针变量 P 在得到初值“asdf“之后没有初改变过,P 就是字符串“asdf“的首地址故*P 的值为 a。3.设 char str100;int I=5;,则引用数组元素的错误形式的是( )(分数:2.00)A.strI+10B.*(srr+C.(str+I-1)D.*(str+)+ 解析:4.通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是(

15、 )(分数:2.00)A.利用返回值数据传递方式 B.利用形参与实参传递数据的方式C.利用全局变量传递数据的方式D.以上都不对解析:5.设 a=5,b=3;,执行语句“printf(“%d,%d,(a,b),(b,a);“输出是( )(分数:2.00)A.5,3B.3,5 C.5,5D.3,3解析:6.下列关于函数的说法不正确的是( )(分数:2.00)A.函数是一个可反复使用的程序段B.main()函数也可以做被调函数 C.函数参数的输入和输出统称为“函数问数据的传递“D.从定义的角度来分,可分为用户函数和系统函数两类解析:7.字符串“2008 Olympic“在存储单元中所占用的字节数是(

16、 )(分数:2.00)A.9B.10C.11D.13 解析:8.当执行以下程序段时( ) doy-;while(-y) printf(“%d/n“,y-);(分数:2.00)A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次 D.系统将提示有语法错误解析:解析 变量 y 无初值,系统默认非空。循环将无限次地被执行下去。9.设 int b=2;表达式(b2)/(b1)的值是( )(分数:2.00)A.2B.4C.6D.8 解析:解析 左移位运算移一位相当于乘 2,右移位运算右移一位相当于除 2。10.设置变量定义为:int a=0x53;int b=6;,求表达式ab 的值(假定现有

17、计算机字长为 16)( )(分数:2.00)A.82B.-82 C.72D.-72解析:解析 因计算机字长为 16故 a 的二制表示是 0000000001010011,b 的二进制表示是0000000000000110。 运算符“自右向左结合,运算符“是自左向右结合;且运算符“的优先级高于运算符“的优先级,则进行计算的顺序是“(a)b“。最终计算结果是 1111111101010010(十进制值为-82)。11.为了判定两个字符串是否相等应当使用( )(分数:2.00)A.if(s1=s2)B.if(s1=s2)C.if(strcmp(s1,s2)=0) D.if(strcmp(s1,s2)

18、=0)解析:12.设 char c5=a,b,/0,C,/0);则 printf(“%s“,c);的输出是( )(分数:2.00)A.abB.ab C.abcD.“ab/0c“解析:13.下列关于文件随机定位函数 fseek()的描述正确的是( )(分数:2.00)A.若定位正确返回非零值B.包含在头文件 stdlih 中C.本函数只能用于二进制文件D.本函数可以使用文件内部指针直接指向需要的某个数据 解析:14.以下程序的运行结果是( ) #includestdioh main() int a=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a5,*q=NULL; pr

19、intf(“%d%d/n“,*p,*q);(分数:2.00)A.运行后报错 B.6 0C.6 12D.5 5解析:解析 #includestdioh main() int a=1,234,5,6,7,8,9,10,11,12; int*p=a5,*q=NULL; printf(“%d%d/n“,*P,*q);/*被置空的指针不能参与“*“运算*/ 15.下列表达式的值为 0 的是( )(分数:2.00)A.3%5B.3*5C.3/5.0D.35 解析:解析 35 不为真,故表达式的值为 0。二、B填空题/B(总题数:10,分数:20.00)16.有以下程序 #includestdioh mai

20、n() char s=“159“,*P; p=s; printf(“%C“,*p+); printf(“%C“,*p+); 程序运行后的输出结果是_。(分数:2.00)填空项 1:_ (正确答案:15)解析:17.以下程序运行时若从键盘输入:10 20 30回车,输出结果是_。 #includestdioh main() int i=0,j=0,k=0; scanf(“%d%*d%d“,i,j,k); printf(“%d%d%d/n“,i,j,k); (分数:2.00)填空项 1:_ (正确答案:10300)解析:解析 #includestdioh main() int i=0,j=0,k=

21、0; scanf(“%d%*d%d“,i,j,k);/*“%*d“不被识别,但仍然占位;故 i,j 分别获得值 10 和 30而k 的值默认被初始化为 0*/ printf(“%d%d%d/n“,i,j,k); 18.有如下程序 #includestdioh int rune(int a,int b) return(a+b);) main() int x=2,y=5,z=8,r; r=rune(rune(x,y),z); printf(“%dkn“,r); 该程序的输出结果是_。(分数:2.00)填空项 1:_ (正确答案:15)解析:解析 #includestdioh int rune(in

22、t a,int b) return(a+b); main() int x=2,y=5,z=8,r; r=rune(rune(x,y),z);/*主函数反复嵌套调用函数 rune(),r 的实际计算过程为r=x+y+z*/ printf(“%d/n“,r); 19.表示整数 X 的绝对值大于 5 时值为“真“的 C 语言表达式是: 1。(分数:2.00)填空项 1:_ (正确答案:x5x-5)解析:20.用来定义寄存器类型变量的 C 语言保留字是 1。(分数:2.00)填空项 1:_ (正确答案:register)解析:21.分别用十进制表示整形常量-0xlf 为 1。(分数:2.00)填空项

23、1:_ (正确答案:-31)解析:22.在 Turbo C 中语言源程序的扩展名为 1。(分数:2.00)填空项 1:_ (正确答案:c)解析:23.在函数调用过程中,如果形参是指针变量,则实参必须是 1。(分数:2.00)填空项 1:_ (正确答案:地址表达式)解析:24.判断一个字符是否是英文字母的函数是 1。(分数:2.00)填空项 1:_ (正确答案:isalpha-|_|-)解析:25.读字符串函数是 1。(分数:2.00)填空项 1:_ (正确答案:fgets-|_|-)解析:三、B程序分析题/B(总题数:4,分数:16.00)26.#includestdioh void fun(

24、int m,int n,int ar4,int*bar) int i,j,x; for(i=0;i3;i+) x=ari0; for(j=0;j3;j+) bari=X; main() int a34=12,41,36,28,19,33,15,27,3,27,19,1),b3,i; fun(3,4,a,b); for(i=0;i3;i+)printf(“%4d“,bi); printf(“/n“); (分数:4.00)_正确答案:()解析:12 19 3 解析 #includestdioh void fun(int m,int n,int ar4,int*bar)/*定义函数并定义其形参变最,

25、其中数组 ar 是一个每行只有 4 个元素的数组*/ int i,j,x; for(i=0;im;i+) x=ari0; for(j=0;jn;j+) barj=x; main() int a34=“12,41,36,28,19,33,15,27,3,27,19,1),b4,i; fun(3,4,a,b); for(i=0;i3;i+)printf(“%4d“,bi);/*采用格式化输出,以 4 位的宽度输出褴数 bi,左边不是的位数以空格填充* printf(“/n“); 27.#includestdioh void swap(int x,int y) int t; t=x;x=y;y=t;

26、 printf(“%d%d“,x,y); main() int a=3,b=4; swap(a,b); printf(“%d%d/n“,a,b); (分数:4.00)_正确答案:()解析:4 3 3 4 解析 #includestdioh void swap(int x,int y)/*形参为整型变量,参数传递的方式为非地址传递方式*/ int t; t=x;x=y;y=h printf(“%d%d“,x,y); main() int a=3,b=4; swap(a,b);/*调用 swap()函数*/ printf(“%d%d/n“,a,b);/*对函数 swap()的调用并没有政变变量 a

27、 和 b 的值*/ 28.#includestdioh main() char *a=“12134211“; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k=strlen(a);k+) switch(*a+) default:v4+; case1:v1+; case3:v3+; case2:v2+;) printf(“v1=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3,v4);(分数:4.00)_正确答案:()解析:v1=3,v2=5,v3=4,v4=1 解折: #includestdioh main3() char *a=“12131211“;

28、int v1=0,v2=0,v3=0,v4=0,k; for(k=0;kstrlen(a);k+)/*,循环被终止的条件是 k 的值大于字符串 a 的长度 8*/ switch(*a+)/*选择的条件是数组 a 的元素,并且 a 作为于指针变量有一个自增 1 运算*/ default:v4+; case1:v1+; case3:v3+; case2:v2+/*因没有 break 语句,从符介条什的语句开始,每一行 case 语句都会被执行*/ printf(“vt=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3,v4); 29.#includestdioh int fun(i

29、nt h) static int a3=1,2,3); int k; for(k=0;k3;k+)ak+=ak-h; for(k=1;k3;k+)printf(“%d/t“,ak); return(ah); main() int t=1;fun(fun(t);(分数:4.00)_正确答案:()解析:3 5 3 7 解析 #includestdioh int fun(int h) static int a3=1,2,3;/*定义一个静态数组 a。每次使用其元素退出后,值都会被保留*/ int k; for(k=0;k3;k+)ak+=ak-h; for(k=1;k3;k+)printf(“%d/

30、t“,ak); return(ah); main() int t=1;fun(fun(t);) 四、B程序填充题/B(总题数:3,分数:18.00)30.以下程序求 a 数组中的所有素数的和,函数 isprime 用来判断自变量是否为素数。素数是只能被 1 和本身整除且大于 1 的自然数。 #includestdioh int isprime(int x) int i,r=1; for(i=2;i=x/2;i+) if(x%i=0)r=0;break;) _;/*第一空*/ main() int i,a10,sum=0; printf(“Enter 10 nums:/n“); for(i=0;

31、i10;i+) scanf(“%d“,ai); for(i=0;i10;i+) if(_)/*第二空*/(printf(“%d“,ai); _;/*第三空*/ printf(“/nThe sum=%d/n“,sum); (分数:6.00)填空项 1:_ (正确答案:return r/*第一空。函数 isprime()是用来判断给定的一个数是否是素数,进行判断之后应当给予主调函数一个回应,即返回值。*/)解析:isprime(ai)=1/*第二空。调用函数 isprime()判断数组元素是否为素数。*/ sum+=ai/*第三空。对被判断为素数的数组元素进行求和运算。*/31.下面程序的功能是调

32、用函数 fun 计算:m=1-2+3-4+9-10,并输出结果。 #includestdioh int fun(int n) intm=0,f=1,i; for(_;i-n;i+)/*第一空*/ m+=i*f; f=_;/*第二空*/ return m; main() printf(“m=%d/n“,_);)/*第三空*/(分数:6.00)填空项 1:_ (正确答案:i=1/*第一空。公式“m=1-2+3-4+9-10“中第一项的值为1,故 i 的初值应为 1。*/)解析:f*(-1)/*第二空。公式的规律是;所有的偶数项都为负值。*/ fun(10)/*第三空。公式的最大项为10,故调用函数

33、 fun()时参数传递的数值应为 10。*/32.下面程序的功能是:先从键盘上输入一个 3 行 3 列矩阵的各个元素的值,然后输出主对角线之和。 #includestdioh main() int a33,sum; int i,j; _;/*第一空*/ for(i=0;i3;i+) for(_)/*第二空*/ scanf(“%d“,aij); for(i=0;i3;i+) sum=_;/*第三空*/ printf(“sum=%d/n“,sum); (分数:6.00)填空项 1:_ (正确答案:sum=0/*第一空。对和变量 sum 进行初始化。*/)解析:j=0;j3;j+/*第二空。对数组元

34、素的初始化过程,定义列宽度。*/ sum+aii/*第三空。对对角线数组元素进行求和。*/五、B程序设计题/B(总题数:2,分数:16.00)33.编程要求输出两个字符串对应位置相等的字符,并输出其位置号(自然编号)。(分数:8.00)_正确答案:()解析:解析 #includestdioh main() char*c,*s; int i=0; gets(c);/*字符数组 c 获得字符串内容*/ gets(s);/*字符数组 s 获得字符串内容*/ while(eisi)/*相应位置的两个字符都不为空*/ if(ci=si)/*判断相应位置的字符是否相同*/ printf(“%c/t“,ci

35、);/*输出该字符*/ printf(“%d/n“,i+1);/*输出该字符的位置号(自然编号)*/ 34.建立一个磁盘文件,文件名由键盘输入,文件内容也由键盘输入。文件内容的输入以“*“作为输入结束标志。(分数:8.00)_正确答案:()解析:解析 #includestdioh #includestdlibh main() char ch,fname20; FILE *fp; scanf(“%s“,fname); if(fp=fopen(fname,“w“)=NULL)/*如果 fp 为空则创建文件失败*/ printf(“Can not open the file required“); exit(0); ch=getchar(); while(ch=*) fputc(ch,fp); putchar(ch); eh=getchar(); /*对文件输入内容*/ fclose(fp);/*关闭文件*/

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

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

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