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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C语言笔试-333 及答案解析(总分:104.00,做题时间:90 分钟)一、选择题(总题数:2,分数:50.00)(分数:47.00)(1).下列选项中不属于算法的特性的是(分数:1.00)A.确定性B.可行性C.有输出D.无穷性(2).下列叙述中正确的是(分数:1.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构(3).设有下列二叉树:(分数:1.00)A.ABCDEFB.DAECFC.BDAECFD.DBEFCA(4).结构化程序设计主要强调的是(分数:1.00)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性(5).

2、在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的”这一性质指的是对象的(分数:1.00)A.分类性B.标识惟一性C.多态性D.封装性(6).用黑盒技术测试用例的方法之一为(分数:1.00)A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试(7).在进行单元测试时,常用的方法是(分数:1.00)A.采用白盒测试,辅之以黑盒测试B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试(8).下面四个选项中,不属于数据库管理系统提供的数据语言的是(分数:1.00)A.数据定义语言B.数据查询语言C.数据操纵语言D.数据控制语言(9).

3、在关系数据库模型中,通常可以把( )称为属性,其值称为属性值。(分数:1.00)A.记录B.基本表C.模式D.字段(10).实体联系模型中实体与实体之间的联系不可能是(分数:1.00)A.一对一B.多对多C.一对多D.对零(11).用 C语言编写的代码程序(分数:1.00)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释即可执行(12).以下叙述中正确的是(分数:1.00)A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编译(13).以下定义语

4、句中正确的是(分数:1.00)A.char a=A b=B;B.float a=b=10.0;C.int a=10,*b=D.float *a,b=(14).有以下程序:main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %d %3.lf %3.lf/n“,a,c,f,x);程序运行后的输出结果是(分数:1.00)A.1 65 1 6.5B.1 65 1.5 6.5C.1 65 1.0 6.5D.2 65 1.5 6.5(15).数据库设计的根本目标是要解决(分数:1.00)A.数据共享问题B.数

5、据安全问题C.大量数据存储问题D.倘化数据维护(16).设有定义:float a=2,b=4,h=3;,以下 C语言表达式中与代数式 (分数:1.00)A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+(17).有以下程序main()int m=0256,n=256;printf(“%o%o/n“,m,n);程序运行后的输出结果是(分数:1.00)A.0256 0400B.0256 256C.256 400D.400 400(18).数据库系统的核心是(分数:1.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员(19).以下叙述中错误

6、的是(分数:1.00)A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识(20).有以下程序:main ()char k; int i;for(i=1;i3;i+)scanf(“%c“,switch(k)case 0: printf(“another/n“);case 1: printf(“number/n“);程序运行时,从键盘输入:01回车,程序执行后的输出结果是(分数:1.00)A.anothernumberB.anothernumberanotherC.anothe

7、rnumbernumberD.numbernumber(21).以下叙述中正确的是(分数:1.00)A.用 C 程序实现的算法必须要有输入和输出操作B.用 C 程序实现的算法可以没有输出但必须要有输入C.用 C 程序实现的算法可以没有输入但必须要有输出D.用 C 程序实现的算法可以既没有输入出没有输出(22).有以下程序main () int i=0,s=0;doif(i%2) i+;continue; i+;s+=i;while (i7);printf ( “%d/n“ , s );执行后输出的结果是(分数:1.00)A.16B.12C.28D.21(23).已定义 ch为字符型变量,以下赋

8、值语句中错误的是(分数:1.00)A.ch=/;B.ch=62+3;C.ch=NULL;D.ch=/xaa;(24).有以下程序main ( ) char a,b,c,d;scanf (“%c, %c, %d, %d“ , printf(“%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入:6,5,65,66回车。则输出结果是(分数:1.00)A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6A.以下能正确定义二维数给的是B.int a3;C.int a3=2*3;D.int a3=;E. D) int a23=1(26).以下程序输出结果是#inc

9、lude stdio.hmain ( ) int i=0,a=0;while ( i2 0 ) for(;) if (i%10) =0) break;else i-;i+=11; a+=i;print f ( “%d/n“ ,(分数:1.00)A.;A) 21B) 32C) 33D) 11(27).若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是(分数:1.00)A.int *i = NULL;scanf(“%d“,i);B.float *f = NULL;*f = 10.5;C.char t = m, *c = *c = D.long *L;L = /0;(28)

