【计算机类职业资格】二级C语言笔试-340及答案解析.doc

上传人:registerpick115 文档编号:1326144 上传时间:2019-10-17 格式:DOC 页数:25 大小:76KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-340及答案解析.doc_第1页
第1页 / 共25页
【计算机类职业资格】二级C语言笔试-340及答案解析.doc_第2页
第2页 / 共25页
【计算机类职业资格】二级C语言笔试-340及答案解析.doc_第3页
第3页 / 共25页
【计算机类职业资格】二级C语言笔试-340及答案解析.doc_第4页
第4页 / 共25页
【计算机类职业资格】二级C语言笔试-340及答案解析.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、二级 C语言笔试-340 及答案解析(总分:77.00,做题时间:90 分钟)一、选择题(总题数:35,分数:54.00)1.没有关系 R和 S,关系代数表达式为 R-(R-S)表示的是A) RDS B) R-S C) RUS D) RS(分数:2.00)A.B.C.D.2.下列叙述中正确的是A) 栈是“先进先出”的线性表B) 队列是“先进后出”的线性表C) 循环队列中元素的个数是由队头指针和队尾指针共同决定的D) 循环队列中队头指针是固定不变的(分数:1.00)A.B.C.D.3.以下正确的程序段是A) char str1=“12345“,str2=“abcdef“;B) char str1

2、0,*st=“abcde“;strcat(str,st);C) charstr10=“ “。*st=“abcde“;strcat(str,st);D) char*st1=“12345“,*st2=“abcde“;strcat(st1,st2);(分数:2.00)A.B.C.D.4.结构化程序设计的核心和基础是( )。A) 结构化分析方法 B) 结构化设计方法C) 结构化设计理论 D) 结构化编程方法(分数:2.00)A.B.C.D.5.设有定义:int a,+pa=a;,以下 scanf语句中能正确为变量 a读入数据的是( )。A) scanf(“%d“,pa ); B) scanf(“%d“

3、,a );C) scanf(%d“,pa ); D) scanf(“%d“,*pa );(分数:2.00)A.B.C.D.6.下列叙述中正确的是( )。A) 一个算法的空间复杂度大,则其时间复杂度必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对(分数:2.00)A.B.C.D.7.若希望下列的程序运行后输出 25,程序空白处的正确选项是( )。main()int i,j50,a7,4,10,5,8;for( )j+ai;primf(“%d,j-40);A) i=1;i4;+i B) i=1;i3;+i C) i=

4、4;i2;i- D) i=2;i4;+i(分数:2.00)A.B.C.D.8.下述函数功能是_。int fun(char*x)char *y=x;while(*y+);return y-x-1;A) 求字符串的长度 B) 求字符串存放的位置C) 比较两个字符串的大小 D) 将字符串 x连接到字符串 y后面(分数:1.00)A.B.C.D.9.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码 33被放到第( )个位置。A) 3 B) 5 C) 7 D) 9(分数:2.00)A

5、.B.C.D.10.以下程序运行后的输出结果是void f(int n,int *r)int r1=0;if(n%3=0) r1=n/3;else if(n%5=0) r1=n/5;else f(-n,f(m, in; i+)y=y+3;for (j=0;j=(2*n);j+)x+;A) O(10g2n) B)O(n) C) O(nlog2n) D) O(n2)(分数:1.00)A.B.C.D.16.下列能正确定义一维数组的选项是( )。A) int a5=0,1,2,3,4,5; B) char a=0,1,2,3,4,5;C) char a=A,B,C; D) int a5=“0123“;

6、(分数:2.00)A.B.C.D.17.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )。A) c1c2 B) c1c2 C) c2 D) c1|c2(分数:2.00)A.B.C.D.18.有定义语句:int*p4;以下选项中与此语句等价的是( )。 A) int p4; B) int *p; C) int*(p4); D) int(*p)4;(分数:2.00)A.B.C.D.19.程序段:int i=65536;prinff(“%d/n“,i);,则输出结果是_。A65536 B0 C有语法错误,无输出结果 D-1(分数:2.00)A.B.C.D.20.已知大

