欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言模拟650及答案解析.doc

    • 资源ID:1325914       资源大小:123.50KB        全文页数:23页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言模拟650及答案解析.doc

    1、二级 C 语言模拟 650 及答案解析(总分:160.50,做题时间:90 分钟)一、选择题(总题数:40,分数:60.50)1.有以下程序 #includestdio.h main() int a=2, 4, 6, 8, 10, x, *p, y=1; p= for(x=0; x3; x+)y+=*(p+x); printf(“%d/n“, y); 程序的输出结果是_。(分数:2.00)A.19B.13C.11D.152.有以下程序: #includestdio.h main() int a=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, *p=a+5; *q=

    2、NULL; *q=*(p+5); printf(“%d%d/n“, *q, *q); 程序运行后的输出结果是_。(分数:2.50)A.运行后报错B.6 6C.6 11D.5 103.以下函数调用语句中,含有的实参个数是_。 fun(x+y, (e1, e2), fun(xy, d, (a, b);(分数:1.00)A.3B.4C.6D.84.有以下程序: #includestdio.h main() int x, a=1, b=1; while(1) scanf(“%d“, if(x0)a*=x; break; if(x0)b*=x; continue; printf(“%d, %d/n“,

    3、a, b); 程序运行时输入:-1 -2 0 1 2 回车,则输出结果是_。(分数:1.00)A.1,2B.2,2C.-1,1D.-2,15.有以下程序: int f1(double a) return a*a; int f2(int x,int y) double a,b; a=f1(x); b=f1(y); return a+b; main() double w; w=f2(2.1,4.0); ) 变量 w 的值是_。(分数:2.00)A.20.21B.20C.20.0D.0.06.有以下程序 #include stdio.h int fun() static int x=1; x+=1;

    4、 return x; main() int i,8=1; for(i=1;i=5;i+)s+=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.21B.11C.6D.1207.C 语言中运算对象必须是整型运算符的是(分数:1.00)A.%=B./C.=D.=8.下列选项中可作为 C 语言合法常量的是_。(分数:2.00)A.-80B.-080C.-8e1.0D.-80.0e9.在数据管理技术发展的三个阶段中,数据共享最好的是_。(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同10.有以下程序 #include

    5、stdio.h struct S int a,b; data2=10,100,20,200); main() struct S p=data1; printf(“%d/n“,+(p.A); 程序运行后的输出结果是_。(分数:1.00)A.21B.11C.20D.1011.函数 rewind 的作用是(分数:1.00)A.使文件位置指针重新返回文件的开始位置B.将文件位置指针指向文件中所要求的特定位置C.使文件位置指针指向文件的末尾D.使文件位置指针自动移至下一个字符位置12.有以下程序: #includestdio.h main() int a5=2,4,6,8,10,*p,* *k; p=a

    6、;k=p; pnntf(“%d“,(p+); printf(|%d/n“,* *k); 程序运行后的输出结果是_。(分数:1.00)A.4 6B.4 4C.2 2D.2 413.有以下程序: #includestdio.h #define S(x)(x/x)*x main() int k=6, j=3; printf(“%d, %d/n“, S(k+j), S(j+k); 程序运行后的输出结果是_。(分数:1.00)A.57,39B.57,57C.9,9D.39,3914.有两个关系 R 与 S 如下,由关系 R 和 S 得到关系 T,则所使用的操作为_。 R A A1 B B1 a 0 f

    7、3 a 0 n 2 b 1 f 3 b 1 n 2 a 1 f 4 S A A1 a 0 b 1 T B B1 f 3 n 2 (分数:1.00)A并B.自然连接C除D交15.有下列程序: void sort(int a, int n) int i, j, t; for(i=0; in-1; i+) for(j=i+1; jn; j+) if(aiaj)t=ai; ai=aj; aj=t; main() int aa10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; sort(aa+2, 5); for(i=0; i10; i+) printf(“%d, “, aai);

    8、 printf(“/n“); 程序运行后的输出结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,10,16.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:2.00)A.main()x=fun(2,10);float fun(int a,int b)B.float fun(int a,int b)main()x=fun(i,j);C.float fun(int,int)

    9、;main()“x=fun(2,10);float fun(int a,int b)D.main()float fun(int i,int j);x=fun(i,j);float fun(int a,int b)()17.支持子程序调用的数据结构是_。(分数:2.00)A栈B树C.队列D.二叉树18.有如下程序: #includestdio.h int sub(double a,double b) return(int)(a-b); main_ printf(“%d/n“,sub(3.8,2.1); 程序运行后的输出结果是_。(分数:1.00)A.2.0B.1.7C.2D.119.负责数据库中

    10、查询操作的数据库语言是_。(分数:2.50)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言20.以下程序运行后的输出结果是 #include stdio.h void fun(int a,int b) int t; t=a; a=b; b=t; main _ int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;i10;i+=2) fun(ci,ci+1); for(i=0;i10;i+) prinff(“%d,“,ci); printf(“/n“); (分数:2.00)A.1,2,3,4,5,6,7,8,9,0B.2,1,4,3,6,5,8,7,0,

    11、9C.0,9,8,7,6,5,4,3,2,1D.0,1,2,3,4,5,6,7,8,921.若有以下定义和语句: #includestdio.h char s110=“abcd!“,*s2=“/n123/“; printf(“%d%d/n“,strlen(s1),strlen(s2); 则输出结果是_。(分数:1.00)A.10 7B.10 5C.5 5D.5 822.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是 _ 。(分数:2.00)A.(!E= =0)B.(E0E0)C.(E= =0)D.(E!=0)23.软件设计中划分模块的一个准则是(分数:2.00)A.低内聚

    12、低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合24.以下能正确定义一维数组的选项是 _ 。(分数:1.00)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“;25.下面程序的运行结果是 #includestdio.h main _ int a=1,b=10; do b-=a;a+;while(b-0); printf(“a=%d,b=%d/n“,a,b); (分数:2.00)A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=926.有三个关

    13、系 R、S 和 T 如下: R B C D a 0 k1 b 1 n1 S B C D f 3 h2 a 0 k1 n 2 x1 T B C D a 0 k1 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为_。(分数:1.00)A并B.自然连接C.笛卡儿积D交27.以下关于宏的叙述中正确的是_。(分数:1.00)A.宏替换没有数据类型限制B.宏定义必须位于源程序中所有语句之前C.宏名必须用大写字母表示D.宏调用比函数调用耗费时间28.下面说明不正确的是(分数:2.00)A.char a10=“china“;B.char a10,*p=a;p=“china“C.char *a;a=“

    14、china“;D.char a10,*p;p=a=“china“29.以下选项中,对基类型相同的指针变量不能进行运算的运算符是_。(分数:1.00)A.+B.-C.-D.+30.下列二维数组初始化语句中,不正确的是 _ 。(分数:1.00)A.int b2=1,2,3,4,5,6,7;B.int b35=0,0,0;C.intb4=1,2,3,4,5,6;D.int b32=(1,2) ,(3,4) ,(5,6) ;31.设栈的存储空间为 S(1:50),初始状态为 top=51。现经过一系列正常的入栈与退栈操作后,top=20,则栈中的元素个数为_。(分数:1.00)A.31B.30C.21

    15、D.2032.以下程序的输出结果是_。 main() int a=1,b=2; printf(“%d,%d/n“,-a,+b);(分数:2.00)A.1,2B.1,3C.0,2D.0,333.若有以下定义和语句: char s10=“abcd!“,*s2=“/n123/“; printf(“%d%d/n“,strlen(s1) ,strlen(s2); 则输出结果是_。(分数:1.00)A.5 5B.10 5C.10 7D.5 834.有以下程序段: int*p; p=_malloc(sizeof(int); 若要求使 p 指向一个 int 型的动态存储单元,在横线处应填入的是_。(分数:1.

    16、00)A.(int*)B.intC.int*D.(*int)35.C 源程序中不能表示的数制是_。(分数:1.00)A.十进制B.八进制C.二进制D.十六进制36.以下选项中能表示合法常量的是_。(分数:2.00)A.1,200B.1.5E20C.“/“D.“/007“37.以下叙述中,正确的是_。(分数:1.00)A.输入项可以是一个实型常量,如 scanf(“%f,3.5):B.只有格式控制,没有输入项,能正确输入数据到内存,例如:scanf(“a=d, b=%d”);C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4.2f“,i0;i-) for(j=

    17、0;j4;j+).(分数:2.50)A.20B.24C.25D.3040.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指_。(分数:1.00)A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程二、程序填空题(总题数:1,分数:30.00)41.给定程序中,函数 fun()的功能是求出 ss 所指字符数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参 n 所指变量中。ss 所指字符数组中共有 M 个字符串,且串长N。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的

    18、BLANK1.C 中。不得增行或删行,也不得更改程序的结构。 #includestdio.h #includestring.h #define M 5 #define N 20 /*found*/ intfun(char(*ss) _ 1_ ,int *n) int i,k=0,len=0; for(i=0;iM;i+) len=strlen(ssi); /*found*/ if(i=0) *n= _ 2_ ; if(len*n) /*found*/ _ 3_ ; k=i; return(k); main() char ssMN=“shanghai“, “guangzhou“,“beijing

    19、“,“tianjing“,“cchongqing“); int n,k,i; printf(“/nThe original strings are:/n“); for(i=0;iM;i+)puts(ssi); k=fun(ss, printf(“/nThe length of longest string is:%d/n“,n); printf(“baThe longest string is:%/n“,ssk); (分数:30.00)三、程序修改题(总题数:1,分数:30.00)42.下列给定程序中,函数 fun 的功能是:将一个由八进制数字字符组成的字符串转换成十进制整数。规定输入的字符串

    20、最多只能包含 S 位八进制数字字符。 例如,若输入 77777,则输出 32767。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #includestdlib.h #includestring.h int fun(char*p) int n; /*found*/ n=*p-“o“; p+; while(*p!=0) /*found*/ n=n*8+*p-“o“; p+; return n; main() char s6; int i; int n; printf(“Enter a

    21、 string(octal digits):“); gets(s); if(strlen(s)5) printf(“Error;string too longer!/n/n“); exit(0); for(i=0;si;i+) if(si“0“|si“7“) printf(“Error;%c not is octal digits!/n/n“,si); exit(0); printf(“The originl string:“); puts(s); n=fun(s); printf(“/n%s is convered to intege number:%d/n/n“,s,n); (分数:30.

    22、00)_四、程序设计题(总题数:1,分数:40.00)43.编写函数 fun,其功能是:将 a、b 两个两位正整数合并成一个新的整数放在 C 中。合并的方式是:将a 中的十位和个位数依次放在变量 c 的干位和十位上,b 中的十位和个位数依次放在变量 C 的个位和百位上。 例如,当 a=45,b=12,调用该函数后 c=4251。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includeconio.h #includestdio,h void fun(int a,int b,long*c) ma

    23、in() int a,b; long C; printf(“Input a,b:“); scanf(“%d%d“,a,b); funa,b,c); printf(“The result is:%ld/n“,c); (分数:40.00)_二级 C 语言模拟 650 答案解析(总分:160.50,做题时间:90 分钟)一、选择题(总题数:40,分数:60.50)1.有以下程序 #includestdio.h main() int a=2, 4, 6, 8, 10, x, *p, y=1; p= for(x=0; x3; x+)y+=*(p+x); printf(“%d/n“, y); 程序的输出结

    24、果是_。(分数:2.00)A.19 B.13C.11D.15解析:解析 y 原值为 1,累加的值分别是 4 6 8,所以结果为 19,答案选择 A。2.有以下程序: #includestdio.h main() int a=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, *p=a+5; *q=NULL; *q=*(p+5); printf(“%d%d/n“, *q, *q); 程序运行后的输出结果是_。(分数:2.50)A.运行后报错B.6 6C.6 11D.5 10 解析:解析 本题中首先定义了一个一维数组。并初始化,由于定义该数组的时候省略了长度,因此该数组的

    25、长度为初始化时候赋初值的个数即为 12。数组名 a 代表数组的首地址,所以*p=a+5 语句使得 p 指向数组的第 6 个元素,而在程序中定义了一个指针 q 并让它指向空,实际上程序并没有在内存中为指针 q开辟存储空间,这样给 q 赋值不允许的,故该程序运行后报错。3.以下函数调用语句中,含有的实参个数是_。 fun(x+y, (e1, e2), fun(xy, d, (a, b);(分数:1.00)A.3 B.4C.6D.8解析:4.有以下程序: #includestdio.h main() int x, a=1, b=1; while(1) scanf(“%d“, if(x0)a*=x;

    26、break; if(x0)b*=x; continue; printf(“%d, %d/n“, a, b); 程序运行时输入:-1 -2 0 1 2 回车,则输出结果是_。(分数:1.00)A.1,2 B.2,2C.-1,1D.-2,1解析:解析 分析程序结构,在 while 循环中,输入 x 的值后,若 x 的值大于 0,将 a 的值累乘 x,执行break 语句跳出循环;若 x 的值小于 0,将 b 的值累乘 x,执行 continue 语句,进行下一个循环;当 x 的值等于 0 时,打印 a、b 的值,进入下一个循环。所以当输入-1、-2 后,b 累乘为 2;输入 0 后,打印a、b 的

    27、值为 1,2,再输入 1 后,a 累乘跳出循环,程序运行结束;输出结果为 1,2。故答案为 A 选项。5.有以下程序: int f1(double a) return a*a; int f2(int x,int y) double a,b; a=f1(x); b=f1(y); return a+b; main() double w; w=f2(2.1,4.0); ) 变量 w 的值是_。(分数:2.00)A.20.21B.20C.20.0 D.0.0解析:6.有以下程序 #include stdio.h int fun() static int x=1; x+=1; return x; mai

    28、n() int i,8=1; for(i=1;i=5;i+)s+=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.21 B.11C.6D.120解析:解析 循环调用 fun 函数,依次返回值为 2 3 4 5 6,s 原值为 1,累加以上返回值,最终结果为21,所以答案选择 A。7.C 语言中运算对象必须是整型运算符的是(分数:1.00)A.%= B./C.=D.=解析:解析 C 语言规定:求余运算符“%”的运算对象必须是整型。复合赋值运算符“%=”中包含%运算,它的运算对象也必须是整型。8.下列选项中可作为 C 语言合法常量的是_。(分数:2

    29、.00)A.-80 B.-080C.-8e1.0D.-80.0e解析:9.在数据管理技术发展的三个阶段中,数据共享最好的是_。(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段 D.三个阶段相同解析:解析 数据管理技术发展至今经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,逻辑性强物理性少,使用方便,在各方面的表现都最好,一直占据数据库领域的主导地位,因此本题答案为 C。10.有以下程序 #include stdio.h struct S int a,b; data2=10,100,20,200); main() struct S p=d

    30、ata1; printf(“%d/n“,+(p.A); 程序运行后的输出结果是_。(分数:1.00)A.21 B.11C.20D.10解析:解析 声明 data 是结构 S 的数组。初始化时“data0.a=10; data0.b=100; data1.a=20; data1.b=200”。主函数中 p=data1,即“p.a=data1.a; p.b=data1.b;”,执行语句“printf(“%d/n“,+(p.A);”打印输出时 p.a 先增 1 再打印。即 p.a=data1.a=20,先增 1 等于 21,因此程序运行结果是 21。11.函数 rewind 的作用是(分数:1.00

    31、)A.使文件位置指针重新返回文件的开始位置 B.将文件位置指针指向文件中所要求的特定位置C.使文件位置指针指向文件的末尾D.使文件位置指针自动移至下一个字符位置解析:解析 函数 rewind 的功能是将文件指针重新指向一个流的开头。用法如下: int rewind(FILE * stream);并且无返值。 12.有以下程序: #includestdio.h main() int a5=2,4,6,8,10,*p,* *k; p=a;k=p; pnntf(“%d“,(p+); printf(|%d/n“,* *k); 程序运行后的输出结果是_。(分数:1.00)A.4 6B.4 4C.2 2D

    32、.2 4 解析:解析 首先通过 p=a 使 p 指向数组的第 1 个元素,所以输出 2;在输出 2 以后,由于 p+,即 p 就指向数组的第 2 个元素,* *k 就是取出 p 所指向元素的值,而 p 指向的是数组的第 2 个元素,即输出 4。因此 D 选项正确。13.有以下程序: #includestdio.h #define S(x)(x/x)*x main() int k=6, j=3; printf(“%d, %d/n“, S(k+j), S(j+k); 程序运行后的输出结果是_。(分数:1.00)A.57,39 B.57,57C.9,9D.39,39解析:解析 本题考查宏定义。宏定义

    33、是在程序预处理阶段直接进行文本替换,所以本题中 s(k+i)和s(j+k)可以替换为:S(k+j)=(k+j/k+j)k+j=(6+3/6+3)6+3=57 和 S(j+k)=(j+k/j+k)i+k=(3+6/3+6)3+6=39。故答案为 A 选项。(注:宏定义中的形参一定要使用小括号括起来,以避免出错)14.有两个关系 R 与 S 如下,由关系 R 和 S 得到关系 T,则所使用的操作为_。 R A A1 B B1 a 0 f 3 a 0 n 2 b 1 f 3 b 1 n 2 a 1 f 4 S A A1 a 0 b 1 T B B1 f 3 n 2 (分数:1.00)A并B.自然连接

    34、C除 D交解析:解析 常用的扩充运算有交、除、连接及自然连接等。并:RS 是将 S 中的记录追加到 R 后面。交:RS 结果是既属于 R 又属于 S 的记录组成的集合。上述两种操作中,关系 R 与 S 要求有相同的结构,故A、D 选项错误。自然连接:去掉重复属性的等值连接。自然连接要求两个关系中进行比较的是相同的属性,并且进行等值连接,可知 B 选项错误。除运算可以近似地看作笛卡尔积的逆运算。当 ST=R 时,则必有 RS=T,T 称为 R 除以 S 的商。设关系 R 有属性 M1,M2,Mn,关系 S 有属性 Mn-s+1,Mn-s+2,Mn,此时有:RS=M1,M2,Mn-S(R)-M1,

    35、M2,Mn-s(M1,M2,Mn-s(R)S)。由 S 中有属性 A 和 A1,T 中属性为 B 和 B1,在 R 元组中找到对应于 s 中两个元组的 T 中元组为 f3 与n2。R 中最后一个元组与 S 中无对应关系,所以在 T 中也不会出现。故 C 选项正确。15.有下列程序: void sort(int a, int n) int i, j, t; for(i=0; in-1; i+) for(j=i+1; jn; j+) if(aiaj)t=ai; ai=aj; aj=t; main() int aa10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; sort(a

    36、a+2, 5); for(i=0; i10; i+) printf(“%d, “, aai); printf(“/n“); 程序运行后的输出结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10, D.1,2,9,8,7,6,5,4,3,10,解析:解析 本题考查排序的使用由 sort()函数的两层 for 循环语句可知,其功能是把数组 a中的元素按照从大到小的顺序进行排列。在 main()函数中首先定义了一维整型数组 aa10,然后调用sort(aa+2,5)实现从数组 aa 中下标

    37、为 2 的元素“3”开始,其后连续的 5 个元素从大到小进行排列,其余元素不变。16.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:2.00)A.main()x=fun(2,10);float fun(int a,int b) B.float fun(int a,int b)main()x=fun(i,j);C.float fun(int,int);main()“x=fun(2,10);float fun(int a,int b)D.main()float fun(int i,int j);x=fun(i,j);floa

    38、t fun(int a,int b)()解析:解析 在函数调用前,需要定义或有声明,A 选项错误。17.支持子程序调用的数据结构是_。(分数:2.00)A栈 B树C.队列D.二叉树解析:解析 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,然后继续向下执行,这种调用方式符合栈的特点,因此本题的答案为 A。18.有如下程序: #includestdio.h int sub(double a,double b) return(int)(a-b); main_ pri

    39、ntf(“%d/n“,sub(3.8,2.1); 程序运行后的输出结果是_。(分数:1.00)A.2.0B.1.7C.2D.1 解析:解析 在类型转换过程中,如果较高类型转换成较低类型,直接忽略多余位数。程序执行过程为:调用函数 sub(3.8,2.1),3.8-2.1=1.7(double 类型),(int)强制转换将 1.7 转换成 int 类型 1,然后返回 1 并输出。19.负责数据库中查询操作的数据库语言是_。(分数:2.50)A.数据定义语言B.数据管理语言C.数据操纵语言 D.数据控制语言解析:解析 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操

    40、纵,包括查询及增加、删除、修改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。因此本题答案为 C。20.以下程序运行后的输出结果是 #include stdio.h void fun(int a,int b) int t; t=a; a=b; b=t; main _ int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;i10;i+=2) fun(ci,ci+1); for(i=0;i10;i+) prinff(“%d,“,ci); printf(“/n“); (分数:2.00)A.1,2,3,4,5,6,7,8,9,0 B.2,1

    41、,4,3,6,5,8,7,0,9C.0,9,8,7,6,5,4,3,2,1D.0,1,2,3,4,5,6,7,8,9解析:解析 fun 函数无值返回。main 函数调用时数组元素作实参,形参的改变不会影响实参。因此,循环调用结束后,C 数组没有任何改变。21.若有以下定义和语句: #includestdio.h char s110=“abcd!“,*s2=“/n123/“; printf(“%d%d/n“,strlen(s1),strlen(s2); 则输出结果是_。(分数:1.00)A.10 7B.10 5C.5 5 D.5 8解析:解析 strlen 函数返回字符串的长度,求字符串长度时,

    42、遇到结束标识“/0“为止,但是长度不包括结束标识。字符数组 s1 的后 5 个元素没有赋值,都为“/0“,即“abcd!“后为“/0“,所以 strlen(s1)的值为 5。字符指针 s2 所指向的字符串中,/n 为转义字符换行符,表示 1 个字符,/也为转义字符,代表/,也是 1 个字符,其后为字符串结束标识“0“;所以 strlen(s2)的值也为 5。因此 C 选项正确。22.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是 _ 。(分数:2.00)A.(!E= =0)B.(E0E0) C.(E= =0)D.(E!=0)解析:解析 在 while(E)中,表达式 E

    43、可以是 C 语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B)中表达式 E0E0 是一个逻辑表达式。23.软件设计中划分模块的一个准则是(分数:2.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即遵循高内聚、低耦合的原则。24.以下能正确定义一维数组的选项是 _ 。(分数:1.00)A.int a5 =0,1,2,3,4,5;B.char a = 0,1,2,3,4,5; C.char a = “

    44、A“,“B“,“C “;D.int a5 = “0123“;解析:解析 选项 A)定义的是长度为 5 的数组元素,但初值有 6 个元素,所以错误;选项 C)不符合数组定义形式,数组名后应加上“;选项 D)的类型说明符错误,应改为 char;选项 B)中的0,1,2,3,4,5 分别表示对应字符的 ASCII 码,所以正确。25.下面程序的运行结果是 #includestdio.h main _ int a=1,b=10; do b-=a;a+;while(b-0); printf(“a=%d,b=%d/n“,a,b); (分数:2.00)A.a=3,b=11B.a=2,b=8 C.a=1,b=

    45、-1D.a=4,b=9解析:解析 本题考查两个知识点:自加自减运算符和 do-while 循环语句。do-while 循环条件是 b-0,所以循环体语句只执行一次。26.有三个关系 R、S 和 T 如下: R B C D a 0 k1 b 1 n1 S B C D f 3 h2 a 0 k1 n 2 x1 T B C D a 0 k1 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为_。(分数:1.00)A并B.自然连接C.笛卡儿积D交 解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此 B 错误。笛卡尔积是用 R 集合中的元素为第一元素,S 集合中的元素为第二元素构成的有序对,因此 C 错误。根据关系 T 可以很明显地看出是从关系 R 与关系 S 中取得相同的关系组,所以使用的是交运算,选择 D。27.以下关于宏的叙述中正确的是_。(分数:1.00)A.宏替换没有数据类型限制 B.宏定义必须位于源程序中所有语句之前C.宏名必须用大写字母表示D.宏调用比函数调用耗费时间解析:解析 宏定义写在函数的花括号外边,作


    注意事项

    本文(【计算机类职业资格】二级C语言模拟650及答案解析.doc)为本站会员(terrorscript155)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开