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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言笔试-141 及答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。(分数:2.00)A.switch(x)B.switch(int)x);case 1.0:printf(“*/n“); case 1:printf(“*/n“);case 2.0:printf(“*/n“); case 2:printf(“*/n“);C.switch(a+b)D.switch(a+b)case 1;printf(“*/n“); case 1:prin

2、tf(“*/n“);case 2+1:printf(“*/n“); case c:printf(“*/n“);)2.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:2.00)A.main()B.float fun(int a,intb)x=fun(2,10); main()float fun(int a,intb) x=fun(i,j);C.float fun(int,int);D.main()main() float fun(int i,intj);x=fun(2,10); x=fun(i,j);float fun(in

3、t a,intb) float fun(int a,intb)3.以下能正确定义且赋初值的语句是_。(分数:2.00)A.int n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5;4.以下叙述中错误的是_。(分数:2.00)A.可以通过 typedef 增加新的类型B.可以用 typedef 将已存在的类型用一个新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名5.下列定义变量的语句中错误的是_。(分数:2.00)A.int_int;B.doub

4、le int_;C.char for;D.float US6.以下叙述中错误的是_。(分数:2.00)A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值D.当在函数的开头包括头文件 stdio.h 时,可以给指针变量赋 NULL7.有以下程序:#includestdio.hmain()FILE*fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+)fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r

