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

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

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

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

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

    1、二级 C 语言-5-1 及答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:45.00)1.有下列程序:main() int x=5;doprintf(“%d“,x-=4);while(!(-x);程序的输出结果是( )。 A. 1 B. 20 C. 1 4 D. 死循环(分数:1.00)A.B.C.D.2.设有如下关系表:(分数:1.00)A.B.C.D.3.有以下程序:#include stdio.hmain() char a=a, b; printf(“%c,“, +a); printf(1%c/n“, b=a+); 程序运行后的输出结果是( )。

    2、A. b,b B. b,c C. a,b D. a,c(分数:1.00)A.B.C.D.4.以下程序的输出结果是#include stdio.hmain()char ch25=“6937“, “8254“, *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=10*s+pij-0; A. 69825 B. 63825 C. 6385 D. 693825(分数:1.00)A.B.C.D.5.有以下程序;main() int y3,x3,z=1;printf(“%d %d/n“,(+x,y+)

    3、,z+2);执行后的输出结果是 U /U A. 3 4 B. 4 2 C. 4 3 D. 3 3(分数:1.00)A.B.C.D.6.在 C 语言中,变量的隐含存储类别是 A. auto B. static C. extem D. 无存储类别(分数:2.00)A.B.C.D.7.以下选项中,非法的字符常量是_。 A. t/ B. /17 C. “/n“ D. /xaa(分数:2.00)A.B.C.D.8.设有以下语句:char str1 =“string“mstr2 8,*str3,*str4=“string“;则 _不是对库函数的正确调用。 A. strcpy(str1,“HELLO1“);

    4、 B. strcpy(str2,“HELLO2“); C. strcpy(str3,“HELLO3“); D. strcpy(str 4,“HELLO4“);(分数:2.00)A.B.C.D.9.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是U /U。 A. char s10=“abcdefg“; B. char t=“abcdefg“,*s=t; C. char s10;s=“abcdefg“; D. char s10;strcpy(s,“abcdefg“);(分数:2.00)A.B.C.D.10.函数调用 strcat(strcpy(str1,str2),str3)的功能是U

    5、/U。 A. 将字符串 str1 复制到字符串 str2 中后再连接到字符串 str3 之后 B. 将字符串 str1 连接到字符串 str2 之后再复制到字符串 str3 之后 C. 将字符串 str2 复制到字符串 sir1 中后再将字符串 str3 连接到字符串 str1 之后 D. 将字符串 str2 连接到字符串 str1 之后再将字符串 str1 复制到字符串 str3 中(分数:2.00)A.B.C.D.11.以下程序执行后 x 的值是U /U。#include stdio.hmain() int x,y=252,i=386,*m=x=(z= =m);printf(“%d“,x)

    6、; A. 252 B. 1 C. 0 D. 运行时出错,x 无定值(分数:1.00)A.B.C.D.12.sizeof(float)是U /U。 A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式(分数:1.00)A.B.C.D.13.下面程序的输出结果是( )。main()struct m1int a;int b;en2=1,3,2,7);printf(“%d/n“,en0.b/en0.a*en1.a); A. 6 B. 0 C. 1 D. 3(分数:1.00)A.B.C.D.14.有以下程序:#include stdio.hstruct ord i

    7、nt x,y; dt2=11,12,13,14;main()struct ord *p=dt;printf(“%d,“,+(p-x);printf(“%d/n“,+(p-y);程序运行后的输出结果是 A. 11,12 B. 12,13 C. 13,14 D. 14,11(分数:1.00)A.B.C.D.15.有以下程序:#includestdio.h#define f(x)x*x*xmain()int a =3,s,t;s=f(a+1);t=f(a+1);printf(“%d,%d/n“,s,t);程序运行后的输出结果是_。 A.10,64 B.10,10 C.64,10 D.64,64(分数

    8、:1.00)A.B.C.D.16.下列关于二叉树的叙述中,正确的是U /U。 A.叶子结点总是比度为 2 的结点少一个 B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍 D.度为 2 的结点数是度为 1 的结点数的两倍(分数:2.00)A.B.C.D.17.设有以下说明语句:typedef struct int n;char ch8; PER;则下面叙述中正确的是 A. PER 是结构体变量名 B. PER 是结构体类型名 C. typedef struct 是结构体类型 D. struct 是结构体类型名(分数:1.00)A.B.C.D.18.有以下程序in

    9、t b=2;int func(int*A) b+*a;return(B) ; main() int a2,res2;res+=rune( B. flo at a=b=10.0; C. int a=10,*b= D. float *a,b=(分数:1.00)A.B.C.D.22.以下程序的输出结果是_。main () int x=5,n=3,s,j;for(j=0;j2;j+) s=fun(x,n);printf(“%d“,s);fun(int a,int b) static int n=0,i=2;i=n+1;n=i+a-b;return(n); A. 3 7 B. 3 5 C. 3 6 D.

    10、 3 3(分数:1.00)A.B.C.D.23.以下叙述中正确的是 _。 A.用 C 程序实现的算法必须要有输入和输出操作 B.用 C 程序实现的算法可以没有输出但必须要输入 C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出 (分数:1.00)A.B.C.D.24.设 a、b、c、d、mn 均为血型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)(n=cd)运算后,n 的值为_。 A. 0 B. 1 C. 2 D. 3(分数:2.00)A.B.C.D.25.若 a 为 int 类型,且其值为 3,则执行完

    11、表达式 a+=a-=a*a 后,a 的值是 _ 。 A. -3 B. 9 C. -12 D. 6 (分数:1.00)A.B.C.D.26.有三个关系 R、S 和 T 如下:RABCa12b21c31SABCa12b21TABCc31则由关系 R 和 S 得到关系 T 的操作是_。 A.自然连接 B.差 C.交 D.并(分数:1.00)A.B.C.D.27.设有如下的程序段:char str=“Hello“;char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为U /U。 A. o B. /0 C. 不确定的值 D. o的地址(分数:1.00)A.B.C.D.28.有以

    12、下程序:#includestdio.hint fun(int x, int n) static int sum=0, i; for(i=0; in; i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是( )。 A. 45 B. 50 C. 60 D. 55(分数:1.00)A.B.C.D.29.下列能正确定义且赋初值的语句是U /U。 A. int n1=n2=10; B. char c=32;

    13、C. float f=f+1.1; D. double x=12.3E2.5;(分数:2.00)A.B.C.D.30.有以下函数定义:void fun(int n, double x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是U /U。 A. fun(int y,double m); B. k=fun(10,12.5); C. fun(x,n); D. void fun(n,x);(分数:1.00)A.B.C.D.31.以下程序的运行结果是#include“stdio.h“main() struct date int year,month,day;today;p

    14、rintf(“%d/n“,sizeof(struct date); A. 6 B. 8 C. 10 D. 12(分数:1.00)A.B.C.D.32.下列叙述中正确的是( )。 A. 线性链表中的各元素在存储空间中的位置必须是连续的 B. 线性链表中的表头元素一定存储在其他元素的前面 C. 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 D. 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:1.00)A.B.C.D.33.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是( )。 A. (c=2)(c=4

    15、)(c=6) B. (c=2if(ij)t=ai;ai=aj;aj=t;i+; j-;fun(a,i,j);main() int x=2,6,1,8,i;fun(x,0,3);for(i=0;i4;i+) printf(“%2d“,xi);printf(“/n“);程序运行后的输出结果是 A. 1 2 6 8 B. 8 6 2 1 C. 8 1 6 2 D. 8 6 1 2(分数:1.00)A.B.C.D.35.当执行下面的程序时,如果输入 ABC,则输出结果是_。#include “stdio.h“#include “string.h“main() char ss10=“12345“;get

    16、s(ss);strcat(ss,“6789“);printf(“%s/n“,ss); A. ABC6789 B. ABC67 C. 12345ABC6 D. ABC456789(分数:1.00)A.B.C.D.二、B填空题/B(总题数:15,分数:34.00)36.有序线性表能进行二分查找的前提是该线性表必须是 1 存储的。(分数:2.00)填空项 1:_37.以下程序的输出结果是_。 int fun(int *x,int n) if(n=0) return x0; else return x0+fun(x+1,n-1); main() int a=1,2,3,4,5,6,7; printf(

    17、“%d/n“,fun(a,3);(分数:2.00)填空项 1:_38.以下程序的运行结果是_。 int x; main() int a=5,b=8; swap(a,b) ; printf(“a=%d,b=%d,x=%d/n“,a,b,x); swap(int a,int b) int temp; temp=a;a=b; b=temp;x=a/b; printf(“x=%d/n“,x); (分数:1.00)填空项 1:_39.以下程序中,for 循环体执行的次数是_。 # define N 2 # define M N+1 # define K M+1*M/2 main() int i; for

    18、(i=1; iK; i+) . . (分数:2.00)填空项 1:_40.下列程序段中循环体的执行次数是_。 a=15; b=0; dob+=2;a-=2+b;while(a=0);(分数:2.00)填空项 1:_41.以下程序运行后输出结果是U U /U /U。 #include stdio, h main( ) int a,b,c; a=10; b:20; c=(a%b1) (a/b1); printf(“%d %d %d/n“,a,b,c); (分数:2.00)填空项 1:_42.以下程序运行后的输出结果是_。 #include stdio.h main() int i,m=0,n=0,

    19、k=0; for(i=9;i=11;i+) switch(i/10) case 0: m+;n+;break; case 10: n+;break; default: k+;n+; printf(“%d%d%d/n“,m,n,k); (分数:2.00)填空项 1:_43.以下程序的输出结果是U U /U /U。 main() int x=0; sub( int,num=O,word=O; for(i=0;stri!=U U /U /U;i+) if(U U /U /U“)wprd=0 else if(wordO) word=1: U U /U /U; return(num); (分数:6.00

    20、)填空项 1:_50.下列程序的运行结果是_。 #define POW(r)(r)*(r) main() int x=3,y=2,t; t=POW(x+y); printf(“%d/n“,t); (分数:2.00)填空项 1:_二级 C 语言-5-1 答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:45.00)1.有下列程序:main() int x=5;doprintf(“%d“,x-=4);while(!(-x);程序的输出结果是( )。 A. 1 B. 20 C. 1 4 D. 死循环(分数:1.00)A.B.C. D.解析:解析 本题考查 dow

    21、hile 循环。执行 printf 语句,x=x-4 1,输出 1,判断 while 循环的控制条件,-x=0,则(!(-x)非零,循环条件成立,执行下一次循环;执行 printf 语句,x=x-4=-4,输出-4,判断 while 循环的控制条件,-x=-5,则(!(-x)为零,循环条件不成立,结束循环。2.设有如下关系表:(分数:1.00)A.B. C.D.解析:解析 选项 A、B、C 分别进行交运算、并运算,笛卡尔积运算,选项 D 不是关系运算。T 由属于关系 R 以及关系 S 的元组组成,简单来说,就是 s 和 R 的元组之和,是并运算,选项 B 正确。3.有以下程序:#include

    22、 stdio.hmain() char a=a, b; printf(“%c,“, +a); printf(1%c/n“, b=a+); 程序运行后的输出结果是( )。 A. b,b B. b,c C. a,b D. a,c(分数:1.00)A. B.C.D.解析:解析 本题考核的知识点是运算符+的用法。程序中的第一个输出语句输出表达式+a 的值,该+a 是在使用 a 之前,先使 a 的值加 1,即 a 加 1 为字符 b,此时 a 的值为 b,所以第一个输出语句输出的值为 b,第二个输出语句中输出的 b 的值,这时 b 的值为表达式 a+的值,a+是在使用 a 之后(此时 a 的值为 b,所

    23、以赋给 b 的值为 b),使 a 的值加一,因此第二个输出的值也为 b。所以,4 个选项中选项 A)符合题意。4.以下程序的输出结果是#include stdio.hmain()char ch25=“6937“, “8254“, *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=10*s+pij-0; A. 69825 B. 63825 C. 6385 D. 693825(分数:1.00)A.B.C. D.解析:解析 本题考查通过指针引用字符串数组中的元素。通过行指针 p 来实现数组元素

    24、的引用。用格式说明符%s 进行整串输入与输出。 本题中,每行字符指针跳跃式右移动,隔 2 个移动一次,s 存放处理的累计和。 第一行中: p0指针第一遍 6-0=6 s=0+6=6 p0指针第二遍 3-0=3 s=10*6+3=63 指针行下标变化,转向第二行 第二行中: p1指针第一遍 8-0=8 s=10*63+8=638 p2指针第二遍 5-0=5 s=10*638+5=6385 得出结果 s=6385。5.有以下程序;main() int y3,x3,z=1;printf(“%d %d/n“,(+x,y+),z+2);执行后的输出结果是 U /U A. 3 4 B. 4 2 C. 4

    25、3 D. 3 3(分数:1.00)A.B.C.D. 解析:6.在 C 语言中,变量的隐含存储类别是 A. auto B. static C. extem D. 无存储类别(分数:2.00)A. B.C.D.解析:解析 auto 变量:无 static 声明的局部变量。用 auto 作存储类别的声明时,可以不写 auto,存储类别隐含确定为 auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用 static 声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用 extern 声明外部变量,外部变量即全

    26、局变量,可以用 extern 声明来改变全局变量的作用域,实际上,关键字“auto”可以省略,auto 不写则隐含确定为“自动存储类别”,属于动态存储方式。7.以下选项中,非法的字符常量是_。 A. t/ B. /17 C. “/n“ D. /xaa(分数:2.00)A.B.C. D.解析:解析 C 语言中字符常量是以单引号括起来的单个字符,或以“/”与三位八进制数值或两位十六进制数值代替单个字符。8.设有以下语句:char str1 =“string“mstr2 8,*str3,*str4=“string“;则 _不是对库函数的正确调用。 A. strcpy(str1,“HELLO1“);

    27、B. strcpy(str2,“HELLO2“); C. strcpy(str3,“HELLO3“); D. strcpy(str 4,“HELLO4“);(分数:2.00)A.B.C. D.解析:解析 C 语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C 中的目的串指针 str3 没有指向具体有效的存储单元,故是错误的调用。9.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是U /U。 A. char s10=“abcdefg“; B. char t=“abcdefg“,*s=t; C. char s10;s=“abcdefg“; D. char

    28、 s10;strcpy(s,“abcdefg“);(分数:2.00)A.B.C. D.解析:解析 C 语言中不能给数组整体赋初值,所以选项 C 是不正确的。10.函数调用 strcat(strcpy(str1,str2),str3)的功能是U /U。 A. 将字符串 str1 复制到字符串 str2 中后再连接到字符串 str3 之后 B. 将字符串 str1 连接到字符串 str2 之后再复制到字符串 str3 之后 C. 将字符串 str2 复制到字符串 sir1 中后再将字符串 str3 连接到字符串 str1 之后 D. 将字符串 str2 连接到字符串 str1 之后再将字符串 st

    29、r1 复制到字符串 str3 中(分数:2.00)A.B.C. D.解析:解析 strcat(s1,s2)是把 s2 字符串连接到 s1 字符串末尾,strcpy(s1,s2)是把 s2 字符串复制给s1 字符串,要保证 s1 能容纳下连接或复制后的字符串。11.以下程序执行后 x 的值是U /U。#include stdio.hmain() int x,y=252,i=386,*m=x=(z= =m);printf(“%d“,x); A. 252 B. 1 C. 0 D. 运行时出错,x 无定值(分数:1.00)A.B.C. D.解析:解析 指针变量 m 和 z 分别指向整型变量 y,i,所

    30、以这两个指针变量中存储的地址是不同的,变量 x 接受的是一个关系运算结果 0(因为 m 和 z 两个地址是不同的),所以 x 为 0。12.sizeof(float)是U /U。 A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式(分数:1.00)A.B. C.D.解析:解析 sizeof 是长度运算符,或称字节数运算符,用于计算数据类型和变量的长度。13.下面程序的输出结果是( )。main()struct m1int a;int b;en2=1,3,2,7);printf(“%d/n“,en0.b/en0.a*en1.a); A. 6 B. 0 C

    31、. 1 D. 3(分数:1.00)A. B.C.D.解析:解析 en2是结构体类型的数组,en0.b/en0.a*en1.a=3/1*2=6。14.有以下程序:#include stdio.hstruct ord int x,y; dt2=11,12,13,14;main()struct ord *p=dt;printf(“%d,“,+(p-x);printf(“%d/n“,+(p-y);程序运行后的输出结果是 A. 11,12 B. 12,13 C. 13,14 D. 14,11(分数:1.00)A.B. C.D.解析:解析 本题中定义了一个结构体数组 dt2,其中 dt0.x=11,dt0

    32、.y=12,dt1.x=13,dt1.y=14。在 main 函数中指针 p 指向了结构体数组的第一个元素,因此 p-x 值为 11,p-y 值为 12,自加运算的结果分别为 12 和 13。15.有以下程序:#includestdio.h#define f(x)x*x*xmain()int a =3,s,t;s=f(a+1);t=f(a+1);printf(“%d,%d/n“,s,t);程序运行后的输出结果是_。 A.10,64 B.10,10 C.64,10 D.64,64(分数:1.00)A. B.C.D.解析:解析 本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行 f(a

    33、+1)=a+1*a+1*a+1=3*a+1=10,f(a+1)=(a+1)*(a+1)*(a+1)=64,所以答案为 A 选项。16.下列关于二叉树的叙述中,正确的是U /U。 A.叶子结点总是比度为 2 的结点少一个 B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍 D.度为 2 的结点数是度为 1 的结点数的两倍(分数:2.00)A.B. C.D.解析:解析 由二叉树的性质可以知道在二叉树中叶子结点总是比度为 2 的结点多一个。17.设有以下说明语句:typedef struct int n;char ch8; PER;则下面叙述中正确的是 A. PER

    34、是结构体变量名 B. PER 是结构体类型名 C. typedef struct 是结构体类型 D. struct 是结构体类型名(分数:1.00)A.B. C.D.解析:解析 本题中,typedef 声明新的类型名 PER 来代替已有的类型名,PER 代表上面指定的一个结构体类型,此时,也可以用 PER 来定义变量。18.有以下程序int b=2;int func(int*A) b+*a;return(B) ; main() int a2,res2;res+=rune( B. flo at a=b=10.0; C. int a=10,*b= D. float *a,b=(分数:1.00)A.

    35、B.C. D.解析:解析 在 A 选项中,定义了两个 char 型的变量,但是在这两个变量之间应该加上逗号;在 B 选项中,没有对 b 进行定义,只是对 b 进行了赋值,因此是错误的;在 D 选项中,把一个指针赋值给了一个float 型的变量,因此是错误的。22.以下程序的输出结果是_。main () int x=5,n=3,s,j;for(j=0;j2;j+) s=fun(x,n);printf(“%d“,s);fun(int a,int b) static int n=0,i=2;i=n+1;n=i+a-b;return(n); A. 3 7 B. 3 5 C. 3 6 D. 3 3(分数

    36、:1.00)A.B.C. D.解析:23.以下叙述中正确的是 _。 A.用 C 程序实现的算法必须要有输入和输出操作 B.用 C 程序实现的算法可以没有输出但必须要输入 C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出 (分数:1.00)A.B.C. D.解析:解析 算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。24.设 a、b、c、d、mn 均为血型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(

    37、m=ab)(n=cd)运算后,n 的值为_。 A. 0 B. 1 C. 2 D. 3(分数:2.00)A. B.C.D.解析:解析 C 语言中比较表达式的运算结果为 0 或 1。0 代表不成立,1 表示成立。25.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是 _ 。 A. -3 B. 9 C. -12 D. 6 (分数:1.00)A.B.C. D.解析:解析 C 语言中对赋值运算的运算的运算顺序是自右向左。本题中,计算 a*a 之后,a 的值依然为3,表达式 a*a 的值为 9;a-=9, a=3-9=-6:a+=-6,a=-6+-6=-12。26

    38、.有三个关系 R、S 和 T 如下:RA B Ca 1 2b 2 1c 3 1SA B Ca 1 2b 2 1TA B Cc 3 1则由关系 R 和 S 得到关系 T 的操作是_。 A.自然连接 B.差 C.交 D.并(分数:1.00)A.B. C.D.解析:解析 关系 T 中的元组是 R 关系中有而 S 关系中没有的元组的集合,所以进行的是差运算。27.设有如下的程序段:char str=“Hello“;char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为U /U。 A. o B. /0 C. 不确定的值 D. o的地址(分数:1.00)A.B. C.D.解析:解

    39、析 本题考杏字符数组的结束标志。ptr=str 是将串 str 的首地址赋给了指针变量 ptr,所以ptr+5 指向字符串 str 的第六个数组元素,即是串的隐含结束标志/0,*(ptr+5)=/0,最后的结果为/0。28.有以下程序:#includestdio.hint fun(int x, int n) static int sum=0, i; for(i=0; in; i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s

    40、); 程序执行后的输出结果是( )。 A. 45 B. 50 C. 60 D. 55(分数:1.00)A.B.C. D.解析:解析 函数 fun 的功能是求数组的 n 个元素之和。fun(a, 5)=15。由于 sum 是静态局部变量,所以保持 15 不变,fun(b, 4)=45,所以 s=fun(a, 5)+fun(b, 4)=60。29.下列能正确定义且赋初值的语句是U /U。 A. int n1=n2=10; B. char c=32; C. float f=f+1.1; D. double x=12.3E2.5;(分数:2.00)A.B. C.D.解析:解析 C 语言规定,可以在定义

    41、变量的同时给变量赋初值,称为变量初始化。在选项 A)中在给 n1和 n2 进行赋初值,但变量 n2 没有定义;在选项 C)中定义变量 f 时,不能在赋值表达式的右边出现变量f 自身,所以选项 C)错误;在选项 D)用指数表达式的常量中,字母 E 后面的数应该为整数,而不应该为小数形式。因此,选项 B)正确。30.有以下函数定义:void fun(int n, double x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是U /U。 A. fun(int y,double m); B. k=fun(10,12.5); C. fun(x,n); D. void fun

    42、(n,x);(分数:1.00)A.B.C. D.解析:解析 本题考查函数调用。函数调用时,实参前不需加类型说明,选项 A)错误;题目中的函数没有返回值,所以选项 B)错误;函数调用前不需要加类型说明,选项 D)错误。31.以下程序的运行结果是#include“stdio.h“main() struct date int year,month,day;today;printf(“%d/n“,sizeof(struct date); A. 6 B. 8 C. 10 D. 12(分数:1.00)A. B.C.D.解析:解析 在解答本题时应该考虑两个问题:结构体变量的长度及 sizeof()求字节数的

    43、运算符。结构体变量的长度是其内部成员总长度之和,本题中, struct date 中包含 year,month,day 三个整型变量。一个整型变量所占的字节数为 2。32.下列叙述中正确的是( )。 A. 线性链表中的各元素在存储空间中的位置必须是连续的 B. 线性链表中的表头元素一定存储在其他元素的前面 C. 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 D. 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:1.00)A.B.C.D. 解析:解析 在线性表的链式存储结构中,各数据结点的存储位置不连续,且各结点在

    44、存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后关系是由各结点的指针域来指示的。所以,选项 D 正确。33.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是( )。 A. (c=2)(c=4)(c=6) B. (c=2if(ij)t=ai;ai=aj;aj=t;i+; j-;fun(a,i,j);main() int x=2,6,1,8,i;fun(x,0,3);for(i=0;i4;i+) printf(“%2d“,xi);printf(“/n“);程序运行后的输出结果是 A. 1 2 6 8 B. 8 6 2 1 C. 8 1 6 2 D. 8 6 1 2(分数:1.00)A.B.C. D.解析:解析 函数 fun()中用了一个 if 语句,当数组下标 i 小于数组下标 j 时,交换数组元素 ai和aj的值,并使 i 值加 1,j 值减 1。其功能就是把数组 a 中从下标 i 到 j 的元素首尾互换。主函数中定义一个数组,在定义该数组的时候缺省了定义长度,定义的同时将其初始化赋值,所以该数组的长度为初始化该数组时的元素的


    注意事项

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




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

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

    收起
    展开