2021-2022年福建省漳州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021-2022年福建省漳州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021-2022年福建省漳州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021-2022年福建省漳州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021-2022年福建省漳州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021-2022年福建省漳州市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.不带头结点的单链表head为空的判定条件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

2.下面合法的C语言字符常量是()。

A.'\t'B."A"C.65D.A

3.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()。

A.顺序表B.用头指针表示的循环单链表C.用尾指针表示的循环单链表D.单链表

4.有以下语句:intb;charc[10];,则正确的输入语句是______。

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

5.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a’+‘A’);}程序运行后的输出结果是()。

A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR

6.将线性表中的结点信息组织成平衡的二叉树,其优点之一是总能保证任意检索长度均为log2n量级(n为线性表中的结点数目)()

A.对B.错

7.以下选项中与“(!a==0)”的逻辑值不等价的表达式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

8.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

A.-369B.369C.0.369D.整数集合{1,2,3,4,5}

9.

10.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序执行后的输出结果是()。A.7B.3C.2D.0

11.十进制数124转换成二进制数是()

A.111l010B.1111100C.1011111D.1111011

12.采用开放定址法处理散列表的冲突时,其平均查找长度()

A.高于二分查找B.高于链接法处理冲突C.低于二分查找D.低于链接法处理冲突

13.

14.甲乙两个聪明人上街,捡到一张10块钱的购物卡,两人就想出一个办法来分配这张卡。两个分别将自己出的价格写在纸上,然后看谁出的价高就给谁,并且那个出价高的人要把出的钱给对方。现在甲有6块钱,乙有8块钱,甲乙双方都知道对方当前有多少钱并且都希望自己收益高于对方。问最后谁获得的钱多()

A.甲多B.乙多C.一样多D.有可能出现有人赔钱的情况

15.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745

16.在KMP算法中,已知模式串为ADABCADADA,请写出模式串的next数组值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

17.假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

18.

19.以下函数不能用于向文件中写入数据的是()。

A.hellB.fwriteC.fputcD.fprintf

20.以下程序的输出结果是______。

A.54321

B.12345

C.12345

D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}

二、2.填空题(20题)21.下列程序的功能是将字符串s中所有的字符c删除。请填空。

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')______;

s[j]='\O';

puts(s);

}

22.阅读下面程序,则执行后的输出结果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

printf("%d\n",z);}

23.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

printf("%d%d\n",c,d);

}

24.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

25.以下程序运行后的输出结果是()。structNODE{intk;structNODE*link;};main(){structNODEm[5],*p=m,*q=m+4;inti=0:while(p!=q){p->k=++i;p++;q->k=1++;q--;}q->k=i:for(i=0;i<5;i++)printf("%d",m[i].k);printf("\n");}

26.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

27.下列程序的运行结果是_______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

primf("%d,",z<y?x++:y++);

primf("%d,%d",x,y);

}

28.注释说明了程序的功能,它分为【】注释和功能性注释。

29.调用C语言标准库函数时要求用【】命令。

30.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

31.以下程序运行结果是【】。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)return(2);

p=x*func(x-1);

return(p);}

main()

{printf("%d\n",func(4));}

32.【】是数据库设计的核心。

33.下列语句使指针p指向一个double类型的动态存储单元。

p=【】malloc(sizeof(double));

34.以下程序的运行结果是【】。

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

35.下述程序的输出结果是【】。

#include<stdio.h>

intfun(intx)

{intp;

if(x==0||x==1)

return3;

else

p=x-fun(x-2);

returnp;}

voidmain()

{printf("\n%d",fun(9));}

36.栈和队列通常采用的存储结构是【】。

37.常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。

38.诊断和改正程序中错误的工作通常称为【】。

39.下列语句能循环______次。

ints=12;

while(s);

--s;

40.设a、b、c为整形数,且a=2,b=3,c=4则执行完以下语句后,a的值是【】。

a*=16+(b++)-(++c);

