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

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

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

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

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

    1、二级 C语言分类模拟题 577及答案解析(总分:39.50,做题时间:90 分钟)一、选择题(总题数:30,分数:39.50)1.若有以下的定义:“int t32;”,能正确表示 t数组元素地址的表达式是_。(分数:1.00)A. printf(“%d/n“, i);(分数:2.50)A.32769B.32767C.-32766D.输出不确定数3.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据4.利用 fseek函数可实现的操作是 _ 。(分数:1.00)A.实现文件的顺序读写B.改变文件的位置指针C

    2、.实现文件的随机读写D.以上答案均正确5.有以下程序 main() char a=“a“,“b“,“c“,“d“,“e“,“f“,“g“,“h“,“/0“;int i,j; i=sized(a);j=stden(a); printf(“%d,%d/n”,i,j); 程序运行后的输出结果是(分数:1.00)A.9,9B.8,9C.1,8D.9,86.有以下程序 #includestdio.h main() int i=5; do if(i%3=1) if(i%5=2) (printf(“%d“,i);break; i+; while(i!=0); printf(“/n“1); 程序的运行结果是_

    3、。(分数:2.00)A.*7B.*3*5C.*5D.*2*67.若有以下定义和语句; int a=1,2,3,4,5,6,7,8,9,10,*p=a;(分数:2.00)A.p+=2,*(p+)B.p+=2,*+pC.p+=3,*p+D.p+=2,+*p8.下面叙述中错误的是_。(分数:1.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性9.以下叙述中正确的是_。(分数:1.00)A.a是实型变量,C 允许进行赋值 a=10,但不可以这样说:实型变量中允许存放整型值

    4、B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b后,在内存中 a和 b存储单元中的原有值都将被改变,a 的值已由原值改变为 b的值,b的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a中的值为 5,b 中的值为 310.当变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2 p=a;,则以下选项中叙述错误的是_。(分数:1.00)A.系统将开辟一个名为 p的二维数组,p00中的值即为 a00中的值B.p+1代表 a10的地址C.p中将存放 a数组的首地址D.p+2代表 a数组最后一行的

    5、首地址13.以下叙述中错误的是_。(分数:1.00)A.用 typedef定义新的类型名后,原有类型名仍有效B.可以用 typedef将已存在的类型用一个新的名字来代表C.可以通过 typedef增加新的类型D.用 typedef可以为各种类型起别名,但不能为变量起别名14.表示关系式 xyz 的 C语言表达式的是_。(分数:2.50)A.(x=y)ps+4,p+) printf(“%s/n“,p); (分数:1.00)A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA16.以下程序的输出结果是_。 point(char*pt); main() char b4=“a“,“

    6、c“,“s“,“f“),*pt=b; pt=point(pt); printf(“%c/n“,*pt); point(char*p) p+=3; return p; (分数:2.00)AsBcCfDa17.有以下程序: #include 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.30D.4018.有以下程序 main() int m=0256,n=256 ; printf(“%o %o/n“, m,n

    7、); 程序运行后的输出结果是_。(分数:1.00)A.0256 0400B.0256 256C.256 400D.400 40019.有以下程序: #includestdio.h main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+)printf(“%d$%d=%d“,i,j,i%j); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1*1=1 1*2=21*3=32*2=4 2*3=63*3=9B.1*1=1 1*2=2 1*3=32*1=2 2*2=4C.1*1=11*3=3 2*3=6 3*3=9D.1*1=12*1=2

    8、2*2=43*1=3 3*2=6 3*3=920.以下叙述中正确的是 _。(分数:1.00)A.用 C程序实现的算法必须要有输入和输出操作B.用 C程序实现的算法可以没有输出但必须要输入C.用 C程序实现的算法可以没有输入但必须要有输出D.用 C程序实现的算法可以既没有输入也没有输出21.有两个关系 R,S 如下: R A B C a 3 2 b 0 1 c 2 1 S A B a 3 b 0 c 2 由关系 R通过运算得到关系 S,则所使用的运算为_。(分数:1.00)A.选择B.投影C.插入D.连接22.以下选项中正确的语句组是_。(分数:1.00)A.char *s;s=“BOOK!“;

    9、B.char*s;s=“BOOK!“);C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;23.下列叙述中正确的是_。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对24.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:2.50)A.auto和 staticB.extern和 registerC.auto和 registerD.static和 register25.若有定义语句:int x=10;,则表达式 x-=x+x的值为_

    10、。(分数:1.00)A.10B.-20C.0D.-1026.以下叙述中错误的是_。(分数:1.00)A.C程序在运行过程中所有计算都以二进制方式进行B.C程序在运行过程中所有计算可以十进制方式进行C.所有 C程序都需要编译链接无误后才能运行D.C程序中整型变量只能存放整数,实型变量只能存放浮点数27.有以下结构体说明、变量定义和赋值语句: struct STD char name10; int age; char sex; s5,*ps; ps=s0; 则以下 scanf函数调用语句有错误的是_。(分数:1.00)A.scanf(“%s“,s0.name);B.scallf(“%d“,s0.a

    11、ge);C.scanf(“%c“,(ps-sex);D.scanf(“%d“,ps-age);28.下面函数的功能是_。 sss(s, t) char*s, *t; while(*s) return(*s-*t); (分数:1.00)A.求字符串的长度B.比较两个字符串的大小C.将字符串 s复制到字符串 t中D.将字符串 s接续到字符串 t中29.有以下程序: #includestdio.h main() int a=7; while(a-); printf(“%d/n“, a); 程序运行后的输出结果是_。(分数:1.00)A.-1B.0C.1D.730.当没有指定 C语言中函数形参的存储类

    12、别时,函数形参的存储类别是_。(分数:1.00)A.外部(extern)B.静态(static)C.寄存器(register)D.自动(auto)二级 C语言分类模拟题 577答案解析(总分:39.50,做题时间:90 分钟)一、选择题(总题数:30,分数:39.50)1.若有以下的定义:“int t32;”,能正确表示 t数组元素地址的表达式是_。(分数:1.00)A. printf(“%d/n“, i);(分数:2.50)A.32769B.32767C.-32766 D.输出不确定数解析:解析 在 Turbo C 2.0环境中,int 数据类型在内存中只占两个字节,其表示形式为二进制补码形

    13、式,所以范围是:-3276832767,即 1000000000000000201111111111111112(首位为符号位)。而32770转换为二进制为 10000000000000102,其符号位为 1故输出时为一个负数,而它的绝对值是求负后的结果,补码求负的方法是:先按位求反,再加一。所以求得的绝对值为 01111111 111111012+1=0111111111111102,即十进制的 32766。综上所述,选项 C正确。3.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是

    14、只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。4.利用 fseek函数可实现的操作是 _ 。(分数:1.00)A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确 解析:解析 改变文件位置指针函数 fseek()的功能是:改变文件的位置指针;辅助实现文件的顺序读写;辅助实现文件的随机读写。5.有以下程序 main() char a=“a“,“b“,“c“,“d“,“e“,“f“,“g“,“h“,“/0“;int i,j; i=sized(a);j=stden(a); printf(“%d,%d/n”,i,j); 程序运行后

    15、的输出结果是(分数:1.00)A.9,9B.8,9C.1,8D.9,8 解析:解析 本题中首先定义了字符数组 a,由于它的长度省略,所以其长度由初值个数确定,为 9。接着将 sizeof()函数返回的值赋给 i(sizeof()函数的作用是返回运算对象占用的字符数),所以 i值为 9;然后将 strlen()函数的返回值赋给 j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记“/0“),所以 j值为 8,所以最后输出的 i, j 的值为 9,8。6.有以下程序 #includestdio.h main() int i=5; do if(i%3=1) if(i%5=2) (

    16、printf(“%d“,i);break; i+; while(i!=0); printf(“/n“1); 程序的运行结果是_。(分数:2.00)A.*7 B.*3*5C.*5D.*2*6解析:解析 本题考查的是 break语句。dowhile 循环是“先执行,后判断”,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量 i为 5,然后进入 dowhile循环体,首先判断(i%3=1),因为 5%3=2,所以 if条件不满足,跳过下面的 if语句,执行 i+,i 变为 6。第 1遍循环结束,判断(i!=0)为真,继续循环。现在 i%3=6%3=0,所以 if语句还是不被执行,继续 i+,

    17、i 变为 7,仍然满足(i!=0),继续循环。第 3遍循环 i%3=7%3=1,满足条件(i%3=1),继续判断条件 i%5=2 成立,即输出*7,然后执行 break语句跳出循环。7.若有以下定义和语句; int a=1,2,3,4,5,6,7,8,9,10,*p=a;(分数:2.00)A.p+=2,*(p+) B.p+=2,*+pC.p+=3,*p+D.p+=2,+*p解析:解析 引用一个数组元素,可以用:(1)下标法,如 ai形式;(2)指针法,如*(a+i)或*(p+i)。数组的下标从 0开始,值为 3的数组元素是 a2。B、C 的内容为 a3,D 将 a2前自加,结果为 4。8.下面

    18、叙述中错误的是_。(分数:1.00)A.软件测试的目的是发现错误并改正错误 B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性解析:解析 程序调试的基本步骤有:错误定位;修改设计和代码,以排除错误;进行回归测试,防止引进新的错误。所以 B选项正确。程序调试通常称为 Debug,即排错,所以 C选项正确。软件测试的基本准则有:所有测试都应追溯到需求;严格执行测试计划,排除测试的随意性;充分注意测试中的群集现象;程序员应避免检查自己的程序;穷举测试不可能;妥善保存测试计划等文件。所以 D选项正确。软件测试的目的是

    19、为了发现错误,而执行程序的过程并不涉及改正错误,所以 A选项错误。9.以下叙述中正确的是_。(分数:1.00)A.a是实型变量,C 允许进行赋值 a=10,但不可以这样说:实型变量中允许存放整型值 B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b后,在内存中 a和 b存储单元中的原有值都将被改变,a 的值已由原值改变为 b的值,b的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a中的值为 5,b 中的值为 3解析:解析 C 语言中语法上规定实型变量是不能存放整型类的数据的,整型数据也不能存放实型数据。这是为了避免类型转换之

    20、间可能会发生错误。10.当变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2 p=a;,则以下选项中叙述错误的是_。(分数:1.00)A.系统将开辟一个名为 p的二维数组,p00中的值即为 a00中的值 B.p+1代表 a10的地址C.p中将存放 a数组的首地址D.p+2代表 a数组最后一行的首地址解析:解析 (*p)4定义了一个数组指针。p 可以指向类似于 arry4的数组,题设中,p 不是一个二维数组,只是可以指向这类二维数组,因此 A选项错误。p+1 代表了第一行第一个元素的地址,p=a 指向数组 a的首地址,则 B、C 选项正确,同理可知 D选项

    21、也正确。故答案为 A选项。13.以下叙述中错误的是_。(分数:1.00)A.用 typedef定义新的类型名后,原有类型名仍有效B.可以用 typedef将已存在的类型用一个新的名字来代表C.可以通过 typedef增加新的类型 D.用 typedef可以为各种类型起别名,但不能为变量起别名解析:解析 关键字 typedef的作用只是将 C语言中已有的数据类型作置换,并不是增加新的类型,因此 C错误。14.表示关系式 xyz 的 C语言表达式的是_。(分数:2.50)A.(x=y)ps+4,p+) printf(“%s/n“,p); (分数:1.00)A.ABCDBCDCDD B.ABCDC.

    22、DCBAD.ABCDABCABA解析:解析 在第一次执行 for循环时,字符数组的首地址赋给了指针变量 p,使得指针变量 p指向了s的首地址,输出 p所指向的字符串;第二次执行 for循环时, p 值增加 1,p 指向了 s的第二个元素输出 BCD;第三次输出 CD;第四次输出 D;直到 P指向字符串的结束字符“/0”,for 循环终止抽行。 16.以下程序的输出结果是_。 point(char*pt); main() char b4=“a“,“c“,“s“,“f“),*pt=b; pt=point(pt); printf(“%c/n“,*pt); point(char*p) p+=3; re

    23、turn p; (分数:2.00)AsBcCf Da解析:17.有以下程序: #include 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选项正确。18.有以下程序 main() int m=0256,n=256 ; printf(“%o %o/n“, m,n); 程序运行后的

    24、输出结果是_。(分数:1.00)A.0256 0400B.0256 256C.256 400 D.400 400解析:解析 在本题的赋值语句中,对 m进行的赋值显然是一个八进制数,而 n则是一个十进制的整数,最终程序要求的输出形式为八进制数输出。所以此时应该把 n转换成十进制数,即 400输出。答案应该选C。19.有以下程序: #includestdio.h main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+)printf(“%d$%d=%d“,i,j,i%j); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1*1=1 1*

    25、2=21*3=32*2=4 2*3=63*3=9 B.1*1=1 1*2=2 1*3=32*1=2 2*2=4C.1*1=11*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9解析:解析 外循环第一次 i的值为 1,内循环第一次 j的初值为 1,打印 1*1=1;内循环第二次 j的值为 2,打印 1*2=2;内循环第三次 j的值为 3,打印 1*3=3,打印回车换行,退出内循环。外循环第二次 i的值为 2,内循环第一次 j的初值为 2,打印 2*2=4;内循环第二次 j的值为 3,打印 2*3=6,打印回车换行,退出内循环。外循环第三次 i的

    26、值为 3,内循环第一次 j的初值为 3,打印 3*3=9,打印回车换行,退出内循环。20.以下叙述中正确的是 _。(分数:1.00)A.用 C程序实现的算法必须要有输入和输出操作B.用 C程序实现的算法可以没有输出但必须要输入C.用 C程序实现的算法可以没有输入但必须要有输出 D.用 C程序实现的算法可以既没有输入也没有输出解析:解析 算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。21.有两个关系 R,S 如下: R A B C a 3 2 b 0 1 c 2 1 S A B

    27、a 3 b 0 c 2 由关系 R通过运算得到关系 S,则所使用的运算为_。(分数:1.00)A.选择B.投影 C.插入D.连接解析:解析 投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解。本题中,S 是在原有关系 R的内部进行的,是由 R中原有的那些域的列所组成的关系,因此选择 B。22.以下选项中正确的语句组是_。(分数:1.00)A.char *s;s=“BOOK!“; B.char*s;s=“BOOK!“);C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;解析:解析 字符指针可以用字符串直接赋值,字符数组

    28、不可以。所以选择 A。23.下列叙述中正确的是_。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 数据的存储结构、程序处理的数据量、程序的算法等都会影响程序执行效率。24.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是_。(分数:2.50)A.auto和 staticB.extern和 registerC.auto和 register D.static和 register解析:解析 auto:函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,

    29、在调用该函数时,系统会给它们分配存储空间,在函数调用结束后自动释放这些存储空间。register:为了提高效率,C语言允许将局部变量的值放在 CPU中的寄存器中,这种变量叫“寄存器变量”,只有局部自动变量和形参可以作为寄存器变量。extern:外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。static:静态局部变量,属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。25.若有定义语句:int x=10;,则表达式 x-=x+x的值为_。(分数:1.00

    30、)A.10B.-20C.0D.-10 解析:解析 算术运算符+的优先级高于-=,且-=的结合方向为自右向左,因此表达式 x-=x+x可以表示成 x=x-(x+x)=10-(10+10)=-10,所以选择 D。26.以下叙述中错误的是_。(分数:1.00)A.C程序在运行过程中所有计算都以二进制方式进行 B.C程序在运行过程中所有计算可以十进制方式进行C.所有 C程序都需要编译链接无误后才能运行D.C程序中整型变量只能存放整数,实型变量只能存放浮点数解析:解析 C 语言中,参与运算的数可以以八进制、十进制、十六进制等多种形式表示。27.有以下结构体说明、变量定义和赋值语句: struct STD

    31、 char name10; int age; char sex; s5,*ps; ps=s0; 则以下 scanf函数调用语句有错误的是_。(分数:1.00)A.scanf(“%s“,s0.name);B.scallf(“%d“,s0.age);C.scanf(“%c“,(ps-sex);D.scanf(“%d“,ps-age); 解析:解析 本题考查结构体的相关知识,题目中需要输入一个变量,scanf 要求参数为指针,而 D选项中 ps-age 为一个变量,不是指针,所以错误。28.下面函数的功能是_。 sss(s, t) char*s, *t; while(*s) return(*s-*t

    32、); (分数:1.00)A.求字符串的长度B.比较两个字符串的大小 C.将字符串 s复制到字符串 t中D.将字符串 s接续到字符串 t中解析:29.有以下程序: #includestdio.h main() int a=7; while(a-); printf(“%d/n“, a); 程序运行后的输出结果是_。(分数:1.00)A.-1 B.0C.1D.7解析:解析 此题考查 a-和-a 之间的区别,当 while(a-)为真循环执行,a-是执行再减 1,所以答案选择 A。30.当没有指定 C语言中函数形参的存储类别时,函数形参的存储类别是_。(分数:1.00)A.外部(extern)B.静态(static)C.寄存器(register)D.自动(auto) 解析:解析 auto 变量又称为自动变量,函数定义变量时,如果没有指定存储类别,系统就认为所定义的变量具有自动类别,D 选项正确。static 变量又称为静态变量,编译时为其分配的内存在静态存储区中。register变量又称为寄存器变量,变量的值保留在 CPU的寄存器中,而不是像一般变量那样占内存单元。当定义一个函数时,若在函数返回值的类型前加上说明符 extern时,称此函数为外部函数,外部函数在整个源程序中都有效。


    注意事项

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




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

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

    收起
    展开