10、.有以下程序#include stdio .hmain () printf(“%d/n“, NULL); (分数:1.00)A.0B.1C.-1D.NULL没定义,出错(29).有以下程序main () char *s=“one“,“two“,“three/(分数:1.00)A.B.C.D.A.以下不能正确定义二维数组的选项是o A) int a22 = 1(31).设有定义: int a=2,b=3,c=4;, 则以下选项中值为 0的表达式是(分数:1.00)A.(!a=1) int f2(int x, int y) returrnxy?y:x; main ( )int a=4,b=3, c

11、=5, d=2, e, f, g;e = f2(f1(a,b(分数:1.00)A.B.C.D.(35).设变量已正确定义,则以下能正确计算 f=n!的程序段是(分数:1.00)A.f=0;for(i=1; in; i+)f*=i;B.f=1;for(i=1; in; i+)f*=i;C.f=1;for (i=n; i1; i+) f*=i;D.f=1;for (i=n; i=2; i-)f*=i;(36).以下叙述十正确的是(分数:1.00)A.全局变量的作用域一定比局部变量的作用域范围大B.静态(static)类别变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语

12、句中赋初值的 auto变量和 static变量的初值都是随机值(37).设有以下语句:typedef struct S int g; char h; T;则下面叙述中正确的是(分数:1.00)A.可用 S定义结构体变量B.可以用 T定义结构体变量C.S是 struct类型的变量D.T是 structs类型的变量(38).以下叙述中错误的是(分数:1.00)A.对于 double类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D.可以通过赋初值的方式确

13、定数组元素的个数(39).有以下程序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() int i;i-f(fa, fb,2); printf(“%d /n“,i);程序运行后的输出结果是(分数:1.00)A.4B.1C.4D.8(40).有以下程序struct s int x,y; data2=10,100,20,200;main()struct s *p=data;printf(“%d/n“,+(p-x);程

14、序运行后的输出结果是(分数:1.00)A.10B.11C.20D.21(41).有以下程序void ss(char *s,char t)while *s)if (*s=t) *s-t-a +A;S+;main ()char strl 100 =“ abcddfefdbd“ , c= d;ss(str1,c); printf (“%s/n“ ,str1);程序运行后的输出结果是(分数:1.00)A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd(42).有以下程序main(int arge,char *argv )int n,i=0;whil

15、e(argv1 i !=/0) n-fun(); i+;printf ( “%d/n“ , n*argc);int fun ( ) static int s=0;s+=1;return s;假设程序经编译、连接后生成可执行文件 exam.exe, 若键入以下命令exam 123 回车(分数:1.00)A.6B.8C.3D.4(43).已定义以下函数:fun (char* p2, char* p1) while (*p2=*p1) != /0) p1+;p2+; (分数:1.00)A.将 p1所指字符串复制到 p2所指内存空间B.将 p1所指字符串的地址赋给指针 p2C.对 p1和 p2两个指针

16、所指字符串进行比较D.检查 p1和 p2两个指针所指字符串中是否有/0(44).有以下程序main ( )int x = 1, 3, 5, 7, 2, 4, 6, 0(分数:1.00)A.B.C.D.(45).设有如下定义struct ss char name10;int age;,char sex; std3,* p=std;下面各输入语句中错误的是(分数:1.00)A.scanf(“%d“,B.scanf(“%s“,C.sean(“%c“,D.scanf(“%c“,(46).有以下结构体说明和变量定义,如图所示,指针 p、 q、 r 分别指向一个链表中的三个连续结点。struct node

17、int data;struct node *next; *p, *q, *r;(分数:1.00)A.r-next=q; q-next=r-next; p-next=r;B.q-next=r-next; p-next=r; r-next=q;C.p-next=r; q-next=r-next; r-next=q;D.q-next=r-next; r-next=q; p-next=r;(47).以下程序中函数 f的功能是将 n个字符串按由大到小的顺序进行排序。#include string.hvoid f(char p10, int n)char t20; int i,j;for(i=0;in-1

18、;i+)for(j=i+l;jn;j+)if(strcmp (pi,pj)0) strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);main()char plO-“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“;int i;f(p,5); printf(“%dkn“,strlen(p0);程序运亍后的输出结果是(分数:1.00)A.6B.4C.5D.3(48)(50)以下程序的功能足:建立一个带有头结点的甲向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。#include stdlib.

19、hstruct nodechar data; struct node *next: ;(48) CreatList(char *s)struct node *h,*p,*q;h = (struct node *)malloc sizeof(struct node);p=q=h;while(*s! =/0)p = (struct node *)malloc(sizeof (struct node);p-data = (49) ;q-next = p;q - (50) ;S+;p-next=/0;return h;main()char str=“link list“;struct node *he

20、ad;head = CreatList(str);(分数:3.00)A.char*B.struct nodeC.struct node*D.charA.*sB.sC.*s+D.(*s)+A.p-nextB.pC.sD.s next二、填空题(总题数:18,分数:54.00)1.算法的复杂度主要包括空间复杂度和 1 复杂度。(分数:3.00)填空项 1:_2.在面向对象方法中,类的实例称为 1。(分数:3.00)填空项 1:_3.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于 1 测试。(分数:3.00)填空项 1:_4.实体联系模型是一种常用的高级概念数据

21、模型,而 1 是实体联系模型中的核心。(分数:3.00)填空项 1:_5.一个项目具有一个项目主管,一个项目主管叫管理多个项目,则实体“主管”与实体“”的联系属于_。(分数:3.00)填空项 1:_6.若有语句int i=-19,j=i%4;printf(“%d/n“, j),则输出的结果是_。(分数:3.00)填空项 1:_7.以下程序运行后的输出结果是_。#define S(x) 4*X*x+1main()int i=6,j=8;printf(“%d/n“,S(i+i);(分数:3.00)填空项 1:_8.以下程序的输出结果是_。main()int a=0;a+- (a=8);printf

22、 (“%d/n“ , a);(分数:3.00)填空项 1:_9.若有以下程序main ( )int a=4,b=3,c=5,t=0;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;printf(“%d %d %dln“,a,b,c);执行后输出结果为_。(分数:3.00)填空项 1:_10.以下程序的功能是计算: s=1+12+123+1234+12345。请填空。main()int t=0,s=0,i;for(i=1;i=5;i+)t=i+_; s=s+t; printf(“s=%d/n“,s);(分数:3.00)填空项 1:_11.若有以下程序main()char

23、a;a=H-A+0;printf(“%c/n“,a);执行后输出的结果是_。(分数:3.00)填空项 1:_12.以下程序的输出结果是_。main()char *p-“abcdefgh“,*r;long *q;q=(long*)p;q+;r=char*)q;printf(“%s/n“,r);(分数:3.00)填空项 1:_13.以下程序中,for 循环体执行的次数是_。#define N 2#define M N+1#define K M+1*M/2main()int i;for (i-1;iK;i+). .(分数:3.00)填空项 1:_14.以下程序通过函数 SunFun 求 (分数:3.

24、00)填空项 1:_15.以下程序运行后的输出结果是_。struct NODEint hum;struct NODE *next;main ( )struct NODE s3=1, /0 ,2, /0 ,3, /0 ,*p,*q,*r;int sum=0:s0.next=s+1;s1.next=s+2;s2.next=s:p=s;q=p-next;r=q-next;sum+=q-nexs-num;sum+=r next-next-num:prlntf(“%d/n“,sum ;(分数:3.00)填空项 1:_16.以下程序中 select函数的功能是: 在 N行 M列的二维数组中,选出一个最大值

25、作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#define N 3#define M 3selectint aNM,int *n;int i,j,row=l,eolum=l;for(i=0;iN;i+for j=0;jM;j+)if(aijarowcolum)row=i;colum=j:*n=_;return_;main()int aNM=9,11,23.6,1,15,9,17,20, max,njmax=select(a,printf(“max=%d, line=%d/n“,max.n ;(分数:3.00)填空项 1:_17.设有以下定义stnct ssint info; s

26、Eruc5 ss *link;x.y,z;且已建立如下图所示链表结构:(分数:3.00)填空项 1:_18.已有文本文件 test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由此文件指针 fr指向文件,则程序的输出结果是_。#include stdio.h main() FILE *fr; char str40;fgets(str,5,fr);printf(“%s/n,str);fclose(fr);(分数:3.00)二级 C语言笔试-333 答案解析(总分:104.00,做题时间:90 分钟)一、选择题(总题数:2,分数:50

27、.00)(分数:47.00)(1).下列选项中不属于算法的特性的是(分数:1.00)A.确定性B.可行性C.有输出D.无穷性 解析:解析 一个算法必须具有五个特性,即有穷性、确定性、可行性,有输入、有输出其中有穷性是指算法必须总是在执行完有穷步之后结束,而且每步都在有穷时间内完成。D 选项不是算法的特性。(2).下列叙述中正确的是(分数:1.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 所谓的线性结构是指:如果一个非空的数据结构满足下列两个条件,即 1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件所以同时满足两

28、个条件的有队列,线性表、栈,而二叉树的结点可能存在两个后件,不是线性结构。正确答案为 A。(3).设有下列二叉树:(分数:1.00)A.ABCDEFB.DAECFC.BDAECF D.DBEFCA解析:解析 叉树的遍历分为先序、中序、后序三种不同方式。本题要求中序遍历,其遍历顺序应该为:中序遍历左子树-,访问根结点-中序遍历右子树按照定义, 中序遍历序列是 BDAECF,故答案为B。(4).结构化程序设计主要强调的是(分数:1.00)A.程序的规模B.程序的易读性 C.程序的执行效率D.程序的可移植性解析:解析 按结构化程序设计方法设计出的程序具有明显的优点,即程序易于理解、使用和维护,便于控

29、制、降低程序的复杂性,便于验证程序的正确性,程序清晰易读,可理解性好。所以答案为 B。(5).在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的”这一性质指的是对象的(分数:1.00)A.分类性B.标识惟一性C.多态性D.封装性 解析:解析 从外面看只能看到对象的外部特性,而对象的内部,即处理能力的实行和内部状态,指的是对象的封装性。(6).用黑盒技术测试用例的方法之一为(分数:1.00)A.因果图 B.逻辑覆盖C.循环覆盖D.基本路径测试解析:解析 黑盒测试主要方法有等价值划分法、边界值分析法,错误推测法、因果图法等白盒测试的主要方法有逻辑

30、覆盖、基本路径测试循环覆盖等。只有 A属于黑盒测试。(7).在进行单元测试时,常用的方法是(分数:1.00)A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试C.只使用白盒测试D.只使用黑盒测试解析:解析 白盒测试是测试程序内部逻辑结构,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试为辅。(8).下面四个选项中,不属于数据库管理系统提供的数据语言的是(分数:1.00)A.数据定义语言B.数据查询语言 C.数据操纵语言D.数据控制语

31、言解析:解析 通常数据库管理系统提供的数据语言有数据定义语言、数据操纵语言和数据控制语言。其中数据操纵语言负责数据的操纵,包括查询及增、删,改等操作。所以查询语言属于数据操纵语言的一部分。(9).在关系数据库模型中,通常可以把( )称为属性,其值称为属性值。(分数:1.00)A.记录B.基本表C.模式D.字段 解析:解析 数据库表中字段转化为属性,把记录的类型转化为关系模式。(10).实体联系模型中实体与实体之间的联系不可能是(分数:1.00)A.一对一B.多对多C.一对多D.对零 解析:解析 实体联系模型中实体与实体之间的联系有一对一(1:1),一对多戌多对一(1:m 或 m:1),多对多(

32、m:n)其中一对一是最常用的关系。(11).用 C语言编写的代码程序(分数:1.00)A.可立即执行B.是一个源程序 C.经过编译即可执行D.经过编译解释即可执行解析:解析 C 语言一种高级语言, C 语言源程序经过 C语言编译程序编译之后,生成一个后缀为。OBJ的二进制文件(称为目标文件),最后还要由称为“连接程序” (Link)的软件,把此。OBJ 文件与 C语言提供的各种库函数连接在一起,生成一个后缀EXE 的可执行文件。显然 C语言不能立即执行,故选项 A错误;根据以上定义,选项 C和选项 D错误,所以,4 个选项中选项 B符合题意。(12).以下叙述中正确的是(分数:1.00)A.C

33、语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编译解析:解析 本题考核的知识点是 C 程序从编写到生成可执行文件的步骤。C 语言采用编译方式将源程序转换为二进制的目标代码,编写好一个 C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模

34、块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D 均不正确。所以,4 个选项中选项 B符合题意。(13).以下定义语句中正确的是(分数:1.00)A.char a=A b=B;B.float a=b=10.0;C.int a=10,*b= D.float *a,b=解析:解析 选项 A中定义两个变量 a和 b,并赋初值,C 语言中可以同时定义多个变量,但变量之间必须用“,”隔开,显然,选项 A中少了一个逗号“,”,故选项 A不正确;选项 B中定义变量时用了连续的赋值语句,这在定义变量是不正确

35、的,故选项 B不正确,选项 D定义一个指针,然后定义了一个变量并让这个变量的初值为该指针变量,显然这这时的指针变量还没初始化就被赋值给变量,是不对的,故选项D不正确,所以,4 个选项中选项 C符合题意。(14).有以下程序:main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %d %3.lf %3.lf/n“,a,c,f,x);程序运行后的输出结果是(分数:1.00)A.1 65 1 6.5B.1 65 1.5 6.5 C.1 65 1.0 6.5D.2 65 1.5 6.5解析:解析 主函数中先

36、定义了一个整型变量 a,一个字符变量 c并赋初值 10,一个浮点型变量 f并赋初值 100.00和一个 double型 x,接着执行“a=f/=C*=x=6.5)”,该语句从右向左计算,先把 6.5赋值给x(该括号表达式的值也为 6.5),此时 x的值的变为 6.5,然后执行“c*=(x=6.5)”相当于执行“c=c*(x=6.5)”,此时 c的值为 65,接着向左执行“f/c*=(x=6.5)”,语句相当于执行“f=f/c”接着向最右边执行“a=f”,由于 a是整型变量,所以 a最后去 f的整数部分为 1。程序最后输出的 a、c、 f和 x的值分别为 1、65、1.5、6.5。所以,4 个选

37、项中选项 B符合题意。(15).数据库设计的根本目标是要解决(分数:1.00)A.数据共享问题 B.数据安全问题C.大量数据存储问题D.倘化数据维护解析:解析 数据库技术的根本目标就是要解决数据的共享问题,选项 A正确。(16).设有定义:float a=2,b=4,h=3;,以下 C语言表达式中与代数式 (分数:1.00)A.(a+b)*h/2B.(1/2)*(a+b)*h C.(a+b)*h*1/2D.h/2*(a+解析:解析 选项 B中由于 1和 2都是整型,其 1/2的运算结果为 0,故整个表达式的值为 0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4 个选项中选项 B符

38、合题意。(17).有以下程序main()int m=0256,n=256;printf(“%o%o/n“,m,n);程序运行后的输出结果是(分数:1.00)A.0256 0400B.0256 256C.256 400 D.400 400解析:解析 程序中定义了两个整型变量,一个用八进制表示,一个用十进制表示,输出语向中要求m,n 都为八进制输出,显然 m原样输出为 256,n 的值转换为八进制输出(256 的八进制为 400),故输出400所以,4 个选项中选项 C 符合题意。(18).数据库系统的核心是(分数:1.00)A.数据模型B.数据库管理系统 C.数据库D.数据库管理员解析:解析数据

39、库管理系统(DBMS)是整个数据库系统的核心,它对数据库中的数据进行管理,还在用户的个别应用与整体数据库之间起接口作用,选项 B正确。(19).以下叙述中错误的是(分数:1.00)A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识解析:解析 用户标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,并且不能与 c语言关键字相同。所以本题应该选择 A)。(20).有以下程序:main ()char k; int i;for(i=1;i3;i+)scanf(“%

40、c“,switch(k)case 0: printf(“another/n“);case 1: printf(“number/n“);程序运行时,从键盘输入:01回车,程序执行后的输出结果是(分数:1.00)A.anothernumberB.anothernumberanotherC.anothernumbernumber D.numbernumber解析:解析 switch 语句的执行过程是:在 switch后面的表达式的值和 case后面常量表达式的值吻合时,就执行后面的语句如果在该语句的后面没有 break语句,则继续执行下一个 case,直到遇到 break语句或 switch多分支的

41、结束,在 switch 语句中,break 语句的作用是使流程跳出 switch结构,终止Switch语句的执行本题中在 for循环中嵌套了 swish语句,每循环一次通过 scanf()函数从键盘上输入一个 k值,然后执行 switch语句。for 循环共循环了 2次,当 i=1时,从键盘上输入 0,使得 k的值为0,执行 switch语句中 case:0后面的语句,输出 another,接着执行 case:0下面的语句输出 number,退出 switch语句,当 i=2时,从键盘上输入 1,使得 k的值为 1,执行 switch语句中 case 1后面的语句,输出 number,退出 s

42、witch语句当 i=3 时退出循环故最后的输出为 another、number 和 number,所以,4 个选项中选项 C符合题意。(21).以下叙述中正确的是(分数:1.00)A.用 C 程序实现的算法必须要有输入和输出操作B.用 C 程序实现的算法可以没有输出但必须要有输入C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入出没有输出解析:解析 算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应当具有以下五个特性:有穷性;确定性;可行性;有零个或多个输入;有一个或多个输出。所以,4 个选项中选项 C符合题意。(22).有以下程序ma

43、in () int i=0,s=0;doif(i%2) i+;continue; i+;s+=i;while (i7);printf ( “%d/n“ , s );执行后输出的结果是(分数:1.00)A.16 B.12C.28D.21解析:解析 在循环体中有一条 if语句,其后面表达式为“i%2”,当 i的值为奇数时,其值为真,执行其后面的语句,i 的值加 1,重新开始循环,当 i的值为偶数时,“i%2”为假,执行“i+; s+1”。在循环中 i为偶数时的值分别为 0、2、4、6,加 1过后的值分别为 1、3、5、7,s 中存放的是它们的和,值为 16所以,A 选项为所选。(23).已定义 c

44、h为字符型变量,以下赋值语句中错误的是(分数:1.00)A.ch=/; B.ch=62+3;C.ch=NULL;D.ch=/xaa;解析:解析 给字符型变量赋值只能赋一个字符,包括转义字符。选项 A中“/”为转义字符应该用“/,来表示,故选项 A错误;选项 B中将一个整数赋值给字符变量,正确;选项 C将一个空值赋值给字符变量,正确;选项 D将一个用十六进制数表示的转义字符赋值给字符变量,正确,所以,4 个选项中选项 A符合题意。(24).有以下程序main ( ) char a,b,c,d;scanf (“%c, %c, %d, %d“ , printf(“%c,%c,%c,%c/n“,a,b

45、,c,d);若运行时从键盘上输入:6,5,65,66回车。则输出结果是(分数:1.00)A.6,5,A,B B.6,5,65,66C.6,5,6,5D.6,5,6,6解析:解析 主函数中首先定义了 4 个字符变量 a、b、c、d,然后通过 scanf()函数输入 a、b、c、乙输入中 a和 b是按字符格式 c输入的,c 和 d是按整型符号 d输入的在看下面的 pnntf()函数中,要求a、b、c、d 都按字符输出,故 a和 b原样输出为 6、5,c 和 d将把与其 ASCII码对应的字符输出,65 和66的 ASCII码对应字符 A和 B,故最后的输出为 6,5,A,B。所以,4 个选项中选项

46、 A符合题意。A.以下能正确定义二维数给的是B.int a3; C.int a3=2*3;D.int a3=;E. D) int a23=1解析:解析 选项 A中省略了第一维的长度,在 c语言中是不允许的,故选项 A错误;选项 C也是省略第一维的长度;选项 D中定义了一个 2行 3列的数组,而在赋值的时候却赋了一个 3行的值给它,显然不正确,故选项 D错误,所以,4 个选项中选项 B符合题意。(26).以下程序输出结果是#include stdio.hmain ( ) int i=0,a=0;while ( i2 0 ) for(;) if (i%10) =0) break;else i-;i

47、+=11; a+=i;print f ( “%d/n“ ,(分数:1.00)A.;A) 21B) 32C) 33D) 11解析:解析 break 语句只能在循环体和 switch语句体内使用。本题程序为在 while循环中嵌套 for循环。先看内层 for循环,该循环的 3 个表达式全部省略,循环条件始终为真,但循环体内的 break语句为终止循环的条件。首先,由初始条件判断外层循坏 while括号内表达式的值,该值为真,执行本次 while循环,即执行循环体内的订语句,判断该表达式后面括号里表达式的值为真,执行 break 语句,跳出内层循环,执行下面的语句,此时 i 和 a的值均变为 11;回到外层循环,判断表达式“i20”仍为真,执行内层循环语句,此时 if条件不满足,执行 else语句,i 的值为 1

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