三、1.选择题(20题)41.有以下程序:main(intarge,char*argv[]){intn,i=0;while(arv[1][i]!='\0'{n=fun();i++;}printf("%d\n",n*argc)}intfun(){staticints=0;s+=1;returns;}假设程序经编译、连接后生成可执行文件exam.exe,若输入以下命令行exam123<回车>则运行结果为()。

A.6B.8C.3D.4

42.有以下程序:#include<stdio.h>main(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是()。

A.-1B.-3C.-5D.0

43.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是

A.10<回车>22<回车>33<回车>

B.10.0,22.0,33.0<回车>

C.10.0<回车>22.033.0<回车>

D.1022<回车>33<回车>

44.下列软件中,属于应用软件的是()

A.UNIXB.人事管理系统C.数据库管理系统D.SYSTEM

45.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

46.若运行时给变量x赋值12,则以下程序的运行结果是()。#include<stdio.h>main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

47.为了避免在嵌套的条件语句if-else中产生二义性,C语言中规定的if-else配对原则是______。

A.else子句与缩排位置相同的if配对

B.else子句与其之前最近的未被配对的if配对

C.else子句与其之后最近的if配对

D.else子句与同一行上的if配对

48.C语言中while和do-while循环的主要区别是

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件更严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

49.下列函数定义中,会出现编译错误的是_____。

A.max(intx,inty,int*z){*z=x>y?x:y;}z=x>y?x:y;returnz;}

B.intmax(intx,y){intz;

C.max(intx,inty){intz;z=x>y?x:y;return(z);}

D.intmax(intx,inty){returnx>y?x:y;}

50.有以下程序:#include<stdlib.h>voidfun(int*s,int**d){**d=*(s+2);}main(){inta[]={1,2,3,4,5},*b;b=(int*)malloc(sizeof(int));fun(a,&B);printf("%d\n",*b+1);}程序的输出结果是()

A.2B.3C.4D.5

51.下面不属于软件工程3个要素的是()。

A.工具B.过程C.方法D.环境

52.给出发下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为______。

A.数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度

53.阅读下列程序,则执行后的结果为#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}

A.3e,6B.62,5C.56,5D.3E,6

54.下列程序的功能是给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;seanf("%d",&r);s=*π*r*r;printf("s=%f\n",s);}出错的原因是()。

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

55.源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括选择合适的标识符、注释和

A.程序的视觉组织B.尽量不用或少用GOTO语句C.检查输入数据的有效性D.设计良好的输出报表

56.以下各组选项中,均能正确定义二维实型数组a的选项是()

A.floata[3][4];floata[][4];floata[3][]={{1},{0}};

B.floata(3,4);floata[3][4];floata[][]={{0},{0}};

C.floata[3][4]staticfloata[][4]={{0},{0}};

D.floata[3][4];floata[3][];

57.下面四个选项中,均是不正确的8进制数或16进制数的选项是

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0a127ff-123

58.以下数组定义中不正确的是_______。

A.inta[2][3];

B.intb[][3]={0,1,2};