7、写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量/101是A) 字符 A B) 字符 a C) 字符 e D) 非法的常量(分数:1.00)A.B.C.D.21.在 DOS环境下,为了得到 TYPE命令的帮助信息,正确的 DOS命令为A) TYPE B) TYPE/H C) TYPE/* D) TYPE/?(分数:1.00)A.B.C.D.22.下列叙述中正确的是_。(A) 线性链表是线性表的链式存储结构(B) 栈与队列是非线性结构(C) 双向链表是非线性结构(D) 只有根结点的二叉树是线性结构(分数:2.00)A.B.C.D.23.若函数调

8、用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。A) 函数的实参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不会占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数:2.00)A.B.C.D.24.若变量 a、i 已正确定义,且 i已正确赋值,合法的语句是_。A) a=1 B) +i; C) a=a+=5; D) a=int(i);(分数:1.00)A.B.C.D.25.下列程序的输出结果是( )。main()int p8=11,12,13,14,15,16,17,18,i=0,j=0;while(i+7) if(p

9、i%2) j+=pi;printf(“%d/n“,j);A) 42 B) 45 C) 56 D) 60(分数:2.00)A.B.C.D.26.下列程序执行后的输出结果是 ( )#define MA(x) x*(x-1)main()int a1,b2;printf(“%d/n“,MA(1+a+B ) );A) 5 B) 6 C) 7 D) 8(分数:1.00)A.B.C.D.27.若有以下程序:#includestdio.hvoid f(int n);main( )void f(int n);f(5);void f(int n) printf(“%d/n“,n);则下列叙述中不正确的是A) 若只

10、在 main中对函数 f进行说明,则只能在 main中正确调用函数 fB) 在 main前对函数 f进行说明,则在 main和其后的其他函数中都可以正确调用函数 fC) 对于以上程序,编译时系统会提示出错信息:提示对 f函数重复说明D) 函数 f无返回值,所以可用 void将其类型定义为无返回值型(分数:2.00)A.B.C.D.28.设 x和 y均为 int型变量,则以下语句:“x+=y;y=x-y;x-=y;”的功能是_。A) 把 x和 y按从大到小排列 B) 把 x和 y按从小到大排列C) 无确定结果 D) 交换 x和 y中的值(分数:1.00)A.B.C.D.29.下列描述中,不是线性

11、表顺序存储结构特征的是( )。A) 不便于插入和删除 B) 需要连续的存储空间C) 可随机访问 D) 需另外开辟空间来保存元素之间的关系(分数:2.00)A.B.C.D.30.有以下程序:main()int x,i;for(i=1;i=50;i+)x=i:if(x%2=0)if(x%3=0)if(x%7=0)printf(“%d“,i);输出结果是( )。A) 28 B) 27 C) 42 D) 41(分数:1.00)A.B.C.D.31.若二维数组 a有 m列,则在 aij刚前的元素个数为( )。A) i*m+j-1 B) i*m+j C) j*m+i D) i*m+j+1(分数:1.00)

12、A.B.C.D.32.有以下程序:main()char *p=“3697“,“2584“;int i, j; long num=0;for(i=0;i2;i+)j=0;while(pij!=/0)if(pilj -0)%2) num=10*num+ pij -0;j+=2;printf(“%d/n“, num);程序执行后的输出结果是 ( )。A) 35 B) 37 C) 39 D) 3975(分数:1.00)A.B.C.D.33.有如下程序:main()int n=9;while(n6)n-; printf(“%d“, n);该程序的输出结果是( )。A) 987 B) 876 C) 876

13、5 D) 9876(分数:1.00)A.B.C.D.34.将 E-R图转换到关系模式时,实体与联系都可以表示成_。A) 属性 B) 关系 C) 键 D) 域(分数:2.00)A.B.C.D.35.下面概念中,不属于面向对象方法的是A) 对象 B) 继承 C) 类 D) 过程调用(分数:1.00)A.B.C.D.二、填空题(总题数:14,分数:23.00)36.以下程序运行后的输出结果是_。int a=5;fun(int b ) static int a=10;a+=b+;printf(“%d“,a ) ;main()int c=20; fun(c ) ;a+=c+;printf(“%d/n“,

14、a ) ;(分数:1.00)填空项 1:_37.在 C语言中(以 16位 PC机为例),一个 int型数据在内存中所占的字节数为_;一个 float型数据在内存中所占的字节数为_。(分数:2.00)填空项 1:_38.C语言中用 1 表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。(分数:2.00)填空项 1:_39.以下程序的输出结果是_。main()int arr=30,25,20,15,10,5,*p=arr;p+;printf(“%d/n“,*(p+3);(分数:1.00)填空项 1:_40.mystrlen函数的功能是计算 str所指字符串的长度,并作为函数值返回。请填空。int

15、 mystrlen(char * str)int i;for (i0; _ )!/0;i+ +)return _);(分数:1.00)填空项 1:_41.数据库设计分为以下 6个设计阶段:需求分析阶段、 1、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(分数:2.00)填空项 1:_42.下列语句能循环_次。int s=12;while(s);-S;(分数:2.00)填空项 1:_43.以下程序中给指针 P分配三个 double型动态内存单元,请填空:#includestdiohmain()double*p;p=(double*)malloc_;p0=1.5;p1=2.5;p2=3.

16、5;printf(“%f%f%f/n“,p0,p1,p2);(分数:1.00)填空项 1:_44.下列语句的输出结果是_。char s20= “aaaa“,*sp=s;puts(strcat(sp,“AAAAA“);(分数:2.00)填空项 1:_45.在一个容量为 32的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_46.常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD ),则应采用 1 方法。(分数:2.00)填空项 1:_47.下述函数统计一个字符串中的单词个数,单词是

17、指处在空格之间的字符序列,请填空。int word(char*s)int num=0,flag=0;while(*s)if(_=) flag=0;else if(_)flag=1;num+return_(分数:2.00)填空项 1:_48.以下程序的功能是:对输入的一行字符串的数字字符按它们的字面值累加,输出此累加和。例如,输入一行字符是:ab34dh8u,输出值应当是 15。请填空。#include stdio.h#include ctype.hmain()char ch; int a,s;_;while(ch=getchar()_)if( isdigit (ch)a=_;s+=a;prin

18、tf(“s=%d/n/n“,s);(分数:1.00)填空项 1:_49.以下程序的功能是从名为“filea. dat”的文本文件中逐个读入字符并显示在屏幕上,请填空。#includestdio.hmain()FILE *fp; char ch; fp=fopen(_); ch=fgetc(fp);while(_(fp)putchar(ch); ch=fgetc(fp); putchar(/n); fclose(fp); (分数:2.00)填空项 1:_二级 C语言笔试-340 答案解析(总分:77.00,做题时间:90 分钟)一、选择题(总题数:35,分数:54.00)1.没有关系 R和 S,

19、关系代数表达式为 R-(R-S)表示的是A) RDS B) R-S C) RUS D) RS(分数:2.00)A. B.C.D.解析:解析 R-S 表示属于 R但不属于 S,R-(R-S)表示属于 R但不属于(R-S),即相当于 RS。2.下列叙述中正确的是A) 栈是“先进先出”的线性表B) 队列是“先进后出”的线性表C) 循环队列中元素的个数是由队头指针和队尾指针共同决定的D) 循环队列中队头指针是固定不变的(分数:1.00)A.B.C. D.解析:解析 栈是“先进后出”的线性表;队列是“先进先出”的线性表;在循环队列结构中,每进行一次入队运算,队头指针就进 1,队头指针和队尾指针一起反映队

20、列中元素的动态变化情况。3.以下正确的程序段是A) char str1=“12345“,str2=“abcdef“;B) char str10,*st=“abcde“;strcat(str,st);C) charstr10=“ “。*st=“abcde“;strcat(str,st);D) char*st1=“12345“,*st2=“abcde“;strcat(st1,st2);(分数:2.00)A.B.C. D.解析:解析 本题考查了一维字符数组的定义和初始化。选项 C中 str10初始化为空,可以不必进行类似“ “的空赋值,字符数组若没有进行初始化赋值,默认的字符为空,并且定义完 str

21、数组后,应该用“,”分隔而不是“。”,所以选项 C错误。4.结构化程序设计的核心和基础是( )。A) 结构化分析方法 B) 结构化设计方法C) 结构化设计理论 D) 结构化编程方法(分数:2.00)A.B.C. D.解析:解析 结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。5.设有定义:int a,+pa=a;,以下 scanf语句中能正确为变量 a读入数据的是( )。A) scanf(“%d“,pa ); B) scanf(“%d“,a );C) scanf(%d“,pa ); D) scanf(“%d“,*pa );(分数:2.00)

22、A. B.C.D.解析:解析 本题考核的知识点是 scanf()函数和指针类型变量的简单应用。scanf()函数的功能是进行输入数据,它是按格式参数的要求从终端上把数据传送到地址参数所指定的内存空间中,C 语言允许程序员间接地使用内存地址,这个地址是通过对变量名“求地址”运算得到的,求地址的运算符是,得到的地址是一种符号地址。本题中定义了整型变量 a和一个指向整型数据的指针变量 pa,并定义 pa是一个存放 a的地址的变量。选项 B)中应该将 a改为for( )j+ai;primf(“%d,j-40);A) i=1;i4;+i B) i=1;i3;+i C) i=4;i2;i- D) i=2;

23、i4;+i(分数:2.00)A.B.C.D. 解析:解析 要想使程序输出是 25,则 j-4025,j65,而 j初值是 50,所以填入 for循环中的语句,使引用的数组元素累加为 65-5015 即可。8.下述函数功能是_。int fun(char*x)char *y=x;while(*y+);return y-x-1;A) 求字符串的长度 B) 求字符串存放的位置C) 比较两个字符串的大小 D) 将字符串 x连接到字符串 y后面(分数:1.00)A. B.C.D.解析:解析 在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度

24、。9.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码 33被放到第( )个位置。A) 3 B) 5 C) 7 D) 9(分数:2.00)A.B. C.D.解析:解析 快速排序的基本思想是;从表中选取一个元素(如本题中的 33),将表中小于此元素的移到前面,大于此元素的移到后面结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割本题中 33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12 后面。10.以下程序运行后的输

25、出结果是void f(int n,int *r)int r1=0;if(n%3=0) r1=n/3;else if(n%5=0) r1=n/5;else f(-n,f(m, in; i+)y=y+3;for (j=0;j=(2*n);j+)x+;A) O(10g2n) B)O(n) C) O(nlog2n) D) O(n2)(分数:1.00)A.B.C.D. 解析:解析 语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。在本例算法中,语句的频度是 n-1,语句的频度是(n-1)(2n+1)-2n 2-n-1。则该程序段的时间复杂度是 T(n)=n-1+2

26、n2-n-1=O(n2)。16.下列能正确定义一维数组的选项是( )。A) int a5=0,1,2,3,4,5; B) char a=0,1,2,3,4,5;C) char a=A,B,C; D) int a5=“0123“;(分数:2.00)A.B. C.D.解析:解析 在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项 A)错误;选项 C 中定义的是一个字符变量 C;选项 D)中整型数组 a中只能存储整型数据,而不能存储字符串常量“0123”。17.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )。A) c1c2 B) c1c2 C)

27、 c2 D) c1|c2(分数:2.00)A. B.C.D.解析:解析 本题考的是位运算。“是按位异或运算,当对应位上的二进制数值相同时,异或的结果为 0,对应位上的二进制数值不同时,异或的结果为 1,因为 c1、c2 的值相同,所以异或的结果为 0,所以 A)为正确答案。18.有定义语句:int*p4;以下选项中与此语句等价的是( )。 A) int p4; B) int *p; C) int*(p4); D) int(*p)4;(分数:2.00)A.B.C. D.解析:解析 int *p2;首先声明了一个数组,数组的元素是 int型的指针。int(*p)2;声明了一个指针,指向了一个有两个

28、 int元素的数组。其实这两种写法主要是因为运算符的优先级,因为的优先级比*高。所以第一种写法,p 先和结合,所以是一个数组,后与*结合,是指针。后一种写法同理。19.程序段:int i=65536;prinff(“%d/n“,i);,则输出结果是_。A65536 B0 C有语法错误,无输出结果 D-1(分数:2.00)A.B.C.D. 解析:20.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量/101是A) 字符 A B) 字符 a C) 字符 e D) 非法的常量(分数:1.00)A. B.C.D.解析:解析 本题考查的知识点是转

29、义字符。题目中的关键是八进制 101的十进制是多少八进制的101转换为十进制为 65,也就是字符 A的 ASCII。21.在 DOS环境下,为了得到 TYPE命令的帮助信息,正确的 DOS命令为A) TYPE B) TYPE/H C) TYPE/* D) TYPE/?(分数:1.00)A.B.C.D. 解析:22.下列叙述中正确的是_。(A) 线性链表是线性表的链式存储结构(B) 栈与队列是非线性结构(C) 双向链表是非线性结构(D) 只有根结点的二叉树是线性结构(分数:2.00)A. B.C.D.解析:23.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。A) 函数的实

30、参和其对应的形参共占同一存储单元B) 形参只是形式上的存在,不会占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的形参和实参分别占用不同的存储单元(分数:2.00)A.B.C.D. 解析:24.若变量 a、i 已正确定义,且 i已正确赋值,合法的语句是_。A) a=1 B) +i; C) a=a+=5; D) a=int(i);(分数:1.00)A.B. C.D.解析:解析 选项 D显然是错的,而选项 A没有分号结束,不是 C语句:a+=5 违反了赋值表达式左侧必须为一个变量(不能是常量或表达式)的规定。25.下列程序的输出结果是( )。main()int p8=11,12,13

31、,14,15,16,17,18,i=0,j=0;while(i+7) if(pi%2) j+=pi;printf(“%d/n“,j);A) 42 B) 45 C) 56 D) 60(分数:2.00)A.B. C.D.解析:解析 在 C语言中,数组的下标默认为 0,因此数组 p的下标范围为:07。程序循环过程为:第 1次循环 i=0,执行循环,并且 i自加,得 i=1,因此 pi为 p1=12,12%2=0,不执行后面的语句:接着进行第 2次循环,此时 i=1,小于 7执行循环,并且 i自加,得 i=2,因此 pi为 p2=13,13%2=1,执行后面的语句;这样一直到退出循环。最后 i的值为

32、i=13+15+17=45。26.下列程序执行后的输出结果是 ( )#define MA(x) x*(x-1)main()int a1,b2;printf(“%d/n“,MA(1+a+B ) );A) 5 B) 6 C) 7 D) 8(分数:1.00)A.B.C.D. 解析:27.若有以下程序:#includestdio.hvoid f(int n);main( )void f(int n);f(5);void f(int n) printf(“%d/n“,n);则下列叙述中不正确的是A) 若只在 main中对函数 f进行说明,则只能在 main中正确调用函数 fB) 在 main前对函数 f

33、进行说明,则在 main和其后的其他函数中都可以正确调用函数 fC) 对于以上程序,编译时系统会提示出错信息:提示对 f函数重复说明D) 函数 f无返回值,所以可用 void将其类型定义为无返回值型(分数:2.00)A.B.C. D.解析:解析 f 函数没有重复说明,在 main函数中是对 f函数声明,main 函数外则是对 f函数的定义。28.设 x和 y均为 int型变量,则以下语句:“x+=y;y=x-y;x-=y;”的功能是_。A) 把 x和 y按从大到小排列 B) 把 x和 y按从小到大排列C) 无确定结果 D) 交换 x和 y中的值(分数:1.00)A.B.C.D. 解析:解析 先

34、将两个数的和赋给变量 x,即 x=x+y;再执行 y=x-y,相当于 y=(x+y)-y=x,x 的值已经换给了 y;最后执行 x=x-y,相当于 x=(x+y)-x=y,这样不通过第 3个变量就可以将两个变量的值互换。29.下列描述中,不是线性表顺序存储结构特征的是( )。A) 不便于插入和删除 B) 需要连续的存储空间C) 可随机访问 D) 需另外开辟空间来保存元素之间的关系(分数:2.00)A.B.C.D. 解析:解析 线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另

35、外开辟空间来保存元素之间的关系。30.有以下程序:main()int x,i;for(i=1;i=50;i+)x=i:if(x%2=0)if(x%3=0)if(x%7=0)printf(“%d“,i);输出结果是( )。A) 28 B) 27 C) 42 D) 41(分数:1.00)A.B.C. D.解析:解析 只有当 3个 if条件同时成立,即能够同时被 2、3、7 整除时,才输出 i的值,而从 0到50能够同时被 2、3、7 整除的数只有 42,故选择 C选项。31.若二维数组 a有 m列,则在 aij刚前的元素个数为( )。A) i*m+j-1 B) i*m+j C) j*m+i D)

36、i*m+j+1(分数:1.00)A.B. C.D.解析:解析 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是 i,说明它前面还有 i行,有 i*m个元素,数组第二维的下标是 i,说明它前面还有 i列,有 j个元素,所以共有 i*m+j个元素。32.有以下程序:main()char *p=“3697“,“2584“;int i, j; long num=0;for(i=0;i2;i+)j=0;while(pij!=/0)if(pilj -0)%2) num=10*num+ pij -0;j+=2;printf(“%d/n“, num);程

37、序执行后的输出结果是 ( )。A) 35 B) 37 C) 39 D) 3975(分数:1.00)A.B.C. D.解析:解析 本题首先定义了一个字符指针数组 p,然后使用一个两重循环遍历数组 p。因为内循环的循环变量 j每次会加 2,所以只能遍历到数组 p每行中列下标为偶数的字符,它们是3、9、2、8。然后,将它们通过 pij-0表达式转换为对应的整数 3、9、2、8,并用%2 来判断该整数是否为奇数。所以最终能执行到 num=10*num+ pij-0,语句的只有3和9两个字符。此时已不难算出,运行后 num中的值为 39。故应该选择 C。33.有如下程序:main()int n=9;wh

38、ile(n6)n-; printf(“%d“, n);该程序的输出结果是( )。A) 987 B) 876 C) 8765 D) 9876(分数:1.00)A.B. C.D.解析:解析 该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n 的值是 9,循环体内先经过 n-运算,n 的值变为 8,所以第一次的输出值是 8,由此可以排除选项 A)和 D)。由循环条件 n6 可以知道,最后一次循环开始时,n 的值应该为 7,所以最后一次执行循环时,输出为 6,由此可以排除选项 C)。34.将 E-R图转换到关系模式时,实体与联系都可以表示成_。A) 属性 B

39、) 关系 C) 键 D) 域(分数:2.00)A.B. C.D.解析:解析 关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将 E-R图转换到关系模式时,实体与联系都可以表示成关系。35.下面概念中,不属于面向对象方法的是A) 对象 B) 继承 C) 类 D) 过程调用(分数:1.00)A.B.C.D. 解析:解析 类是指具有共同属性、共同方法的对象的集合,所以类是对象的抽象,对象是对应类的一个实例。继承是指能够直接获得已有的性质和特征,而不必重复定义它们。所以选项 A)、B)、C)属于面向对象方法,选项 D)属于面向过程方法。二、填空题(总题数:14,分数:23.00)36.以下程

40、序运行后的输出结果是_。int a=5;fun(int b ) static int a=10;a+=b+;printf(“%d“,a ) ;main()int c=20; fun(c ) ;a+=c+;printf(“%d/n“,a ) ;(分数:1.00)填空项 1:_ (正确答案:30 25)解析:解析 本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中 int a=5定义了一个外部变量 a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(stat- ic) ,本题函数 fun()中 static

41、 int a=10定义个一个静态变量 a,此静态变量 a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto 是自动变量的存储类别标识符,如果省略 auto,系统隐含认为此变量为 auto,本题中 main()中 int c=20定义了一个自动变量 c,此自动变量 c是个静态的局部变量。算术运算中 a+=b+相当于 a=a+b,b= b+1。所以,在第一个 printf(“%d”,a) 中 a=a+b=10+20=30,第二个 printf(“%d”,a) 中 a=a+c=5+20=25,即输出 30

42、 25。37.在 C语言中(以 16位 PC机为例),一个 int型数据在内存中所占的字节数为_;一个 float型数据在内存中所占的字节数为_。(分数:2.00)填空项 1:_ (正确答案:2 4)解析:38.C语言中用 1 表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。(分数:2.00)填空项 1:_ (正确答案:非 0)解析:解析 逻辑运算中,非 0表示逻辑“真”,用。表示逻辑“假”。39.以下程序的输出结果是_。main()int arr=30,25,20,15,10,5,*p=arr;p+;printf(“%d/n“,*(p+3);(分数:1.00)填空项 1:_ (正确答案:

43、10)解析:解析 整型指针最初被赋的值是数组 arr的头指针,即指向数组的第一个元素 30,p+后,指针指向数组的下一个元素,即*p=arr1=25,在执行*(p+3)时,则相当于 a1+3,即 10。因此,输出应为100。40.mystrlen函数的功能是计算 str所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char * str)int i;for (i0; _ )!/0;i+ +)return _);(分数:1.00)填空项 1:_ (正确答案:*(str+i) 或 stri i)解析:41.数据库设计分为以下 6个设计阶段:需求分析阶段、 1、逻辑设计阶段、物

44、理设计阶段、实施阶段、运行和维护阶段。(分数:2.00)填空项 1:_ (正确答案:概念设计阶段)解析:解析 数据库设计分为以下 6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。42.下列语句能循环_次。int s=12;while(s);-S;(分数:2.00)填空项 1:_ (正确答案:无限)解析:解析 分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以 s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。43.以下程序中给指针 P分配三个 double型动态内存单元,请填空:#incl

45、udestdiohmain()double*p;p=(double*)malloc_;p0=1.5;p1=2.5;p2=3.5;printf(“%f%f%f/n“,p0,p1,p2);(分数:1.00)填空项 1:_ (正确答案:3*sizeof(double)或 size(double)*3或 24或 3*8或 8*3)解析:解析 malloc()函数的调用格式是“malloc(n)”,作用是申请 n个字符的存储单元,并返回该存储区的首地址,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。44.下列语句的输出结果是_。char s20= “aaaa“,*sp=s;p

46、uts(strcat(sp,“AAAAA“);(分数:2.00)填空项 1:_ (正确答案:aaaaAAAAA)解析:解析 函数 strcat(sp,“AAAAA“)的作用是将字符中“AAAAA”连接到字符串 sp的末尾,并自动覆盖字符数组 sp末尾的/0。45.在一个容量为 32的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_ (正确答案:31)解析:解析 设队列容量为 m,如果:rearfront,则队列中元素个数为 rear-front;如果rearfront,则队列中元素个数为 m+(rear-riont)本题 rearfront,则 m=32+(2-3)=31。46.常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD ),则应采用 1 方法。(分数:2.00)填空项 1:_ (正确答案:结构化)解析:解

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

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

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