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

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

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

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

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

    1、二级 C语言分类模拟题 542及答案解析(总分:55.00,做题时间:90 分钟)一、选择题(总题数:40,分数:55.00)1.关于字符常量,以下叙述正确的是_。(分数:2.00)A.空格不是一个字符常量B.字符常量能包含大于一个的字符C.单引号中的大写字母和小写字母代表的是相同的字符常量D.所有的字符常量都可以作为整型量来处理2.以下数组定义中错误的是_。(分数:2.00)A.int x23=1,2,3,4,5,6;B.int x3=0;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6;3.有以下程序 #include stdio.h void fun(

    2、int *a, int n)/* fun 函数的功能是将 a所指数组元素从大到小排序*/ int t, i,j; for (i=0; in-1 ;i+) for 0=i+l; jn; j+) if(aiaj) t=ai; ai=aj; aj=t; main() int c10= 1,2,3,4,5,6,7,8,9,0,i; fun(c+4, 6); for (i=0;i10; i+) printf(“%d,“, ci); printf(“/n“); (分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,

    3、1,D.1,2,3,4,9,8,7,6,5,0,4.有以下程序: #includestdio.h main() int k=-3; if(k=0) printf(“*/n“) else printf(“ 程序的输出结果是(分数:2.00)A.输出#B.输出 for(i=0; i2; i+) if(i=0)aaii+1=*p+1; else+p; printf(“%d“, *p); printf(“/n“); 程序的输出结果是(分数:1.00)A.23B.26C.33D.367.有以下程序: #includestdio.h main() int s, t, A=10; double B=6; s

    4、=sizeof(A); t=sizeof(B); printf(“%d, %d/n“, s, t); 在 VC6平台上编译运行,程序运行后的输出结果是_。(分数:1.00)A.2,4B.1,4C.4,8D.10,68.以下程序的运行结果是_。 main() char ch=“A“; int num1=ch; float num2=num1; printf(“% f“, num2); (分数:1.00)AAB.65C.65.00000Da9.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是_。(分数:1.00)A.x+;printf(“%d/n“,x);B.n=+x;printf

    5、(“%d/n“,n);C.+x;printf(“%d/n“,x);D.n=x+;printf(“%d/n“,n);10.有以下程序: #includestdio.h #includestring.h main() char str10=“One“,“Three“,“Five“,*p=str0; printf(“%s,“,p+10); printf(“%d/n“,strlen(p+=10); 执行后的输出结果是_。(分数:1.00)A.Three,4B.出错C.Three,5D.Five,511.面向对象方法中,继承是指_。(分数:1.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象

    6、的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制12.若有以下程序: #includestdio.h main() char c1,c2; c1=“C“+“8“-“3“;c2=“9“-“0“; printf(“%c%d/n“,c1,c2); 则程序运行后的输出结果是_。(分数:1.00)A.H“9“BH9C.F“9“D.表达式不合法输出无定值13.以下叙述中正确的是_。(分数:1.00)A.在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上B.在使用 scanf函数输入整数或实数时,输入数据之间只能用空格来分隔C.在 printf函数中,各个输出项只能是变量D

    7、.使用 printf函数无法输出百分号“%”14.假定已建立以下链表结构,且指针 p和 q已指向如图所示的结点: (分数:1.00)A.p-next=q-next;free(q);B.p=q-next;free(q);C.p=q;free(q);D.(*p).next=(*q).next;free(p);15.有以下程序: #include stdio.h #define F(x) 2.84+x #define PR(a) printf(“%d“ ,(int)(a) #define PRINT(a) PR(a);putehar(“/n“) main() PRINT(F(5)*2); 程序运行后

    8、的输出结果是_。(分数:1.00)A.12B.13C.15D.1116.有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x+); 程序的运行结果是_。(分数:1.00)A.1B.41C.2D.33117.若有以下程序: #includestdio.h void sub(double x, double*y, double*z) *y=*y-1.0; *z=*z+x; main() double a=2.5, b=9.

    9、0, *pa, *pb; pa= pb= sub(b-a, pa, pa); printf(“%f/n“, a); 程序的输出结果是(分数:1.00)A.9.000000B.1.500000C.8.000000D.10.50000018.有以下程序: #includestdio.h main() int a=0, b=0; for(;a7; a+) if(a%2=0)continue; b+=a; continue; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.0B.4C.1D.919.以下叙述中正确的是_。(分数:2.00)A.不能用字符串常量对字符

    10、数组名进行整体赋值操作B.字符串常量“Hello“会被隐含处理成一个无名字符型数组,它有 5个元素C.char str7=“string!“;在语法上是合法的,运行也是安全的D.char *str;str=“Hello“;与 char str;str=“Hello“;效果是一样的20.下列选项中可作为 C语言合法常量的是_。(分数:2.50)A.-80B.-080C.-8e1.0D.-80.0e21.有以下程序: #includestdio.h main() int m=1, n=2, *p= r=p; p=q; q=r; printf(“%d, %d, %d, %d/n“, m, n, *p

    11、, *q); 程序运行后的输出结果是_。(分数:1.00)A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,122.有以下程序: # includestdio.h main() int a=1,b=0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2+b); 程序运行后的输出结果是_。(分数:1.00)A.0,0B.1,0C.3,2D.1,223.下列不属于软件调试技术的是_。(分数:2.00)A.强行排错法B.集成测试法C.回溯法D.原因排除法24.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚

    12、高耦合D.高内聚高耦合25.已知 char*p, *q;,正确的语句是_。(分数:1.00)A.p*=3;B.p/=q;C.p+=3;D.p+=q;26.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量 “/101“是( )。(分数:1.00)A.字符 AB.字符 aC.字符 eD.非法的常量27.数据流程图(DFD)是_。(分数:1.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具28.某系统结构图如下图所示: (分数:1.00)A.2B.3C.4Dn29.有以下程序: #i

    13、ncludestdio.h main() char c25=“6938“,“8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=ci; for(i=0;i2;i+) for(j=0;pij0;j+=2)s=10*s+pij-“0“; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.6938B.9824C.4528D.638530.以下选项中,能用做数据常量的是_。(分数:2.00)A.115LB.0118C.1.5e1.5D.o11531.以下有关宏替换的叙述不正确的是_。(分数:2.50)A.双引号中出现的宏名不替换B.使用宏

    14、定义可以嵌套C.宏定义仅仅是符号替换D.宏名必须用大写字母表示32.以下程序段给数组所有元素输入数据: #include stdio.h main() int a10, i=0; while(i10) scanf(“%d“, _); 应在下划线处填入的是(分数:1.00)A.a+(i+)B.B.(a=c)|(b=c);C.(a=c)D.a=c=b;34.有以下程序: #include string.h struct STU char name 10; int num; void f(char * name, int num) struct STU s2= “ SunDan“, 20044, “

    15、 Penghua“, 20045; num=s0.num; strcpy(name, s0.name); main() struct STU s2= “YangSan“, 20041, “ LiSiGuo“, 20042 , * p; p=s1; f(p-name, p-num); printf(“ % s % d/n“, p- name, p-num); 程序运行后的输出结果是(分数:2.00)A.SunDan 20042B.SunDan 20044C.LiSiGuo 20042D.YangSan 2004135.若有定义: float x=1.5; int a=1, b=3, c=2; 则

    16、正确的 switch语句是_。(分数:1.00)A.switch(a+b)case 1:printf(“*/n“);case 2+1:printf(“*/n“);B.switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C.switch(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);D.switch(a+b)case 1:printf(“*/n“);case c:printf(“*/n“);36.有以下程序 #includestdio.h void fun(int *p, int*q)

    17、int t; t=*p; *p=*q; *q=t; *q=*p; main() int a=0, b=9; fun( printf(“%d%d/n“, a, b); 程序的输出结果是_。(分数:2.00)A.0 9B.0 0C.9 0D.9 937.由以下 while构成的循环,循环体执行的次数是_。 int k=0; while(k=1)k+;(分数:1.00)A.有语法错,不能执行B.一次也不执行C.执行一次D.无限次38.以下程序中函数 sort()的功能是对数组 a中的数据进行由大到小的排序。 #includestdio.h void sort(int a,int n) int i,j

    18、,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; main() int a10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:2.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10,D.1,2,10,9,8,7,6,5,4,3,39.下列函数的功能是_。 fun(char *a,char *b) while(*

    19、b=*a)!=“/0“)a+;b+;(分数:1.00)A.将 a所指字符串赋给 b所指空间B.使指针 b指向 a所指字符串C.将 a所指字符串和 b所指字符串进行比较D.检查 a和 b所指字符串中是否有“/0“40.有以下程序段: char name 20; int num; scanf(“name=%s num=%d“,name, 当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name 的值为_。(分数:2.50)A.name=Lili num=1001B.name=LiliC.Lili nun=D.Lili二级 C语言分类模拟题 542答案解析(总分:55.0

    20、0,做题时间:90 分钟)一、选择题(总题数:40,分数:55.00)1.关于字符常量,以下叙述正确的是_。(分数:2.00)A.空格不是一个字符常量B.字符常量能包含大于一个的字符C.单引号中的大写字母和小写字母代表的是相同的字符常量D.所有的字符常量都可以作为整型量来处理 解析:2.以下数组定义中错误的是_。(分数:2.00)A.int x23=1,2,3,4,5,6;B.int x3=0;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6; 解析:3.有以下程序 #include stdio.h void fun(int *a, int n)/* fun

    21、 函数的功能是将 a所指数组元素从大到小排序*/ int t, i,j; for (i=0; in-1 ;i+) for 0=i+l; jn; j+) if(aiaj) t=ai; ai=aj; aj=t; main() int c10= 1,2,3,4,5,6,7,8,9,0,i; fun(c+4, 6); for (i=0;i10; i+) printf(“%d,“, ci); printf(“/n“); (分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,

    22、5,0, 解析:解析 本题考查的知识点是:for 循环的简单应用。 题目中 fun()函数的作用是排序,从形参指针 a所指位置开始,对其后 n个 int型元素进行从大到小排序。主函数中,调用 fun()函数传入的两个实参分别为 c+4和 6,即从数组 c的第 5个元素开始,对其后连续的 6个元素进行从大到小排序。所以,最后通过 for循环输出数组 c的值为“1,2,3,4,9,8,7,6,5,0,”,故应该选择 D。4.有以下程序: #includestdio.h main() int k=-3; if(k=0) printf(“*/n“) else printf(“ 程序的输出结果是(分数:

    23、2.00)A.输出#B.输出 for(i=0; i2; i+) if(i=0)aaii+1=*p+1; else+p; printf(“%d“, *p); printf(“/n“); 程序的输出结果是(分数:1.00)A.23 B.26C.33D.36解析:7.有以下程序: #includestdio.h main() int s, t, A=10; double B=6; s=sizeof(A); t=sizeof(B); printf(“%d, %d/n“, s, t); 在 VC6平台上编译运行,程序运行后的输出结果是_。(分数:1.00)A.2,4B.1,4C.4,8 D.10,6解析

    24、:解析 函数 sizeof()的参数为 C中定义或者用户自定义的数据,作用是返回参数所指的数据类型所占用的内存空间的字节数。本题中 A是整型,B 是双精浮点数,分别占 4个字节和 8个字节。所以选C。8.以下程序的运行结果是_。 main() char ch=“A“; int num1=ch; float num2=num1; printf(“% f“, num2); (分数:1.00)AAB.65C.65.00000 Da解析:解析 A 的 ASCII码为 65,赋值语句 num1=ch把 char类型的变量转换成 int类型的变量 num1;赋值语句 num2=num1把类型为 int的变

    25、量转换为类型为 float的变量 num2,最后 printf打印出 num2的值为 65.00000。9.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是_。(分数:1.00)A.x+;printf(“%d/n“,x);B.n=+x;printf(“%d/n“,n);C.+x;printf(“%d/n“,x);D.n=x+;printf(“%d/n“,n); 解析:解析 本题考查+运算操作符,当+在变量前面时,是先加 1再赋值,当+在变量后面时,是先赋值再加 1,所以答案选择 D。10.有以下程序: #includestdio.h #includestring.h main(

    26、) char str10=“One“,“Three“,“Five“,*p=str0; printf(“%s,“,p+10); printf(“%d/n“,strlen(p+=10); 执行后的输出结果是_。(分数:1.00)A.Three,4B.出错C.Three,5 D.Five,5解析:解析 本题中定义一个二维字符数组 str,它包含 3个字符串,每个字符串存放在一个长度为 10的一维数组中,指针变量 p指向 strp0,即第一个字符串“One”,由于“One”存放在长度为 10的一维数组,p+10 指向下一个字符串“Three”,长度为 5。故本题答案为 C选项。11.面向对象方法中,继

    27、承是指_。(分数:1.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制 解析:解析 继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。12.若有以下程序: #includestdio.h main() char c1,c2; c1=“C“+“8“-“3“;c2=“9“-“0“; printf(“%c%d/n“,c1,c2); 则程序运行后的输出结果是_。(分数:1.00)A.H“9

    28、“BH9 C.F“9“D.表达式不合法输出无定值解析:解析 本题考查字符变量以及 print()函数相关知识。字符变量 c1被赋值为“C“+“8“-“3“,即ASCII码的运算,67+54-49=72,即 H;字符变量 c2被赋值为“9“-“0“,但输出时,需要注意的是 c1以字符变量输出,而 c2是以十进制整型变量输出。因此 B选项正确。13.以下叙述中正确的是_。(分数:1.00)A.在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 B.在使用 scanf函数输入整数或实数时,输入数据之间只能用空格来分隔C.在 printf函数中,各个输出项只能是变量D.使用 pr

    29、intf函数无法输出百分号“%”解析:解析 scanf 函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,所以 A正确。scanf 函数的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配就可以,所以 B错误。printf 函数可以输出常量,也可以输出变量,所以 C错误。printf 函数可以用“/%”来输出百分号“%”,所以 D错误。14.假定已建立以下链表结构,且指针 p和 q已指向如图所示的结点: (分数:1.00)A.p-next=q-next;free(q); B.p=q-next;free(q);C.p=q;free(q

    30、);D.(*p).next=(*q).next;free(p);解析:解析 本题考查删除链表中的结点操作,其方法是将要删除结点的上个结点指向要删除结点的下个结点,然后释放该要删除结点,所以选项 A正确。15.有以下程序: #include stdio.h #define F(x) 2.84+x #define PR(a) printf(“%d“ ,(int)(a) #define PRINT(a) PR(a);putehar(“/n“) main() PRINT(F(5)*2); 程序运行后的输出结果是_。(分数:1.00)A.12 B.13C.15D.11解析:解析 带参数的宏的调用格式:宏

    31、名(实参表),替换过程是,用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。将 PRINT(F(5)* 2)用 PR(F(5)*2);putchar(“/n“)替换,将 PR(F(5)*2)用 printf(“%d”,(int)(F(5)*2)替换,再将 F(5)用 2.84+5替换,最后替换结果为 printf(“%d”,(int)(2.84+5*2);putchar(“/n“),运行结果为:12回车。故 A选项正确。16.有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(xy) if(yz) printf(

    32、“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x+); 程序的运行结果是_。(分数:1.00)A.1 B.41C.2D.331解析:解析 xy 不成立,之后的 if和 else都不执行,输出 x+表达式值为 1。17.若有以下程序: #includestdio.h void sub(double x, double*y, double*z) *y=*y-1.0; *z=*z+x; main() double a=2.5, b=9.0, *pa, *pb; pa= pb= sub(b-a, pa, pa); printf(“%f/n“, a); 程序

    33、的输出结果是(分数:1.00)A.9.000000B.1.500000C.8.000000 D.10.500000解析:18.有以下程序: #includestdio.h main() int a=0, b=0; for(;a7; a+) if(a%2=0)continue; b+=a; continue; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.0B.4C.1D.9 解析:解析 由程序可知,for 循环中 a的取值为 06,其中若 if条件满足,即 a取值为 2,4,6 时,b+=a不会执行,所以当 a取值为 1,3,5 时,b+=a 才会被执行

    34、。所以循环结束后 b=1+3+5,输出结果为9。故答案选择 D选项。19.以下叙述中正确的是_。(分数:2.00)A.不能用字符串常量对字符数组名进行整体赋值操作 B.字符串常量“Hello“会被隐含处理成一个无名字符型数组,它有 5个元素C.char str7=“string!“;在语法上是合法的,运行也是安全的D.char *str;str=“Hello“;与 char str;str=“Hello“;效果是一样的解析:解析 字符数组在定义时可以用字符串赋初值,其后就不可以再用字符串常量进行赋值。答案选择 A。20.下列选项中可作为 C语言合法常量的是_。(分数:2.50)A.-80 B.

    35、-080C.-8e1.0D.-80.0e解析:解析 所谓常量是指在程序运行的过程中,其值不能被改变的量。在 C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项 B中是以 0开头,表示一个八进制数,而八进制数的取值范围是 07,所以“-080”错误;在 C语言中 e后面的指数必须是整数,因此选项 C和 D也不正确。21.有以下程序: #includestdio.h main() int m=1, n=2, *p= r=p; p=q; q=r; printf(“%d, %d, %d, %d/n“, m, n, *p, *q); 程序运行后的输出结果是_。(分数:1.00)A.2,1,

    36、1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1 解析:解析 int m=1, n=2, *p= printf(“%d,“,b=a+b); printf(“%d/n“,a=2+b); 程序运行后的输出结果是_。(分数:1.00)A.0,0B.1,0C.3,2D.1,2 解析:解析 本题输出两个值:第一个 printf语句输出 b的值,b=a+b=1;第二个 printf语句输出了 a的值,a=2+b,此时 b的值为 1,所以 a的值为 2。23.下列不属于软件调试技术的是_。(分数:2.00)A.强行排错法B.集成测试法 C.回溯法D.原因排除法解析:解析 调试的关键在于推断程序内

    37、部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。24.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为 B。25.已知 char*p, *q;,正确的语句是_。(分数:1.00)A.p*=3;B.p/=q;C.p+=3; D.p+=q;解析:26.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量 “/101“是

    38、( )。(分数:1.00)A.字符 A B.字符 aC.字符 eD.非法的常量解析:解析 本题的关键是八进制 101的十进制是多少。八进制的 101转换为十进制为 65,也就是字符A的 ASCII码。故应该选择 A。27.数据流程图(DFD)是_。(分数:1.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具 D.面向对象方法的需求分析工具解析:解析 数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。28.某系统结构图如下图所示: (分数:1.00)A.2B.3C.4Dn 解析:解析 宽度又称扇入是指最大模块数的层的控制跨度。题目中系统第一层只有 1

    39、个模块,第二层有 n(n3)个模块,第三层有 4个模块,控制跨度为 n,故 D选项正确。29.有以下程序: #includestdio.h main() char c25=“6938“,“8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=ci; for(i=0;i2;i+) for(j=0;pij0;j+=2)s=10*s+pij-“0“; printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:1.00)A.6938B.9824C.4528D.6385 解析:解析 本题中首先是将二维字符数组 c赋值指针数组 p,然后遍历 p找到两个字符串中的偶数

    40、位置的字符并组成一个数值输出,根据代码执行即可得到结果为 6385。30.以下选项中,能用做数据常量的是_。(分数:2.00)A.115L B.0118C.1.5e1.5D.o115解析:解析 A 选项中 115L表示 115是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字 8,所以 B错误。C 选项中 e后面应该是整数不能是小数 1.5,所以 C错误。D 选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。31.以下有关宏替换的叙述不正确的是_。(分数:2.50)A.双引号中出现的宏名不替换B.使用宏定义可以嵌套C.宏定义仅仅是符号替换D.宏名必须用大写

    41、字母表示 解析:解析 本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查;为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;双引号中出现的宏名不替换;使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。32.以下程序段给数组所有元素输入数据: #include stdio.h main() int a10, i=0; while(i10) scanf(“%d“, _); 应在下划线处填入的是(分数:1.00)A.a+(i+) B.B.(a=c)|(b=c);C.(a=c) D.

    42、a=c=b;解析:解析 选项 A是先将 a的值赋给变量 b,再将变量 b的值赋给变量 c,不合题意;B 选项中由于 c的值不为 0,在将 c的值赋给变量 a后,表达式 a=c的值为 1,不再对表达式 b=c计算;对于 C选项,表达式 a=c的值为 1,再求表达式 b=c的值为 1,然后进行逻辑与运算;D 选项将 b的值赋给 c后再赋给 a,故选择 C选项。34.有以下程序: #include string.h struct STU char name 10; int num; void f(char * name, int num) struct STU s2= “ SunDan“, 2004

    43、4, “ Penghua“, 20045; num=s0.num; strcpy(name, s0.name); main() struct STU s2= “YangSan“, 20041, “ LiSiGuo“, 20042 , * p; p=s1; f(p-name, p-num); printf(“ % s % d/n“, p- name, p-num); 程序运行后的输出结果是(分数:2.00)A.SunDan 20042 B.SunDan 20044C.LiSiGuo 20042D.YangSan 20041解析:解析 本题考查的是结构体。主函数中定义了结构体类型的指针变量 p,并

    44、使其指向结构体类型的数组 s1,并通过调用函数 f改变指针变量 p所指向的结构体中成员变量 name的值,但并未改变其num的值。这是因为函数 f中的形参 nam。是一个字符型指针变量,它指向主函数中指针变量 p所指向的结构体的成员变量 name,所以对函数 f中的形参*name。的改变也就是对主函数中 p-name 的改变,而函数 f中对形参 num的改变并不会影响主函数中 p-num 的值,因为此时传递给 num的是一个值,而不是地址。35.若有定义: float x=1.5; int a=1, b=3, c=2; 则正确的 switch语句是_。(分数:1.00)A.switch(a+b

    45、)case 1:printf(“*/n“);case 2+1:printf(“*/n“); B.switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C.switch(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);D.switch(a+b)case 1:printf(“*/n“);case c:printf(“*/n“);解析:解析 switch 语句的一般形式为: switch(表达式) case常量表达式 1:语句 1; case常量表达式 2:语句 2; default:语句 n;

    46、 其中 switch后的表达式只能是整型或字符型,故 C选项错误;case 后面必须是常量表达式,故 D选项错误;switch()右括号后面不能有分号,故选项 B错误,因此答案选 A选项。36.有以下程序 #includestdio.h void fun(int *p, int*q) int t; t=*p; *p=*q; *q=t; *q=*p; main() int a=0, b=9; fun( printf(“%d%d/n“, a, b); 程序的输出结果是_。(分数:2.00)A.0 9B.0 0C.9 0D.9 9 解析:解析 fun 函数完成的功能是将两个数交换,然后再将第一个数赋值给第二个数,main 中调用后a b分别为 9 9,答案选择 D。37.由以下 while构成的循环,循环体执行的次数是_。 int k=0; while(k=1)k+;(分数:1.00)A.有语法错,不能执行B.一次也不执行C.执行一次D.无限次 解析:解析 本题考查 while语句。while 语句的语义是:


    注意事项

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




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

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

    收起
    展开