5、“);fscanf(fp,“%d“,n);fclose(fp);printf(“%d/n“,n);程序的运行结果是_。(分数:2.00)A.12300B.123C.1D.3218.对如下二叉树:ABDECF进行后序遍历的结果为_。(分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA9.下列选项中不属于结构化程序设计方法的是_。(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用10.有以下程序:#includestring.hmain(int argc,char*argv)int i=1,n=0;while(iargc)n=n+strlen(argvi)

6、;i+printf(“%d/n“,n);该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行:proc 123 45 67则该程序的输出结果是_。(分数:2.00)A.3B.5C.7D.1111.有以下程序:int a=2;int f(int n)static int a=3;int t=0;if(n%2)static int a=4;t+=a+;elsestatic int a=5;t+=a+;return t+a+;main()int s=a,i;for(i=0;i3;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。(分数:2.00)_12.

7、以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看做一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句13.以下叙述中错误的是_。(分数:2.00)A.C 语言源程序经编译后生成后缀为.obj 的目标程序B.C 程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASC代码形式存放在一个文本文件中D.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令14.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表

8、示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。(分数:2.00)A.abB.a|bC.abD.a415.有以下程序:#includestdio.hmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12;i+)csi+;for(i=1;i5;i+)printf(“%d“,ci);printf(“/n“);程序的运行结果是_。(分数:2.00)A.1 2 3 4B.2 3 4 4C.4 3 3 2D.1 1 2 316.设有条件表达式:(EXP)i+:j-,则以下表达式中与(EXP)完全等

9、价的是_。(分数:2.00)A.(EXP=0)B.(EXP!=0)C.(EXP=1)D.(EXP!=1)17.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩18.有以下程序:void swap(char*x,char*y)cbar t;t=*x; *x=*y; *y=t;main()char*s1=“abc“,*s2=“123“;swap(s1,s2);printf(“%s,%s/n“,s1,s2)

10、;程序执行后的输出结果是_。(分数:2.00)A.123,abcB.abc,123C.1bc,a23D.321,cba19.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是_。(分数:2.00)A.并B.交C.投影D.笛卡儿乘积20.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“,ch);B.while(ch=getchar()!=N)printf(“%c“,ch);C.while(ch=getchar()=N)printf(“%c

11、“,ch);D.while(ch=getchar()=N)printf(“%c“,ch):21.有以下程序:main()int a,b,d=25;a=d/10%9;b=a(-1);printf(“%d,%d/n“,a,b);程序运行后的输出结果是_。(分数:2.00)A.6,1B.2,1C.6,0D.2,022.有以下程序:#includestdio.h#includestring.hvoid fun(char*s,int n)char*t;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj)t=si;si=sj;sj=

12、t;main()Char*ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5);printf(“%s,%s/n“,ss0,ss4);程序的运行结果是_。(分数:2.00)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc23.下列叙述中正确的是_。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库系统的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对24.有以下程序:main()int y=10;while(y-);printf(“y=%d/n“,y

13、);程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1C.y=1D.while 构成无限循环25.有以下程序:#includestdio.hstruct ttint x;struct tt*y;*p;struct tt a4=20,a+1,15,a+2,30,a+3,17,amain()int i;p=a;for(i=1;i=2;i+)printf(“%d“,p-x);p=P-y;程序的运行结果是_。(分数:2.00)A.20,30,B.30,17C.15,30D.20,1526.在软件开发中,需求分析阶段产生的主要文档是_。(分数:2.00)A.可行性分析报告B.软件需求规格

14、说明书C.概要设计说明书D.集成测试计划27.有以下程序:#includestdio.hvoid fun(char *a,char*b)while(*a=*)a+;while(*b=*(分数:2.00)A.b+;a+;28.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为_。(分数:2.00)A.log2nB.n/2C.nD.n+129.冒泡排序在最坏情况下的比较次数是_。(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/230.有以下程序:void change(int k)k0=k5;)main()int x10=1,2,3,4,5,6,

15、7,8,9,10,n=0;while(n=4)(change(xn);n+;for(n=0;n5;n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 531.设有定义语句 int(*f)(int);,则以下叙述正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返回值是基类型为 int 类型的地址32.

16、有以下程序:main()char*p=“3697“,“2584“;int i,j;long num=0;for(i=0;i2;i+)j=0;while(pij!=/0)if(pij-0)%2)num=10*num+pij-0;j+=2;printf(“%d/n“,num);程序执行后的输出结果是_。(分数:2.00)A.35B.37C.39D.397533.有以下程序:#includestdio.h#define N 5#define M N+1#define f(x)(x*M)main()int i1,i2;i1=f(2);i2=f(1+1);printf(“%d%d“,i1,i2);程序的

17、运行结果是_。(分数:2.00)A.12 12B.11 7C.11 11D.12 734.两个或两个以上模块之间关联的紧密程度称为_。(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性35.有以下程序:#includestdio.hmain()int i,j;for(i=3;i=1;i-)for(j=1;j=2;j+)printf(“%d“,i+j);printf(“/n“);程序运行的结果是_。(分数:2.00)A.2 3 4B.4 3 2C.2 3D.4 53 4 5 5 4 3 3 4 3 44 5 2 336.以下能正确定义字符串的语句是_。(分数:2.00)A.char

18、 str=/064;B.char str=“kx43“;C.char str=“;D.char str=“/0“;37.有以下程序:#includestring.hvoid f(char p10,int n)char t10;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strcmp(pi,pj)0)strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);main()char p510=“abc“,“aabdfg“,“abbd“,“dedbe“,“cd“;f(p,5);printf(“%d/n“,strlen(p0);程序运行后的

19、输出结果是_。(分数:2.00)A.2B.4C.6D.338.程序流程图中有箭头的线段表示的是_。(分数:2.00)A.图元关系B.数据流C.控制流D.调用关系39.有以下程序:#includestdio.h#includestring.htypedef structchar name9;char sex;float score2;)STU;void f(STU(分数:2.00)A.STU b=“Zhao“,m,85.0,90.0);in40.有以下程序:main()int a33,*P,i;p=a00;for(i=0;i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,

20、a1i);程序运行后的输出结果是_。(分数:2.00)_二、填空题(总题数:13,分数:30.00)41.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_42.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_43.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_44.一个关系表的行称为 1。(分数:2.00)填空项 1:_45.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,

21、 1 负责数据的模式定义与数据的物理存取构建。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是_。#includestdio.hmain()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:_47.下面程序由两个源程序文件:t4.h 和 t4.c 组成,程序编译运行结果是_。t4h 的源程序为:#define N 10#define f2(x)(x*N)t4.c 的源程序为:#includestdio.h#define M 8#defin

22、e f(x)(x)*M)#include“t4.h“main()int i,j;i=f(1+1);j=f2(1+1);printf(“%d%d/n“,i,j);(分数:2.00)填空项 1:_48.以下程序的运行结果是_。main()(int a=2,b=7,c=5;switch(a0)case 1:switch(b0)case 1:switch(“);break;case 2:printf(“!“);break;case 0:switch(c=5)case 0:printf(“*“);break;case 1:printf(“#“);break;case 2:printf(“$“);brea

23、k;default:printf (“);printf(“/n“);(分数:2.00)填空项 1:_49.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135,则输出 531,请填空。#includestdio.hmain()int n,s;printf(“Enter a number:“);scanf(“%d“,n);printf(“Output:“);dos=n%10;printf(“%d“,s);_;while(n!=0);printf(“/n“);(分数:2.00)填空项 1:_以下 isprime 函数的功能是:判断形参 a 是否为素数,是素数,函数返回 1,否则返回 0

24、。请填空。int isprime(int a)int i;for(i=2;i=a/2;i+)if(a%i=0) (10) ;(11) ;(分数:4.00)填空项 1:_填空项 1:_50.以下程序的输出结果是_。int fun(int*x,int n)if(n=0)return x0;else return x0+fun(x+1,n-1);main()int a=1,2,3,4,5,6,7;printf(“%d/n“,fun(a,3);(分数:2.00)填空项 1:_函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把a 所指

25、二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数据不变。#define N 4void rotate(int aN,int bN)int i,j;for(i=0;iN;i+)biN-1= (13) ; (14) =aN-1i;(分数:4.00)填空项 1:_填空项 1:_51.函数 main()的功能是:在带头节点的单链表中查找数据域中值最小的节点。请填空。#includestdio.hstruct nodeint data;struct node*next;int mainstruct node*first)/*指针 first 为链表头指针*/struct

26、 node*p;int m;P=first-next;m=P-data;p=p-next;for(;P!=NULL;p=_)if(p-datam)m=p-data;return m;(分数:2.00)填空项 1:_二级 C 语言笔试-141 答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。(分数:2.00)A.switch(x)B.switch(int)x);case 1.0:printf(“*/n“); case 1:printf(“*/n“

27、);case 2.0:printf(“*/n“); case 2:printf(“*/n“);C.switch(a+b) D.switch(a+b)case 1;printf(“*/n“); case 1:printf(“*/n“);case 2+1:printf(“*/n“); case c:printf(“*/n“);)解析:解析 switch-case 结构中,case 后面必须是整数或者字符常量。因此选项 A、D 都错。而 B 中switch 后面不能有分号。注意,(2+1)是一个常量。2.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中

