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

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

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

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

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

    1、二级 C语言模拟 646及答案解析(总分:144.50,做题时间:90 分钟)一、选择题(总题数:40,分数:60.50)1.有以下程序: #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.63852.以下叙述中正确的是_。(分数:2.00)A.break语句不

    2、能用于提前结束 for语句的本层循环B.使用 break语句可以使流程跳出 switch语句体C.continue语句使得整个循环终止D.在 for语句中,continue 与 break的效果是一样的,可以互换3.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误4.有以下程序 #includestdio.h main() int x=8; for(;x0;x-) if(x%3) printf(“%d,“,x-); continue; printf(“%d,“,-x); 程序的运行结果是_。(分数:4.00)A.8,5,4

    3、,2,B.8,7,5,2,C.9,7,6,4,D.7,4,2,5.有以下程序: # include stdio.h struct STU char name9; char sex; int score2; void f(struct STU a) struct STU b=“Zhao“,“m“,85,90; a1=b; main() struct STU c2=“Qian“,“f“,95,92,“Sun“,“m“,98,99; f(c); printf(“%s,%c,%d,%d,“,c0.name,c0.sex,c0.score0,c0.score1); printf(“%s,%c,%d,%d

    4、/n“,c1.name,c1.sex,c1.score0,c1.score1); 程序运行后的输出结果是_。(分数:1.00)A.2hao,m,85,90,Sun,m,98,99B.2hao,m,85,90,Qian,f,95,92C.Qian,f,95,92,Sun,m,98,99D.Qian,f,95,92,Zhao,m,85,906.下列字符串是标识符的是_。(分数:2.00)A.aaB.a-classC.intD.LINE 17.有以下程序 int f(int b 4) int i,j,s=0; for(j=0; j4; j+) i=j; if (i2) i=3-j; s+=bi j;

    5、 return s; main ( ) int a4 4 =1,2,3,4, 0,2,4,6, 3,6,9,12), 3,2,1,0; print f ( “%d/n“ , f(a); 执行后的输出结果是(分数:1.00)A.12B.11C.18D.168.关系数据模型 _(分数:1.00)A.只能表示实体间的 1:1联系B.只能表示实体间的 1:n联系C.只能表示实体间的 m:n联系D.可以表示实体间的上述 3种联系9.构成 C程序的三种基本结构是(分数:2.00)A.顺序结构、转移结构、递归结构B.顺序结构、嵌套结构、递归结构C.顺序结构、选择结构、循环结构D.选择结构、循环结构、嵌套结构

    6、10.设计软件结构是在软件生命周期的 _ 。(分数:2.00)A.软件定义期B.软件开发期C.软件维护期D.以上 3个都不是11.以下选项中,能用作用户标识符的是_。(分数:2.00)A._0_B.8_8C.voidD.unsigned12.以下叙述中正确的是_。(分数:2.00)A.用 C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上13.下列叙述中正确的是_。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制

    7、结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对14.若已有定义语句:int a,b,c;,且变量已正确赋初值,则以下选项中正确的赋值表达式是_。(分数:1.00)A.a=(b=c) +8;B.(a=b)=c=9;C.a=(b=c)=“A“;D.a+b=c+1;15.一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该二叉树中的总结点数为_。(分数:1.00)A.219B.229C.230D.23116.有以下程序: main() int a=2,4,6,8,10),y=0,x,*P; P=a1; for(x=1;x3;x+)y+=px; printf(“%d/n“

    8、,y); 程序运行后的输出结果是_。(分数:2.00)A.10B.11C.14D.1517.整型变量 x和 Y的值相等,且为非 0值,则以下选项中结果为 0的表达式是_。(分数:2.00)A.XYB.X|YC.XB.printf(“%c/in“,“a“-32);C.printf(“%d/n“,“A“);D.printf(“%c/n“,“B“-1);19.下列关系表达式中,结果为“假”的是_。(分数:1.00)A.(3+4)6B.(3!=4)2C.3=4|3D.(34)=120.若有定义语句: char s10=“1234567/0/0“; 则 strlen(s)的值是_。(分数:2.50)A.

    9、7B.8C.9D.1021.若有定义:int*p3;,则以下叙述中正确的是_。(分数:2.00)A.定义了一个基类型为 int的指针变量 p,该变量具有 3个指针B.定义了一个指针数组 p,该数组含有 3个元素,每个元素都是基类型为 int型的指针C.定义了一个名为*p 的整型数组,该数组含有 3个 int类型元素D.定义了一个可指向一维数组的指针变量 p,所指一维数组具有 3个 int类型元素22.若变量已正确定义为 float型,要通过输入语句:scanf(“%f%f%f“, 给 a赋值 11.0,b赋值 22.0,c 赋值 33.0,不正确的输入形式是_。(分数:1.00)A.11223

    10、3B.11.0,22.0,33.0C.11.022.0 33.0D.11223323.有以下定义和语句 struct workers int num;char name20;char c; struct int day;int month;int year; s; ; struct workers w,*pw; pw= 能给 w中 year成员赋值为 1980的语句是_。(分数:1.00)A.s.year=1980;B.year=1980;C.pw-year=1980;D.*pw.year=1980;24.若有定义语句: char s10=“1234567/0/0“; 则 strlen(s)的

    11、值是_。(分数:2.00)A.7B.8C.9D.1025.以下选项中,合法的实数是_。(分数:1.00)A.1.5E2B.E1.1C.2.10ED.1.9E1.426.有以下程序: #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,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,127.若有以下定义和语句: #include stdio.h char s110=“abcd!“, *s2

    12、=“/n123/“; printf(“%d %d/n“, strlen(s1), strlen(s2); 则输出结果是_。(分数:2.50)A.10 7B.10 5C.5 5D.5 828.C语言主要是借助_的手段来实现程序模块化。(分数:1.00)A.定义函数B.定义常量和外部变量C.使用丰富的数据类型D.使用三种基本结构语句29.下面选项中的程序段,没有编译错误的是_。(分数:2.00)A.char*sp, s10; sp=“Hello“;B.char*sp, s10; s=“Hello“;C.char str110=“computer“, str210; str2=str1;D.char

    13、 mark; mark=“PROGRAM“;30.以下不能对文件进行输出的库函数是_。(分数:1.00)A.fwiteB.fputeC.fpoutD.fprintf31.设有如下函数定义 #includestdio.h int fun(int k) if(k1)return 0; else if(k=1)return 1; else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数 fun总共被调用的次数是_。(分数:2.00)A.3B.2C.4D.532.以下程序执行后 x的值是 _ 。 #include stdio.h main() int x,y=252,

    14、i=386,*m= x=(z= =m); printf(“%d“,x); (分数:1.00)A.252B.1C.0D.运行时出错,x 无定值33.下列说法不正确的是 _ 。(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D.调用函数时,实参与形参的类型必须一致34.有以下程序 #include stdio.h void main() int n=2,k=1; while(!(k0|n+); printf(“%d %d/n“,k,n); 程序运行后的输出结果是_。(分数:2.50)A

    15、.0 2B.1 3C.5 7D.1 235.有两个关系 R、S 如下: (分数:1.00)A.选择B.投影C.插入D.连接36.有如下程序: #include stdio.h int change(int*data) return(*data)+; main() int data=123; change( printf(“%d,“,data); data = change( printf(“%d,“,data); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.124,124,B.123,124,C.124,123,D.123,123,37.以下程序的输出结果是 _

    16、 #includestdioh main() int i=0,a0; while(i20) for(;)if(i%10)=0)break;else i-; i+11;a+i; printf(“%d/n“,A) ; (分数:1.00)A.21B.32C.33D.1138.阅读以下程序: #include stdio.h main() int x; scanf(“% d“, if(x-5)printf(“% d“, x); else printf(“% d“, x+); 程序运行后,如果从键盘输入 5,则输出结果是_。(分数:1.00)A.3B.4C.5D.639.已知字母 A的 ASCII码为十

    17、进制的 65,下面程序 main() char ch1,ch2; ch1=“A“+“5“-“3“; ch2=“A“+“6“-“3“; printf(“%d,%c/n“,ch1,ch2); 的输出是_。(分数:1.00)A.67,DB.B,CC.C,DD.不确定的值40.有以下程序 #include stdio.h void fun(char *t,char *s) while(*t!=0) t+; while(*t+=*s+)!=0); main() char ss10=“acc“,aa10=“bbxxyy“; fun(ss,aa); printf(“%s,%s/n“,ss,aa); 程序的运

    18、行结果是_。(分数:1.00)A.accbbxxyy,bbxxyyB.acc,bbxxyyC.accxxyy,bbxxyyD.accxyy,bbxxyy二、程序填空题(总题数:1,分数:30.00)41.下列给定程序中,函数 fun的功能是:找出形参 s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。 例如,形参 s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: leffer“a“:3times leffer“s“:3times 请在程序的下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构

    19、! 试题程序: #includestdio.h #includestring.h #includectype.h void fun(char*s) int k26=0,n,i,max=0;char ch; while(*s) if(isalpha(*s) /*found*/ ch=tolower( 1); n=ch-“a“; /*found*/ kn+= 2; s+; /*found*/ if(maxkn)max= 3; printf(“/nAfter count:/n“); for(i=0;i26;i+) if(ki=max) printf(“/nletter“%c“:%d times/n“

    20、,i+“a“,ki); main() char s81; printf(“/nEnter a string:/n/n“); gets(s);fun(s); (分数:30.00)三、程序修改题(总题数:1,分数:30.00)42.下列给定程序中,函数 fun的功能是:找出一个大于给定整数 m且紧随 m的素数,并作为函数值返回。请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdlib.h #includeconio.h #includestdio.h int fun(int m) int i,k; f

    21、or(i=m+1;i+) for(k=2;ki;k+) /*found*/ if(i%k!=0) break; /*found*/ if(ki) return(i); void main() int n; system(“CLS“); printf(“/nPlease enter n:“); scanf(“%d“,n); printf(“%d/n“,fun(n); (分数:30.00)_四、程序设计题(总题数:1,分数:24.00)43.请编写函数 fun,其功能是分别统计形参 t所指二维数组中字母 A和 C的个数。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括

    22、号中填入所编写的若干语句。试题程序: #includestdio.h #includestdlib.h #define M 14 void NONO(); void fun(char(*t)M,int*a,int*c) void get(char(*s)M) int i,j; for(i=0;iM;i+) for(j=0;jM;j+) sij=65+rand()%12;printf(“%c“,sij); printf(“/n“); main() char aMM; int x,y; get(a); fun(a, printf(“A=%d C=%d/n“,x,y); NONO(); void N

    23、ONO() /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *fp,*wf; int i,j,x,y; char aMM; fp=fopen(“c:/test/in.dat“,“r“); wf=fopen(“c:/test/out.dat“,“w“); for(i=0;iM;i+) for(j=0;jM;j+) fscanf(fp,“%c“, fun(a, fprintf(wf,“A=%d/n“,x); fprintf(wf,“C=%d/n“,y); fclose(fp); fclose(wf); (分数:24.00)_二级 C语言模拟 646答案解析(总分:1

    24、44.50,做题时间:90 分钟)一、选择题(总题数:40,分数:60.50)1.有以下程序: #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找到两个字符串中的偶数位置的字符并

    25、组成一个数值输出,根据代码执行即可得到结果为 6385。2.以下叙述中正确的是_。(分数:2.00)A.break语句不能用于提前结束 for语句的本层循环B.使用 break语句可以使流程跳出 switch语句体 C.continue语句使得整个循环终止D.在 for语句中,continue 与 break的效果是一样的,可以互换解析:解析 break 跳出 switch语句或循环语句,contiune 结束本次循环,继续进行剩余的循环。所以答案选择 B。3.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:解析

    26、程序调试的任务是诊断和改正程序中的错误。4.有以下程序 #includestdio.h main() int x=8; for(;x0;x-) if(x%3) printf(“%d,“,x-); continue; printf(“%d,“,-x); 程序的运行结果是_。(分数:4.00)A.8,5,4,2, B.8,7,5,2,C.9,7,6,4,D.7,4,2,解析:解析 第一次 x为 8,输出 8,第二次 x为 6,输出 5,第三次 x为 4,输出 4,第四次 x为 2,输出 2,循环结束,所以答案选择 A。5.有以下程序: # include stdio.h struct STU ch

    27、ar name9; char sex; int score2; void f(struct STU a) struct STU b=“Zhao“,“m“,85,90; a1=b; main() struct STU c2=“Qian“,“f“,95,92,“Sun“,“m“,98,99; f(c); printf(“%s,%c,%d,%d,“,c0.name,c0.sex,c0.score0,c0.score1); printf(“%s,%c,%d,%d/n“,c1.name,c1.sex,c1.score0,c1.score1); 程序运行后的输出结果是_。(分数:1.00)A.2hao,m

    28、,85,90,Sun,m,98,99B.2hao,m,85,90,Qian,f,95,92C.Qian,f,95,92,Sun,m,98,99D.Qian,f,95,92,Zhao,m,85,90 解析:解析 f 函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选 D。6.下列字符串是标识符的是_。(分数:2.00)A.aa B.a-classC.intD.LINE 1解析:7.有以下程序 int f(int b 4) int i,j,s=0; for(j=0; j4; j+) i=j; if (i2) i=3-j; s+=bi j; return s; main (

    29、) int a4 4 =1,2,3,4, 0,2,4,6, 3,6,9,12), 3,2,1,0; print f ( “%d/n“ , f(a); 执行后的输出结果是(分数:1.00)A.12B.11C.18D.16 解析:解析 本题考核的知识点是二维数组的定义、赋初值和对;维数组元素的引用。分析程序可知,函数 f()中的 for循环作用,是将数组前三行中的对角线上的元素,即 b00、b11, b22和第一行的第四列元素即 b03累加到变量 s中,然后将 s的值返回。在主函数中首先定义了一个 4行 4列的二维数组,接着通过输出语句输出函数 f(a)的返回值。 调用 f(a)的返回值为 a00

    30、+a11+a22+a03=1+2+9+4=16。所以, 4 个选项中选项 D符合题意。8.关系数据模型 _(分数:1.00)A.只能表示实体间的 1:1联系B.只能表示实体间的 1:n联系C.只能表示实体间的 m:n联系D.可以表示实体间的上述 3种联系 解析:解析 数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。常用的数据模型有层次模型、网状模型和关系模型,层次模型不能表示多对多联系,网状模型和关系模型都能表示任意一种联系。9.构成 C程序的三种基本结构是(分数:2.00)A.顺序结构、转移结构、递归结构B.顺序结构、嵌套结构、递归结构C.顺序结构、选择结构、循环结构

    31、 D.选择结构、循环结构、嵌套结构解析:10.设计软件结构是在软件生命周期的 _ 。(分数:2.00)A.软件定义期B.软件开发期 C.软件维护期D.以上 3个都不是解析:解析 设计软件结构是在软件概要设计阶段进行的,而概要设计属于软件开发期。11.以下选项中,能用作用户标识符的是_。(分数:2.00)A._0_ B.8_8C.voidD.unsigned解析:解析 C 语言中的标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B 选项中以数字 8开头,所以错误。C 选项与 D选项中用的是关键字 void与unsigned,所以错误。12.以下叙述中正确的是

    32、_。(分数:2.00)A.用 C语言编写的程序只能放在一个程序文件中B.C程序书写格式严格,要求一行内只能写一个语句C.C程序中的注释只能出现在程序的开始位置和语句的后面D.C程序书写格式自由,一个语句可以写在多行上 解析:解析 C 语言编写的程序可以放置于多个程序文件中,所以 A选项错误。C 程序中的一行可以有多条语句,所以 B选项错误。C 语言中的注释语句可以与原语句放在一行,也可以不放在一行,所以 C选项错误。13.下列叙述中正确的是_。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三

    33、种说法都不对解析:解析 数据的存储结构、程序处理的数据量、程序的算法等都会影响程序执行效率。14.若已有定义语句:int a,b,c;,且变量已正确赋初值,则以下选项中正确的赋值表达式是_。(分数:1.00)A.a=(b=c) +8; B.(a=b)=c=9;C.a=(b=c)=“A“;D.a+b=c+1;解析:解析 赋值运算符左边必须是一个变量,B、D 选项错误;C 选项中,(b=c)是个表达式,语法错误,故排除 C选项,故答案为 A选项。15.一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该二叉树中的总结点数为_。(分数:1.00)A.219B.229 C.230D.231解

    34、析:解析 二叉树中,度为 0的结点数等于度为 2的结点数加 1,即 n2=n0-1,叶子结点即度为 0,则n2=79,总结点数为 n0+n1+n2=80+70+79=229,答案为 B选项。16.有以下程序: main() int a=2,4,6,8,10),y=0,x,*P; P=a1; for(x=1;x3;x+)y+=px; printf(“%d/n“,y); 程序运行后的输出结果是_。(分数:2.00)A.10B.11C.14 D.15解析:解析 指针变量 p指向数组元素 a1,则 p1即为 a2,p2即为 a3,执行第一次 for循环时,y=y+p1=0+a2=6,第二次执行 for

    35、循环,y=y+p2=6+a3=14,此时 x为 3,for循环条件不满足,退出循环,输出 y的值为 14。17.整型变量 x和 Y的值相等,且为非 0值,则以下选项中结果为 0的表达式是_。(分数:2.00)A.XYB.X|YC.XB.printf(“%c/in“,“a“-32);C.printf(“%d/n“,“A“); D.printf(“%c/n“,“B“-1);解析:解析 %d 输出整数,所以选择 C。19.下列关系表达式中,结果为“假”的是_。(分数:1.00)A.(3+4)6B.(3!=4)2 C.3=4|3D.(34)=1解析:解析 在一个表达式中,括号的优先级高,先计算 3!=

    36、4,为真即是 1,12 为假。20.若有定义语句: char s10=“1234567/0/0“; 则 strlen(s)的值是_。(分数:2.50)A.7 B.8C.9D.10解析:解析 strlen()函数的功能是计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中,从第_一个字符开始,遇到第一个结束标识“/0“为止,注意/0“不占字符串长度,所以字符串长度为 7。因此 A选项正确。21.若有定义:int*p3;,则以下叙述中正确的是_。(分数:2.00)A.定义了一个基类型为 int的指针变量 p,该变量具有 3个指针B.定义了一个指针数组 p,该数组含有 3个元素,每个元素

    37、都是基类型为 int型的指针 C.定义了一个名为*p 的整型数组,该数组含有 3个 int类型元素D.定义了一个可指向一维数组的指针变量 p,所指一维数组具有 3个 int类型元素解析:22.若变量已正确定义为 float型,要通过输入语句:scanf(“%f%f%f“, 给 a赋值 11.0,b赋值 22.0,c 赋值 33.0,不正确的输入形式是_。(分数:1.00)A.112233B.11.0,22.0,33.0 C.11.022.0 33.0D.112233解析:解析 B 中不应该加“,”号。23.有以下定义和语句 struct workers int num;char name20;

    38、char c; struct int day;int month;int year; s; ; struct workers w,*pw; pw= 能给 w中 year成员赋值为 1980的语句是_。(分数:1.00)A.s.year=1980; B.year=1980;C.pw-year=1980;D.*pw.year=1980;解析:解析 嵌套的结构体定义,要访问内层的成员,需要一层层用“.”访问,所以答案选择 A。24.若有定义语句: char s10=“1234567/0/0“; 则 strlen(s)的值是_。(分数:2.00)A.7 B.8C.9D.10解析:解析 本题考查的是字符

    39、串的长度。字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即/0 之前的字符数。字符数组 s中依次存放的字符是:1234567 和 2个字符串结束标记/0,故字符串的长度是 7,所以应该选择 A。25.以下选项中,合法的实数是_。(分数:1.00)A.1.5E2 B.E1.1C.2.10ED.1.9E1.4解析:解析 用尾数指数形式表示浮点数时,E 的右侧必须是整数且不能为空。26.有以下程序: #includestdio.h main() int m=1, n=2, *p= r=p; p=q; q=r; printf(“%d, %d

    40、, %d, %d/n“, m, n, *p, *q); 程序运行后的输出结果是_。(分数:1.00)A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1 解析:解析 int m=1, n=2, *p= printf(“%d %d/n“, strlen(s1), strlen(s2); 则输出结果是_。(分数:2.50)A.10 7B.10 5C.5 5 D.5 8解析:解析 strlen 函数的功能是返回字符串的长度,求字符串长度时,遇到结束标识“/0”为止,但是长度不包括结束标识。字符数组 s的后 5个元素没有赋值,都为“/0”,即“abcd!”后为“/0”。所以 str

    41、len(s1)的值为 5。字符指针 s2所指向的字符串中,“/n”为转义字符换行符,表示 1个字符;“/”也为转义字符,代表“/”,也是 1个字符,其后为字符串结柬标识“/0”;所以 strlen(s2)的值也为 5。因此 C选项正确。28.C语言主要是借助_的手段来实现程序模块化。(分数:1.00)A.定义函数 B.定义常量和外部变量C.使用丰富的数据类型D.使用三种基本结构语句解析:解析 C 语言程序的模块化通过函数来体现,所以选择 A选项。29.下面选项中的程序段,没有编译错误的是_。(分数:2.00)A.char*sp, s10; sp=“Hello“; B.char*sp, s10;

    42、 s=“Hello“;C.char str110=“computer“, str210; str2=str1;D.char mark; mark=“PROGRAM“;解析:解析 char 类型指针可以用字符串赋值,字符数组在定义时可以,其他地方不能直接用字符串赋值。30.以下不能对文件进行输出的库函数是_。(分数:1.00)A.fwiteB.fputeC.fpout D.fprintf解析:解析 fputs 函数的功能是用来向指定文件输出一个字符串。fwrite 函数的功能是用来向文件写数据块。fprintf 函数按照格式向文本文件中输出数据。这三者都是库函数,而 fpout不是库函数,故选择

    43、 C选项。31.设有如下函数定义 #includestdio.h int fun(int k) if(k1)return 0; else if(k=1)return 1; else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数 fun总共被调用的次数是_。(分数:2.00)A.3 B.2C.4D.5解析:解析 首先 n=fun(3),3 被当作参数传递进去,进行了第一次调用,3 被当作参数传进去后,程序会执行语句 else return fun(k-1)+1,进行了第二次调用,而参数是 3-1也就是 2。2 被当作参数传进去后,程序会执行语句 else re

    44、turn fun(k-1)+1,进行了第三次调用,而参数是 2-1也就是 1。1 被当作参数传进去后,程序会执行语句 else if(k=1) return 1;不再递归调用,因此最终结果为 3次,选项A正确。32.以下程序执行后 x的值是 _ 。 #include stdio.h main() int x,y=252,i=386,*m= x=(z= =m); printf(“%d“,x); (分数:1.00)A.252B.1C.0 D.运行时出错,x 无定值解析:解析 指针变量 m和 z分别指向整型变量 y,i,所以这两个指针变量中存储的地址是不同的,变量 x接受的是一个关系运算结果 0(因

    45、为 m和 z两个地址是不同的),所以 x为 0。33.下列说法不正确的是 _ 。(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元 C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D.调用函数时,实参与形参的类型必须一致解析:解析 本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致:形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。34.有以下程序 #include stdio.h void main() int n=2,k=1; while(!(k0|n+); printf(“%d %d/n“,k,n); 程序运行后的输出结果是_。(分数:2.50)A.0 2B.1 3C.5 7D.1 2 解析:解析 在程序中整型变量 n的初始值等于 2,整型变量 k的初始值等于 1,在执行 while语句时,由于表达式 k的值大于 0为真,所以不再需要判断“n+”


    注意事项

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




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

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

    收起
    展开