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

    【计算机类职业资格】二级C语言笔试24及答案解析.doc

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

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

    【计算机类职业资格】二级C语言笔试24及答案解析.doc

    1、二级 C 语言笔试 24 及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.下列程序执行后的输出结果是_。 main() int m3=1,4,7,2,5,8,3,6,9; int i,k=2; for(i=0;i3;i+) printf(“%d“,mki); (分数:1.00)A.456B.258C.369D.7892.设已定义 i 和 k 为 int 类型变量,则以下 for 循环语句_。 for(i=0;k=-1,k=1,i+,k+) printf(“*/n“);(分数:1.00)A.判断循环结束的条件不合法B.是无限循环C.循环次

    2、也不执行D.循环只执行一次3.对于 n 个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:1.00)A.n-1B.nC.n+1D.2n4.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:1.00)A.分析结果B.事件C.动作D.数据5.C 语言函数返回值的类型是由_决定的。(分数:1.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时D.定义函数时所指定的函数类型6.请读程序: #includestdio.h #includestring.h main() char *s1=“AbCdEf“,*s2=“aB“; s1+;s2+; pr

    3、intf(“%d/n“,strcmp(s1,s2); 上面程序的输出结果是_。(分数:1.00)A.正数B.负数C.零D.不确定的值7.下列程序的执行结果是_。 #includestdio.h union int i; char c2; ; void main() union un x; x.c0=10; x.c1=1; printf(“/n%d“,x.i); (分数:1.00)A.266B.11C.265D.1388.下面是对宏定义的描述,不正确的是_。(分数:1.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运

    4、算求值D.宏替换只不过是字符替代而已9.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。(分数:1.00)A.希尔排序B.冒泡排序C.插入排序D.选择排序10.已知下面的程序段,正确的判断是_。 #define A 3 #define B(A) (A+1)*a) int a=3; X=3*(A+B(7);(分数:1.00)A.程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数11.下列程序的输出结果是_。 main() int i; for(i=1;i+1;i+) if(i4)printf(“%d“,i+);break; print

    5、f(“%d“,i+); (分数:1.00)A.55B.56C.程序错误,没有输出D.循环条件永远为真,死循环12.下列程序的输出结果是_。 main() int i=3; switch(i) case 1: case 2:printf(“%d“,i); case 3: case 4:break; default:printh(“OK“; (分数:1.00)A.0B.3C.OKD.没有任何输出13.设有以下语句: char str 1=“string“,str28,*str3,*str4=“string“; 则_不是对库函数的正确调用。(分数:1.00)A.strcpy(str 1,“HELLO

    6、1“);B.strcpy(str2,“HELLO2“);C.strcpy(str3,“HELLO3“);D.strcpy(str4,“HELLO4“);14.下面程序的输出结果是_。 #includestdio.h main() char *p=“BOOL“,“OPK“,“H“,“SP“;int i; for(i=3;i=0;i-,i-) printf(“%c“,*pi); printf(“/n“); (分数:1.00)A.SOB.SPC.SPOPKD.SHOB15.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。 struct link char data; _, node

    7、;(分数:1.00)A.dataB.next16.以下程序的输出结果是_。 #includestdio.h void prt(int *x,int *y,int *z) printf(“%d,%d,%d/n“,+*x,+y,*(z+); int a=10,b=40,c=20; main() prt( prt( (分数:1.00)A.11,42,31 12,22,41B.11,41,20 12,42,20C.11,21,40 11,21,41D.11,41,21 12,42,2217.下述函数功能是_。 int fun(char *x) char *y=x; while(*y+); retum

    8、y-x-1; (分数:1.00)A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x 连接到字符串 y 后面18.请读程序段: char str=“ABCD“,*p=str; printf(“%d/n“,*(p+4); 程序段的输出结果是_。(分数:1.00)A.68B.0C.字符D的地址D.不确定的值19.在软件开发过程中,软件结构设计是描述_。(分数:1.00)A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程20.以下程序的输出结果是_。 #includestdio.h #define SQR(x)x*x main() int a,k=3; a=

    9、+SQR(k+1); printf(“%d/n“,a); (分数:1.00)A.8B.9C.17D.2021.已知小写字母 a 的 ASCII 码为 97,大写字母 A 的 ASCII 码为 65,以下程序的结果是_。 main() unsigned int a=32,b=66; printf(“%c/n“,a|b); (分数:1.00)A.66B.98C.bD.B22.关系代数运算是以_为基础的运算。(分数:1.00)A.关系运算B.谓词运算C.集合运算D.代数运算23.main() float x=123.456; printf(“%-5.2f/n“,x); 以上程序输出的结果是_。(分数

    10、:1.00)A.123.4B.123.5C.123.45D.123.4624.以下程序(程序左边的数字为附加的行号)_。 1 #includestr.h 2 #includestdio.h 3 main() 4 char s=“string“; 5 puts(s); 6 strcpy(s,“hello“); 7 printf(“%3s/n“,s);(分数:1.00)A.没有错B.第 1 行有错C.第 6 行有错D.第 7 行有错25.模块本身的内聚是模块独立性的重要性度量因素之。在 7 类内聚中,具有最强内聚的类是 _。(分数:1.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚

    11、26.若进栈序列为 1,2,3,4,进栈过程中可以出栈,则下列不可能的个出栈序列是_。(分数:1.00)A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,127.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序D.编辑程序28.以下程序输出的结果为_。 main() char *alpha6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“); char *p; int i; p=alpha; for(i=0;i4;i+) printf(“%s“,pi); (分数:1.00)A.ABCDEFG

    12、HIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM29.若一个外部变量的定义形式为 static int x;,那么,其中 static 的作用应该是_。(分数:1.00)A.将变量存储在静态存储区B.使变量 x 可以由系统自动初始化C.使 x 只能在文本文件内引用D.使 x 的值可以永久保留30.已知字母 A 的 ASCII 码值是 65,字母 a 的 ASCII 码值是 97,以下程序_。 maini() char a=A; int b=20; printh(“%d,%o“,(a=a+a,a+b,b),a+a-A,b); (分数:1.00)A.表达式非法,输出零或不确定

    13、值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141D.输出结果为 20,141,2031.下面程序的输出是_。 char s=“ABCD“; main() char *p; for(p=s;ps+4;p+) printf(“%s/n“,p); (分数:1.00)A.ABCD BCD CD DB.A B C DC.D C B AD.ABCD ABC AB A32.数据的完整性是指数据的正确性、有效性和_。(分数:1.00)A.可维护性B.独立性C.安全性D.相容性33.下面程序的输出结果是_。 unsigned fun(unsigned num) unsigned k=1; d

    14、o k*=num%10; num/=10; while(num); return(k); main() unsigned n=26; printf(“%d/n“,fun(n); (分数:1.00)A.0B.4C.12D.无限次循环34.以下程序的输出结果是_。 main() char str12=s,t,r,i,n,g; printf(“%d/n“,strlen(str); (分数:1.00)A.6B.7C.11D.1235.下列程序的输出结果是_。 #define A 100 main() int i=0,sun=0; do if(i=(i/2)*2)continue; sum+i; whi

    15、le(+iA) ; printf(“%d/n“,sun); (分数:1.00)A.2500B.2050C.4D.036.下列程序执行后输出的结果是_。 int d=1; fun(int p) int d=5; d+=p+; printh(“%d,“,d); main() int a=3; fuin(a); d+=a+; printf(:%d/n“,d); (分数:1.00)A.8,12B.9,13C.8,4D.9,537._是构成 C 语言程序的基本单位。(分数:1.00)A.函数B.过程C.子程序D.子例程38.若有定义:int a410;,则以下选项中对数组元素 aij引用错误的是_。 (

    16、0=i4,0=j10)(分数:1.00)A.*( int y; v1;(分数:1.00)A.examplx=10B.example v2.x=10C.struct v2;v2.x=10D.struct example v2=10;40.下面语句的输出结果,是_。 printh(“%d/n“,strlen(“/t/“/065/xff/n“);(分数:1.00)A.14B.8C.5D.输出项不合法,无正常输出41.定义 int* swap()指的是_。(分数:1.00)A.个返回整型值的函数 swap()B.个返回指向整型值指针的函数 swap()C.个指向函数 swap()的指针,函数返回一个整

    17、型值D.以上说法均错42.C 语言库函数 fgets(str,n,fp)的功能是_。(分数:1.00)A.从 fp 指向的文件中读取长度 n 的字符串存入 str 指向的内存B.从 fp 指向的文件中读取长度不超过 n-1 的字符串存入 str 指向的内存C.从 fp 指向的文件中读取 n 个字符串存入 str 指向的内存D.从 str 读取至多 n 个字符到文件 fp43.以下程序段的输出结果是_。 main() char s110,s210,s310; scanf(“%s“,s1);gets(s2);gets(s3); puts(s1);puts(s2);puts(s3); 输入数据如下:

    18、(此处CR代表回车符) aaaCR bbbCR(分数:1.00)A.aaa bbbB.aaa bbbC.aaa/0bbb/0D.aaabbb44.若有如下说明,则_的叙述是正确的。 struct st int a; int b2; a;(分数:1.00)A.结构体变量 a 与结构体成员 a 同名,定义是非法的B.程序只在执行到该定义时才为结构体 st 分配存储单元C.程序运行时为结构体 st 分配 6 个字节存储单元D.类型名 struct st 可以通过 extern 关键字提前引用(即引用在前,说明在后)45.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分

    19、法查找关键码值 11,所需的关键码比较次数为_。(分数:1.00)A.2B.3C.4D.546.可以在 C 语言中用做用户标识符的是_。(分数:1.00)A.void define WORDB.as_b3 _123 IfC.for -abc casD.2c Do SIG47.下述程序向文件输出的结果是_。 #includestdio.h void main() FILE *fp=fopen(“TESY“,“wb“); fprintf(fp,“%d%5.0f%c%d“,58,76273.0,-,2278); fclose(fp); (分数:1.00)A.58 76273-2278B.587627

    20、3.000000-2278C.5876273-2278D.因文件为二进制文件而不可读48.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构49.若有以下类型说明语句: char w;int x;flooat y,z; 则表达式 w*x+z-y 的结果为_类型。(分数:1.00)A.floatB.charC.intD.double50.下列程序的输出结果,是_。 main() int a=0,b=0,c=0; if(+a0|+b0)+c; printf(“/na=%d,b=%d,c=%d“,

    21、a,b,c); (分数:1.00)A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1二、B填空题/B(总题数:17,分数:34.00)51.对于长度为 n 的顺序存储的线性表,当随机插入和删除个元素时,需平均移动元素的个数为U 【1】 /U。(分数:2.00)填空项 1:_52.注释说明了程序的功能,它分为U 【2】 /U注释和功能性注释。(分数:2.00)填空项 1:_53.软件测试中路径覆盖测试是整个测试的基础,它是对软件U 【3】 /U进行测试。(分数:2.00)填空项 1:_54.数据库技术的主要特点为数据的集成性、数据的高U 【4

    22、】 /U和低冗余性、数据独立性和数据统一管理与控制。(分数:2.00)填空项 1:_55.数据元素之间U 【5】 /U的整体称为逻辑结构。(分数:2.00)填空项 1:_56.若有定义 int m=5,y=2,则执行表达式 y+=y-=m*=y 后,y 的值为U 【6】 /U。(分数:2.00)填空项 1:_57.若 x 和 y 都是 buble 型变量,且 x 的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x)的值为U 【7】 /U。(分数:2.00)填空项 1:_58.没有 char a,b;,若要通过 a c=a+c+; return(c); main() in

    23、t a=2,i,k; for(i=0;i2;i+) k=f(a+); prinf(“%d/n“,k); (分数:2.00)填空项 1:_60.下面程序执行后输出的结果是U 【10】 /U。 int m=13; int fun(int x,int y) int m=3; return(x*y-m); main() int a=7,b=5; printf(“%d/n“,fun(a,b)/m); (分数:2.00)填空项 1:_61.下列程序执行后输出的结果是U 【11】 /U。 main() int arr10,i,k=0; for(i=0;i10;i+)arri=i; for(i=1;i4;i+

    24、) k+=arri+i; printf(“%d/n“,k); (分数:2.00)填空项 1:_62.下列程序执行后输出的结果是U 【12】 /U。 struct s int x,y;data2=10,100,20,200;main() struct s *p=data; printf(“%d/n“,+(p-x); (分数:2.00)填空项 1:_63.下面程序有两个 printf 语句,如果第一个 printf 语句输出的是 194,则第二个 printf 语句的输出结果是U 【13】 /U。 main() int a10=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf

    25、(“%x/n“,p); printf(“%/n“,p+9); (分数:2.00)填空项 1:_64.以下函数的功能是计算 s=1+1/21+1/3!+1/n!,请填空。 double fun(int n) double s=0.0,fac=1.0; int i,k=1; for(i=1;i=n;i+) U 【14】 /U; fac=fac/k; s=s+fac; (分数:2.00)填空项 1:_65.下面程序的运行结果是U 【15】 /U。 main() unsigned a=0112,x; x=a3; printf(“x=%o“,x); (分数:2.00)填空项 1:_66.函数 delet

    26、e(s,i,n)的作用是从字符串 s 中删除从第 i 个字符开始的 n 个字符,请填空。 void delete(char s,int i,int n) int j,k,length=0; whiles(length) U 【16】 /U; -i; j=i; if(U 【17】 /U) k=i+n; if(i+n=length) while(klength) sj+=sk+; sj=/0; (分数:2.00)填空项 1:_67.下述函数统计个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。 int word(char *s) int num=0,flag=0; while(*s)

    27、if(U 【18】 /U=) flag=0; else if(U 【19】 /U)flag=1;num+ return U【20】 /U;(分数:2.00)填空项 1:_二级 C 语言笔试 24 答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.下列程序执行后的输出结果是_。 main() int m3=1,4,7,2,5,8,3,6,9; int i,k=2; for(i=0;i3;i+) printf(“%d“,mki); (分数:1.00)A.456B.258C.369 D.789解析:评析 根据二维数组的定义得出:m00=1,m01

    28、=4,m02=7,m10=2,m11=5,m12=8,m20=3,m21=6, m22=9,所以本题的输出是第 3 行的值 m20,m21,m22,即369。2.设已定义 i 和 k 为 int 类型变量,则以下 for 循环语句_。 for(i=0;k=-1,k=1,i+,k+) printf(“*/n“);(分数:1.00)A.判断循环结束的条件不合法B.是无限循环 C.循环次也不执行D.循环只执行一次解析:评析 本题定义了一个 for 循环,循环变量是 i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。3.对于 n 个结点的单向链表(无表头结点),需要指针单

    29、元的个数至少为_。(分数:1.00)A.n-1B.nC.n+1 D.2n解析:评析 在 n 个结点的单向链表(无表头结点)中,每个结点都有个指针单元(即指针域),加上头指针,至少需要 n+1 个指针单元。4.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:1.00)A.分析结果B.事件C.动作D.数据 解析:评析 数据流图有 4 种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。5.C 语言函数返回值的类型是由_决定的。(分数:1.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时D.定义函数时所指定的

    30、函数类型 解析:评析 函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和return 语句中的表达式类型致,如果不致,则以函数类型为准,即函数类型决定返回值的类型。6.请读程序: #includestdio.h #includestring.h main() char *s1=“AbCdEf“,*s2=“aB“; s1+;s2+; printf(“%d/n“,strcmp(s1,s2); 上面程序的输出结果是_。(分数:1.00)A.正数 B.负数C.零D.不确定的值解析:评析 函数 strcmp 的功能是比较字符串 s1 和 s2,如果 s1s2,则返回个正数;如

    31、果 s1s2,则返回负数,否则返回零。由于本题中小写字母 b 的 ASCII 码值大于大写字母 B,故 s1s2,所以函数的值为正数。7.下列程序的执行结果是_。 #includestdio.h union int i; char c2; ; void main() union un x; x.c0=10; x.c1=1; printf(“/n%d“,x.i); (分数:1.00)A.266 B.11C.265D.138解析:评析 由于本题定义的是共用体,所以成员表列中的整型变量 x 与字符数组 c 共占用同个存储单元,且此存储单元为 2 个字节,通常 c0位于低字节,c1位于高字节,所以兄

    32、i 的值为 266。8.下面是对宏定义的描述,不正确的是_。(分数:1.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运算求值 D.宏替换只不过是字符替代而已解析:评析 宏替换实质上就是字符替代,它不可能进行计算,故 C 错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。9.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。(分数:1.00)A.希尔排序 B.冒泡排序C.插入排序D.选择排序解析:评析 希尔排序

    33、法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。10.已知下面的程序段,正确的判断是_。 #define A 3 #define B(A) (A+1)*a) int a=3; X=3*(A+B(7);(分数:1.00)A.程序错误,不允许嵌套定义B.X=93C.X=81 D.程序错误,宏定义不允许有参数解析:评析 本题的宏定义是合法的,宏定义展开为 3*(3+(A+1)*a)=3*(3+(7+1)*3)=81。11.下列程序的输出结果是_。 main() int i; for(i=1;i+1;i+) if(i4)printf(“%d“,i+);break; printf(“

    34、%d“,i+); (分数:1.00)A.55B.56 C.程序错误,没有输出D.循环条件永远为真,死循环解析:评析 本程序中有个 for 循环,但注意到 for 循环的条件是“i+1”,也就是只要 i+1 的值为真(非零值均为真),就执行循环。当 i=1 的时候,i+1 的值为真,判断 if 条件不成立,执行 i+,输出 i 的值为 5。12.下列程序的输出结果是_。 main() int i=3; switch(i) case 1: case 2:printf(“%d“,i); case 3: case 4:break; default:printh(“OK“; (分数:1.00)A.0B.

    35、3C.OKD.没有任何输出 解析:评析 在题中,i 的值为 3,由于“case 3:”后面没有 break 语句,所以继续向下执行“case 4:”后面的语句,由于“case 4:”后面的语句为 break 强行退出 switch 语句,所以,本题没有任何输出。13.设有以下语句: char str 1=“string“,str28,*str3,*str4=“string“; 则_不是对库函数的正确调用。(分数:1.00)A.strcpy(str 1,“HELLO1“);B.strcpy(str2,“HELLO2“);C.strcpy(str3,“HELLO3“); D.strcpy(str4

    36、,“HELLO4“);解析:评析 C 语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C 中的目的串指针 str3 没有指向具体有效的存储单元,故是错误的调用。14.下面程序的输出结果是_。 #includestdio.h main() char *p=“BOOL“,“OPK“,“H“,“SP“;int i; for(i=3;i=0;i-,i-) printf(“%c“,*pi); printf(“/n“); (分数:1.00)A.SO B.SPC.SPOPKD.SHOB解析:评析 p0存放的是“BOOL/0”的首地址;p1存放的是“OPK/0”的首址等。 在

    37、 printf 语句中输出的*pi表示 pi字符串的第个字符。在 for 循环中,i 的初值为 3,那么输出的第个字符为“S”,接着两次 i-,则输出的值为*p1,即字符“O”,所以本题的输出为 SO。15.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。 struct link char data; _, node;(分数:1.00)A.dataB.next解析:评析 在单向链表中,由于每个结点需要存储下一个结点的地址,且下个结点的数据类型与前个结点的数据类型完全相同,故应为 struct link *next。16.以下程序的输出结果是_。 #includestdio.h

    38、 void prt(int *x,int *y,int *z) printf(“%d,%d,%d/n“,+*x,+y,*(z+); int a=10,b=40,c=20; main() prt( prt( (分数:1.00)A.11,42,31 12,22,41B.11,41,20 12,42,20 C.11,21,40 11,21,41D.11,41,21 12,42,22解析:评析 由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。17.下述函数功能是_。 int fun(char *x) char *y=x; while(*y+); retum y-x

    39、-1; (分数:1.00)A.求字符串的长度 B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x 连接到字符串 y 后面解析:评析 在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。18.请读程序段: char str=“ABCD“,*p=str; printf(“%d/n“,*(p+4); 程序段的输出结果是_。(分数:1.00)A.68B.0 C.字符D的地址D.不确定的值解析:评析 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“/0”,故指向字符数组的指针 p 的*(p+4)的值为

    40、“/0”。由于“/0”的编码值就是 0,所以本题输出为 0。19.在软件开发过程中,软件结构设计是描述_。(分数:1.00)A.数据存储结构B.软件体系结构 C.软件结构测试D.软件控制过程解析:评析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。20.以下程序的输出结果是_。 #includestdio.h #define SQR(x)x*x main() int a,k=3; a=+SQR(k+1); printf(“%d/n“,a); (分数:1.00)A.8B.9 C.17D.

    41、20解析:评析 本题宏替换中遇到形参 x 以实参 k+1 代替,其他字符不变。SQR(k+1)展开后应为字符串k+1*k+1。21.已知小写字母 a 的 ASCII 码为 97,大写字母 A 的 ASCII 码为 65,以下程序的结果是_。 main() unsigned int a=32,b=66; printf(“%c/n“,a|b); (分数:1.00)A.66B.98C.b D.B解析:评析 位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为 1,该位的结果值为 1。最后以字符型输出,98 对应的字符“b”。22.关系代数运算是以_为基础的运算。(分数:1.00)A.关

    42、系运算B.谓词运算C.集合运算 D.代数运算解析:评析 关系代数运算是以关系代数作为运算对象的组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。23.main() float x=123.456; printf(“%-5.2f/n“,x); 以上程序输出的结果是_。(分数:1.00)A.123.4B.123.5C.123.45D.123.46 解析:评析 f 格式符,用来输出实数,以小数形式式输出。“%-m.nf”的含义是:输出数据共占 m 列,其中 n 位小数,如果输出位数小于 m,则右端补空恪。如果总长度大于列数,则按

    43、实际情况四舍五入输出。24.以下程序(程序左边的数字为附加的行号)_。 1 #includestr.h 2 #includestdio.h 3 main() 4 char s=“string“; 5 puts(s); 6 strcpy(s,“hello“); 7 printf(“%3s/n“,s);(分数:1.00)A.没有错B.第 1 行有错 C.第 6 行有错D.第 7 行有错解析:评析 字符串复制函数 strcpy 包含在头文件 string.h 中,因此,程序中的第 1 行文件包含命令是错误的。25.模块本身的内聚是模块独立性的重要性度量因素之。在 7 类内聚中,具有最强内聚的类是 _

    44、。(分数:1.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚 解析:评析 内聚性是个模块内部各元素间彼此结合的紧密程度的度量。内聚共有 7 类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。26.若进栈序列为 1,2,3,4,进栈过程中可以出栈,则下列不可能的个出栈序列是_。(分数:1.00)A.1,4,3,2B.2,3,4,1C.3,1,4,2 D.3,4,2,1解析:评析 栈是种后进先出表,选项 C 中,先出栈的是 3,说明此时栈内必然有 1,2,由于 1 先于2 进栈,所以 1 不可能在 2 之前出栈,故选项 C 这种出栈序列是不可能的。27.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序 D.编辑程序解析:评析 用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由 0 和 1 组成的二进制指令,所以高级语言必须先用种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。28.以下程序输出的结果为_。 main() char *alpha6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“); char *p; int i; p=alpha; for(i=0;i4;i+) printf(“%s


    注意事项

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




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

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

    收起
    展开