28、错误的程序是_。(分数:2.00)A.main() B.float fun(int a,intb)x=fun(2,10); main()float fun(int a,intb) x=fun(i,j);C.float fun(int,int);D.main()main() float fun(int i,intj);x=fun(2,10); x=fun(i,j);float fun(int a,intb) float fun(int a,intb)解析:解析 在调用函数时,此函数必须被声明或定义过。A 选项中 fun 在调用时并未声明,因此是错误的。3.以下能正确定义且赋初值的语句是_。(分数

29、:2.00)A.int n1=n2=10;B.char c=32; C.float f=f+1.1;D.double x=12.3E2.5;解析:解析 C 语言中规定,程序中所要用到的变量应该先定义后使用。因此选项 A 和 C 都是错误的。选项 D 中,E 的后面只能为整数,不能是实数。所以 D 也是错误的。只有选项 B 是正确的,char 和 int 是通用的。4.以下叙述中错误的是_。(分数:2.00)A.可以通过 typedef 增加新的类型 B.可以用 typedef 将已存在的类型用一个新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可

30、以为各种类型起别名,但不能为变量起别名解析:解析 typedef 用来声明新的类型名来代替已有的类型名,typedef 只是对已经存在的类型增加了一个类型名,原有类型名仍有效。typedef 不能用来定义变量。5.下列定义变量的语句中错误的是_。(分数:2.00)A.int_int;B.double int_;C.char for;D.float US 解析:解析 不能用做变量名,合法的标识符由字母、数字和下画线组成。6.以下叙述中错误的是_。(分数:2.00)A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值 D.当在函数的开头包括头文件

