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

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

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

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

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

    1、二级 C 语言分类模拟题 572 及答案解析(总分:42.50,做题时间:90 分钟)一、选择题(总题数:30,分数:42.50)1.以下程序段中,与其他三个功能不同的程序段是_。(分数:1.00)A.s=0;i=1;for(; ;)s+=i; i+; if(i=10)break;B.s=0,i=1;for(; i=10;) s+=i, i+; C.s=0;for(i=1;i=10; i+) s+=i;D.for(s=0,i=1;i=10; s+=i,i+);2.以下选项中非法的表达式是(分数:1.00)A.0x100B.i=j= =0C.(char)(65+3)D.x+1=x+13.有以下程

    2、序: #includestdio.h main() int sum,pad,pAd; sum=pad=5; pAd=+sum,pAd+,+pad; printf(“%d/n“,pad); 程序运行后的输出结果是_。(分数:1.00)A.5B.6C.7D.84.有以下程序: # include stdio.h main() int x=011; printf(“%d/n“,+x); 程序运行后的输出结果是_。(分数:1.00)A.12B.11C.10D.95.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:1.00)A.下划线B.大写字母C.数字字符D.连接符6.有以下

    3、程序 #includestdio.h main() int x=1,y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“%d/n“,y); 程序运行后的输出结果是_。(分数:2.50)A.0B.2C.1D.37.有以下程序 #includestdio.h int fun(int x, int y) static int m=0, i=2; i+=m+1; m=i+x+y; return m; main() int j=1, m=1, k; k=fun(j, m); printf(“%d“, k); k=fun(j, m); pri

    4、ntf(“%d/n“, k); 执行后的输出结果是_。(分数:2.00)A.5, 11B.5, 5C.11, 11D.11, 58.以下语句中存在语法错误的是_。(分数:2.00)A.char ss620;ss1=“right?“;B.char ss20=“right?“;C.char*ss6;ss1=“right?“;D.char*ss=“right?“;9.有以下程序: #include stdio.h int fun() static int x=1; x*=2; return x; main( ) int i,s=1; for(i=1; i=3; i+ +) s*=fun(); pri

    5、ntf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.50)A.10B.30C.0D.6410.有下列程序: main() int x=5; do printf(“%d“,x-=4); while(!(-x); 程序的输出结果是( )。(分数:1.00)A.1B.20C.1 4D.死循环11.有以下程序: #includestdio.h main() unsigned char a=2, b=4, c=5, d; d=a | b;d printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.3B.4C.5D.612.有以下程序: main() int x

    6、8=8,7,6,5,O,0,*s; s=x+3; printf(“%d/n“,s2); 执行后输出结果是( )。(分数:1.00)A.随机值B.0C.5D.613.以下能够实现计算 5!的程序段是_。(分数:1.00)A.int fac=1,k=0;dok+;fac*=k; while(k5);B.int fac=0,k=1;dofac*=k;k+; while(k5);C.int fac=1,k=1;dok+;fac*=k; while(k=5);D.int fac=1,k=0;dofac*=k;k+; while(k5);14.若变量已正确说明为 float 类型,要通过语句 scanf(

    7、“%f %f %f“, s+; main() char a=“BYTE“; Fun(a); printf(“n“); 程序运行后的输出结果是_。(分数:1.00)A.BYB.BTC.YTD.YE16.以下关于字符串的叙述中正确的是_。(分数:1.00)A.空串比空格打头的字符串小B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.C 语言中有字符串类型的常量和变量17.以下程序运行后的输出结果是 #includestdio.h main() int a5=1, 2, 3, 4, 5, b5=0, 2, 1, 3, 0, i, s=0; for(

    8、i=0; i5; i+) s=s+abi; printf(“%d/n“, s); (分数:2.00)A.6B.10C.11D.1518.以下叙述正确的是_。(分数:1.00)A.有些算法不能用 3 种基本结构来表达B.C 语言程序不编译也能直接运行C.结构化程序的 3 种基本结构是循环结构、选择结构、顺序结构D.如果 C 语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序19.设有以下语句: int a=1, b=2, c; c=a(b2); 执行后,c 的值为_。(分数:2.00)A.7B.9C.8D.620.有以下程序 #includestdio.h main() int i

    9、=1; i=ii; printf(“%d/n“,i); 程序运行后的输出结果是_。(分数:1.00)A.0B.-1C.1D.721.以下叙述中错误的是(分数:2.00)A.同一个数组中所有元素的类型相同B.不可以跳过前面的数组元素,给后面的元素赋初值C.定义语句:int a10=0;,给 a 数组中所有元素赋初值 0D.若有定义语句:int a4=1, 2, 3, 4, 5;,编译时将忽略多余的初值22.以下程序的运行结果为_。 #define MIN(x,y)(x)(y)?(x):(y) main() int a=0,b=3,c=1,d=3,X; X=MIN(c+d,a+b)*100; pr

    10、intf(“%d/n“,X); (分数:2.00)A.300B.4C.3D.40023.若有以下程序段: int r=8; print(“%d/n“, r1); 输出结果是_。(分数:1.00)A.16B.8C.4D.224.若有定义语句:int m=5,4,3,2,1,i=4;,则下面对 m 数组元素的引用中错误的是_。(分数:2.00)A.m-iB.m2*2C.mm0D.mmi25.有以下程序: #include stdio.h typedef struct int b, p; A; void f(A c) /*注意:c 是结构变量名 */ int j; c.b+=1; c.p+=2; m

    11、ain( ) int i; A a=1,2; f(a); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:2.00)A.2,4B.1,2C.1,4D.2,326.逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是_。(分数:1.00)A.关系模型B.谓词模型C.物理模型D.实体联系模型27.有以下程序: #includestdio.h main() char a,b,C,d; scanf(“%c%c“, c=getchar(); d=getchar(); printf(“%c%c%c%c/n“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第

    12、 1 列开始,CR代表回车,注意:回车也是一个字符) 12CR 34CR 则输出结果是_。(分数:1.00)A.123B.12C.1234D.123428.设有语句:if(a=1)b=2;c=3;,以下语句中与之等价的是_。(分数:2.50)A.if(a=1)b=2;c=3;B.if(a!=1); else b=2;c=3;C.if(a=1)c=3;b=2;D.(a=1)?b=2:a=a;c=3;29.有以下程序: # include stdio.h int a=1,b=2; void funl(int a,int b) printf(“%d%d“,a,b); void fun2() a=3;

    13、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 630.有以下程序: #include stdio.h main( ) char name10 = “S“,“T“,“R“; name2 =“#“; name6 = 0; printf(“%s/n“, name); 程序运行后的输出结果是_。(分数:1.00)A.ST#B.STR#C.STR#0D.STR0二级 C 语言分类模拟题 572 答案解析(总分:42.50,做题时间:9

    14、0 分钟)一、选择题(总题数:30,分数:42.50)1.以下程序段中,与其他三个功能不同的程序段是_。(分数:1.00)A.s=0;i=1;for(; ;)s+=i; i+; if(i=10)break; B.s=0,i=1;for(; i=10;) s+=i, i+; C.s=0;for(i=1;i=10; i+) s+=i;D.for(s=0,i=1;i=10; s+=i,i+);解析:解析 B、C、D 选项都表示对 1 到 10 进行累加后赋给 s,而 A 中含 break 语句,循环体只执行一次,结束整个循环过程,因此答案为 A 选项。2.以下选项中非法的表达式是(分数:1.00)A

    15、.0x100B.i=j= =0C.(char)(65+3)D.x+1=x+1 解析:解析 选项 D 中将表达式的值赋给表达式,在 c 语言中是不允许给表达式赋值的。3.有以下程序: #includestdio.h main() int sum,pad,pAd; sum=pad=5; pAd=+sum,pAd+,+pad; printf(“%d/n“,pad); 程序运行后的输出结果是_。(分数:1.00)A.5B.6 C.7D.8解析:解析 C 语言区分大小写,pad 与 pAd 是两个不同的变量。首先将 5 赋值给两个变量,由于赋值运算符的优先级高于逗号运算符,所以计算 pAd=+ +sum

    16、,此时 pAd 为 6,sum 也为 6,然后计算 pAd+ +,pAd 的值变为 7,+ +pad,pad 的值变为 6,所以选择 B 选项。4.有以下程序: # include stdio.h main() int x=011; printf(“%d/n“,+x); 程序运行后的输出结果是_。(分数:1.00)A.12B.11C.10 D.9解析:解析 考查简单的 C 语言程序,题目中 x=011;而输出函数中+x,说明是先加 1,所以为 10,答案选择 C。5.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:1.00)A.下划线B.大写字母C.数字字符D.连接符

    17、 解析:解析 C 语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。因此 D 选项中的连接符不合法。6.有以下程序 #includestdio.h main() int x=1,y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; printf(“%d/n“,y); 程序运行后的输出结果是_。(分数:2.50)A.0 B.2C.1D.3解析:解析 (!x)为假,然后判断(x=0),为假,最后就执行输出语句,y 的值仍为初始值,答案选择A。7.有以下程序 #includestdio.h int fun(int x, int y) sta

    18、tic int m=0, i=2; i+=m+1; m=i+x+y; return m; main() int j=1, m=1, k; k=fun(j, m); printf(“%d“, k); k=fun(j, m); printf(“%d/n“, k); 执行后的输出结果是_。(分数:2.00)A.5, 11 B.5, 5C.11, 11D.11, 5解析:解析 声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数 fun 中的变量 i 和 m 均为静态局部变量。因此第一次调用 fun 函数,返回 m 的值为 5,第

    19、二次再调用 fun 函数时,i 的值为 3,m 的值已经是 5 了,所以执行i+=m+1,i 的值变为 9,m=i+x+y=9+1+1=11。故本题答案为 A。8.以下语句中存在语法错误的是_。(分数:2.00)A.char ss620;ss1=“right?“; B.char ss20=“right?“;C.char*ss6;ss1=“right?“;D.char*ss=“right?“;解析:解析 数组赋值时需要用表示出来,故选项 A 错误。9.有以下程序: #include stdio.h int fun() static int x=1; x*=2; return x; main( )

    20、 int i,s=1; for(i=1; i=3; i+ +) s*=fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.50)A.10B.30C.0D.64 解析:解析 在本题中,静态局部变量 x 在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第一次循环 s 的值为 2,在第二次循环中,返回的 x 的值为 4,所以 s 的值为 8,第三次循环,返回的 x 的值为 8,所以 s 的值为 64。10.有下列程序: main() int x=5; do printf(“%d“,x-=4); while(!(-x); 程序的输出结果是( )。(分数:

    21、1.00)A.1B.20C.1 4 D.死循环解析:解析 本题考查 dowhile 循环。执行 printf 语句,x=x-4 1,输出 1,判断 while 循环的控制条件,-x=0,则(!(-x)非零,循环条件成立,执行下一次循环;执行 printf 语句,x=x-4=-4,输出-4,判断 while 循环的控制条件,-x=-5,则(!(-x)为零,循环条件不成立,结束循环。11.有以下程序: #includestdio.h main() unsigned char a=2, b=4, c=5, d; d=a | b;d printf(“%d/n“,d); 程序运行后的输出结果是_。(分数

    22、:1.00)A.3B.4 C.5D.6解析:解析 dok+;fac*=k; while(k5); B.int fac=0,k=1;dofac*=k;k+; while(k5);C.int fac=1,k=1;dok+;fac*=k; while(k=5);D.int fac=1,k=0;dofac*=k;k+; while(k5);解析:解析 dowhile 循环语句一般形式为:do循环体while(表达式),执行过程为:首先执行循环体,之后判断表达式,成立(非 0)则再一次执行循环体,不成立(0)则退出循环。A 选项:k=1,fac=1 * 1,判断 k5,条件成立进行下一次循环,直到 k=

    23、5,fac=1*2*3*4*5,k5 不成立退出循环,实现计算5!,A 选项正确。B 选项:fac 从 0 开始,做乘法一直都是 0,无法实现 5!,错误。C 选项:k=2,fac=1*2,循环条件成立,直到 k=6,fac=1*2*3*4*5*6 才因循环条件不成立退出循环,实现 6!,错误。D 选项:k=0,fac=1*0=0,之后做乘法一直为 0,无法实现 5!,错误。故选择 A 选项。14.若变量已正确说明为 float 类型,要通过语句 scanf(“%f %f %f“, s+; main() char a=“BYTE“; Fun(a); printf(“n“); 程序运行后的输出结

    24、果是_。(分数:1.00)A.BYB.BTC.YTD.YE 解析:解析 fun()函数的意思是当*s%2=0 的时候就输出并且 s 自加 1 次,然后判断。所以可知只有第2 和第 4 个位置上的才符合要求,所以答案为 D。16.以下关于字符串的叙述中正确的是_。(分数:1.00)A.空串比空格打头的字符串小 B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.C 语言中有字符串类型的常量和变量解析:解析 字符串比较大小是以第 1 个不相同字符的大小为标准的,跟长度没有关系,B 选项不正确。字符串比较大小除了使用库函数 strcmp()以外,就只

    25、能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于 const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的,C 选项不正确。C 语言中只有字符串常量而没有字符串变量,D 选项描述不正确。空串的长度为 O,而以空格打头的字符串的长度至少为 1,因此 A 选项是正确的。17.以下程序运行后的输出结果是 #includestdio.h main() int a5=1, 2, 3, 4, 5, b5=0, 2, 1, 3, 0, i, s=0; for(i=0; i5; i+) s=s+abi; prin

    26、tf(“%d/n“, s); (分数:2.00)A.6B.10C.11 D.15解析:解析 数组元素 bi作为数组 a 的下标,s=a0+a2+a1+a3+a0,即 s=1+3+2+4+1=11。18.以下叙述正确的是_。(分数:1.00)A.有些算法不能用 3 种基本结构来表达B.C 语言程序不编译也能直接运行C.结构化程序的 3 种基本结构是循环结构、选择结构、顺序结构 D.如果 C 语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序解析:解析 算法的 3 种基本结构可以表达任何算法,只是不同的实现复杂度不相同,因此 A 选项错误。C 语言是编译型语言,程序必须先编译、链接才

    27、能运行,因此 B 选项错误。C 语言是高级程序语言,计算机不能识别除了机器语言以外的任何语言,因此 C 程序代码转换为机器语言才能在计算机上运行,因此选项 D 错误。答案为 C 选项。19.设有以下语句: int a=1, b=2, c; c=a(b2); 执行后,c 的值为_。(分数:2.00)A.7B.9 C.8D.6解析:解析 b 为 2,二进制为 00000010,执行左移两位操作后为 00001000,然后与 a(00000001)做异或操作结果为 00001001,即十进制的 9。20.有以下程序 #includestdio.h main() int i=1; i=ii; prin

    28、tf(“%d/n“,i); 程序运行后的输出结果是_。(分数:1.00)A.0 B.-1C.1D.7解析:解析 是按位异或,11 结果为 0,答案选择 A。21.以下叙述中错误的是(分数:2.00)A.同一个数组中所有元素的类型相同B.不可以跳过前面的数组元素,给后面的元素赋初值C.定义语句:int a10=0;,给 a 数组中所有元素赋初值 0D.若有定义语句:int a4=1, 2, 3, 4, 5;,编译时将忽略多余的初值 解析:22.以下程序的运行结果为_。 #define MIN(x,y)(x)(y)?(x):(y) main() int a=0,b=3,c=1,d=3,X; X=M

    29、IN(c+d,a+b)*100; printf(“%d/n“,X); (分数:2.00)A.300 B.4C.3D.400解析:23.若有以下程序段: int r=8; print(“%d/n“, r1); 输出结果是_。(分数:1.00)A.16B.8C.4 D.2解析:解析 本题考查移位运算。将 8 转为二进制数为 1000,右移一位不足补 0,结果为 0100,转化为十进制结果为 4。24.若有定义语句:int m=5,4,3,2,1,i=4;,则下面对 m 数组元素的引用中错误的是_。(分数:2.00)A.m-iB.m2*2C.mm0 D.mmi解析:解析 数组 m 下标从 0 到 4

    30、 计算,共 5 个元素,选项 C 中 m0=5,则 mm0为 m5中,超出了数组 m 的下标范围。因此正确答案为 C。25.有以下程序: #include stdio.h typedef struct int b, p; A; void f(A c) /*注意:c 是结构变量名 */ int j; c.b+=1; c.p+=2; main( ) int i; A a=1,2; f(a); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:2.00)A.2,4B.1,2 C.1,4D.2,3解析:解析 结构体变量可以作为函数的参数和返回值。作为函数的实参时,

    31、可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名,以实现传值调用。实参将复制副本给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。所以选择 B。26.逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是_。(分数:1.00)A.关系模型 B.谓词模型C.物理模型D.实体联系模型解析:解析 逻辑模型是面向数据库系统的模型,着重于在数据库系统一级的实现。成熟并大量使用的逻辑模型有层次模型、网状模型、关系模型和面向对象模型等。27.有以下程序: #includestdio.h main() char a,b,C,d; scanf(“%c%c“, c=ge

    32、tchar(); d=getchar(); printf(“%c%c%c%c/n“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第 1 列开始,CR代表回车,注意:回车也是一个字符) 12CR 34CR 则输出结果是_。(分数:1.00)A.123 B.12C.1234D.1234解析:解析 scanf()函数从标准输入输出中读入两个字符“1“、“2“分别赋给变量 a、b,遇到回车自动结束,但回车符已经存入缓冲区,函数 getchar()将从中接受了回车符,故 c 被赋值为回车符,第二个getchar()读入字符“3“,因此 a=“1“,b=“2“,c=CR,d=“3“。故答案为

    33、A 选项。28.设有语句:if(a=1)b=2;c=3;,以下语句中与之等价的是_。(分数:2.50)A.if(a=1)b=2;c=3;B.if(a!=1); else b=2;c=3;C.if(a=1)c=3;b=2;D.(a=1)?b=2:a=a;c=3; 解析:解析 在 C 语言中,用分号表示一条语句的结束,用把几条语句放在一块表示一个语句块,其整体表示一个功能。因而在题目给出的四个选项中,选项 A、B、C 均与题中所给不同,而选项 D 相同。29.有以下程序: # include stdio.h int a=1,b=2; void funl(int a,int b) printf(“%

    34、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 4 C.5 6 1 2D.3 4 5 6解析:解析 fun1 是输出局部变量的值,fun2 是把全局变量的值改成 3 和 4,所以输出的结果是 5 6 3 4。30.有以下程序: #include stdio.h main( ) char name10 = “S“,“T“,“R“; name2 =“#“; name6 = 0; printf(“%s/n“, name); 程序运行后的输出结果是_。(分数:1.00)A.ST# B.STR#C.STR#0D.STR0解析:解析 程序首先对 name 数组进行初始化,再对元素 name2赋值为#,由于用“%s”格式输出字符串时,以/0作为结束标志,/0对应于 0,在输出时,系统认为 name2后面已经结束,答案为 A 选项。


    注意事项

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




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

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

    收起
    展开