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

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

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

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

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

    1、二级 C 语言笔试-195 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.下列程序的输出结果是( )。#includestdio.hmain()char ch25=“1234“,“5678“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=pij-0;printf(“%d“,s);(分数:2.00)A.6357B.6135C.1357D.6913572.简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序

    2、3.下列数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.队列C.树D.栈4.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表5.有下列函数定义:fun(float h)printf(“%f,%f/n“,h,h*h);该函数的类型是( )。(分数:2.00)A.int 类型B.float 类型C.void 类型D.函数无类型说明,定义有错6.若有运算符:、=、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )(分数:2.00)A.%、sizeof、=B.sizeof、%、=、C.si

    3、zeof、%、=D.sizeof、%、=7.假定 w、x、y、m 均为 int 型变量,则执行下列的语句后,m 的值是( )。w=6,x=4,y=3;m=(wx)?w:x;m=(my)?m:y;(分数:2.00)A.3B.4C.5D.68.设有下列说明语句:strcut strint x; float y; char z;st;则下列的叙述中不正确的是( )。(分数:2.00)A.struct 是结构体类型的关键字B.st 是结构体类型名C.x、y、x 都是结构体成员名D.struct str 是结构体类型名9.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n 个元素组成的一个有

    4、限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表10.若变量 a,b 已正确定义,且 b 已正确赋值,则合法的语句是( )。(分数:2.00)A.b=double(b);B.+b;C.a=a+5;D.a=double(b);11.对于长度为 n 的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是((分数:1.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/212.若有下列说明,则( )不是对 strcpy 库函数的正确的调用。strcpy 库函数用于复制一个字符串:char*str1=“ab

    5、cd“,str210,*str3=“hijklmn“,*str42,*str5=“aaaa“(分数:1.00)A.strcpy(str2,str1)B.strcpy(str3,str1)C.strcpy(str4,str1)D.strcpy(str5,str1)13.已知 int a=2,b=3;则执行表达式 a=ab 后,变量 a 的值为( )。(分数:1.00)A.0B.1C.2D.314.若有下列定义(设 int 类型变量占 2 个字节):int i=8;则下列语句:printf(“i=%08d“,i);输出的结果是( )。(分数:1.00)A.i=8,B.i=00000008,C.i=

    6、08,D.815.字符串“/“ABCDEF/“/“的长度是( )。(分数:1.00)A.15B.10C.7D.816.按照“先进先出”组织数据的数据结构是( )。(分数:1.00)A.队列B.栈C.双向链表D.二叉树17.下列程序的输出结果是( )。#includestdio.hvoid main()int b6=2,4,6,8,10,12;int*p=b,*q=printf(“%d“, *(p+);printf(“%d,“,*q);(分数:1.00)A.4,4B.2,2C.4,5D.2,418.执行下列程序中的输出语句后,a 的值是( )。main()int a;printf(“%d/n“,

    7、 (a=2*3,a*5,a+7);(分数:1.00)A.17B.37C.6D.1319.下列选项中,不是一个算法的基本特征的是( )。(分数:1.00)A.完整性B.可行性C.有穷性D.拥有足够的情报20.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。(分数:1.00)A.148B.169C.182D.19821.下列叙述错误的是( )。(分数:2.00)A.在 C 语言中的保留字必须小写B.变量的存储类型决定了变量的存储位置及其生存期C.宏定义以#define 开头,行未必须加分号D.在 C 语言中的注释行可以出现在程序的任何位置22.下列关于线

    8、性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的23.下列程序中函数 reverse()的功能是将 a 所指数组中的内容进行逆置。#includestdio.hvoid reverse(int a, int n)int i,t;for(i=0;in/2;i+)t=ai;ai=aa-1-i;an-1-i=t;main()int b10=1,2,3,4,5,6,7,8,9,10;int

    9、i,s=0;reverse(b,10);for(i=0;i3 ;i+) s+=bi;printf(“%d/n“,s);程序运行后的输出结果是( )。(分数:2.00)_24.设有定义:int a=2,b=3,c=4;,则下列选项中值为 0 的表达式是( )。(分数:2.00)A.(! a= =1)B.*p= scanf(“%f“,p);C.p= scanf(“%1f“,*p);D.p= scanf(“%1f“,p);26.下列程序段的输出结果为( )。#includestdio.hmain()static char a=“language“;char *p;p=a;for(p=a;pa+8;p

    10、+=2)putchar(*p);(分数:2.00)A.languageB.lnugC.有语法错误D.lang27.若 fp 是指向某文件的指针,且尚未读到文件末尾,则函数 feof(fp)的返回值是( )(分数:2.00)A.EOFB.-1C.非零值D.028.下列能正确定义一维数组的选项是( )。(分数:2.00)A.int a5=0,1,2,3,4,5B.char a=0,1,2,3,4,5;C.char aA,B,C;D.int a5=“0123“;29.结构化程序设计的 3 种基本结构是( )。(分数:2.00)A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、

    11、返回和转移30.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,c,t;scanf(“%f,%f,%f“,if(ab)t=a; a=b; b=t;if(ac)t=a; a=c; c=t;if(bc)t=-b;b=c;c=t;printf(“%f/n%f/n%f/n“,a,b,c);(分数:2.00)A.1.002.003.00B.1.003.002.00C.132D.3.0000002.0000001.00000031.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是( )。main()int x;scanf(“%d“, if

    12、(x+2)printf(“%d“, x);else printf(“%d/n“,x-);(分数:2.00)A.4 和 2B.4 和 1C.4 和 0D.3 和 132.语句 int(*ptr)()的含义是( )。(分数:2.00)A.ptr 是一个返回值是 int 的函数B.ptr 是指向 int 型数据的指针变量C.ptr 是指向函数的指针,该函数返回一个 int 型数据D.ptr 是一个函数名,该函数的返回值是指向血型数据的指针33.执行下列程序后,输出的结果是( )。#includestdio.h#define S(X) X*Xvoid main()int a=9,k=3,m=2;a/=

    13、S(k+m)/S(k+m);printf(“%d“,(分数:2.00)A.;int b;B=(34 p=a;for(i=0;i3;i+)if(i2)p1i=p1i-1;elsep1i=1;printf(“%d/n“,a01+a11+a12);(分数:2.00)A.8B.7C.12D.937.下列程序的输出结果是( )。int f1(int x,int y)return xy?x:y;int f2(int x,int y)return xy?y:x;main( )int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1 (a,b),f1 (c,d);f=f1 (f2(a,b),f2(c

    14、,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n,e, f,g);(分数:2.00)_38.设有程序段:int k=12;while(k=1)k=k-1;则下列描述中正确的是( )。(分数:2.00)A.while 循环执行 10 次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次39.有下列程序段:int n,t=1,s=0;scanf(“%d“,dos=s+t;t=t-2;while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是( )。(分数:2.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数40.已知有结构体:st

    15、ruct skint a;float b;data,*p;若有 p=a=3;b=4;c=5;if(ab)if(ac)printf(“%d“, a);else printf(“%d“, b);printf(“%d/n“, c);(分数:2.00)填空项 1:_49.下列语句能循环_次。int s=12;while(s);-s;(分数:2.00)填空项 1:_50.下列程序的运行结果是_。main()int a=1,b=10;dob-=a;a+; while(b-0);print f(“%d,%d/n“,a,b);(分数:2.00)填空项 1:_51.若定义#define PI 3.14159,则

    16、执行完下列程序后输出结果是_。#define PI 3.14159; printf(“PI=%f“,PI);(分数:2.00)填空项 1:_52.下列程序的输出结果是_。main()int a= 31,27,20,12,6,1,*p=a;p+;printf(“%d/n“,*(p+2);(分数:2.00)填空项 1:_53.若有下列定义和语句:char *s1=“12345“,*s2=“1234“;printf(“%d/n“,strlen(strcpy(s1 ,s2);则输出结果为_。(分数:2.00)填空项 1:_54.下列程序的运行结果是_。main()int i,a10;a0=a1=1;f

    17、or(i=2;i5;i+)ai=ai-2+ai-1;for(i=0;i5;i+)if(i%2=0) printf(“/n“);printf(“%d“,ai);(分数:2.00)填空项 1:_55.下列程序的输出结果是_。#includestdio.hint fun(int x)int p;if(x=0x=1)return 3;elsep=x-fun(x-2);return p;void main()printf(“/n%d“,fun(11);(分数:2.00)填空项 1:_二级 C 语言笔试-195 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00

    18、)1.下列程序的输出结果是( )。#includestdio.hmain()char ch25=“1234“,“5678“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=pij-0;printf(“%d“,s);(分数:2.00)A.6357B.6135C.1357 D.691357解析:解析 本题先将指针 P 指向二维数组 ch25,相当于 p0=“1234“,p1=“5678“,通过双重for 循环,是要将 p 中的字符隔一个输出一个,通过 s=pij-0这条语句是将所要输出的字符转换成相应的

    19、十进制数。2.简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。3.下列数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.队列C.树 D.栈解析:解析 线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。4.下列数据结构中,能用二分法进行查找的是( )。(分数:2.

    20、00)A.顺序存储的有序线性表 B.结性链表C.二叉链表D.有序线性链表解析:解析 二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。5.有下列函数定义:fun(float h)printf(“%f,%f/n“,h,h*h);该函数的类型是( )。(分数:2.00)A.int 类型 B.float 类型C.void 类型D.函数无类型说明,定义有错解析:解析 本题考查默认函数的函数值的类型在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为 int 类型。6.若有运算符:、=、%、sizeof,则它们按优先级(由高

    21、至低)的正确排列顺序为( )(分数:2.00)A.%、sizeof、=B.sizeof、%、=、C.sizeof、%、=D.sizeof、%、= 解析:解析 主要考查运算符的优先级。sizeof 的优先级最高,后面的顺序是:%、,优先级最低的是“=”。7.假定 w、x、y、m 均为 int 型变量,则执行下列的语句后,m 的值是( )。w=6,x=4,y=3;m=(wx)?w:x;m=(my)?m:y;(分数:2.00)A.3 B.4C.5D.6解析:解析 条件表达式“a?b:c”的含义是:当 a 为真时,其值等于表达式 b 的值,当 a 为假时,其值等于表达式 c 的值。第一个表达式:w=6

    22、x=4 为假,所以返回 x 的值,即 m=x=4;第二个表达式:m=4y=3 为假,所以返回 y 的值,即 m=y=3。8.设有下列说明语句:strcut strint x; float y; char z;st;则下列的叙述中不正确的是( )。(分数:2.00)A.struct 是结构体类型的关键字B.st 是结构体类型名 C.x、y、x 都是结构体成员名D.struct str 是结构体类型名解析:解析 本题主要考查结构类型的定义:struct 是结构体类型的关键字:struct str 是结构体类型名;x、y、z 都是结构体成员名:st 是结构变量名。9.下列叙述中错误的是( )。(分数

    23、:2.00)A.线性表是由 n 个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件 D.线性表可以是空表解析:解析 线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以 C 是错误的。10.若变量 a,b 已正确定义,且 b 已正确赋值,则合法的语句是( )。(分数:2.00)A.b=double(b);B.+b; C.a=a+5;D.a=double(b);解析:解析 要解答此题只要知道两个知识点:在 C 语言中规定进行强制类型转换的格式是:

    24、(double)变量名;在 C 语言中不允许给表达式赋值。11.对于长度为 n 的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是((分数:1.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 在最坏情况下,冒泡排序和快速排序的比较次数都是 n(n-1)/2。所谓冒泡排序,就是将相邻的两个数据相比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前撑(就像冒泡一样冒出来了)。12.若有下列说明,则( )不是对 strcpy 库函数的正确的调用。strcpy 库函数用于复制一个字

    25、符串:char*str1=“abcd“,str210,*str3=“hijklmn“,*str42,*str5=“aaaa“(分数:1.00)A.strcpy(str2,str1)B.strcpy(str3,str1)C.strcpy(str4,str1) D.strcpy(str5,str1)解析:解析 strcpy(s1,s2)函数的功能是将字符串 s2 复制到字符串 s1 中(注意:要保证 s1 存储区能容纳下 s2 字符串)。13.已知 int a=2,b=3;则执行表达式 a=ab 后,变量 a 的值为( )。(分数:1.00)A.0B.1 C.2D.3解析:解析 先计算关系表达 a

    26、b=23)为真(表达式为真时,如果变量为 int 型变量则真用 1 表示,假用 0 表示),即 a=1。14.若有下列定义(设 int 类型变量占 2 个字节):int i=8;则下列语句:printf(“i=%08d“,i);输出的结果是( )。(分数:1.00)A.i=8,B.i=00000008, C.i=08,D.8解析:解析 本题考查 printf 函数的格式。“%08”格式符中的“0”表示在指定数据输出宽度的同时,在数据前面的多余空格处加“0”“8”表示指定数据的输出宽度为 8 位。15.字符串“/“ABCDEF/“/“的长度是( )。(分数:1.00)A.15B.10 C.7D.

    27、8解析:解析 本题涉及字符串最基本的 2 个概念:字符串的长度是指字符串中字符的个数,但不包括字符串结束符;以反斜杠“/”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“/”连同后面的字符为一个长度。16.按照“先进先出”组织数据的数据结构是( )。(分数:1.00)A.队列 B.栈C.双向链表D.二叉树解析:解析 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”,先插入的元素先被删除,是按“先进先出”的原则组织数据的。17.下列程序的输出结果是( )。#in

    28、cludestdio.hvoid main()int b6=2,4,6,8,10,12;int*p=b,*q=printf(“%d“, *(p+);printf(“%d,“,*q);(分数:1.00)A.4,4B.2,2C.4,5D.2,4 解析:解析 首先定义了一个指向一维数组 b 的指针 P,一个指向指针 p 的指针变量 q,输出*(p+)是先输出*p 即 b0的值,再将指针 p 指向数组的下一个元素 b1,输出*q 是输出针 p 所指单元的内容,即b1的值。18.执行下列程序中的输出语句后,a 的值是( )。main()int a;printf(“%d/n“, (a=2*3,a*5,a+

    29、7);(分数:1.00)A.17B.37C.6 D.13解析:解析 本题考查逗号表达式本题的返回值是 a+7,a=2*3=6,a+7=13(注意:本题问的是 a 的值,而不是程序的输出值)。19.下列选项中,不是一个算法的基本特征的是( )。(分数:1.00)A.完整性 B.可行性C.有穷性D.拥有足够的情报解析:解析 作为一个算法,一般应该具有下列 4 个特征:可行性,即考虑到实际的条件能够达到一个满意的结果:确定性,算法中的第一个步骤都必须是有明确定义的:有穷性,一个算法必须在有限的时间内做完;拥有足够的情报。20.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的

    30、总结点数为( )。(分数:1.00)A.148B.169 C.182D.198解析:解析 叶子结点总是比度为 2 的结点多一个。所以,具有 60 个叶子结点的二叉树有 59 个度为 2的结点。总结点数=60 个叶子结点+59 个度为 2 的结点+50 个度为 1 的结点169 个结点21.下列叙述错误的是( )。(分数:2.00)A.在 C 语言中的保留字必须小写B.变量的存储类型决定了变量的存储位置及其生存期C.宏定义以#define 开头,行未必须加分号 D.在 C 语言中的注释行可以出现在程序的任何位置解析:解析 本题涉及 C 语言最基本的 4 个知识点:C 语言的保留字必须小写:变量的

    31、存储类型不同,其存储位置和生存期也不一样;C 语言允许其注释部分出现在程序中的任何位置;宏定义以#define 开头,行末不需要加分号。22.下列关于线性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的 B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的解析:解析 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。23.下列程序中函数 reverse()的功能是将 a 所指数组中的内容进行

    32、逆置。#includestdio.hvoid reverse(int a, int n)int i,t;for(i=0;in/2;i+)t=ai;ai=aa-1-i;an-1-i=t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,10);for(i=0;i3 ;i+) s+=bi;printf(“%d/n“,s);程序运行后的输出结果是( )。(分数:2.00)_解析:解析 本题考查函数调用时的参数传递函数 reverse 将数组 b 进行了逆置,此时的 b10=(10,9,8,7,6,5,4,3,2,124.设有定义:int a

    33、=2,b=3,c=4;,则下列选项中值为 0 的表达式是( )。(分数:2.00)A.(! a= =1)B.*p= scanf(“%f“,p);C.p= scanf(“%1f“,*p);D.p= scanf(“%1f“,p); 解析:解析 double*p,a;语句表示定义了一个指向双精度型的指针变量 p 和双精度型变量 a,而语句p=char *p;p=a;for(p=a;pa+8;p+=2)putchar(*p);(分数:2.00)A.languageB.lnug C.有语法错误D.lang解析:解析 本程序首先定义了静态字符数组 a,然后将指针 p 指向数组 a 的首地址。第 1 次 f

    34、or 循环,p=a,p 指向数组的第 1 个元素,*p 是取指针 p 所指地址的内容,输出 1;第 2 次 for循环,p=p+2,则 p 指向数组的第 3 个元素,*p 是取指针 P 所指地址的内容,输出 n;第 3 次 for 循环,p=p+2,则 p 指向数组的第 5 个元素,*p 是取指针 p 所指地址的内容,输出 u;第 4 次 for 循环,p=p+2,则 p 指向数组的第 7 个元素,*P 是取指针 p 所指地址的内容,输出 g,结束循环。27.若 fp 是指向某文件的指针,且尚未读到文件末尾,则函数 feof(fp)的返回值是( )(分数:2.00)A.EOFB.-1C.非零值

    35、D.0 解析:解析 文件状态检测函数 feof(fp)的功能是:测试所指的文件的位置指针是否已达到文件尾,如果已到达文件尾,则函数返回非。值;否则返回 0,表示文件尚未结束。28.下列能正确定义一维数组的选项是( )。(分数:2.00)A.int a5=0,1,2,3,4,5B.char a=0,1,2,3,4,5; C.char aA,B,C;D.int a5=“0123“;解析:解析 在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项 A)错误;选项 C)中定义的是一个字符变量 C;选项 D)中整型数组,中只能存储整型数据,而不能存储字符串常量“0123”。29.结构

    36、化程序设计的 3 种基本结构是( )。(分数:2.00)A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列D.调用、返回和转移解析:解析 程序的 3 种基本控制结构包括顺序、选择和重复(循环),这 3 种结构就足以表达出各种其他形式的结构。30.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。main()float a,b,c,t;scanf(“%f,%f,%f“,if(ab)t=a; a=b; b=t;if(ac)t=a; a=c; c=t;if(bc)t=-b;b=c;c=t;printf(“%f/n%f/n%f/n“,a,b,c);(分数:2.00)A.

    37、1.002.003.00B.1.003.002.00C.132D.3.0000002.0000001.000000 解析:解析 本题考查 if 语句。第 1 个 if 语句,实现如果 ab,则交换 a、b 值的功能;第 2 个 if 语句,实现如果 ac,则交换 a、c 的值的功能:第 3 个 if 语句,实现如果 bc,则交换 b,c 的值的功能。3 个 if 语句结合起来实现的功能就是将 a、b、c 按从大到小排序。31.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是( )。main()int x;scanf(“%d“, if(x+2)printf(“%d“, x);e

    38、lse printf(“%d/n“,x-);(分数:2.00)A.4 和 2 B.4 和 1C.4 和 0D.3 和 1解析:解析 本题考查 if else 语句。首先 scanf 函数通过键盘读)x 的值。当 x=3 时,第一个 if 语句,先判断条件,取 x 的值 3 和 2 比较,然后将 x 的值加 1,发现条件成立,执行下列的 printf 语句,输出x 的值 4。当 x=1 时,第一个 if 语句,先判断条件,取 x 的值 1 和 2 比较,然后将 x 的值加 1(x 的值变为2),发现条件不成立,执行下列的 else 语句,先输出 x 的值 2,再将 x 的值减 1。32.语句 i

    39、nt(*ptr)()的含义是( )。(分数:2.00)A.ptr 是一个返回值是 int 的函数B.ptr 是指向 int 型数据的指针变量C.ptr 是指向函数的指针,该函数返回一个 int 型数据 D.ptr 是一个函数名,该函数的返回值是指向血型数据的指针解析:解析 本题考查的是指向函数的指针函数指针定义的基本格式为:类型标识符(*指针变量名)( )。“类型标识符”为函数返回值的类型。33.执行下列程序后,输出的结果是( )。#includestdio.h#define S(X) X*Xvoid main()int a=9,k=3,m=2;a/=S(k+m)/S(k+m);printf(

    40、“%d“,(分数:2.00)A.;int b;B=(34 p=a;for(i=0;i3;i+)if(i2)p1i=p1i-1;elsep1i=1;printf(“%d/n“,a01+a11+a12);(分数:2.00)A.8B.7 C.12D.9解析:解析 第 1 次执行 for 循环,p10=p10-1=3;第 2 次执行 for 循环,p11=P11-1=4;第 3 次执行 for 循环,p12=1,最后输出的是 a01)+a11+a12=2+4+1=7。37.下列程序的输出结果是( )。int f1(int x,int y)return xy?x:y;int f2(int x,int y

    41、)return xy?y:x;main( )int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1 (a,b),f1 (c,d);f=f1 (f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n,e, f,g);(分数:2.00)_解析:解析 根据函数 int f1(int,int y)return xy?x:y和 int f2(int x,int y)return x,y?y:x;38.设有程序段:int k=12;while(k=1)k=k-1;则下列描述中正确的是( )。(分数:2.00)A.while 循环执行 10 次B.循环是

    42、无限循环C.循环体语句一次也不执行 D.循环体语句执行一次解析:解析 本题考查 while 循环。while 循环的控制表达式 k=1 是个赋值表达式而不是逻辑表达式,所以循环体一次也不执行。39.有下列程序段:int n,t=1,s=0;scanf(“%d“,dos=s+t;t=t-2;while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是( )。(分数:2.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数 解析:解析 因为变量 t 的初始值等于 1,经过第一次 do while 循环中,执行 t=t-2 这条语句一次,所以变量 t 的值为-1,判断关系表达式

    43、 t!=n 是否成立,如果关系表达式成立,则执行第二次循环,再执行t=t-2 这条语句一次,所以变量 t 的值为-3,接着再判断关系表达式 t!=n 是否成立,如果关系表达式成立,执行第三次循环,否则退出循环。由此可知,所以只要输入变量 n 的值为负奇数,则一定会使 t=n成立,则退出 do while 循环。40.已知有结构体:struct skint a;float b;data,*p;若有 p=a=3;b=4;c=5;if(ab)if(ac)printf(“%d“, a);else printf(“%d“, b);printf(“%d/n“, c);(分数:2.00)填空项 1:_ (正

    44、确答案:5)解析:解析 分析程序,当 a=3;b=4;c=5 时,判断语句 ab 不成立,所以不执行后面的语句,直接执行“printf(“%d/n“,c);”语句,输出 c 的值,输出结果为 5。49.下列语句能循环_次。int s=12;while(s);-s;(分数:2.00)填空项 1:_ (正确答案:无限)解析:解析 分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12 保持不变,因此,没有条件限制的能循环无限次(即死循环)。50.下列程序的运行结果是_。main()int a=1,b=10;dob-=a;a+; while(b-0);pri

    45、nt f(“%d,%d/n“,a,b);(分数:2.00)填空项 1:_ (正确答案:2,8)解析:解析 dowhile 语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时 a=1,b=10,经过操作 b-=a;a+后b=9,a=2,判断条件 b-O 不成立,退出循环,但 b 的值被减 1,因此结果为:a=2,b=8。51.若定义#define PI 3.14159,则执行完下列程序后输出结果是_。#define PI 3.14159; printf(“PI=%f“,PI);(分数:2.00)填空项 1:_ (正确答案:PI=3.14159)解析:解析 本题先定义了一个宏名 PI,以后在程序中出现 PI 都用 3.14159 替代,但是 C 语言规定:双引号中的宏名是不进行替换的。52.下列程序的输出结果是_。main()int a= 31,27,20,12,6,1,*p=a;p+;printf(“%d/n“,*(p+2);(分数:2.00)填空项 1:_ (正确答案:12)解析:解析 本题签考查如何用指针引用数组元素。分析程序,首先定义了一个指向数组 a 的指针 p,p指向数组的首地址,通过 p+,将 p 指向 a1,p+2 是将指针后移 2 位指向 a3,*(p+2)即是取 a3)的值 12。53


    注意事项

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




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

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

    收起
    展开