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

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

1、高级语言程序设计自考题-19 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_ A.数字字符 B.连接符 C.下画线 D.小写字母(分数:2.00)A.B.C.D.2.设已有定义:float x;,则以下对指针变量 P 进行定义并且赋初值的语句中正确的是U /U A.float *p=100; B.float p= C.float *p= D.int *p=(float)x;(分数:2.00)A.B.C.D.3.以下不能正确表示 (分数:2.00)A.B.C.D.4.

2、有以下程序段:int n,t=1,s=0;scanf(“%d“,dos=s+t;t=t-2;while(t!=n);为使程序段不陷入死循环,从键盘输入的应是_ A.任意正奇数 B.任意正偶数 C.任意负奇数 D.任意负偶数(分数:2.00)A.B.C.D.5.以下叙述正确的是_ A.调用 printf 函数时,必须要有输出项 B.在 C 语言中,整数可以十二进制、八进制或十六进制的形式输出 C.调用 getchar 函数读入字符时,可以从键盘上输入字符对应的 ASCII 码 D.调用 getchar 函数时,必须在之前包含文件 stdio.h(分数:2.00)A.B.C.D.6.函数调用“st

3、rcpy(str3,strcat(str1,str2)”的功能是_ A.将字符串 str1 复制到字符串 str2 中,再连接到字符串 str3 后 B.将字符串 str2 连接到 str1 后,再复制到 str3 中 C.将字符串 str1 连接到字符串 str2 后,再复制到 str3 D.将字符串 str2 复制到 str1 中,再连接到 str3 后(分数:2.00)A.B.C.D.7.有以下程序:main()int k=4,n=0;while(k0)switch(k)default:break;case 1:n+=k;case 2:case 3:n+=k;k-; printf(“%d

4、“,n);程序运行结果是_ A.0 B.7 C.6 D.4(分数:2.00)A.B.C.D.8.若有定义:int a56;则对 a 数组的第 i 行第 j 列(假设 i,j 已正确说明并赋值)元素的正确引用是_ A.*(*(a+i)+j) B.(a+i)j C.*(a+i+j) D.*(a+i)(分数:2.00)A.B.C.D.9.有如下程序:#includestdio.hmain()unsigned char a=8,c;c=a3;printf(“%d/n“,c);程序运行结果为_ A.32 B.16 C.0 D.1(分数:2.00)A.B.C.D.10.以下程序的输出结果是_#define

5、 f(x)x*xmain()int a=5,b=2;int c;c=f(a)/f(b);printf(“%d/n“,c); A.10 B.5 C.25 D.15(分数:2.00)A.B.C.D.11.以下叙述正确的是_ A.在 C 语言中,预处理命令执行都以“#”开头 B.预处理命令行必须位于 C 源程序的起始位置 C.#includestdio.h必须放在 C 程序开头 D.C 语言的预处理不能实现宏定义和条件编译功能(分数:2.00)A.B.C.D.12.若有语句:int *apple,a=4;和 apple=下面均代表地址的一组选项是_ A.a,apple,*b5=0;printf(“%

6、s“,b); A.Hello,friend B.Hello C.you D.以上都错(分数:2.00)A.B.C.D.14.存储整数-3421 时,在二进制文件和文本文件中占用的字节数分别是_ A.2 和 2 B.2 和 6 C.6 和 6 D.6 和 2(分数:2.00)A.B.C.D.15.设有下列数据定义语句,structint x;int y;d2=1,4,2,7;则“printf(“%d/n“,d0.y/d0.x*d1.x);“的输出是_ A.0 B.1 C.8 D.4(分数:2.00)A.B.C.D.二、B填空题/B(总题数:10,分数:20.00)16.C 语言中,float 型

7、数据占_字节,char 型数据占_字节。(分数:2.00)填空项 1:_17.字符串“12/021/x78“的长度为_。(分数:2.00)填空项 1:_18.如有定义 int a=5,b=2;则执行语句 b+=b-=a*=b 后 b 的值是_。(分数:2.00)填空项 1:_19.表达式 4 doprintf(“*“);x-;while(x);(分数:2.00)填空项 1:_22.设有数据定义语句 structchar n20;long m30;x;,则为变量 x 所分配的内存字节数是_个。(分数:2.00)填空项 1:_23.在 C 语言中,一个函数一般由两部分组成,它们是_和_。(分数:2

8、.00)填空项 1:_24.有语句 typedef int *ST;ST p;则 p 的类型是_。(分数:2.00)填空项 1:_25.文件打开时,原有文件内容不被删除,为位置指针移动到文件末尾,可做添加或读操作的方式是_。(分数:2.00)填空项 1:_三、B程序分析题/B(总题数:4,分数:16.00)26.#includestdio.h fun() static int a=0; a+=2;printf(“%d“,a); main() int aa; for(aa=1;aa4;aa+)fun(); printf(“/n“); (分数:4.00)_27.main() struct stud

9、ent char name10; float k1; float k2;a2=“tom“,50,60,“maker“,70,90,*p=a; int i; printf(“/n name:%s total=%f/n“,(XP).name,(*p).k1+(*p).k2); printf(“/n name:%s total=%f/n“,a1.name,a1.k1+a1.k2);(分数:4.00)_28.#includestdio.h char *ss(char * s) return s+strlen(s)/4; main() char *p,*str=“abcdefgh“; p=ss(str)

10、;printf(“%s/n“,p); (分数:4.00)_29.#includestdio.h int fun(int h) static int a3=2,3,4; int k; for(k=0;k3;k+)ak+=ak-h; for(k=1;k3k+)printf(“%d/t“,ak); return(ah); main() int t=1;fun(fun(t);(分数:4.00)_四、B程序填充题/B(总题数:3,分数:18.00)30.以下程序中的数组 a 包括 10 个整数元素,从 a 中第二个元素起,分别将后项减前项之差存入数组 b,并按每行 3 个元素输出数组 b。 #inclu

11、destdio.h main() int a10,b10,i; for(i=0;_;i+) /*第一空*/ scanf(“%d“, for(i=1=_;i+) /*第二空*/ bi=ai-ai-1; for(i=1;i10;i+) printf(“%3d“,bi); if(_)printf(“/n“); /*第三空*/ (分数:6.00)填空项 1:_31.输入 50 名学生的出生年月份,统计并输出每个月份过生日的学生人数。 #define N 50 void main() int i,month; int birth13=0;/*birth1birth12分别保存 112 月过生日的学生数*

12、/ for(i=1;i=N;i+) scanf(“%d“,_); /*第一空*/ if(_)birthmonth+; /*第二空*/ for(i=1;_;i+) /*第三空*/ printf(“%d month%d/n“,i,birthi); (分数:6.00)填空项 1:_32.在 C 盘根目录下创建一个名为“c.txt“的文本文件,文本文件的内容从键盘读取,直到遇到“/n“(回车键)为止。程序清单如下: #includestdio.h #include_/*第一空*/ void main() FILE *fp; char c; if(fp=fopen(“c:/c.txt“,“W“)=NUL

13、L) printf(“can not open file!/n“);exit(0); while(_)!=/n/*第二空*/ _;/*第三空*/ fclose(fp); (分数:6.00)填空项 1:_五、B程序设计题/B(总题数:2,分数:16.00)33.编一个程序其功能是从终端键盘输入一个正整数,判断是否是素数,若为素数则输出 1,否则输出0(素数是只能被 1 和本身整除且大于 1 的自然数)。(分数:8.00)_34.设计一个结构型,包含学生的学号、姓名、任课教师姓名。编程序,输入并将 100 名学生的信息存入结构型数组,再输入某位教师的姓名,然后统计并输出选学该教师课程的学生数目。(

14、分数:8.00)_高级语言程序设计自考题-19 答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:15,分数:30.00)1.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_ A.数字字符 B.连接符 C.下画线 D.小写字母(分数:2.00)A.B. C.D.解析:考点 标识符的命名规则 解析 用户标识符只包含三种字符:英文字母,下画线和数字字符。2.设已有定义:float x;,则以下对指针变量 P 进行定义并且赋初值的语句中正确的是U /U A.float *p=100; B.float p= C.float *p= D.int *p=(f

15、loat)x;(分数:2.00)A.B.C. D.解析:考点 指针的定义和初始化 解析 指针是用来存放地址的变量,用(类型名*指针变量名)的形式来定义,赋值时应将某个变量地址即 xscanf(“%d“,dos=s+t;t=t-2;while(t!=n);为使程序段不陷入死循环,从键盘输入的应是_ A.任意正奇数 B.任意正偶数 C.任意负奇数 D.任意负偶数(分数:2.00)A.B.C. D.解析:考点 循环语句 解析 此题目中变量 s 是迷惑考生的,变量 t 赋初值为 1,由语句 t=t-2;将使t 得到的是负奇数。5.以下叙述正确的是_ A.调用 printf 函数时,必须要有输出项 B.

16、在 C 语言中,整数可以十二进制、八进制或十六进制的形式输出 C.调用 getchar 函数读入字符时,可以从键盘上输入字符对应的 ASCII 码 D.调用 getchar 函数时,必须在之前包含文件 stdio.h(分数:2.00)A.B.C.D. 解析:考点 标准输入/输出函数 解析 在使用标准输入/输出库函数前,必须用预编译命令“#include”将头文件“stdio.h”包括到用户源文件中。调用 printf 函数时可以没有输出项,比如printf(“)是允许的。C 语言中整数的输出形式中没有十二进制的形式。getchar 函数读入字符时可以得到第一个输入字符的 ASCII 码,但无法

17、通过输入相应字符的 ASCII 码得到该字符。6.函数调用“strcpy(str3,strcat(str1,str2)”的功能是_ A.将字符串 str1 复制到字符串 str2 中,再连接到字符串 str3 后 B.将字符串 str2 连接到 str1 后,再复制到 str3 中 C.将字符串 str1 连接到字符串 str2 后,再复制到 str3 D.将字符串 str2 复制到 str1 中,再连接到 str3 后(分数:2.00)A.B. C.D.解析:考点 strcpy 函数和 strcat 函数 解析 strcpy(字符数组 1,字符数组 2)的功能是把字符数组2 的值复制到字符数

18、组 1 所指的存储空间,返回字符数组 1 的值;strcat(字符数组 1,字符数组 2)的功能是把字符数组 2 连接到字符数组 1 后面并自动覆盖字符数组 1 末尾的/0,返回字符数组 1 的地址值。7.有以下程序:main()int k=4,n=0;while(k0)switch(k)default:break;case 1:n+=k;case 2:case 3:n+=k;k-; printf(“%d“,n);程序运行结果是_ A.0 B.7 C.6 D.4(分数:2.00)A.B. C.D.解析:考点 switch 语句 解析 在 switch 语句中,表达式的值与某一个 case 后面

19、的常量表达式相等时,就执行该 case 后面的语句,若所有 case 中的常量表达式的值都无法匹配,则执行 default 语句,default 语句和 case 语句的出现次序 不影响执行结果。另外,需要注意的是,break 退出的只是 switch语句而不是 while 语句,case 语句后无 break 则按次序继续运行下去,直到运行完所有 case 语句或遇到break 语句结束。8.若有定义:int a56;则对 a 数组的第 i 行第 j 列(假设 i,j 已正确说明并赋值)元素的正确引用是_ A.*(*(a+i)+j) B.(a+i)j C.*(a+i+j) D.*(a+i)(

20、分数:2.00)A. B.C.D.解析:考点 二维数组元素的引用方法 解析 A 项中 a+i 指向数组的第 i+1 行,*(a+i)则是第 i+1 行第 0 列的地址值,*(a+j)+j 指向数组 a 的第 i+1 行第 j+1 列,*(*(a+i)+j)取到的是数组 a 的 aij元素。9.有如下程序:#includestdio.hmain()unsigned char a=8,c;c=a3;printf(“%d/n“,c);程序运行结果为_ A.32 B.16 C.0 D.1(分数:2.00)A.B.C.D. 解析:考点 位移运算符 解析 本题中将 8 赋值给字符变量 a,a 的二进制为

21、00001000,a3 的位运算是把 a 向右移动了 3 位,结果为 00000001,输出其十进制值为 1。10.以下程序的输出结果是_#define f(x)x*xmain()int a=5,b=2;int c;c=f(a)/f(b);printf(“%d/n“,c); A.10 B.5 C.25 D.15(分数:2.00)A.B.C. D.解析:考点 宏定义 解析 c=f(a)/f(b)展开为 c=a*a/b*b,即 c=5*5/2*2=25,因此选 C。11.以下叙述正确的是_ A.在 C 语言中,预处理命令执行都以“#”开头 B.预处理命令行必须位于 C 源程序的起始位置 C.#in

22、cludestdio.h必须放在 C 程序开头 D.C 语言的预处理不能实现宏定义和条件编译功能(分数:2.00)A. B.C.D.解析:考点 预处理命令 解析 预处理命令是以“#”开头的命令,它们不是 C 语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,所以 B,C 错误。C 语言的预处理能够实现 宏定义和条件编译等功能,所以 D 错误。12.若有语句:int *apple,a=4;和 apple=下面均代表地址的一组选项是_ A.a,apple,*b5=0;printf(“%s“,b); A.Hello,friend B.Hello C.y

23、ou D.以上都错(分数:2.00)A.B. C.D.解析:考点 字符串的输出 解析 b5=0,ASCII 码 0 对应的字符为/0,则把字符串中的逗号换成空格/0,“s”打印输出字符串时,遇到0停止,故选择 B。14.存储整数-3421 时,在二进制文件和文本文件中占用的字节数分别是_ A.2 和 2 B.2 和 6 C.6 和 6 D.6 和 2(分数:2.00)A.B. C.D.解析:考点 文本文件和二进制文件的存储 解析 二进制文件是把数据整体化为二进制存储,题中-3421 为短整型占两个字节,而文本文件是把数据转换成对应的 ASCII 码来存放的。15.设有下列数据定义语句,stru

24、ctint x;int y;d2=1,4,2,7;则“printf(“%d/n“,d0.y/d0.x*d1.x);“的输出是_ A.0 B.1 C.8 D.4(分数:2.00)A.B.C. D.解析:考点 结构体类型数组的引用 解析 题中定义了结构体类型数组 d2,并初始化。d0为1,4,d1为2,7,d0.y 引用的是 4,d0.x 引用的是 1,d1.x 引用的是 2,所以输出值为4/1*2=8。二、B填空题/B(总题数:10,分数:20.00)16.C 语言中,float 型数据占_字节,char 型数据占_字节。(分数:2.00)填空项 1:_ (正确答案:4,1)解析:考点 常量占的

25、字节数 解析 float 型数据一般在微型机中占 4 个字节,char 型数据占 1 个字节。17.字符串“12/021/x78“的长度为_。(分数:2.00)填空项 1:_ (正确答案:5)解析:考点 转义字符 解析 /021 是一个八进制数,/x78 为十六进制数,“为反斜杠,所以长度为5。18.如有定义 int a=5,b=2;则执行语句 b+=b-=a*=b 后 b 的值是_。(分数:2.00)填空项 1:_ (正确答案:-16)解析:考点 赋值表达式 解析 算术自反赋值运算符都是右结合性,从右开始算起。19.表达式 4 doprintf(“*“);x-;while(x);(分数:2.

26、00)填空项 1:_ (正确答案:* *)解析:考点 do-while 循环 解析 当 x=0 时循环结束。22.设有数据定义语句 structchar n20;long m30;x;,则为变量 x 所分配的内存字节数是_个。(分数:2.00)填空项 1:_ (正确答案:140)解析:考点 结构体变量的定义 解析 char n20占 20 个字节,long m30中,每个元素占 4 个字节,一共 120 个字节,所以为 x 分配的内存字节数为 140。23.在 C 语言中,一个函数一般由两部分组成,它们是_和_。(分数:2.00)填空项 1:_ (正确答案:函数头,函数体)解析:考点 函数的定

27、义 解析 通常把一对花括号括住的部分称为“函数体”,函数体前面的部分是函数头。24.有语句 typedef int *ST;ST p;则 p 的类型是_。(分数:2.00)填空项 1:_ (正确答案:指向整型的指针变量)解析:考点 用户自定义类型 解析 typedef 基本数据类型符*用户类型符定义了基本数据类型符类型的指针变量。25.文件打开时,原有文件内容不被删除,为位置指针移动到文件末尾,可做添加或读操作的方式是_。(分数:2.00)填空项 1:_ (正确答案:a+)解析:考点 文件的使用方式 解析 “a+”打开一个已存在的文本文件,可以读取数据,也可以写数据到文件尾部。三、B程序分析题

28、/B(总题数:4,分数:16.00)26.#includestdio.h fun() static int a=0; a+=2;printf(“%d“,a); main() int aa; for(aa=1;aa4;aa+)fun(); printf(“/n“); (分数:4.00)_正确答案:(246)解析:27.main() struct student char name10; float k1; float k2;a2=“tom“,50,60,“maker“,70,90,*p=a; int i; printf(“/n name:%s total=%f/n“,(XP).name,(*p)

29、.k1+(*p).k2); printf(“/n name:%s total=%f/n“,a1.name,a1.k1+a1.k2);(分数:4.00)_正确答案:(name:tom total=110.000000 name:make total=160.000000)解析:28.#includestdio.h char *ss(char * s) return s+strlen(s)/4; main() char *p,*str=“abcdefgh“; p=ss(str);printf(“%s/n“,p); (分数:4.00)_正确答案:(cdefgh)解析:29.#includestdio

30、.h int fun(int h) static int a3=2,3,4; int k; for(k=0;k3;k+)ak+=ak-h; for(k=1;k3k+)printf(“%d/t“,ak); return(ah); main() int t=1;fun(fun(t);(分数:4.00)_正确答案:(5 7 5 9(注意:static 只在第一次定义时运行)解析:四、B程序填充题/B(总题数:3,分数:18.00)30.以下程序中的数组 a 包括 10 个整数元素,从 a 中第二个元素起,分别将后项减前项之差存入数组 b,并按每行 3 个元素输出数组 b。 #includestdio

31、.h main() int a10,b10,i; for(i=0;_;i+) /*第一空*/ scanf(“%d“, for(i=1=_;i+) /*第二空*/ bi=ai-ai-1; for(i=1;i10;i+) printf(“%3d“,bi); if(_)printf(“/n“); /*第三空*/ (分数:6.00)填空项 1:_ (正确答案:i10 i10 i%3=O)解析:31.输入 50 名学生的出生年月份,统计并输出每个月份过生日的学生人数。 #define N 50 void main() int i,month; int birth13=0;/*birth1birth12分

32、别保存 112 月过生日的学生数*/ for(i=1;i=N;i+) scanf(“%d“,_); /*第一空*/ if(_)birthmonth+; /*第二空*/ for(i=1;_;i+) /*第三空*/ printf(“%d month%d/n“,i,birthi); (分数:6.00)填空项 1:_ (正确答案: char c; if(fp=fopen(“c:/c.txt“,“W“)=NULL) printf(“can not open file!/n“);exit(0); while(_)!=/n/*第二空*/ _;/*第三空*/ fclose(fp); (分数:6.00)填空项

33、1:_ (正确答案:stdlib.h c=getchar() fontc(c,fp))解析:五、B程序设计题/B(总题数:2,分数:16.00)33.编一个程序其功能是从终端键盘输入一个正整数,判断是否是素数,若为素数则输出 1,否则输出0(素数是只能被 1 和本身整除且大于 1 的自然数)。(分数:8.00)_正确答案:(#includestdio.h main() int i,x,y=1; scanf(“%d“,/*输入数值*/ for(i=2;i=x/2;i+) if(x%i=0)y=O;break;/*用 x 逐一对 2 以上到 x/2 之间的正整改数求余*/ printf(“%d/n

34、“,y); )解析:34.设计一个结构型,包含学生的学号、姓名、任课教师姓名。编程序,输入并将 100 名学生的信息存入结构型数组,再输入某位教师的姓名,然后统计并输出选学该教师课程的学生数目。(分数:8.00)_正确答案:(#include“string.h“ main() struct long num; char s_name10; char t_name10; s100,*p=s; int n=0; char name10; for(p=s;ps+100;p+) scanf(“%1d%s%s“, scanf(“%s“,name); for(p=s;ps+100;p+) if(strcmp(name,p-t_name)=0)n+; printf(“%s:%d/n“,name,n); )解析:

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

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

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