C.intc[100][100={0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

59.在下列字符序列中,合法的标识符是()

A.P12&.aB.stud_100C.$water.12D.88sum

60.以下函数调用语句中实参的个数是()func((exp1,exp2),(exp3,exp4,exp5));

A.1B.2C.4D.5

四、选择题(20题)61.

62.有以下程序#includemain{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。A.741B.963C.852D.875421

63.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

64.下列关于栈的叙述中正确的是()。

A.在栈中只能插入数据,不能删除数据

B.在栈中只能删除数据,不能插入数据

C.栈是先进后出(FILO.的线性表

D.栈是先进先出(FIFO.的线性表

65.有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

for(i=0;i<4;i++)

{for(j=0;j<i;j++)printf("%4c",'');

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()。A.A.i-1B.iC.i+1D.4一i

66.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。

A.1B.2C.8D.4

67.判断char型变量cl是否为大写字母的正确表达式是

A.’A’<=cl<=’Z’B.(cl>=A)&&(cl<=Z)

C.(’A’>=cl)||(’Z’<=cl)D.(cl>=’A’)&&(cl<=’Z’)

68.若a是数直类型,则逻辑表达式的值是()。A.1B.0C.2D.不知道a的值,不能确定

69.若有定义“inta=5,b=7;”,则表达式a%-(b%2)运算后,a的值为()。

A.0B.1C.11D.3

70.函数fgetc的功能是从指定文件中读入一个字符,以下与其功能完全相同的函数是()。

A.freadB.fscanfC.fgetsD.getc

71.有如下程序

#include"stdio.h"

main()

{intj,i,k=0;

for(j=20;j<=30;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

程序的运行结果是

A.2329B.2923

C.3292D.9232

72.设已有定义:floatx;,则以下对指针变量P进行定义且赋初值的语句中正确的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float=1024;

73.以下不正确的定义语句是

A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};

C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};

74.以下能正确定义赋初值的语句是()。

A.intnl=n2=10:

B.Chare=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

75.以下定义语句中正确的是()。

76.有如下程序:

则b的值是()。

A.15B.16C.18D.19

77.

78.若有说明:inta[3][4]={0};,则下面正确的叙述是

A.只初始化了第一个元素,即a[0][0]可得到初值0

B.此初始化语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0

D.数组a中每个元素均可得到初值0

79.

80.若已定义inta=25,b=14,c=19;以下三目运算符(?:)所构成的语句执行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是

A.***a=25,b=13,c=19B.***a=26,b=14,c=19

C.###a=25,b=13,c=19D.###a=26,b=14,c=19

五、程序改错题(1题)81.改正下列程序中不正确的语句。

main()

{inta;

scanf(“%d”,a);if(a=1)printf(“One\n”);}

六、程序设计题(1题)82.下列程序定义了M×M的二维数组,并在主函数中自动赋值。请编写函数fun(intarr[][M]),该函数的功能是使数组左下半三角元素中的值全部置成0。例如,arr数组中的值为:

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

试题程序:

参考答案

1.A

2.A

3.C

4.B解析:b是整型数,在输人语句中要加取地址符,而c是数组名,本身就是数组的首地址,因此不用加取地址符。

5.C程序定义一个字符数组b,并使用字符串“happynewyeai”进行初始化。然后通过for循环,遍历字符数组b中的每个字符,再将b中的字符元素修改为大写字母。程序输出:HAPPYNEWYEAR。故本题答案为C选项。

6.A

7.A运算符逻辑非“!”和“==”,逻辑非“!”的优先级高于“==”,选项A等价于“(!a)==0”。如果a不等于0,则表达式为真,否则表达式为假。故本题答案为A选项。

8.BB【解析】只有B选项369可以用无符号整数来表示和存储。A选项一369有负号,选项C0.369是小数都不能用无符号整数类存储。选项D是一个整数集合得用数组来存储。

9.C

10.C在函数funlintx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun(x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。

11.B

12.B

13.D

14.C

15.D本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。

16.A

17.B

18.D

19.Aftell是返回文件当前指针。

20.B

21.s[j++]=s[i]s[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j++将下标加1,指向下一元素要存储的位置。

22.33解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为x不大于y,所以执行printf('%d\\n',z);语句。

23.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

24.外模式外模式解析:外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。

25.13431

26.89218921

27.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。

“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。

本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

28.序言性序言性解析:注释一般分为序言性注释和功能性注释。

29.includeinclude解析:include命令可调用标准的C语言库函数,可以用一对尖括号或一对双引号将“.h”文件括起来,在include前面要加“#”。

30.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

31.4848解析:本题主要考查的是函数的递归调用,递归的终止条件是x==0或x==1,然后用已知值逐步递推向上求未知值,直到得到最终的结果。

func(4)=4*func(3);

func(3)=3*func(2);

func(2)=2*func(1);

func(1)=2;

所以func(2)=2*2=4;

func(3)=3*4=12;

fune(4)=4*12=48。

32.数据模型数据模型

33.(double*)

34.efghefgh解析:函数ss返回形参s所指向的符号串的后半部分,故p='efgh'。

35.77解析:本题考查的是函数的递归调用。x=0或x=1是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。

36.链式存储和顺序存储链式存储和顺序存储

37.边值分析法边值分析法解析:本题考查了黑箱测试的方法。黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法。

38.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

39.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。

40.28

41.A解析:主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为2,argv[0]指向字符串“exam”,argv[1]指向参数字符串“123”。在main()函数中,while循环执行了3次,调用了3次fun()函数;第一次调用了fun()函数时,定义了一个静态变量s并赋初值0,加1后作为函数值返回,n的值为1;第二次调用fun()函数时,静态变量s的值将保留上一次退出时的值1,再加1为2,作为函数值返回,n的值为2;同理第三次调用返回后,n的值为3。输出n*argc的值为6所以,A选项为所选。

42.B解析:本题考查do-while语句。当n=-1时,s+=1,s=1;a=a-2=-1;a!=n不成立,结束循环,此时s值为1,不符合题意;当n=-3时,s+=1,s=1;a=a-2=-1;a!=n成立,继续循环,s=s+1=2,a=a-2=-3;a!=n不成立,此时s值为2,符合题意。

43.B解析:在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。逗号不是合法的间隔符。

44.B

45.D解析:a是一个2行3列的二维数组,行下标和列下标都是从0开始的,数组中的元素为a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下标最大值为1,列下标最大值为2,因此选项A、B、C都是错误的引用。计算选项D中数组元素的下标后得a[0][0],为正确的引用。

46.A解析:条件运算符“?:”是三目运算符,其形式为:

表达式17表达式2:表达式3

当表达式1的值为真时,则表达式2的值为整个表达式的值;如果表达式1的值为假,则表达式3的值为整个表达式的值。题中,表达式x>12的结果为假,所以将表达式x-12的值0作为y的值。

47.B

48.A解析:while是先判断条件再执行语句;do-while则是先执行依次语句再判断条件从而决定是否继续再执行循环体中的语句,这正是二者主要区别。注意:3种循环结构的比较。

49.B解析:在C语言中,不可以在函数的参数声明列表中用一个类型名指定多个参数。故选项B是错误的。其正确的表示方式应为:

intmax(intx,inty){……}

intmax(x,y)

intx,y;

{……}

50.C

51.D解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具是指支持软件的开发、管理、文档生成;过程是支持软件开发的各个环节的控制、管理。环境不属于软件工程的3个要素之一。本题的正确答案为D。

52.C

53.A解析:数组a[5][5],0<=i<5,0<=j<5,则可以用5种表达式来引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。数组的下限为0,%后面为小写的x,所以输出的结果为小写字母表示的十六进制。

54.D解析:在C语言程序中,可以用一个符号名来代表一个常量,称为符号常量。这个符号名必须在程序中进行特别的“指定”,并符合标识符的命令规则。在本题中圆周串n是一个符号常量,但在程序中并没有指定其值,所以编译器找不到其值就会报错。所以选项D)正确。

55.A解析:源程序文档化主要包括三个方面的内容:标识符的命名、程序中添加注释以及程序的视觉组织。

56.C

57.D本题主要考查八进制数和十六进制数的正确表示。八进制数的特点是以0开头,而且数据中的每个数都要小于8;而十六进制数的特点是以0X开头,数据中的元素除了0~9这些数字外,还可以是A、B、C、D、E、F这些字符。

在选项A中,018的表示是错误的,因为八进制数中不应该出现8这个数字元素。另外两个表示正确。

在选项B中,0ABC的表示不正确,八进制数中根本不应该出现ABC这些数字元素。另外两个正确。

在选项C中,没有不正确的表示方法。

在选项D中,0A12的表示不正确,而7FF和-123根本就不是八进制或十六进制数,因此本题正确答案选D。

58.D解析:一维数组的定义方式为:

类型说明符数组名[常量表达式];

选项A符合此定义形式,正确;C语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项B正确,而选项D是错误的。

59.B

60.B

61.B

62.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式--Y的值。Y先自减l,然后再输出y的值。

63.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。

64.C\n栈是限定在一端进行插入与删除的线性表。栈是按照“先进后出”的或后进先出的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。本题答案是C)。

\n

65.B本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。

66.C

\n在C语言中各种数据类型在内存中所占的字节数与机器的位数有关,16位机中(也就是在标准c中),若int类型数据占2个字节,则float类型数据占4个字节,double类型数据占8个字节。

\n

67.D字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论