ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:111KB ,
资源ID:1326415      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1326415.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C语言笔试95及答案解析.doc)为本站会员(proposalcash356)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、二级 C 语言笔试 95 及答案解析(总分:94.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:60.00)1.若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k); print f(“%d,%d/n“,m,i); 执行后的输出结果是( )。(分数:1.00)A.8,6B.8,3C.6,4D.7,42.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和( )。(分数:1.00)A.编码设计B.测试阶段C.运行阶段D.物理设计3.有以下程序段: typedef struct NODE int num; struct NODE * next

2、; OLD; 以下叙述中正确的是( )。(分数:1.00)A.以上的说明形式非法B.NODE 是一个结构体类型C.OLD 是一个结构体类犁D.OLD 是一个结构体变量4.有以下程序: void f(int b) int i; for(i=2;i6;i+) bi*=2; main() int a10=1,2,3,4,5,6,7,8,9,10,i; f(A) ; for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,6,8,10,12,7,8,9,10,C.1,2,3,4,10,

3、12,14,16,9,10,D.1,2,6,8,10,12,14,16,9,10,5.有以下程序: void fun1(char*p) char *q; q=p; while(*q!=/0) (*q)+; q+; main() char a=“Program“),*p; p= fun1(p) printf(“%s/n“,A) ; 程序执行后的输出结果是( )。(分数:1.00)A.ProhsbnB.PrphsbnC.ProgsbnD.Program6.以下程序的输出结果是( )。 #include stdio.h #includestring.h mam() char b18=“abcdefg

