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

上传人:lawfemale396 文档编号:1326075 上传时间:2019-10-17 格式:DOC 页数:34 大小:99.50KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-273及答案解析.doc_第1页
第1页 / 共34页
【计算机类职业资格】二级C语言笔试-273及答案解析.doc_第2页
第2页 / 共34页
【计算机类职业资格】二级C语言笔试-273及答案解析.doc_第3页
第3页 / 共34页
【计算机类职业资格】二级C语言笔试-273及答案解析.doc_第4页
第4页 / 共34页
【计算机类职业资格】二级C语言笔试-273及答案解析.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、二级 C 语言笔试-273 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.下面程序的输出结果是_。#includestdio.hmain()char*p=“DOOL“,“OPK“,“H“,“SP“;int i;for (i=3;i=0;i-,i-)printf(“%c“,*pi);printf(“/n“);(分数:2.00)A.SOB.SPC.SPOPKD.SHOB2.若有定义:int a410;,则以下选项中对数组元素 aij引用错误的是_。 (0=i4,0=j10)(分数:2.00)A.*((分数:2.00)A.14B.8C.5D.输

2、出项不合怯,无正常输出4.定义 int*swap()的是_。(分数:2.00)A.一个返回整型值的函数 swap()B.一个返回指向整型值指针的函数 swap()C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错5.下述程序向文件输出的结果是_。#includestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);fprintf(fp,“%d%5.of%c%d“,58,76273.0,-2278);fclose(fp);(分数:2.00)A.5876273-2278B.5876273.000000-2278C.5876273-2278D

3、.因文件为二进制文件而不可读6.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;(分数:2.00)A.example.x=10B.example v2.x=10C.struct v2;v2.x=10D.struct example v2=10;7.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:2.00)A.分析结果B.事件C.动作D.数据8.若有以下类型说明语句:charw;intx;floaty,Z;则表达式 w*x+z-y 的结果为_类型。(分数:2.00)A.floatB.charC.intD.double9.下列程序执行后的

4、输出结果是_。main()int m3=1,4,7,2,5,8,3,6,9;int i,k=2;for(i=0;i3;i+)printf(“%d“,mki);(分数:2.00)A.456B.258C.369D.78910.若有如下说明,则_的叙述是正确的。struct stint a;int b2;a;(分数:2.00)A.结构体变量 a 与结构体成员 a 同名,定义是非法的B.程序只在执行到该定义时才为结构体 st 分配存储单元C.程序运行时为结构体 st 分配 6 个字节存储单元D.类型名 struct st 可以通过 extern 关键字提前引用(即引用在前,说明在后)11.C 语言库函

5、数 fgets(str,n,fg)的功能是_。(分数:1.00)A.从中指向的文件中读取长度 n 的字符串存入 str 指向的内存B.从 fp 指向的文件中读取长度不超过 n-1 的字符串存入 str 指向的内存C.从 fp 指向的文件中读取 n 个字符串存入 str 指向的内存D.从 sb 读取至多 n 个字符到文件 fp12.对于 n 个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:1.00)A.n-1B.nC.n+1D.2n13.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部

6、结构和外部结构14.已知小写母 a 的 ASCII 码为 97,大写字母 A 的 ASCII 码为 65,以下程序的结果是_。main()unsigned int a=32,b=66;printf(“%c/n“,a|B) ;(分数:1.00)A.66B.98C.bD.B15.下面程序的输出是_。char s=“ABCD“;main()char*pfor(p=s;ps+4,p+)printf(“%s/n“,p);(分数:1.00)A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA16.以下程序(程序左边的数字为符加的行号)。1#includestr.h2#includest

7、dio.h3main()4 char s=“string“;5puts(s);6strcpy(s,“hello“);7printf(“%3s/n“,s);(分数:1.00)A.没有错B.第 1 行有错C.第 6 行有错D.第 7 行有错17.若一个外部变量的定义形式为 static int x;,那么,其中 static 的作用应该是_。(分数:1.00)A.将变量存储在静态存储区B.使变量 x 可以由系统自动初始化C.使 x 只能在本文件内引用D.使 x 的值可以永久保留18.设有以下语句:char strl=“string“,str28,*str3,*str4=“string“;则_不是对

