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

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

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

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

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

    1、二级 C 语言分类模拟题 550 及答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:40,分数:58.00)1.有以下程序: # include stdio.h int a=1,b=2; void funl(int a,int b) printf(“%d%d“,a,b); void fun2() a=3;b=4; main() fun1(5,6);fun2(); printf(“%d%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.1 2 5 6B.5 6 3 4C.5 6 1 2D.3 4 5 62.按照“后进先出”原则组织数据的数据结构是 _ 。

    2、(分数:1.00)A.队列B栈C.双向链表D.二叉树3.有以下程序: #include stdio.h main() while(getchar()!=“/n“); 以下叙述中正确的是_。(分数:2.50)A.此 while 语句将无限循环B.getchar()不可以出现在 while 语句的条件表达式中C.当执行此 while 语句时,只有按回车键程序才能继续执行D.当执行此 while 语句时,按任意键程序就能继续执行4.可在 C 程序中用作用户标识符的一组标识符是_。(分数:1.00)A.voiddefineWORDB.as_b3_123IfC.For_abccaseD.2cDOSIG5

    3、.设有定义语句“int(*f)(int);”则下列叙述中正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返回值是基类型为 int 类型的地址6.有以下程序: # include stdio.h main() short c=124; c=c_; printf(“%d/n“,c); 若要使程序的运行结果为 248,应在横线处填入的是_。(分数:1.00)A.2B.|248C. 0248D.17.有下列程序: #includestdio.h v

    4、oid fun(int a,int n,int flag) int i=0,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag?(aiaj):(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun(c,10,1); fun(c,8,0); for(i=0;i10;i+) printf(“%d,“,ci); 程序执行后的输出结果是_。(分数:1.00)A.8,7,6,5,4,3,2,1,9,10,B.3,4,5,6,7,8,9,10,2,1,C.9,10,1,2,3,4,5,6

    5、,7,8,D.10,9,8,7,6,5,4,3,1,2,8.设变量已正确定义,则以下能正确计算 f=n!的程序是_。(分数:2.50)A.f=0;for(i=1; i=n; 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;9.有下列程序: int fun(int x, int n) static int sum=0, i; for(i=0; in; i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6,

    6、7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是_。(分数:1.00)A.45B.50C.60D.5510.C 语言中 double 类型数据占字节数为_。(分数:1.00)A.4B.8C.12D.1611.一个栈的初始状态为空。现将元素 1,2,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1D.1,2,3,C,B,A12.下面描述不属于软件特点的是_。(分数:1.00)A.软件是一种逻辑实体,具

    7、有抽象性B.软件在使用中不存在磨损、老化问题C.软件复杂性高D.软件使用不涉及知识产权13.设栈的存储空间为 S(1:m),初始状态为 top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针 top 值变为_。(分数:1.00)A.发生栈满的错误B.2CmD.014.算法的空间复杂度是指_。(分数:2.50)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间15.设有以下说明,则不正确的叙述是_。 union un int a; char b; float c; arr;(分数:2.00)A.arr 所占的内存

    8、长度等于成员 c 的长度B.arr 的地址和它的各成员的地址都是同一地址C.arr 可以作为函数参数D.不能在定义 arr 时对它初始化16.以下是正确 C 语言实型常量的是_。(分数:1.00)Ae-1B.e-1C.-1eD.1e-117.下面描述中错误的是_。(分数:1.00)A.软件系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具18.有以下程序: #includestdio.h main() int y=9; for(;y0;y-) if(y%3=0) printf(“%d

    9、“,-y); 程序的运行结果是_。(分数:2.50)A.852B.963C.741D.87542119.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。(分数:1.00)A.ab+cB.ch=getchar()C.a=b+cD.a+20.设某棵树的度为 3,其中度为 2,1,0 的节点个数分别为 3,4,15,则该树中总节点数为_。(分数:1.00)A.30B.22C.35D.不可能有这样的树21.串的长度是 _(分数:1.00)A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于零D.串中所含字符的个数22.以下程序

    10、运行后的输出结果是 #includestdio.h main _ int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) ease 0:a+;break; ease 1:b+;break; ease 2:a+;b+;break; case 3:a+:b+: printf(“a=%d,b=%d/n“,a,b); (分数:1.00)A.a=1,b=0B.a=2,b=2C.a=l,b=1D.a=2,b=123.设有定义语句:char a=“/72“;,则变量 a_。(分数:1.00)A.包含 1 个字符B.包含 2 个字符C.包含 3 个字符D.定义不合法2

    11、4.已知 char a;int b;float c;double d:则表达式 a-b+c-d 结果为_型。(分数:2.50)A.doubleB.floatC.intD.char25.当 a=3,b=5,c=9,d=7 时,执行下面的程序段后,x 的值为_。 if(ab) if(ed)x=4; else if(ac) if(bd)x=6; else x=8; else x=9; else x=14;(分数:2.50)A.9B.6C.14D.426.下列不合法的用户标识符是_。(分数:2.50)A.j2_KEYB.DoubleC.4dD._8_27.若二维数组 a 有 m 列,则在 aij之前的

    12、元素个数为_。(分数:2.50)A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+128.以下选项中叙述正确的是_。(分数:1.00)A.函数体必须由开始B.C 程序必须由 main 语句开始C.C 程序中的注释可以嵌套D.C 程序中的注释必须在一行完成29.下列叙述中正确的是_。(分数:1.00)A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少D.数据库系统独立性较差,而文件系统独立性较好30.有以下程序: #includestdio.h i

    13、nt f(int x) int y; if(x=0|x=1)return(3); y=x*x-f(x-2); return t; main() int z; z=f(3); printf(“%d/n“,z); 程序运行后的输出结果是_。(分数:1.00)A.0B.9C.6D.831.若有定义语句 int b=2;,则表达式(b2)/(3|b)的值是_。(分数:1.00)A.4B.8C.0D.232.若有以下定义: int x10, *pt=x; 则对 x 数组元素的正确引用是_。(分数:2.50)A.pt+3B.*int a10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“

    14、); for(i=0;i3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“, felose(fp); printf(“%d/n“,n); 程序的运行结果是_。(分数:1.00)A.123B.12300C.1D.32134.有以下程序: #includestdio.h main() int a=10,20,30,40,*p=a,i; for(i=0;i=3;i+)ai=*p;p+; printf(“%d/n“,a2); 程序运行后的输出结果是_。(分数:1.

    15、00)A.10B.20C.30D.4035.有以下程序 #include stdio.h int f(int x); main() int n=1,m; m=f(f(f(n); printf(“%d/n“,m); int f(int x) return x*2; 程序运行后的输出结果是_。(分数:1.00)A.2B.8C.4D.136.以下叙述中正确的是_。(分数:2.00)A.int * p1; int * * p2; int *p3;都是合法的定义指针变量的语句B.指针变量只能通过求地址运算符(与 p=/0;是等价的语句D.语句 p=NULL;执行后,指针 p 指向地址为 0 的存储单元3

    16、7.以下叙述中错误的是 _ 。(分数:1.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输出C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果38.若有以下程序_。 #includestdio.h main() int*k, *j, i=100; j= k= printf(“%d/n“, *k); 程序的输出结果是_。(分数:2.50)A.运行出错B.100C.j 的地址D.i 的地址39.若有定义语句:“int a=10; double b=3.14;”,则表达式“A“+a+b 值的类型是_。(分数:1.00)A.charB.intC.dot

    17、lbleD.float40.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。(分数:1.00)A.非 0 值B.“/0“C.0D.NULL二级 C 语言分类模拟题 550 答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:40,分数:58.00)1.有以下程序: # include stdio.h int a=1,b=2; void funl(int a,int b) printf(“%d%d“,a,b); void fun2() a=3;b=4; main() fun1(5,6);fun2(); printf(“%d%d/n“

    18、,a,b); 程序运行后的输出结果是_。(分数:1.00)A.1 2 5 6B.5 6 3 4 C.5 6 1 2D.3 4 5 6解析:解析 fun1 是输出局部变量的值,fun2 是把全局变量的值改成 3 和 4,所以输出的结果是 5 6 3 4。2.按照“后进先出”原则组织数据的数据结构是 _ 。(分数:1.00)A.队列B栈 C.双向链表D.二叉树解析:解析 栈只允许在表的一端进行插入或删除操作,是一种“后进先出”线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”线性表。3.有以下程序: #include stdio.h main() while(ge

    19、tchar()!=“/n“); 以下叙述中正确的是_。(分数:2.50)A.此 while 语句将无限循环B.getchar()不可以出现在 while 语句的条件表达式中C.当执行此 while 语句时,只有按回车键程序才能继续执行 D.当执行此 while 语句时,按任意键程序就能继续执行解析:解析 根据程序顺序执行的次序,当程序执行到 while 这条语句,根据 while 语句中的结束循环的条件是“输入回车键时,结束循环”,所以当按回车键后,程序才执行 while 语句的下一条语句。4.可在 C 程序中用作用户标识符的一组标识符是_。(分数:1.00)A.voiddefineWORDB

    20、.as_b3_123If C.For_abccaseD.2cDOSIG解析:解析 C 语言中用户标识符不能与 c 编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。选项 A,define,void 为关键字;选项 C,for,case 为关键字;选项 D,DO 为关键字。5.设有定义语句“int(*f)(int);”则下列叙述中正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参 C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返回值是基类型为 int 类型的地址解析:解析 i

    21、nt(*f)(int);为指向函数的指针变量的定义方法,其中 f 为指向函数的指针变量,第一个int 为函数返回值类型,第二个 int 为函数的形参类型,因此 B 选项正确。6.有以下程序: # include stdio.h main() short c=124; c=c_; printf(“%d/n“,c); 若要使程序的运行结果为 248,应在横线处填入的是_。(分数:1.00)A.2B.|248C. 0248D.1 解析:解析 124 的 2 进制值为 1111100,要输出为 248 即 124*2,则 2 进制值为 11111000,即右移 1 位,所以选 D。7.有下列程序: #

    22、includestdio.h void fun(int a,int n,int flag) int i=0,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag?(aiaj):(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun(c,10,1); fun(c,8,0); for(i=0;i10;i+) printf(“%d,“,ci); 程序执行后的输出结果是_。(分数:1.00)A.8,7,6,5,4,3,2,1,9,10, B.3,4,5,6,7,8,9,10,2,1,C

    23、.9,10,1,2,3,4,5,6,7,8,D.10,9,8,7,6,5,4,3,1,2,解析:解析 在本题中,fun()函数接收数组 a、数组元素个数 n 以及整型变量 flag,然后通过 for 循环遍历数组 a 的 n 个元素,若 flag 为 1,则将数组元素升序排列;若 flag 为 0,则将数组元素逆序排列。main()函数定义整型数组 c,它包含 10 个元素,首先将数组 c、元素个数 10 和 1 传给 fun()函数,将 c中 10 个元素升序排列,结果为:1,2,3,4,5,6,7,8,9,10,;然后再次调用 fun()函数,将数组c、元素个数 8 和 0 传给 fun(

    24、)函数,将 c 中前 8 个元素逆序排列,结果为:8,7,6,5,4,3,2,1,9,10。故本题答案为 A 选项。8.设变量已正确定义,则以下能正确计算 f=n!的程序是_。(分数:2.50)A.f=0;for(i=1; i=n; 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; 解析:解析 由 n!的数字定义可知 n!=n*(n-1)*(n-2)*1。在选项 A 中,由于 f 的初值为 0,在 for循环语句中,f 依次乘以 1,2,3,n,最后计算得到 f=

    25、n!=0,所以选项 A 不正确。在选项 B 中,f 的初值为 1,在 for 循环语句中,f 依次乘以 1,2,3,(n-1),最后计算得到 f=(n-1)!,所以选项 B 不正确。在选项 C 中,f 的初值为 1,在 for 循环语句中,f 依次乘以 n,n+1,n+2,所以选项 C 不正确。在选项 D 中,f 的初值为 1,在 for 循环语句中,f 依次乘以 n,n-1,n-2,2,最后计算得到 f=n!,所以选项 D 正确。9.有下列程序: int fun(int x, int n) static int sum=0, i; for(i=0; in; i+) sum+=xi; retu

    26、rn sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是_。(分数:1.00)A.45B.50C.60 D.55解析:解析 在函数 int fun(int x,int n)的定义中,变量 sum 为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数 int fun(int x,int n)的功能是求出数组 x各个元素的和,所以在主函数中,调用函数 fun(a,5)后,变量sum=1+2+

    27、3+4+5=15,当再次调用 fun(b,4)后,变量 sum=15+6+7+8+9=45,所以 s=15+45=60。10.C 语言中 double 类型数据占字节数为_。(分数:1.00)A.4B.8 C.12D.16解析:解析 double 型数据在内存中占 8 个字节,float 型数据占 4 个字节,int 型数据占 2 个字节,char 型数据占 1 个字节,所以选择 B 选项。11.一个栈的初始状态为空。现将元素 1,2,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1

    28、 D.1,2,3,C,B,A解析:解析 栈的修改是按“后进先出”的原则进行的,所以顺序应与入栈顺序相反,故选 C 选项。12.下面描述不属于软件特点的是_。(分数:1.00)A.软件是一种逻辑实体,具有抽象性B.软件在使用中不存在磨损、老化问题C.软件复杂性高D.软件使用不涉及知识产权 解析:解析 软件具有以下特点:软件是一种逻辑实体,具有抽象性;软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题;对硬件和环境具有依赖性;软件复杂性高,成本昂贵;软件开发涉及诸多的社会因素,如知识产权等。故选项 D 正确。13.设栈的存储空间为 S(1:m),初始状态为 top=m+1。经过一系列入栈与

    29、退栈操作后,top=1。现又要将一个元素进栈,栈顶指针 top 值变为_。(分数:1.00)A.发生栈满的错误 B.2CmD.0解析:解析 栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素并将其赋予指定变量。题目中初始状态为 top=m+1,可知入栈栈顶指针 top=top-1,出栈栈顶指针 top=top+1,由于栈长为 m,当 top=1 时栈满,不能再进行入栈操作。故选 A 选项。14.算法的空间复杂度是指_。(分数:2.50)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中

    30、所需要的存储空间 解析:解析 算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。15.设有以下说明,则不正确的叙述是_。 union un int a; char b; float c; arr;(分数:2.00)A.arr 所占的内存长度等于成员

    31、 c 的长度B.arr 的地址和它的各成员的地址都是同一地址C.arr 可以作为函数参数 D.不能在定义 arr 时对它初始化解析:16.以下是正确 C 语言实型常量的是_。(分数:1.00)Ae-1B.e-1C.-1eD.1e-1 解析:解析 所谓常量是指在程序运行过程中,其值不能被改变的量。在 C 语言中,有整型常量、实型常量、字符常量和字符串常量等类型。实型常量有两种表示形式:十进制小数形式、指数形式。指数形式中 e 后面的指数必须是整数,阶码标志 e 之前需要有数字,由此可知 A,B,C 选项错误。答案为 D 选项。17.下面描述中错误的是_。(分数:1.00)A.软件系统总体结构图支

    32、持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析 软件系统的总体结构图是软件架构设计的依据,不支持软件的详细设计。18.有以下程序: #includestdio.h main() int y=9; for(;y0;y-) if(y%3=0) printf(“%d“,-y); 程序的运行结果是_。(分数:2.50)A.852 B.963C.741D.875421解析:解析 第 1 次 for 循环,y 的值为 9,y%3 的值为 0,满足条件打印-y,即先减一后打印,所以打印 8;第 2

    33、 次 for 循环,y 的值为 7,y%3 的值为 1,不执行打印语句;第 3 次 for 循环,y 的值为 6,y%3的值为 0,满足条件打印-y,即先减一后打印,所以打印 5;第 4 次 for 循环,y 的值为 4,不满足 if 条件,不执行打印语句;第 5 次 for 循环,y 的值为 3,满足 if 条件,打印输出 2;第 6 次 for 循环,y 的值为 1,不满足条件,不执行打印语句。19.若变量已正确定义,在 if(W)printf(“%d/n“,k);中,以下不可替代 W 的是_。(分数:1.00)A.ab+c B.ch=getchar()C.a=b+cD.a+解析:解析 选

    34、项 A 是非法的表达式,C 语言中没有运算符。20.设某棵树的度为 3,其中度为 2,1,0 的节点个数分别为 3,4,15,则该树中总节点数为_。(分数:1.00)A.30B.22C.35D.不可能有这样的树 解析:解析 在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度,树中的节点数即为树中所有节点的度数之和再加 1。假设度为 3 的节点数为 n,总节点数为m,m=3n+23+14+1,叶子节点数 15=m-(3+4+n)。得 m=3n+11,2n=11,n 无法得到整数,说明不可能存在这样的树。故答案为 D 选项。21.串的长度是 _(分数:1.00)A.串

    35、中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于零D.串中所含字符的个数 解析:22.以下程序运行后的输出结果是 #includestdio.h main _ int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) ease 0:a+;break; ease 1:b+;break; ease 2:a+;b+;break; case 3:a+:b+: printf(“a=%d,b=%d/n“,a,b); (分数:1.00)A.a=1,b=0B.a=2,b=2C.a=l,b=1D.a=2,b=1 解析:解析 由于 x=1,从外层

    36、switch 的 case 1 入口,到达内层的 switch;由于 y=0,从内层 switch的 case 0 入口,执行 a+;,执行 break 语句,跳出内层 sw:itch 结构;“case 常量表达式”只能起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内层 switch 结构后,继续执行了外部switch 结构的 case 2 分支。最后 a 和 b 的值分别为 2 和 1。23.设有定义语句:char a=“/72“;,则变量 a_。(分数:1.00)A.包含 1 个字符 B.包含 2 个字符C.包含 3 个字符D.定义不合法解析:解析 “是转义字符,但是“/72“

    37、表示 ASCII 码里的一个字符。24.已知 char a;int b;float c;double d:则表达式 a-b+c-d 结果为_型。(分数:2.50)A.double B.floatC.intD.char解析:解析 C 语言中允许进行不同数据类型的混合运算,但在实际运算时,要先将不同类型的数据转化成同一类型再进行运算。类型转换的一般规则是:运算中将所有 char 型转换成 int 型,float 型转换成 double 型;低级类型服从高级类型,并进行相应的转换,数据类型由低到高的顺序为:charint-unsigned-long-float-double;赋值运算中最终结果的类型

    38、,以赋值运算符左边变量的类型为准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应转换。25.当 a=3,b=5,c=9,d=7 时,执行下面的程序段后,x 的值为_。 if(ab) if(ed)x=4; else if(ac) if(bd)x=6; else x=8; else x=9; else x=14;(分数:2.50)A.9B.6 C.14D.4解析:26.下列不合法的用户标识符是_。(分数:2.50)A.j2_KEYB.DoubleC.4d D._8_解析:27.若二维数组 a 有 m 列,则在 aij之前的元素个数为_。(分数:2.50)A.j*m+iB.i*m+j C.

    39、i*m+j-1D.i*m+j+1解析:解析 在 C 语言中,由于二维数组在内存中是按照行优先的顺序存储的(即先顺序存储第 0 行元素,再存第 1 行元素,依次类推),且下标的起始值为 0,因此在 aij之前的元素有 i*m+j 个。28.以下选项中叙述正确的是_。(分数:1.00)A.函数体必须由开始 B.C 程序必须由 main 语句开始C.C 程序中的注释可以嵌套D.C 程序中的注释必须在一行完成解析:解析 函数体是函数首部下面的花括号内的部分,所以函数体必须由开始,A 选项正确。一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从。main 函数开始执行的,不是 main 语

    40、句,B 选项错误。C 程序中允许两种注释,以/开头的单行注释;以/*开始,以*/结束的块式注释,D 选项错误。函数可以嵌套,注释不能嵌套,C 选项错误。29.下列叙述中正确的是_。(分数:1.00)A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能 B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少D.数据库系统独立性较差,而文件系统独立性较好解析:解析 数据管理技术的发展经历了 3 个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。三者各自的特点如下表所示。 特点 人工管理阶段 文件系统阶段 数据库系统

    41、阶段 管理者 人 文件系统 数据库管理系统 面向对象 某个应用程序 某个应用程序 现实世界 共享程度 无共享,冗余度大 共享性差,冗余度大 共享性大,冗余度小 独立性 不独立,完全依赖于程序 独立性差 具有高度的物理独立性和一定的逻辑独立性 结构化 无结构 记录内有结构,整体无结构 整体结构化,用数据模型描述 控制能力 由应用程序由应用程序由DBMS 提供数控制 控制 据安全性、完整性、并发控制和恢复 数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能。数据库系统和文件系统的区别不仅在于管理的文件类型与数据量的多少,数据库系统具有高度的物理独立性和一定的逻辑独立性,而文件系统独立性较好

    42、。故本题答案为 A 选项。30.有以下程序: #includestdio.h int f(int x) int y; if(x=0|x=1)return(3); y=x*x-f(x-2); return t; main() int z; z=f(3); printf(“%d/n“,z); 程序运行后的输出结果是_。(分数:1.00)A.0B.9C.6 D.8解析:解析 主函数中调用 f 函数,同时将数值 3 传递给变量 x,执行条件不满足条件 if(x=0|x=1);跳过 return(3);,直接执行语句 y=x*x-f(x-2);这里 f(x-2)为函数的递归调用,再次调用 f 函数,此时

    43、x=1,判断条件成立,返回 3 给 f(1),y=3*3-3=6,最后将 6 返回主函数,并进行输出。因此 C 选项正确。31.若有定义语句 int b=2;,则表达式(b2)/(3|b)的值是_。(分数:1.00)A.4B.8 C.0D.2解析:解析 2 的二进制数为 010,移两位后的二进制数为 01000,转成十制数为 8,(3|2)为真即1,8/1=8,所以结果为 8。32.若有以下定义: int x10, *pt=x; 则对 x 数组元素的正确引用是_。(分数:2.50)A.pt+3B.*int a10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i

    44、=0;i3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“, felose(fp); printf(“%d/n“,n); 程序的运行结果是_。(分数:1.00)A.123 B.12300C.1D.321解析:解析 程序首先将数组 a10中的元素 1、2、3 分别写入了文件 d1.dat 文件中,然后又将 d1.dat文件中的数据 123,整体写入了变量 n 的空间中,因此打印 n 时输出的数据为 123,选项 A 正确。34.有以下程序: #include

    45、stdio.h main() int a=10,20,30,40,*p=a,i; for(i=0;i=3;i+)ai=*p;p+; printf(“%d/n“,a2); 程序运行后的输出结果是_。(分数:1.00)A.10B.20C.30 D.40解析:解析 因为指针变量 p 的初始值指向数组 a,所以执行 for 循环语句后,数组 a 中的元素的值不变。因此 C 选项正确。35.有以下程序 #include stdio.h int f(int x); main() int n=1,m; m=f(f(f(n); printf(“%d/n“,m); int f(int x) return x*2

    46、; 程序运行后的输出结果是_。(分数:1.00)A.2B.8 C.4D.1解析:解析 第一次调用“m=f(f(f1)”,第二次为“m=f(f2)”,第三次为“m=f(4)”,即返回值为8,选项 B 正确。36.以下叙述中正确的是_。(分数:2.00)A.int * p1; int * * p2; int *p3;都是合法的定义指针变量的语句 B.指针变量只能通过求地址运算符(与 p=/0;是等价的语句D.语句 p=NULL;执行后,指针 p 指向地址为 0 的存储单元解析:解析 B 选项描述不正确,指针变量可以通过求地址运算符(等价;D 选项中,语句 p=NULL;执行后,指针 p 并不是指向地址为 0 的存储单元,而是具有一个确定的值-“空”。因此 A选项正确。37.以下叙述中错误的是 _ 。(分数:1.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输出 C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果解析:解析 算法的目的是为了求解,所谓的“解”就是输出。一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。38.若有以下程序_。 #includestdio.h main() int*k, *j, i=1


    注意事项

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




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

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

    收起
    展开