4、“,b28,*pb=b1+3; while(-pb=b1) strcpy(b2,pB) ; printf(“%d/n“,strlen(b2); (分数:1.00)A.8B.3C.1D.77.有以下程序: main() int a3=1,2,3,4,5,0,(*pa)3,i; pa=a; for(i=0;i3;i+) if(i2) pa1i=pa1i-1; else pa1i=1; printf(“%d/n“,a01+a11+a12); 执行后输出结果是( )。(分数:1.00)A.7B.6C.8D.无确定值8.用 C 言编写的代码程序( )。(分数:1.00)A.可立即执行B.是个源程序C.经

5、过编译即可执行D.经过编译解释即可执行9.有以下程序: main() int a33,*p.i; p=i9;i+)pi=i; for(i=0;i3;i+)printf(“%d“,a1i); 程序运行后的输出结果是( )。(分数:1.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 510.有以下函数定义: void fun(int n,doub x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是( )。(分数:1.00)A.fun(int y,double ;B.k=fun(10,12.5);C.fun(x,;D.void fum(n,;11.以下能正确定

6、义一维数组的选项是( )。(分数:1.00)A.int num;B.#define N 100 int num;C.int num0100;D.int N=100; int num;12.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。(分数:1.00)A.概要设计B.详细设计C.可行性分析D.需求分析14.指出下面不了确的赋值语句( )。(分数:1.00)A.a+;B.a=b;C.a+=b;D.a=1,b=1;15.有以下程序: #includestudio.h #defme F(X,Y) (X)*(Y) main() int a=3,b=4; printf

7、(“%d/n“,F(a+,b+); 程序运行后的输出结果是( )。(分数:1.00)A.12B.15C.16D.2016.从工程管理角度,软件设计一般分为两步完成,它们是( )。(分数:1.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计17.将 E-R 图转换到关系模式时,实体与联系都可以表示成( )。(分数:1.00)A.属性B.关系C.键D.域18.有以下程序: main() unsigned char a,b,c; a=0x3;b=a0x8;c=b1; printf(“%d%d/n“,b,C) ; 程序运行后的输出结果是( )。(分数:

8、1.00)A.-11 12B.-6 -13C.12 24D.11 2219.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1,则 T 中的叶子结点数为( )。(分数:1.00)A.5B.6C.7D.820.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(分数:1.00)A.log2nB.n/2C.nD.n+121.有以下程序: #defme P 3 void P(int x)return(p*x*x); main() pritnf(“%d/n“,F(3+5); 程序运行后的输出结果是( )。(分数:1.00)A.192B.29C.25

9、D.编译出错22.若变量已正确定义,有以下程序段: i=0; do printf(“%d,“,i); while(i+); print f(“%d/n“,i); 其输出结果是( )。(分数:1.00)A.0,0B.0,1C.1,1D.程序进入无限循环23.设有以下说明语句: typedef struet int n; char ch8; PER; 则下面叙述中正确的是( )。(分数:1.00)A.PER 是结构体变量名B.PER 是结构体类型名C.typedef struct 是结构体类型D.struct 是结构体类型名24.已定义以下函数; int fun(int *p) return*p;

10、 fun 函数返回值是( )。(分数:1.00)A.不确定的值B.一个整数C.形参 p 中存放的值D.形参 p 的地址值25.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。(分数:1.00)A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参26.有以下程序: int fa(int x) return x*x; int fb(int x) return x*x*x; int f(int(*f1)(),int(*f2)(),int x) return f2(x)-f1(x); main() in

11、t i; i=f(fa,fb,2);printf(“%d/n“,i); 程序运行后的输出结果是( )。(分数:1.00)A.1 2 6 8B.8 6 2 1C.8 1 6 2D.8 6 1 227.以下语句或语句组中,能正确进行字符串赋值的是( )。(分数:1.00)A.char *sp; *sp=“right!“;B.char s10; s=“right!“;C.char s10; *s=“right!“;D.char *sp=“right!“;28.若有定义“int*p3;“,则以下叙述中正确的是( )。(分数:1.00)A.定义了一个基类型为 int 的指针变量 p,该变量具有 3 个指

12、针B.定义了一个指针数组 p,该数组含有 3 个元素,每个元素都是基类型为 int 的指针C.定义了个名为*p 的整型数组,该数组含有 3 个 int 类型元素D.定义了一个可指向一维数组的指针变量 p,所指一维数组应具有 3 个 int 类型元素29.设函数 fun 的定义形式为 void fun(char ch,float x) 则以下对函数 fun 的调用语句中,正确的是( )。(分数:1.00)A.fun(“abc“,3.0);B.t=fun(D,16.5);C.fun(65,2.8);D.fun(32,32);30.下列叙述中正确的是( )。(分数:1.00)A.数据库系统是一个独立

13、的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上 3 种说法都不对31.下列叙述中错误的是( )。(分数:1.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据处理的效率无关C.数据的存储结构与数据处理的效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的32.若有定义;int w35;,则以下不能正确表示该数组元素的表达式是( )。(分数:1.00)A.*(*w+3)B.*(w+1)4C.*(*(w+1)D.*( for( ; y0; y-) if(y%3=0) printf(“%d“, -y)

14、; 程序的运行结果是( )。(分数:1.00)A.741B.963C.852D.87542134.有以下程序段: int j; float y; char name50; scanf(“%2d%f%s“, 当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为( )。(分数:1.00)A.55566.0B.566.0C.7777.0D.566777.035.下列关于单目运算符+、-的叙述中正确的是( )。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和 int 型变量,但不能是 float 型变量C.它们的运算对象可以是

15、int 型变量,但不能是 double 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量36.以下选项中,合法的一组 C 语言数值常量是( )。(分数:1.00)A.028 .5e-3 -0xfB.12 0X023 4.5e0C177 4e1.5 0abeD.0x8A 10,000 3.e537.以下程序的输出结果是( )。 main() int a=5,b=4,c=6,d; printf(“%d/n“,d=ab?(ac?a:C) :(B) );(分数:1.00)A.5B.4C.6D.不确定38.下列叙述中正确的是( )。(分数:1.

16、00)A.C 语言中既有逻辑类型也有集合类型B.C 语言中没有逻辑类型但有集合类型C.C 语言中有逻辑类型但没有集合类型D.C 语言巾既没有逻辑类型也没有集合类型39.有以下程序: mam() int i=10,j=1; printf(“%d,%d/n“,i-,+j); 执行后输出的结果是( )。(分数:1.00)A.9,2B.10,2C.9,1D.10,140.有以下程序: main() int x=3,y=2,z=1; printf(“%d/n“,x/yps+4;p+)printf(“%s/n“,p); 程序运行后的输出结果是( )。(分数:2.00)A.ABCD BCD DB.A B C

17、 DC.B C DD.BCD CD D42.有以下程序: fun(int x) int p; if(x=0x1)return(3); p=x-fun(x-2); return p; main() printf(“%d/n“,fun(7); 执行后的输出结果是( )。(分数:2.00)A.7B.3C.2D.043.以下不合法的数值常量是( )。(分数:2.00)A.011B.lelC.8.0E0.5D.0xabcd44.有以下函数: fun(char *a, char *b) while(*a!=/0) b+; return(*a-*b); 该函数的功能是( )。(分数:2.00)A.计算 a

18、和 b 所指字符串的长度之差B.将 b 所指字符串复制到 a 所指字符串中C.将 b 所指字符串连接到 a 所指字符串后面D.比较 a 和 b 所指字符串的大小45.有以下程序: void fun(int *a,int i,int j) int t; if(ij) t=ai;ai=aj;aj=t; i+; j-; fun(a,ij); main() int x=2,6,1,8,i; fun(x,0,3); for(i=0;i4;i+) printf(“%2d“,xi); printf(“/“n); 程序运行后的输出结果是( )。(分数:2.00)A.1 2 6 8B.8 6 2 1C.8 1

19、6 2D.8 6 1 246.以下与函数 fseek(fp,0L,SEEK_SE 乃有相同作用的是( )。(分数:2.00)A.feof(fB.ftell(fC.fgetc(fD.rewind(f47.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。(分数:2.00)A.63B.64C.6D.748.下面不属于软件设计原则的是( )。(分数:2.00)A.抽象B.模块化C.自底向上D.信息隐蔽49.有以下程序: int fun1(double A) return a*=a; int fun2(double x,double y) double a=0,b=0; a

20、=fun1(x);b=funl(y); return(int)(a+B) ; main() double w;w=fun2(1.1,2.0); 程序执行后变量 w 中的值是( )。(分数:2.00)A.5.21B.5C.5.0D.0.050.设有如下定义: struct ss char name10 int age; char sex; std3,*p=std; 下面各输入语句中错误的是( )。(分数:2.00)A.scanf(“%d“,B.scanf(“%st“,C.scanf(“%c“,D.scanf(“%c“,二、B填空题/B(总题数:17,分数:34.00)51.在深度为 7 的满二叉

21、树中,度为 2 的结点个数为U 【1】 /U。(分数:2.00)填空项 1:_52.算法的复杂度主要包括U 【2】 /U复杂度和空间复杂度。(分数:2.00)填空项 1:_53.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为U 【3】 /U。(分数:2.00)填空项 1:_54.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的U 【4】 /U存储结构。(分数:2.00)填空项 1:_55.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为U 【5】 /U。(

22、分数:2.00)填空项 1:_56.以下程序运行时若从键盘输入:10 20 30回车。输出结果是U 【6】 /U。 #include stdio.h main() int i=0,j=0,k=0; scanf(“%d%*d%d“,(分数:2.00)填空项 1:_57.以下程序运行后的输出结果是U 【7】 /U。 #define S(x)4*x*x+1 mah() int i=6,j=8; printf(“%d/n“,S(i+j); (分数:2.00)填空项 1:_58.以下程序的输出结果是U 【8】 /U。 main() int a=0; a+=(a=8); printf(“%d/n“,A)

23、; (分数:2.00)填空项 1:_59.以下程序的输出结果是U 【9】 /U。 #include stdio.h main() int n=12345,d; while(n!=0) d=n%10; printf(“%d“,D) ; n/=10; (分数:2.00)填空项 1:_60.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。 main() int t=0,s=0,i; for(i=1;i=5;i+) t=i+U 【10】 /U;s=s+t; printf(“s=%d/n“,s); (分数:2.00)填空项 1:_61.已知字母 A 的 ASCII 码为 65。

24、以下程序运行后的输出结果是U 【11】 /U。 main() char a,b; a=A+5-3;b=a+6-2; printf(“%d %c/n“,a,B) ; (分数:2.00)填空项 1:_62.以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c 中的字符为 e,则函数返回字符串:ello!的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函数返回 NULL。请填空。 char*fun(char *str,char c) int n=0; char *p=str; if(p!=NULL)

25、 while(pn!=c iK;i+) (分数:2.00)填空项 1:_64.以下程序的输出结果是U 【14】 /U。 main() int x=0; sub( s=U 【15】 /U; while(U 【16】 /U=*p+); main() char str1100=“abed“,str2=“efgh“; strcpy2(str1,str2); printf(“%s/n“,str1); (分数:2.00)填空项 1:_66.下面程序的运行结果是U 【17】 /U。 #define N 10 #define s(x) x*x #define f(x)(x*x) mam() int il,i2

26、; i1=1000/s(N);i2=1000/f(N); printf(“%d %d/n“,il,i2); (分数:2.00)填空项 1:_67.以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串: yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。 #include string.h char*huiwen(char *str) char *p1,*p2; int i,t=0; p1=str;p2=U 【18】 /U; for(i=0;i=strlen(str)/2;i+) if(

27、*p1+!=*p2-)t=1;bteak; if(U 【19】 /U)return(“yes!“); else return(“no!“); main() char sb50; printf(“Input:“); scanf(“%s“,str); ptintf(“%s/n“,U 【20】 /U); (分数:2.00)填空项 1:_二级 C 语言笔试 95 答案解析(总分:94.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:60.00)1.若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k); print f(“%d,%d/n“,m,i); 执行

28、后的输出结果是( )。(分数:1.00)A.8,6B.8,3C.6,4 D.7,4解析:在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由 i*=kk 得 i=2*2 为 4,k=k+i,即 k 值为 6,m=k 故 m=6。所以 4 个选项中 C 正确。2.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和( )。(分数:1.00)A.编码设计B.测试阶段C.运行阶段D.物理设计 解析:数据库的生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。数据库的设计阶段又分为如下 4 个子阶段:即需求分析、概念设计、逻辑设计和物理设计。3.有以下程序段: typedef

29、 struct NODE int num; struct NODE * next; OLD; 以下叙述中正确的是( )。(分数:1.00)A.以上的说明形式非法B.NODE 是一个结构体类型C.OLD 是一个结构体类犁 D.OLD 是一个结构体变量解析:将题目中的定义语句去掉前面的 typedef 和后面的 OLD(分号保留),就是一条完整的结构体定义语句,其中 struct 是说明符,NODE 是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用 struct 加结构体名起来声明,struct NODE 一起构成一个结构体类型,就好像字符类型 char。若只去掉前面的

30、 typedcf,就是一条结构体定义同时声明一个结构体变量 OLD 的语句,因为 OLD的前面部分是 struct NODE 的完整写法,可以看作是 struct NODE。C 语言允许用 typedef 说明一种新类型名,其语法格式为: typedef 类型名标识符; 以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在 typedef 时,该语句就变成了给 struct NODE 的完辖写法定义一个新的名称 OLD。所以,此时的 OLD 是一个结构体类型,它相当于 struct NODE,即可以和 char 一样单独用来声明该结构体变量,而NODE 只是一个结构体名,不能单独用来声

31、明变量。所以, 4 个选项中 C 符合题意。4.有以下程序: void f(int b) int i; for(i=2;i6;i+) bi*=2; main() int a10=1,2,3,4,5,6,7,8,9,10,i; f(A) ; for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,6,8,10,12,7,8,9,10, C.1,2,3,4,10,12,14,16,9,10,D.1,2,6,8,10,12,14,16,9,10,解析:本题中,f()函数通过一个 fo

32、r 循环语句,将传入数组的元素从下标 2 到下标 5 每个自乘以 2。因此,调用结束时,数组 a 中的内容为1,2,6,8,10,12,7,8,9,10,故本题应该选择 B。5.有以下程序: void fun1(char*p) char *q; q=p; while(*q!=/0) (*q)+; q+; main() char a=“Program“),*p; p= fun1(p) printf(“%s/n“,A) ; 程序执行后的输出结果是( )。(分数:1.00)A.Prohsbn B.PrphsbnC.ProgsbnD.Program解析:在函数 fun1()中,首先将形参 p 的内容存

33、入临时指针 q 中,然后使用个 while 循环,当 q 所指内容不是字符串结束标志“/0时,让 q 所指内容增 1,然后将指针 q 增 1 指向下一个位置。所以函数fun1()实现的功能是:将传入字符串的所有字符自增 1。主函数,指针 p 在被传入 fun1()函数之前,初始化指向的是宁符数组 a 的第 4 个元素g,所以最终输出的结果应该是 Prohsbn。故应该选择 A。6.以下程序的输出结果是( )。 #include stdio.h #includestring.h mam() char b18=“abcdefg“,b28,*pb=b1+3; while(-pb=b1) strcpy

34、(b2,pB) ; printf(“%d/n“,strlen(b2); (分数:1.00)A.8B.3C.1D.7 解析:首先定义了两个字符数组 b1 和 b2,并用一个字符串给 b1 赋初值,然后定义了一个字符型指针变量 pb,通过赋初值使它指向 b13。接着执行 while 循环,该循环执行了 3 次:第一次判断条件“-pb=b1”,使 pb 的值为“b1+2”,执行“strepy(b2,pB) ;”后,b2 中的内容为“cdefg”:第二次判断条件“-pb=b1”,使 pb 的值为“b1+1”,执行“strcpy(b2,pB) ;”后 b2 的内容为“bedefg”第三次判断条件“-pb

35、=b1”使 pb 的值为“b1”,执行“strcpy(b2,pB) :”后 b2 的内容为“abcdefg”。最后输出 b2 数组巾存放的字符串长度,显然是 7。(这里还有一个关键点:就是每当执行次 while 循环判断条件,就执行一次“-pb”,他使得指针 pb 自减 1,即前移一位)所以,4 个选项中D 为所选。7.有以下程序: main() int a3=1,2,3,4,5,0,(*pa)3,i; pa=a; for(i=0;i3;i+) if(i2) pa1i=pa1i-1; else pa1i=1; printf(“%d/n“,a01+a11+a12); 执行后输出结果是( )。(分

36、数:1.00)A.7 B.6C.8D.无确定值解析:本题定义了一个指向由 3 个元素组成的一维数组的指针变量 pa,通过赋值让它指向具有 2 行 3 列的数组 a,此时用指针变量 pa,表示数组元素 aij的形式是 paimj)。for 循环执行了 3 次;第一次 i 值为 0,执行 pa10=pa10-1,执行后 a10的值变为 3;第二次 i 值为 1,执行 pa=11=pa11-1,执行后 a11的值为 4;第三次 i 值为 2,执行 pa12=1,执行后 a12的值变为 1。故 prinff 语句输入的值为 2+4+1=7。所以,A 选项为所选。8.用 C 言编写的代码程序( )。(分

37、数:1.00)A.可立即执行B.是个源程序 C.经过编译即可执行D.经过编译解释即可执行解析:C 语言一种高级语言,C 语言源程序经过 C 语言编译程序编译之后,生成一个后缀为.obj 的二进制文件(称为目标文件),最后还要由称为“连接程序”(Link)的软件,把此.obj 文件与 C 语言提供的各种库函数连接在一起,生成一个后缀.exe 的可执行文件。显然 C 语言不能立即执行,故选项 A 错误;根据以上定义,选项 C 和选项 D 错误,所以,4 个选项中选项 B 符合题意。9.有以下程序: main() int a33,*p.i; p=i9;i+)pi=i; for(i=0;i3;i+)p

38、rintf(“%d“,a1i); 程序运行后的输出结果是( )。(分数:1.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 5 解析:本题中定义的二维数组 a33中 9 个元素在内存中的排列顺序是:a00,a01, a02,a10,a11,a12,a20,a21,a22。在主函数中,首先定义了二维数组 a33,然后定义了个指针 p 指向数组 a 的第 1 个元素 a00在第一个 for 循环中,依数组 a 在内存中的排列顺序为其元素赋从 08 九个值,然后用第二个 for 循环依次输出 a10,a11,a12三个元素的值。所以,4 个选项中选项 D 符合题意。10.有以下函数定义:

39、 void fun(int n,doub x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是( )。(分数:1.00)A.fun(int y,double ;B.k=fun(10,12.5);C.fun(x,; D.void fum(n,;解析:选项 A 中应将 y 和 m 前面的函数的类型说明符去掉,故选项 A 不正确;选项 B 中函数传了 2 个参数,其中一个为整型个为浮点型,而 fun()函数在定义时声明的 2 个参数,一个为整型一个为双精度型,其参数类型不一致,故选项 B 不正确;选项 D 在调用函数时,不应该再声明其返回类型,故选项 D 不正确。所以,4

40、个选项中选项 C 符合题意11.以下能正确定义一维数组的选项是( )。(分数:1.00)A.int num;B.#define N 100 int num; C.int num0100;D.int N=100; int num;解析:选项 A 定义数组时省略了长度,而 C 语言中规定,只有在定义并同时进行初始化时,数组的长度才可以省略,数组的长度为初始化时候的成员个数,故选项 A 错误;在 C 语言中规定,数组的长度必须是一个整数或整型常量表达式,故选项 C 不正确:定义时数组的长度不能使用变量表示,故选项 D 不正确,所以,4 个选项中选项 B 符合题意。12.在软件生存周期中,能准确地确定

41、软件系统必须做什么和必须具备哪些功能的阶段是( )。(分数:1.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。解析:分析题目中给出的表达式可知,如果 ab 和 bc 同时成立,k=1,否则 k=0。所以, 4 个选项中选项 A 符合题意。14.指出下面不了确的赋值语句( )。(分数:1.00)A.a+;B.a=b; C.a+=b;D.a=1,b=1;解析:选项 A 中 a+相当于 a+1,是赋值语句;选项 C 和选项 D 也是赋值语句。只

42、有选项 B 不是,因为选项 B 中“=”符号是等于的意思,并不是赋值运算符,所以,4 个选项中 B 符合题意。15.有以下程序: #includestudio.h #defme F(X,Y) (X)*(Y) main() int a=3,b=4; printf(“%d/n“,F(a+,b+); 程序运行后的输出结果是( )。(分数:1.00)A.12 B.15C.16D.20解析:在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a+)*(b+),而 a+的值为 3,b+的值为 4。因此最后的值为 3*4=12。所以,4 个选项中选项 A 符合题意。16.从工程管理角度,软件设计一般分为两

43、步完成,它们是( )。(分数:1.00)A.概要设计与详细设计 B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计解析:从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。17.将 E-R 图转换到关系模式时,实体与联系都可以表示成( )。(分数:1.00)A.属性B.关系 C.键D.域解析:把概念模型转换成关系数据模型就是把 E-R 图转换成一组关系模式,每一个实体型转换为一个关系模式,每个联系分别转换为关系模式。18.有以下程序: main() unsigned char a,b,c; a=0x3;b=a0x8;c=b1; printf(“%d%d/n“,b,C

44、) ; 程序运行后的输出结果是( )。(分数:1.00)A.-11 12B.-6 -13C.12 24D.11 22 解析:将 a 的值转换为二进制位:0000 0011,再与 0x8 的二进制“0000 1000”位与,得到结果“0000 1011”赋值给 b,b 的值为 11,再将 b 左移一位得到;0001 0110,赋值给 c,c 的值为 22,所以最后输出的 b,c 的值位 11,22。所以 4 个选项中 D 正确。19.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1,则 T 中的叶子结点数为( )。(分数:1.00)A.5B.6C.7D.8 解析:

45、根据给定的条件,在树中,各结点的分支总数为:41+22+13+41=15,树中的总结点数为:15(各结点的分支总数)+1(根结点)=16:非叶子结点总数为:4+2+1+1=8。因此,叶子结点数为 16(总结点数)-8(非叶子结点总数)=8。20.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(分数:1.00)A.log2nB.n/2C.n D.n+1解析:在长度为 n 的线性表中进行顺序查找,最坏情况下需要比较 n 次。21.有以下程序: #defme P 3 void P(int x)return(p*x*x); main() pritnf(“%d/n“,F(3+

46、5); 程序运行后的输出结果是( )。(分数:1.00)A.192B.29C.25D.编译出错 解析:本题是一道陷阱题,考生如果没注意到 F()函数被定义为 void 类型的话,很容易错选为选项 A,其实应该选择选项 D,编译出错。22.若变量已正确定义,有以下程序段: i=0; do printf(“%d,“,i); while(i+); print f(“%d/n“,i); 其输出结果是( )。(分数:1.00)A.0,0B.0,1 C.1,1D.程序进入无限循环解析:本题中,首先令 i 为 0,然后进入 do-while 循环,执行 1 遍循环体输出 i 的值 0。然后,因为表达式 i+的值为 0(执行后 i 的值被增 1),所以 do-while 循环结束,接下来再输出 i 的值 10 故本题应该选择 B。23.设有以下说明语句: typedef

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