31、stdio.h 时,可以给指针变量赋 NULL解析:解析 函数的形参接收传递给函数的变元的值,它类似于局部变量,也是动态的,当函数退出时自动销毁,因此,改变函数形参的值,并不会改变对应实参的值,所以选项 A 是正确的。选项 B 是正确的,函数可以返回地址值即返回一个指针,只是必须明确声明返回的指针类型。选项 C 是错误的,因指向变量的指针既不是整数,也不是无符号整数,它只是某类型数据的内存地址,因此不能赋一个整数给指针变量作为地址值。选项 D 是正确的,头文件 stdio.h 中定义了宏 NULL,它是一个空指针常数,若给指针变量赋 NULL,即将指针初始化为空。7.有以下程序:#includ

32、estdio.hmain()FILE*fp;int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+)fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,n);fclose(fp);printf(“%d/n“,n);程序的运行结果是_。(分数:2.00)A.12300B.123 C.1D.321解析:解析 本题考查的是 C 语言对文件的操作。语句 fopen(“d1.dat”,“w”);用于打开文件d1.dat,若文件不存在

33、则建立一个新的文件,然后语句 for(i=0;i3;i+)fprintf(fp.“%d”.ai);向文件中写入数据 123/n。fp=fopen(“d1.dat”,“r”);以只读方式打开 d1.dat 文件,fscanf(fp,“%d”,n);用于将文件中的数据读入到变量 n 中,最后输出 n 的值为 123。8.对如下二叉树:ABDECF进行后序遍历的结果为_。(分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA 解析:解析 二叉树的后序遍历(LRD) :首先遍历左子树,然后访问遍历右子树,最后访问根节点。9.下列选项中不属于结构化程序设计方法的是_。(分数:

34、2.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化,限制使用goto 语句。10.有以下程序:#includestring.hmain(int argc,char*argv)int i=1,n=0;while(iargc)n=n+strlen(argvi);i+printf(“%d/n“,n);该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行:proc 123 45 67则该程序的输出结果是_。(分数:2.00)A.3B.5C.7 D.11解析:解析 main()函数中参数 argc 包含命令

35、行选项的个数,argv 包括 argc 个 C 风格字符串。字符串长度函数 strlen(s)计算以 s 为起始地址的字符串的长度。11.有以下程序:int a=2;int f(int n)static int a=3;int t=0;if(n%2)static int a=4;t+=a+;elsestatic int a=5;t+=a+;return t+a+;main()int s=a,i;for(i=0;i3;i+)s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是_。(分数:2.00)_解析:解析 定义“int a=2;”中的全局变量 a,起作用的范围是从定义此变

36、量的位置开始到本源文件结束;定义“static int a=3;”中的静态局部变量 a 的作用范围是其所在的函数 f,并对其只赋一次初值,以后每次调用函数时不再重新赋值,而只保留上次函数调用结束时的值;复合语句“staticint a=4;t+=a+;12.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看做一条语句C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句解析:解析 C 程序中所有语句都必须由一个分号“;”作为结束符。如果只有一个分号,这个分号也是一条语句,称为“空语句”,程序执行时不产生任何动作。程序设计中有时

37、需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,影响程序的运行。所以选项 C 的说法是错误的。13.以下叙述中错误的是_。(分数:2.00)A.C 语言源程序经编译后生成后缀为.obj 的目标程序B.C 程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASC代码形式存放在一个文本文件中D.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 解析:解析 C 语言程序编译时,每条可执行语句将转换为二进制的机器指令,非执行语句如注释语句等不被编译。14.变量 a 中的数据用二进制表示的形式是 01

38、011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。(分数:2.00)A.ab B.a|bC.abD.a4解析:解析 1 与 1 异或结果为 0,0 与 1 异或结果为 1,可见要使某位数翻转,只要使其与 1 进行异或运算即可。0 与 0 进行异或运算结果为 0,1 与 0 进行异或运算结果为 1,可见要使某位的数不变,只要使其与 0 进行异或运算即可。15.有以下程序:#includestdio.hmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i

39、12;i+)csi+;for(i=1;i5;i+)printf(“%d“,ci);printf(“/n“);程序的运行结果是_。(分数:2.00)A.1 2 3 4B.2 3 4 4C.4 3 3 2 D.1 1 2 3解析:解析 程序中定义了两个数组 s 和 c,数组 c 中有 5 个元素,每个元素的初始值为 0;数组 s 中有12 个元素,包含 4 个“1”,3 个“2”,3 各“3”,2 个“4”。第一个 for 语句中,用 si作为 c 数组的下标,用于统计 si中相同数字的个数,同时将统计的结果放在以该数字为下标的 c 数组中。第二个for 语句用于将 c 数组中 a1a44 个元素

40、输出。16.设有条件表达式:(EXP)i+:j-,则以下表达式中与(EXP)完全等价的是_。(分数:2.00)A.(EXP=0)B.(EXP!=0) C.(EXP=1)D.(EXP!=1)解析:解析 本题考查的重点是条件表达式的用法。条件表达式首先判断“(EXP)”是真值还是假值。而在 C 语言中,真值是任意非零值,也可以是负数,而假值是零。因此,与条件表达式中“(EXP)”完全等价的是选项 B。17.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:2.00)A.课号,成