8、库函数的正确调用。(分数:1.00)A.strcpy(strl,“HELLO1“);B.strcpy(str2,“HELLO2“);C.strcpy(str3,“HELLO3“);D.strcpy(str4,“HELLO4“);19.下列程序的执行结果是_。#includestdio.hunion unint 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.13820.以下程序的输出结果,是_。main()char str12=s,t,r,i,n,g;print

9、f(“%d/n“,strlen(str);(分数:1.00)A.6B.7C.11D.1221.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。(分数:1.00)A.希尔排序B.冒泡排序C.插入排序D.选择排序22.以下程序输出的结果为_。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.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM2

10、3.下面是对宏定义的描述,不正确的是_。(分数:1.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运算求值D.宏替换只不过是字符替代而已24.以下程序的输出结果是_。#includestdio.hvoid prt(int*x,int*y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);int a=10,b=40, c=20;main()prt(printf(“%d/n“,*(p+4);程序段的输出结果,是_。(分数:1.00)A.68B.0C.字符D的地址D.不确定的值26.设已定义

11、 i 和 k 为 int 类型变量,则以下 for 循环语句_。for(i=0;k=-1,k=1;i+,k+)printf(“*/n“);(分数:1.00)A.判断循环结束的条件不合法B.是无限循环C.循环一次也不执行D.循环只执行一次27.下述函数功能是_。int fun(char*x)char*y=x;while(*y+);return y-s-1;(分数:1.00)A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x 连接到字符串 y 后面28.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。struct linkchar data;_,no

12、de;(分数:1.00)A.B.C.D.29.下列程序执行后输出的结果是_。int d=1;fun(int p),int d=5;d+=p+;printf(“%d,“,d) main()int a=3;fun((分数:1.00)A.;int b=20;printf(“%d,%o“,(a=a+a,a+b,B) ,a+a-A,b) ;(分数:1.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果 20,141D.输出结果为 20,141,2034.下列程序的输出结果是_。main()int i;for(i=1;i+1;i+)if(i4)printf(“d“,i

13、+);break;printf(“%d“,i+);(分数:1.00)A.55B.56C.程序错误,没有输出D.循环条件永远为真,死循环35.下面程序的输出结果是_。unsigned fun(unsigned num)unsigned k=1;do k*=num%10;num/=10;while(num);return(k);main()unsigned n=26;printf(“%d/n“,fun(n);(分数:1.00)A.0B.4C.12D.无限次循环36.请读程序:#includestdio.h#includestring.hmain()char*s1=“AbCdEf,*s2=“aB“;

14、s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(分数:1.00)A.正数B.负数C.零D.不确定的值37.下列程序的输出结果是_。main()int a=0,b=0,c=0;if(+a0|+b0)+c;printf(“/na=%d,b=d,c=%d“,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=138._是构成 C 语言程序的基本单位。(分数:1.00)A.函数B.过程C.子程序D.子例程39.在顺序表(3,6,8,10,12,15,16,18,21,2

15、5,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。(分数:1.00)A.2B.3C.4D.540.C 语言函数返回值的类型是由_决定的。(分数:1.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时D.定义函数时所指定的函数类型41.main()floatx=123.456;printf(“%-5.2f/n“,x);以上程序输出的结果是_。(分数:1.00)A.123.4B.123.5C.123.45D.123.4642.下列程序的输出结果是_。main()int i=3;switch(i)case1:case 2:printf(“d“,i

16、)case 3:case 4:break;default : printf(“OK“)(分数:1.00)A.0B.3C.OKD.没有任何输出43.模块本身的内聚是模块独立性的重要性度量因素之一。在 7 类内聚中,具有最强内聚的一类是 _。(分数:1.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚44.以下程序的输出结果是_。#includestdio.h#define SQR(x)x*xmain()int a;k=3;a=+SQR(k+1);printf(“%d/n“,(分数:1.00)A.;gets(s2);gets(s3);puts(s1);puts(s2);puts(s3

17、);输入数据如下: (此处CR代表回车符)aaaCRbbbCR(分数:1.00)A.aaabbbB.aaabbbC.aaa/0bbb/0D.aaabbb46.已知下面的程序段,正确的判断是_。#define A3#define B;((分数:1.00)A.(A+1)*A) int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数47.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序D.编辑程序48.可以在 C 语言中用做用户标识符的是_。(分数:1.00)A.voiddefin

18、eWORDB.as_b3_123IfC.for-abccasD.2cDoSIG49.若进栈序列为 1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_。(分数:1.00)A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,150.关系代数运算是以_为基础的运算。(分数:1.00)A.关系运算B.谓词运算C.集合运算D.代数运算二、填空题(总题数:17,分数:40.00)51.对于长度为 n 的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为 【1】 。(分数:2.00)填空项 1:_52.注释说明了程序的功能,它分为 【2】 注释和功能性注释

19、。(分数:2.00)填空项 1:_53.软件测试中路径覆盖测试是整个测试的基础,它是对软件 【3】 进行测试。(分数:2.00)填空项 1:_54.数据库技术的主要特点为数据的集成性、数据的高 【4】 和低冗余性、数据独立性和数据统一管理与控制。(分数:2.00)填空项 1:_55.数据元素之间 【5】 的整体称为逻辑结构。(分数:2.00)填空项 1:_56.若有定义 int m=5,y=2,则执行表达式 y+=y-=m*=y 后,y 的值为 【6】 。(分数:2.00)填空项 1:_57.若 x 和 y 都是 double 型变量,且 x 的初值为 3.0,y 的初值为 2.0,则表达式

20、pow(y,fabs(x)的值为 【7】 。(分数:2.00)填空项 1:_58.设有 char a,b;,若要通过 amain()int a=7,b=5;printf(“%d/n“,fun(a,b) /m);(分数:2.00)填空项 1:_61.下列程序执行后输出的结果是 【11】 。main()int arr10,i,k=0;for(i=O;i10;i+)arri=i;for(i=1;i4;i+)k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_62.下列程序执行后输出的结果是 【12】 。struct sint x,y;data2=10,100,20,

21、200;main()struct s*p=data;printf“%d/n“,+(p-x);(分数:2.00)填空项 1:_63.下面程序有两个 printf 语句,如果第一个 printf 语句输出的是 194,则第二个 printf 语句的输出结果是【13】 。main()int a10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%x/n“,p);printf(“%x/n“,p+9);(分数:2.00)填空项 1:_64.以下函数的功能是计算 s=1+1/2!+1/3!+1/n!,请填空。double fun(int n)double s=0.0 ,fac=1.

22、0;int i,k=1;for(i=1;i=n;i+);【14】 ;fac=fac/ks=s+fac;(分数:2.00)填空项 1:_65.下面程序的运行结果是 【15】 。main()unsigned a=0112,x;x=a3;printf(“x=%o“,x);(分数:2.00)填空项 1:_66.函数 delete(s,i,n)是作用是从字符串 s 中删除从第 i 个字符开始的 n 个字符,请填空。void delete(char s,int i, int n)int j,k,length=0;while(slength)【16】 ;-i;j=iif( 【17】 )k=i+n;if(i+

23、n=length)while(klength)sj+=sk+;sj=/0;(分数:4.00)填空项 1:_67.下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。int word(char*s)int num=0, flag=0;while(*s)if( 【18】 =) flag=0;else if( 【19】 )flag=1;num+return 【20】 ;(分数:6.00)填空项 1:_二级 C 语言笔试-273 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.下面程序的输出结果是_。#includestdio

24、.hmain()char*p=“DOOL“,“OPK“,“H“,“SP“;int i;for (i=3;i=0;i-,i-)printf(“%c“,*pi);printf(“/n“);(分数:2.00)A.SO B.SPC.SPOPKD.SHOB解析:评析 p0存放的是“BOOL/0”的首地址;p1存放的是“OPK/0”的首址等。在 printf 语句中输出的*pi表示 pi字符串的第一个字符。在 for 循环中,i 的初值为 3,那么输出的第一个字符为“S”,接着两次 i-,则输出的值为*p1,即字符“0”,所以本题的输出为 SO。2.若有定义:int a410;,则以下选项中对数组元素 a

25、ij引用错误的是_。 (0=i4,0=j10)(分数:2.00)A.*((分数:2.00)A.14B.8C.5 D.输出项不合怯,无正常输出解析:评析 在 C 语言中,以“/”开头的字符均为转义字符,其中“/”后可跟 13 位八进制数或在“/”后跟字母 x 及 12 位十六进制数,以此来代表一个特定的字符。4.定义 int*swap()的是_。(分数:2.00)A.一个返回整型值的函数 swap()B.一个返回指向整型值指针的函数 swap() C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错解析:评析 一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指针型数

26、据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是一个返回整型指针的函数。5.下述程序向文件输出的结果是_。#includestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);fprintf(fp,“%d%5.of%c%d“,58,76273.0,-2278);fclose(fp);(分数:2.00)A.5876273-2278B.5876273.000000-2278C.5876273-2278 D.因文件为二进制文件而不可读解析:评析 fprintf 函数工作时,多个数据间不会自动加分隔符,选项 A 错误;浮点数的输出格式是“%5.

27、of”表明其小数部分输出 0 位,即没有输出,所以选项 B 也是错误的。6.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;(分数:2.00)A.example.x=10B.example v2.x=10C.struct v2;v2.x=10D.struct example v2=10; 解析:评析 在定义结构体变量时,不能只用结构体名 example 或关键字 struct 进行定义,必需要用结构体类型名 struct example 定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。7.数据存储和数据流都是_,仅仅是所

28、处的状态不同。(分数:2.00)A.分析结果B.事件C.动作D.数据 解析:评析 数据流图有 4 种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。8.若有以下类型说明语句:charw;intx;floaty,Z;则表达式 w*x+z-y 的结果为_类型。(分数:2.00)A.float B.charC.intD.double解析:评析 在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:char,shortintunsignedlongdoublefloat,故结果为float 型。9.

29、下列程序执行后的输出结果是_。main()int m3=1,4,7,2,5,8,3,6,9;int i,k=2;for(i=0;i3;i+)printf(“%d“,mki);(分数:2.00)A.456B.258C.369 D.789解析:评析 根据二维数组的定义得出:m00=1,m01=4,m02=7,m10=2,m11=5,mi2=8,m20=3,m21=6, m22=9,所以本题的输出是第 3 行的值 m20,m21,m22,即 369。10.若有如下说明,则_的叙述是正确的。struct stint a;int b2;a;(分数:2.00)A.结构体变量 a 与结构体成员 a 同名,定

30、义是非法的B.程序只在执行到该定义时才为结构体 st 分配存储单元C.程序运行时为结构体 st 分配 6 个字节存储单元D.类型名 struct st 可以通过 extern 关键字提前引用(即引用在前,说明在后) 解析:评析 结构体变量 a 与结构体成员 a 同名是合法的定义,引用成员 a 的方法是 aa,变量 a 处于不同的“层次”上,系统完全能够分情。st 是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量 a 分配 6 个字节的存储单元,故选项 B 和选项 C 错误。11.C 语言库函数 fgets(str,n,fg)的功能是_。(分数:1.00)A.从中指向的文件

31、中读取长度 n 的字符串存入 str 指向的内存B.从 fp 指向的文件中读取长度不超过 n-1 的字符串存入 str 指向的内存 C.从 fp 指向的文件中读取 n 个字符串存入 str 指向的内存D.从 sb 读取至多 n 个字符到文件 fp解析:评析 fgets 函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp);中的 n 为要求得到的字符的个数,但只从 fp 指向的文件输入 n-1 个字符,然后在最后加一个/0字符,因此得到的字符串共有 n 个字符。12.对于 n 个结点的单向链表(无表头结点),需要指针单元的个数至少为_。(分数:1.00)A.n-1B.nC.n+

32、1 D.2n解析:评析 在 n 个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要 n+1 个指针单元。13.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构解析:评析 逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。14.已知小写母 a 的 ASCII 码为 97,大写字母 A 的 ASCII 码为 65,以下程序的结果是_。main()unsigned int a=32

33、,b=66;printf(“%c/n“,a|B) ;(分数:1.00)A.66B.98C.b D.B解析:评析 位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为 1,该位的结果值为 1。最后以字符型输出,98 对应的字符“b”15.下面程序的输出是_。char s=“ABCD“;main()char*pfor(p=s;ps+4,p+)printf(“%s/n“,p);(分数:1.00)A.ABCDBCDCDD B.ABCDC.DCBAD.ABCDABCABA解析:评析 在第一次执行 for 循环时,字符数组的首地址赋给了指针变量 p,使得指针变量 p 指向了s 的首地址,输出

34、 p 所指向的字符串;第二次执行 for 循环时, p 值增加 1,p 指向了 s 的第二个元素输出 BCD;第三次输出 CD;第四次输出 D;直到 P 指向字符串的结束字符“/0”,for 循环终止抽行。16.以下程序(程序左边的数字为符加的行号)。1#includestr.h2#includestdio.h3main()4 char s=“string“;5puts(s);6strcpy(s,“hello“);7printf(“%3s/n“,s);(分数:1.00)A.没有错B.第 1 行有错 C.第 6 行有错D.第 7 行有错解析:评析 字符串复制函数 strcpy 包含在头文件 st

35、ring.h 中,因此,程序中的第 1 行文件包含命令是错误的。17.若一个外部变量的定义形式为 static int x;,那么,其中 static 的作用应该是_。(分数:1.00)A.将变量存储在静态存储区B.使变量 x 可以由系统自动初始化C.使 x 只能在本文件内引用 D.使 x 的值可以永久保留解析:评析 事实上,无论有无 static 修饰,外部变量都具有 A、B 和 C 三种特性。作为一种修饰,static 仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。18.设有以下语句:char strl=“string“,str28,*str3,*str4=“string

36、“;则_不是对库函数的正确调用。(分数:1.00)A.strcpy(strl,“HELLO1“);B.strcpy(str2,“HELLO2“);C.strcpy(str3,“HELLO3“); D.strcpy(str4,“HELLO4“);解析:评析 C 语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C 中的目的串指针 str3 没有指向具体有效的存储单元,故是错误的调用。19.下列程序的执行结果是_。#includestdio.hunion unint i;char c2;void main()union un x;x.c0=10;x.c1=1;pri

37、ntf(“/n%d“,x.i);(分数:1.00)A.266 B.11C.265D.138解析:评析 由于本题定义的是共用体,所以成员表列中的整型变量 x 与字符数组 c 共占用同一个存储单元,且此存储单元为 2 千字节,通常 c0位于低字节,c1位于高字节,所以 x.i 的值为 266。20.以下程序的输出结果,是_。main()char str12=s,t,r,i,n,g;printf(“%d/n“,strlen(str);(分数:1.00)A.6 B.7C.11D.12解析:评析 在 C 语言中,字符串的长度是其首字符到 NULL(不含)字符的总字符个数。本题定义字符数组 str 的同时

38、,对第 7 个元素,由系统自动加上“/0”,故字符串的长度为 6。21.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_。(分数:1.00)A.希尔排序 B.冒泡排序C.插入排序D.选择排序解析:评析 希尔排序的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。22.以下程序输出的结果为_。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.ABCDEFGHIJ

39、KLB.ABCDC.ABCDEFGHIJKLMNOP D.AEIM解析:评析 alpha0指向“ABCD”的首地址;alpha1指向“EFGH”的首地址;alpha2指向“IJKL”的首地址,依此类推。当执行 p=alpha 后,p 指向指针数组 alpha 的首地址。for 循环中输出了4 个字符串。23.下面是对宏定义的描述,不正确的是_。(分数:1.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运算求值 D.宏替换只不过是字符替代而已解析:评析 宏替换实质上就是字符替代,它不可能进行计算,故 C 错误。带参数

40、的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。24.以下程序的输出结果是_。#includestdio.hvoid prt(int*x,int*y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);int a=10,b=40, c=20;main()prt(printf(“%d/n“,*(p+4);程序段的输出结果,是_。(分数:1.00)A.68B.0 C.字符D的地址D.不确定的值解析:评析 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“/0”,故指向字符数组的指针

41、 p 的*(p+4)的值为“/0”。由于“/0”的编码值就是 0,所以本题输出为 0。26.设已定义 i 和 k 为 int 类型变量,则以下 for 循环语句_。for(i=0;k=-1,k=1;i+,k+)printf(“*/n“);(分数:1.00)A.判断循环结束的条件不合法B.是无限循环 C.循环一次也不执行D.循环只执行一次解析:评析 本题定义了一个 for 循环,循环变量是 i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。27.下述函数功能是_。int fun(char*x)char*y=x;while(*y+);return y-s-1;(分数:

42、1.00)A.求字符串的长度 B.求字符串存放的位置C.比较两个字符串的大小D.将字符串 x 连接到字符串 y 后面解析:评析 在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。28.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。struct linkchar data;_,node;(分数:1.00)A.B.C.D. 解析:评析 在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为 struct link *next。29.下列程序执行后输出的结

43、果是_。int d=1;fun(int p),int d=5;d+=p+;printf(“%d,“,d) main()int a=3;fun((分数:1.00)A.;int b=20;printf(“%d,%o“,(a=a+a,a+b,B) ,a+a-A,b) ;(分数:1.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果 20,141 D.输出结果为 20,141,20解析:评析 本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即 20。然后以八进制的形式输出a+a-A,的值为 97 对应的八进制数 141,由于最后一个表达式 b 没有对应输出

44、格式的输出项表列就不会输出。34.下列程序的输出结果是_。main()int i;for(i=1;i+1;i+)if(i4)printf(“d“,i+);break;printf(“%d“,i+);(分数:1.00)A.55B.56 C.程序错误,没有输出D.循环条件永远为真,死循环解析:评析 本程序中有个 for 循环,但注意到 for 循环的条件是“i+1”,也就是只要 i+1 的值为真(非零值均为真),就执行循环。当 i=1 的时,i+1 的值为真,判断 if 条件不成立,执行 i+,输出 i 的值为 5。35.下面程序的输出结果是_。unsigned fun(unsigned num)

45、unsigned k=1;do k*=num%10;num/=10;while(num);return(k);main()unsigned n=26;printf(“%d/n“,fun(n);(分数:1.00)A.0B.4C.12 D.无限次循环解析:评析 本题定义了一个 fun 函数,用于 num 求和,具体执行过程如下:num=26:k=k*(num10)=1*(26%10),所以 k=6,num=num/10=2;num=2:k=k*(num%10)=6*(2%10),所以 k=12,num=num/10=0);num=O:while 条件不成立,所以返回 k 的值 12。36.请读程序:#includestdio.h#includestring.hmain()char*s1=“AbCdEf,*s2=“aB“;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(分数:1.00)A.正数 B.负数C.零D.不确定的值解析:评析 函数 strcmp 的功能是比较字符串 s1 和 s2,如果 s1s2,则返回个正数;如果 s1s2,则返回负数,否则返回零。由于本题中小写字母 b 的 ASCII 码值大于大写字母 D,故 s1s2,所以函数的值为正数。37.下列程序的输出结果是_。main()int a=0,b=0,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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