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

    【计算机类职业资格】国家二级(C语言)机试模拟试卷135及答案解析.doc

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

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

    【计算机类职业资格】国家二级(C语言)机试模拟试卷135及答案解析.doc

    1、国家二级(C 语言)机试模拟试卷 135及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有关线性链表的叙述中正确的是( )。(分数:2.00)A.进行插入与删除时,不需要移动表中的元素B.各数据节点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.各数据节点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致D.以上说法均不正确2.有关队列的叙述中正确的是( )。(分数:2.00)A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构3.一棵二叉树共有 20个节

    2、点,其中 5个是叶子节点,则度为 1的节点数为( )。(分数:2.00)A.15B.11C.6D.44.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式5.在满足实体完整性约束的条件下( )。(分数:2.00)A.一个关系中可以没有任何候选关键字B.一个关系中有且只有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中应该有一个或多个候选关键字6.有三个关系 R、S 和 T如下: (分数:2.00)A.自然连接B.差C.除D.交7.在软件设计中不使用的工具是( )。(分数:2.00)A.PAD图B.程序流

    3、程图C.系统结构图D.数据流图(DFD 图)8.关于需求分析阶段任务的叙述中不正确的是( )。(分数:2.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制订软件测试计划9.黑盒测试用例的主要根据是( )。(分数:2.00)A.算法合理性B.程序外部功能C.相关数据结构D.程序流程图10.关于软件危机表现的叙述中不正确的是( )。(分数:2.00)A.软件过程文件不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高11.关于程序模块化的叙述中错误的是( )。(分数:2.00)A.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

    4、B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序12.关于 C语言程序格式的叙述中正确的是( )。(分数:2.00)A.用 C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上13.设 int m=0;与其他三个表达式的结果不同的是( )。(分数:2.00)A.m+B.m+=1C.+mD.m+114.关于 C语言数据类型叙述中

    5、,错误的是( )。(分数:2.00)A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型D.整数类型可以用来表示自然数15.以下数值常量不符合 C语言语法的是( )。(分数:2.00)A.30E02B.le3C.012D.0xabcd16.有如下程序段:int x=12;double y=3141593;printf(d86f,x,y);其输出结果是( )。(分数:2.00)A.12,3141593B.123141593C.12 3141593D.123141593017.已知

    6、字符A的ASC代码值是 65,字符变量 a的值是A,b 的值是D。则执行语句orintf(d,d,a,b 一 2);的输出结果是( )。(分数:2.00)A.A,DB.A,BC.65,68D.65,6618.当 x为大于 1的奇数时,值为 0的表达式是( )。(分数:2.00)A.x2=0B.x3C.x2!=0D.x2=119.有以下程序: #include main() int x; scanf(d,&x); if(x=4); else if(x8)printf(dn,x); 程序运行时,输入的值在哪个范围才会有输出结果?( )(分数:2.00)A.小于 4的整数B.不等于 8的整数C.大于

    7、 4或等于 8的整数D.大于 4且小于 8的整数20.有以下程序: #include main() int a=7; while(a); printf(dn,+a); 程序运行后的输出结果是( )。(分数:2.00)A.0B.一 1C.1D.721.有以下程序: #include main() char b,c; inti; b=a; c=A; for(i=0;i6;i+) if(i2)putehar(i+b); else putchar(i+c); printf(n); 程序运行后的输出结果是( )。(分数:2.00)A.abcDEFB.ABcDEfC.aBcDeFD.AbCdEf22.有以

    8、下程序: #include main() int i,j,x=0; for(i=0;i2;i+) x+: for(j=0;j4;j+) if(j2)continue; x+: x+: printf(x:dn,x); 程序执行后的输出结果是( )。(分数:2.00)A.x:4B.x:8C.x:6D.x:1223.设有以下函数:int fun(int n,char*s)则下面对函数指针的定义和赋值均正确的是( )。(分数:2.00)A.int(*pf)(int,char);pf=&fun;B.int*pf();pf=fun;C.int*pf();*pf=fun;D.int(*pf)(int,cha

    9、r*);pf=fun;24.若用变量作为实参调用函数,以下正确的是( )。(分数:2.00)A.函数的形参和实参分别占用不同的存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参会覆盖实参存储空间的值25.若要求定义具有 10个 float型元素的一维数组 a,则以下定义语句中错误的是( )。(分数:2.00)A.float a5+5;B.float n=10,an;C.#define n 5 float a2*n;D.#define N 10 float aN;26.有以下程序: #include main() int i,t3=1,2,3,4

    10、,5,6,7,8,9; for(i=0;i3;i+) printf(d,t2 一 ii); 程序执行后的输出结果是( )。(分数:2.00)A.3 5 7B.7 5 3C.3 6 9D.7 5 127.有以下程序: #include void fun(int*s,int n1,int n2) int i,j,t; i=n1;j=n2; while(ij) t=si;si:sj;sj:t;i+;j main() int a10=9,8,7,6,5,4,3,2,1,0,k; fun(a,0,2);fun(a,7,9);fun(a,0,7); for(k=0;k10;k+) printf(d,ak)

    11、; printf(n); 程序运行后的输出结果是( )。(分数:2.00)A.2341098765B.03456987 12C.9876543210D.098765123428.有以下程序: #include main() int a44=1,2,3,4,1,6,5,9,3,7,2,5,4,2,4,l,i,k,t; for(i=0;i3;i+) for(k=i+1;k4;k+) if(aiiakk) t=aii;aii=akk;akk=t; for(i=0;i4;i+) printf(d,a0i); 程序运行后的输出结果是( )。(分数:2.00)A.9,1,2,6B.6,2,3,4C.6,4

    12、,3,2D.9,3,4,629.以下关于字符串的表达式中正确的语句组是( )。(分数:2.00)A.char*s;s=Chinese!;B.char*s;s=Chinese!;C.char s 10;s=Chinese!;D.char s;s=Chinese!;30.若有以下定义和语句: #include char cl10=123,c2=n123; printf(ddn,strlen(c1),strlen(c2); 则输出结果是( )。(分数:2.00)A.10 7B.10 5C.3 7D.3 531.有以下程序: #include void funl(char*p) char*q; q=p

    13、; while(*q!=0) (*q)+; q+; main() char a=1234567,*P; p=&a3; funl(P); printf(sn,a); 程序执行后的输出结果是( )。(分数:2.00)A.1235678B.2345678C.1245678D.765432132.有以下函数:int sf(char*s)char*t=s;while(*t+);t;return(t 一 s);以下关于 sf函数功能叙述正确的是( )。(分数:2.00)A.将字符串 s复制到字符串 tB.求字符串的 ASC码值C.求字符串 s的长度D.求字符串 s所占字节数33.有以下程序: #inclu

    14、de int fun(int x,int y) if(y=0)return x; else return(fun(一一 x,一一 y); main() printf(dn,fun(5,3); 程序运行后的输出结果是( )。(分数:2.00)A.1B.2C.3D.434.关于函数的叙述中错误的是( )。(分数:2.00)A.C程序函数中定义的自动变量,系统不自动赋确定的初值B.在 C程序的同一函数中,可以在复合语句内定义变量C.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值D.C程序函数的形参不可以说明为 static型变量35.有以下程序段:struct stint x;in

    15、t*y;*ps;int a:1,2,b=3,4;struct st c2=10,a,15,b;ps=c;以下选项中表达式的值为 15的是( )。(分数:2.00)A.+ps一xB.ps一xC.*ps一yD.(ps+)一x36.有以下程序: #include struct STint n;int a20; void fun(int*a,int n) int i; for(i=0;in 一 1;i+) ai+=1; main() int i; struct ST s=10,1,2,3,4,5,6,7,8,9,10; fun(sa,sn); for(i=0;isn;i+) printf(d,sa i

    16、); 程序运行后的输出结果是( )。(分数:2.00)A.10,9,8,7,6,5,4,3,2,1,B.2,3,4,5,6,7,8,9,10,11,C.11,10,9,8,7,6,5,4,3,2,D.2,3,4,5,6,7,8,9,10,10,37.有以下程序: #include #include typedef structchar name9;char sex;float score2;ST; void fun(ST x) STU y=Tom,m,980,900; int i; strcpy(xname,yname);xsex=ysex: for(i=0;i2;i+) xscore i=y

    17、score 1; main() ST student=Bob,f,992,890; fun(student); printf(s,c,20f,20fn,studentname,studentsex,studentscore0,student score1); 程序运行后的输出结果是( )。(分数:2.00)A.Tom,m,98,90B.Bob,f,99,89C.Bob,f,98,90D.Tom,f,99,8938.设文件指针 fp=fopen(file,W),关于此文本文件操作的叙述中正确的是( )。(分数:2.00)A.可以随意读和写B.写操作结束后可以从头开始读C.可以在原有内容后追加写D

    18、.只能写不能读39.有以下程序: #include #define f(x)2*x*x main() int a=2,s,t; s=f(a+1); t=f(a+1); printf(d,dn,s,t); 程序运行后的输出结果是( )。(分数:2.00)A.7,18B.18,18C.7,7D.18,740.有以下程序: #include main() char x=4; printf(dn,x=x2); 程序运行后的输出结果是( )。(分数:2.00)A.16B.8C.40D.4二、程序填空题(总题数:1,分数:2.00)41.函数 fun的功能是:将一副扑克牌编号为 1,2,3,53,54,以

    19、某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为 1的牌在最上方,如第一次这样洗牌后的结果为:1,28,2,29,53,27,54。第二次洗牌后的结果为:1,41,28,15,2,42,53,40,27,14,54。 程序的功能是:输出经过 n次这样洗牌后的结果。 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的试题程序: #include void fun(int a55,int n) int i,k; *found* int【1】55; for(i

    20、=0;in;i+) for(k=1;k=27;k+) b2*k 一 1=ak; *found* b【2】*k=ak+27; for(k=1;k=54:k+) *found* ak=【3】; main() int m,a55,i; for(i=1;i55;i+)ai=i; printf(请输入洗牌次数:);scanf(d,&m); fun(a,m);for(i=l;i55;i+)printf(d,ai); printf(n); (分数:2.00)_三、程序修改题(总题数:1,分数:2.00)42.下列给定程序中函数 fun的功能是:用冒泡法对 6个字符串进行升序排列。请改正程序中的错误,使它能得

    21、出正确的结果。 注意:部分源程序在文件 MOD11C 中,不得增行或删行,也不得更改程序的结构!#includestdioh#includestringh#define MAXLINE 20fun(char * pstr6)int i,j;char*P;for(i=0;i5;i+)*found*for(j=i+1,j6,j+) if(strcmp(*(pstr+i),*(pstr+j)0)p=*(pstr+i);*found*(pstr+j)=*(pstr+i);*(pstr+j)=p;void main( )int i;char * pstr6,str6MAXUNE;for(i=0;i6;i

    22、+)pstri=stri;printf(nEnter 6 string(1 string at each line):n);for(i=0;i6;i+) scartf(s,pstri);fun(pstr);printf(The strings after sorting:n);for(i=0;i6;i+)printf(sn,pstri);(分数:2.00)_四、程序设计题(总题数:1,分数:2.00)43.若干名学生的成绩已在主函数中放入一个带头结点的链表结构中,h 指向链表的头结点。请编写函数fun,其功能是:求出学生的平均分,并由函数值返回此平均成绩。例如,若学生的成绩是:85 76 69

    23、 85 91 72 64 87,则平均分应当是:78625。注意:部分源程序在文件 PROC1C 中。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。#includestdioh#includestdlibh #define N 8struct slistdouble s;struct slist*next;:typedef struct slist STREC;double fun(STREC*h)STREC*creat(double*s)STREC*h,*P,*q;int i=0;h=P=(STREC*)malloc(sizeof(STREC

    24、);p 一s=0;while(iN)q=(STREC*)malloc(sizeof(STREC);q 一s=si;i+;p 一next=q;p=q;P 一next=0:return h;outlist(STREC*h)STREC*P;p=h 一next;printf(head);doprintf(一41f,p 一s);p=p 一next;while(p!=0);printf(nn);main()double s E N=92,83,72,81,90,85,75,65,ave;void NONO();STREC*h;h=creat(s);outlist(h);ave=fun(h);printf(

    25、ave=63fn,ave);NONO();void NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*FILE*in,*out;int i,j;double s N,ave;STREC*h;in=fopen(indat,r);out=fopen(outdat,W);for(i=0;i10;i+)for(j=0;jN;j+)fseanf(in,lf,&sj);h=creat(s);ave=fun(h);fprintf(out,63lfave);fclose(in);fclose(out);(分数:2.00)_国家二级(C 语言)机试模拟试卷 135答案解析(总分:86.

    26、00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有关线性链表的叙述中正确的是( )。(分数:2.00)A.进行插入与删除时,不需要移动表中的元素 B.各数据节点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.各数据节点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致D.以上说法均不正确解析:解析:链表的特点是通过指针链接下一个元素,所以它们的存储顺序和逻辑关系也不一致,但进行插入与删除时,不需要移动表中的元素,只需要改变下一个节点的指针就可以了。2.有关队列的叙述中正确的是( )。(分数:2.00)A.循环队列是队列的一种链式存储结构B.循环队列

    27、是队列的一种顺序存储结构 C.循环队列是非线性结构D.循环队列是一种逻辑结构解析:解析:队列是一种线性结构,所以 C、D 两项错误,循环队列是一种顺序存储结构。3.一棵二叉树共有 20个节点,其中 5个是叶子节点,则度为 1的节点数为( )。(分数:2.00)A.15B.11 C.6D.4解析:解析:二叉树中度为 0的叶子节点总比度为 2的节点多 1个,所以度为 2的节点个数是 51=4,总节点是 20,所以度为 1的节点数是 2054=11。4.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:解析:数据库

    28、模式分为内模式、外模式和概念模式。概念模式是指数据库中数据逻辑结构的描述,外模式是用户的数据视图,给每个用户的局部数据描述,内模式是指数据库物理存储结构与存取方法。5.在满足实体完整性约束的条件下( )。(分数:2.00)A.一个关系中可以没有任何候选关键字B.一个关系中有且只有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中应该有一个或多个候选关键字 解析:解析:实体完整性约束要求关系的主键中属性值不能为空。6.有三个关系 R、S 和 T如下: (分数:2.00)A.自然连接B.差C.除 D.交解析:解析:设两个关系 R和 S的元数分别为 r和 s(rs0),那么 T=RS是一

    29、个(r 一 s)元的元组的集合,即 T中的域是在 R中但不在 S中的域组成,所以选 C项。7.在软件设计中不使用的工具是( )。(分数:2.00)A.PAD图B.程序流程图C.系统结构图D.数据流图(DFD 图) 解析:解析:PAD 图在软件设计的详细设计阶段用到,系统结构图在程序需求分析阶段用到,程序流程图也在软件详细设计阶段用到,均属于软件设计过程中使用的工具,唯有数据流图不是在软件设计阶段用到的工具,它是结构化分析方法中用到的工具,是在可行性分析阶段用到的工具,而非软件设计阶段。8.关于需求分析阶段任务的叙述中不正确的是( )。(分数:2.00)A.确定软件系统的功能需求B.确定软件系统

    30、的性能需求C.需求规格说明书评审D.制订软件测试计划 解析:解析:因为是软件需求阶段,所以 D选项不正确。9.黑盒测试用例的主要根据是( )。(分数:2.00)A.算法合理性B.程序外部功能 C.相关数据结构D.程序流程图解析:解析:黑盒测试主要是对软件的功能进行测试和验证,因此不用测试软件内部的相关内容,包括算法、数据结构和流程等。10.关于软件危机表现的叙述中不正确的是( )。(分数:2.00)A.软件过程文件不规范 B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析:软件危机主要是指软件需求无法满足,软件进度无法控制,软件不可维护,软件开发生产率低,软件质量难以控制,

    31、软件成本不断提高。所以选 A项。11.关于程序模块化的叙述中错误的是( )。(分数:2.00)A.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 解析:解析:程序模块化设计是采用自顶向下、逐步细化的方法,不是自底向上,所以选项 D不正确。12.关于 C语言程序格式的叙述中正确的是( )。(分数:2.00)A.用 C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一

    32、个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上 解析:解析:因为选项 B和 D是互反选项,所以答案定是其中之一,C 语言的一个语句可以写在多行上,所以 D正确;A 的错误在于 C语言可以通过 include语句将其他文件的内容引入当前文件,C 项的错误在于 C语言的注释可以出现在程序中间位置,当然也可以出现在语句前面。13.设 int m=0;与其他三个表达式的结果不同的是( )。(分数:2.00)A.m+ B.m+=1C.+mD.m+1解析:解析:m+是先使用表达式的值再计算加 1,所以表达式的值是 0,+m 是先计算加 1再使用值

    33、,所以表达式的值为 1,其他两个选项表达式的值均为 1,所以选项 A正确。14.关于 C语言数据类型叙述中,错误的是( )。(分数:2.00)A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型B.若要保存带有多位小数的数据,可使用双精度类型C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 D.整数类型可以用来表示自然数解析:解析:C 语言中没有逻辑类型;多种数据类型的全集可以通过结构体来定义,双精度类型可以表示带有多位小数的数据,整数可以精确表示自然数。15.以下数值常量不符合 C语言语法的是( )。(分数:2.00)A.30E02 B.le3C.012D.0xabcd

    34、解析:解析:科学计数法的 E后面必须是整数,所以 A)项不合法,C)项和 D)项分别是合法的八进制数和十六进制数。16.有如下程序段:int x=12;double y=3141593;printf(d86f,x,y);其输出结果是( )。(分数:2.00)A.12,3141593B.123141593 C.12 3141593D.1231415930解析:解析:printf 的输出完全按照格式输出,格式中两个输出变量之间没有空格,因此,输出结果应该是 123141593输出格式中的 86f。是指总共有 8位,其中小数部分占 6位,所以 D)错。17.已知字符A的ASC代码值是 65,字符变量

    35、 a的值是A,b 的值是D。则执行语句orintf(d,d,a,b 一 2);的输出结果是( )。(分数:2.00)A.A,DB.A,BC.65,68D.65,66 解析:解析:C 语言的字符变量可以当作特殊的整数变量对待,所以以d 的格式输出字符时,输出的是其对应的 ASC代码。如果其和整数做运算,也是用 ASC代码进行运算,因此,结果是 65,66。18.当 x为大于 1的奇数时,值为 0的表达式是( )。(分数:2.00)A.x2=0 B.x3C.x2!=0D.x2=1解析:解析:x=3,5,7,9,x2 永远是大于 1的奇数,所以 A)项表达式为假,C 项和 D)项表达式为真;x3 的

    36、值是大于 1的整数,所以表达式不为 0。19.有以下程序: #include main() int x; scanf(d,&x); if(x=4); else if(x8)printf(dn,x); 程序运行时,输入的值在哪个范围才会有输出结果?( )(分数:2.00)A.小于 4的整数B.不等于 8的整数C.大于 4或等于 8的整数D.大于 4且小于 8的整数 解析:解析:if 条件语句后跟了一个空语句,故要执行 else if后面的语句,必须是要 x大于 4且小于8。20.有以下程序: #include main() int a=7; while(a); printf(dn,+a); 程序

    37、运行后的输出结果是( )。(分数:2.00)A.0 B.一 1C.1D.7解析:解析:注意到 while后面的分号是一个空语句,且 a是先用表达式,再减 1,所以 while循环结束后 a的值是一 1,在打印语句中+a 是先加 1再使用表达式,所以输出结果是 0。21.有以下程序: #include main() char b,c; inti; b=a; c=A; for(i=0;i6;i+) if(i2)putehar(i+b); else putchar(i+c); printf(n); 程序运行后的输出结果是( )。(分数:2.00)A.abcDEFB.ABcDEfC.aBcDeFD.A

    38、bCdEf 解析:解析:当 i=0时,执行 else语句,打印 A,当 i=1时执行 if语句,打印 b。22.有以下程序: #include main() int i,j,x=0; for(i=0;i2;i+) x+: for(j=0;j4;j+) if(j2)continue; x+: x+: printf(x:dn,x); 程序执行后的输出结果是( )。(分数:2.00)A.x:4B.x:8 C.x:6D.x:12解析:解析:分析知,两个循环的外循环执行 2次,内循环执行 2次,但外部循环体内有两个 x+,内循环体内有一个 x+,所以执行 x+的次数共计是外部 4次,内部是 2*2=4次

    39、,所以总共执行 8次,结果是8。23.设有以下函数:int fun(int n,char*s)则下面对函数指针的定义和赋值均正确的是( )。(分数:2.00)A.int(*pf)(int,char);pf=&fun;B.int*pf();pf=fun;C.int*pf();*pf=fun;D.int(*pf)(int,char*);pf=fun; 解析:解析:函数的参数可以是指针类型。它的定义形式为 void(*pf)(),原函数定义的形参变量是一个整数型和一个字符指针型,所以答案 D正确。24.若用变量作为实参调用函数,以下正确的是( )。(分数:2.00)A.函数的形参和实参分别占用不同的

    40、存储单元 B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参会覆盖实参存储空间的值解析:解析:如果用变量作为实参进行函数调用,则实参和形参会占用不同的存储单元,即使变量名相同,也不会互相影响;但如果使用指针作为实参调用函数,则因为地址在内存中是唯一的,所以实参和形参占用相同的存储单元。25.若要求定义具有 10个 float型元素的一维数组 a,则以下定义语句中错误的是( )。(分数:2.00)A.float a5+5;B.float n=10,an; C.#define n 5 float a2*n;D.#define N 10 float aN;解

    41、析:解析:注意定义数组时,元素个数可以是宏定义常量,但不能是变量。因此选项 B错。26.有以下程序: #include main() int i,t3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(d,t2 一 ii); 程序执行后的输出结果是( )。(分数:2.00)A.3 5 7B.7 5 3 C.3 6 9D.7 5 1解析:解析:for 循环的变量 i=0,1,2,所以输出的数组元素是 t20,t11,t02,所以应该是 7,5,3。27.有以下程序: #include void fun(int*s,int n1,int n2) int i,j,t;

    42、 i=n1;j=n2; while(ij) t=si;si:sj;sj:t;i+;j main() int a10=9,8,7,6,5,4,3,2,1,0,k; fun(a,0,2);fun(a,7,9);fun(a,0,7); for(k=0;k10;k+) printf(d,ak); printf(n); 程序运行后的输出结果是( )。(分数:2.00)A.2341098765B.03456987 12 C.9876543210D.0987651234解析:解析:子函数的功能是将数组中的元素进行对调,如 fun(a,0,2)是将数组中的元素 a0和 a2对调,所以执行 3次子函数以后的结果

    43、是 0345698712。28.有以下程序: #include main() int a44=1,2,3,4,1,6,5,9,3,7,2,5,4,2,4,l,i,k,t; for(i=0;i3;i+) for(k=i+1;k4;k+) if(aiiakk) t=aii;aii=akk;akk=t; for(i=0;i4;i+) printf(d,a0i); 程序运行后的输出结果是( )。(分数:2.00)A.9,1,2,6B.6,2,3,4 C.6,4,3,2D.9,3,4,6解析:解析:双重 for循环和 if条件语句结合实现对二维数组对角线上的元素1,6,2,1进行从大到小的排序,输出结果

    44、只是第一行的内容,所以结果是 6,2,3,4。29.以下关于字符串的表达式中正确的语句组是( )。(分数:2.00)A.char*s;s=Chinese!;B.char*s;s=Chinese!; C.char s 10;s=Chinese!;D.char s;s=Chinese!;解析:解析:A 选项错在不能用大括号,C 选项和 D选项应在定义时赋初值,如果定义之后赋值,则需要对数组的每个元素分别进行赋值。30.若有以下定义和语句: #include char cl10=123,c2=n123; printf(ddn,strlen(c1),strlen(c2); 则输出结果是( )。(分数:2.00)A.10 7B.10 5C.3 7D.3 5 解析:解析:数组元素在求长度时只计算其中的有效字符,所以123的有效长度是 3,字符串的是转义字符,所以n 代表一个字符(回车符),也只代表一个字符(),所以n123的有效长度是 5。31.有以下程序: #include void funl(char*p) char*q; q=p; while(*q!=0) (*q)+; q+; main() char a=1234567,*P; p=&a3; funl(P); printf(sn,a); 程序执行后的输出结果是( )。(分数:2.00)A.1235678 B.2


    注意事项

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




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

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

    收起
    展开