41、绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 在二维表中凡能唯一标识元组的最小属性集称为关键字,关键字具有标识元组、建立元组间联系等重要作用。此题中,(学号,课号)是表 SC 的主键,学号、课号分别为外键,学号是表 S 的关键字,课号是表 C 的关键字。18.有以下程序:void swap(char*x,char*y)cbar t;t=*x; *x=*y; *y=t;main()char*s1=“abc“,*s2=“123“;swap(s1,s2);printf(“%s,%s/n“,s1,s2);程序执行后的输出结果是_。(分数:2.00)A.123,abcB.abc,123

42、C.1bc,a23 D.321,cba解析:解析 函数 swap()实现的功能为交换字符指针 x 和 y 首位的数值。19.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是_。(分数:2.00)A.并B.交 C.投影D.笛卡儿乘积解析:解析 并运算会增加元组个数,投影运算会减少表中属性个数,笛卡儿积既会增加属性个数,又会增加元组个数。20.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“,ch); B.while(ch=getchar

43、()!=N)printf(“%c“,ch);C.while(ch=getchar()=N)printf(“%c“,ch);D.while(ch=getchar()=N)printf(“%c“,ch):解析:解析 因为 while 是以条件为假时结束循环,因此选项 C、D 不正确。“!=”的优先级比“=”高,因此“ch=getchar()!=N”相当于“ch=(getchar!=N)”,ch 并不能得到输入的字符,只能得到 true或者 false 值。21.有以下程序:main()int a,b,d=25;a=d/10%9;b=a(-1);printf(“%d,%d/n“,a,b);程序运行后

44、的输出结果是_。(分数:2.00)A.6,1B.2,1 C.6,0D.2,0解析:解析 本题的考点是关于 C 语言的整数运算和逻辑运算。由于 d 初值为 25,“a=d/10%9 中d/10”整除结果是 2,再用 9 求余结果仍是 2,因此 a 的值为 2。而对于“b=a(-1)”,由于 a 值为 2不为 0,-1 也不为 0,因此“a(-1)”结果为真,b 值是 1。输出结果应该是 2、1。正确选项是 B。22.有以下程序:#includestdio.h#includestring.hvoid fun(char*s,int n)char*t;int i,j;for(i=0;in-1;i+)f

45、or(j=i+1;jn;j+)if(strlen(si)strlen(sj)t=si;si=sj;sj=t;main()Char*ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5);printf(“%s,%s/n“,ss0,ss4);程序的运行结果是_。(分数:2.00)A.xy,aaaacc B.aaaacc,xyC.bcc,aabccD.aabcc,bcc解析:解析 函数 fun 的功能是:采用冒泡排序法,对字符串数组 s 中 n 个字符串按照字符串的长度由小到大进行排序,s0指向长度最小的字符串“xy”,s4指向长度最大的字符串“aaaacc”。23.下列叙述中正确的是_。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库系统的根本目标是要解决数据的共享问题 C.数据库管理系统就是数据库系统D.以上三种说法都不对解析:解析 数据库系统(DBS)是由数据库(数据)、数据库管理系

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