2021年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

2021年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列叙述中错误的是()。A.在程序中凡是以“#”开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

2.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

3.有下列程序:程序执行后的输出结果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

4.设有定义“floata=12.3f;doubleb=456.78;”,若想用printf函数输出a和b的值,关于输出格式,以下说法正确的是()。

A.只能用%lf输出a,用%f输出b

B.只能用%f输出a,用%lf输出b

C.只能用%lf输出a,用%lf输出b

D.既可以用%f输出a,也可以用%f输出b

5.

6.已知char**s,下面正确的语句是()。A.A.s="ABCDEF";

B.*s="ABCDEF";

C.**s="ABCDEF";

D.*s='A';

7.若已知一个栈的进栈序列是l,2,3…n,其输出序列是P1,P2,P3,…PN,若P1=3,则P2为()。

A.可能是2B.一定是2C.可能是1D.一定是1

8.在数据库系统中,用户所见数据模式为______。A.概念模式B.外模式C.内横式D.物理模式

9.若已定义inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是

A.a[p-A)B.*(&a[i])C.p[i]D.a[10]

10.带有头节点的单向链表head,其3个数据节点A、B、C的连接关系如下图所示:节点类型的定义为structlink{doubledt;structlink*next;};若指针P指向A节点,在不改变P指向的前提下,以下选项中不能访问C节点数据成员dt的表达式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

11.以下叙述中正确的是()。

A.构成C程序的基本单位是函数

B.可以在一个函数中定义另一个函数

C.main函数必须放在其他函数之前

D.C函数定义的格式是K&R格式

12.广告系统为了做地理位置定向,将IPV4分割为627672个区间,并标识了地理位置信息,区间之间无重叠,用二分查找将IP地址映射到地理位置信息,请问在最坏的情况下,需要查找多少次?()

A.17B.18C.19D.20

13.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

14.在1,2,3,......1000中,有()个数各位乘积为0。

A.100B.101C.172D.181E.190F.191

15.有如下程序:

main

{inta=2,b=-1.c=2;

if(a<b)if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是()。A.A.0B.1C.2D.3

16.设有一个栈,元素依次进栈的顺序为A、B、C、D、E。下列()是不可能的出栈序列。

A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A

17.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____。

A.q一>next=p一>next;p一>next=q;

B.q一>next=p一>next;p一>next=q;

C.p一>next=q一>next;q=p;

D.p一>next=q一>next;q一>next=p;

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

19.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}}程序的运行结果是()。

A.20,30,B.30,17,C.15,30,D.20,15,

20.若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

二、2.填空题(20题)21.下列程序的功能是将2个数从小到大输出。

main()

{floata,b,【】;

scanf(【】,&a,&b);

if(a>b)

{t=a;

【】;

b=t;

}

printf("%5.2f,%5.2f\n",a,b);

}

22.以下程序运行后的输出结果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

23.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

执行后输出结果是______。

24.已有定义;charc='';inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

26.设有说明;

structDATE{intyear;intmonth;intday;};

请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:【】。

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

28.以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next=NULL).

#include<stdio.h>

structlist{intdatd;structlist*next;};

【】creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{

p=(structlist*)malloc(sizeof(structlist));

p->data=a;

q->next=p;

【】=p;

scanf("%d",&a);

}

p->next='\0';

return(ph);

}

main()

{

structlisthead;

head=creatlist();

}

29.在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为【】。

30.若有如下程序:

main()

{intx=20;

if(x>10)printf("%d",x-=5);

if(x>15)printf("%d",x);

}

则程序运行后的输出结果是【】。

31.若a是int型变量,则下列表达式的值为______。

(a=2*3,a*2),a+4

32.已知字符A的ACSII码值为65,以下语句的输出结果是______。

charch='B';

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

33.若x和y都是buble型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

34.数据库保护分为安全性、控制性、______、并发性控制和数据恢复。

35.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

36.若有以下程序:

main()

{intp,a=5;

if(p=a!=0)

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

else

printf("%d\n",p+2);

执行后的输出结果是【】。

37.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能与之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

38.以下程序的功能是:利用指针向三个整型变量,并通过指针运算找出三个数中最大值,输出到屏幕上。请填空

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax二*pz;

printf("max=%d\n",max);}

39.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。

40.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

三、1.选择题(20题)41.若有运算符:>、=、<<、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为()。

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

42.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。

A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,

43.一个算法应该具有“确定性”等五个特性,下面对另外四个特性的描述中错误的是()。

A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性

44.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

45.下列语句执行后的结果是______。y=5;p=;x=*p++;

A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=6

46.以下定义语句中正确的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

47.C语言中共用体类型变量在程序运行期间()

A.最后一次存放的成员起作用,其他成员都已失去作用

B.已存放的一部分成员在内存中起作用

C.已存放的成员没有一个在内存中起作用

D.已存放的所有成员在内存中都起作用

48.设有以下说明语句typedefstruct{intn;charch[8];}PER;

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构本类型名

49.当前在数据库管理系统的研究方面,较活跃的是()

A.关系数据库B.网状数据库C.空间数据库D.层次数据库

50.下列程序的功能是()。main(){staticints[3][3]={1,2,3,4,5,6,7,8,9,),m,n;for(m=0;m<3;m++){for(n=0;n<=m;n++)printf("%d",s[m][n]);printf("\n');}}

A.输出3×3矩阵的下三角的元素

B.输出3×3矩阵的上三角的元素

C.输出3×3矩阵的对角线上的元素

D.输出3×3矩阵的元素

51.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。

A.334HB.30DHC.352HD.31AH

52.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是()。main(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C');

D.inta[5]="0123";

53.能正确表示代数式的C语言表达式是()

A.3*xn/(2*x-1)

B.3*x**n/(2*x-1)

C.3*pow(x,n)*(1/(2*x-1))

D.3*pow(n,x)/(2*x-1)

54.设下面程序的可执行文件名为prg.exe,在该程序所在子目录下输入以下命令行:prghellogood<回车>则程序的输出结果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}

A.hellogoodB.hgC.helD.hellogood

55.表示关系a≤b≤c的C语言表达式为()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

56.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4);,则数组x在内存中所占字节数是______。

A.3B.6C.10D.20

57.若变量已正确定义,下列正确的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

58.以下叙述正确的是

A.函数可以嵌套定义但不能嵌套调用

B.函数既可以嵌套调用也可以嵌套定义

C.函数既不可以嵌套定义也不可以嵌套调用

D.函数可以嵌套调用但不可以嵌套定义

59.软件生命周期中花费费用最多的阶段是

A.详细设计B.软件编码C.软件测试D.软件维护

60.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序运行后的输出结果是()。

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

四、选择题(20题)61.

62.以下叙述中错误的是()。

A.C程序在运行过程中所有计算都以二进制方式进行

B.C程序在运行过程中所有计算都以十进制方式进行

C.所有C程序都需要编译链接无误后才能运行

D.C程序中字符变量存放的是字符的ASCIl码值

63.有以下程序:

程序运行后的输出结果是()。

A.let=4B.m=2C.m=6D.m=5

64.

65.

66.

67.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

68.

69.下列说法中不正确的是

A.C语言规定,不能在一个函数的内部再定义函数

B.在没有声明函数返回值类型的情况下,默认的函数返回值类型为int型

C.函数的类型可以是整型、实型、字符型,但不能是指针型

D.函数可以没有形参,但函数名后的一对圆括号不能省略

70.有以下结构体说明、变量定义和赋值语句:

则以下scanf函数调用语句有错误的是()。

A.scanf(”%s”,s[0].name);

B.scanf(”%d”,&s[0].age);

C.scanf(”%c”,&(ps一>sex));

D.scanf(”%d”,ps一>age):

71.下列程序的输出结果是()。

#include<stdio.h>

main()

{inti,s=0;

for(i=1;i<10;i++)

if(!(i%2)&&!(i%3))s+=i;

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

}A.4B.39C.45D.6

72.有两个关系R,S如下:

由关系R通过运算得到关系s,则所使用的运算为()。

A.选择B.插入C.投影D.连接

73.在面向对象方法中,实现信息隐蔽是依靠()。

A.对象的继承B.对象的多态C.对象的封装D.对象的分类

74.结构化程序设计的3种结构是()。

A.顺序结构、选择结构、转移结构

B.分支结构、等价结构、循环结构

C.多分支结构、赋值结构、等价结构

D.顺序结构、选择结构、循环结构

75.以下函数按每行8个输出数组中的数据:

下划线处应填入的语句是()。

A.

B.

C.

D.

76.下列程序的输出结果是()。

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

77.以下选项中,当x为大于l的奇数时,值为0的表达式是()。

78.有以下程序:

程序运行后的输出结果是()。

79.

80.

以下程序的输出结果是()。

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10B.13C.21D.程序陷入死循环

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str数组中,形成一个新的字符串。

例如,str1中的字符串为fshADfg,str2中的字符串为sdAEdi,则str中的字符串应为sshEdig。

请修改程序中的错误,使它能得到正确结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,函数fun()的功能是将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指字符串中剩余的字符形成的新字符串存放在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCⅡ值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCⅡ值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“BDH2345”。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序::

参考答案

1.C解析:预处理命令行是以“#”开始的语句,预处理命令行的最后不能以分号表示结束,预处理命令行。其中宏定义的字符替换的定义格式为:#define标识符字符串,预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。

2.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。

3.C程序定义一个二维字符数组a,使用5个字符串对其初始化。另外定义字符指针数组P。for循环中,每次将数组a当前下标为i的字符串首地址赋给P[i],再求得P[i]的长度赋给len,第1个printf输出p[i]字符串的首字母,第2个printf输出p[i]字符串下标从len/2开始的子字符串。当下标i=0时输出efg;当下标i=l时输出acd;当下标i=2时输出mopq;当下标i=3时输出hjkl;当下标i=4时输出rvwxyz。所以程序输出:efgacdmopqhjklrvwxyz。本题答案为C选项。

4.DC语言中,%f是格式控制符,它既可以输出单精度数也可以输出双精度数。故本题答案为D选项。

5.C

6.C

7.A

8.B解析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。夕模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的—部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取力式的描述。

9.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

10.Alink结构体中的next是链表中下一个节点的地址。由于p当前指向节点A,因此p->next是B的地址。p->next->next是C的地址,访问C的节点数据成员dt可以使用C的地址访问,即p->next->next->dt,选项B正确。或者使用解引用“*”运算符:(*p)表示节点A,(*p).next表示B的地址,*((*p).next)表示节点B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示节点C,所以C的数据成员dt可以表示为(*((*(*p).next).next)).dt,因为“.”运算符优先级高于“*”运算符,所以也可以写为(*(*(*p).next).next).dt,选项C正确。同理,也可以既使用指针运算符,又使用解引用运算符来访问C的节点数据成员dt,即(*(p->next->next)).dt,选项D正确。选项A中,*p表示A节点,(*p).next表示节点B的地址,由于“->”运算符的优先级高于“*”运算符,因此先执行“->”,即表达式(*p).next->next->dt引用了C节点的数据成员dt,然后再执行解引用运算“*”,这是错误的。故本题答案为A选项。

11.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。

12.D

13.C

14.D

15.Celse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。

16.C

17.D

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

19.D结构体指针变量p指向a数组的第1个元素,所以“p->x”为20。执行“p=p->y”后,p指向数组a的第2个元素,所以输出15。故本题答案为D选项。

20.B解析:二维数组的元素在内存中是按行列顺序连续存放的。以本题的二维数组a[3][6]为例,它的元素在内存中的存放顺序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可见,第10个元素就是第2行第4个元素,即a[1][3]。故应该选择B。

21.t"%f%f"a=b

22.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。

23.00解析:本题中的for循环共执行了6次,每执行一次将相应i的值相乘,最后当i=-1时停止循环.该for循环执行完后t的值为5*4*3*2*1*0=0,故最后输出I的值为0。

24.00解析:本题考查数据类型及其运算的逻辑运算,c为空格字符但其ASCII码不为0,所以!c=0,在逻辑与运算中,只要有一项为假,其值为0,所以b的值为0。

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

26.structDATEd={2006101};structDATEd={2006,10,1};解析:在C语言中,结构体变量定义语句的一般形式如下:

struct<结构体名><结构体对象名>[=<初始化列表>];

在本题中,<结构体名>是DATE,<结构体对象名>题目要求为d,而可有可无的<初始化列表>本题要求为{2006,10,1}。故应该填structDATEd={2006,10,1};。

27.246

28.structlist*q

29.物理独立性物理独立性解析:数据的物理结构改变,不影响数据库的逻辑结构,从而不引起应用程序的变化,这种性质叫做物理独立性。

30.1515解析:本题首先定义了一个变量x并初始化为20。然后第一个if语句判断x是否>10,结果为真,则执行后面的输出语句,输出结果是赋值表达式X-=5的值,所以输出15,同时x的值也变成15。第二个if语句再判断x是否>15时条件为假,结束程序。所以程序运行后的输出结果是15。

31.1010解析:此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以追回值a+4=6+4=10。

32.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。

33.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

34.

35.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

36.11解析:本题考查C语言中的if-else语句。if语句中的条件表达式p=a!=0是一个赋值语句,将关系表达式a!=0的结果赋值给变量p。因a=5,所以a!=0的结果为1,即p=1,条件为真,所以执行if后面的语句printf('%d\\n',p),输出结果为1。

37.k<=nk++k<=n\r\nk++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句“k++;”。

38.

39.逻辑数据模型逻辑数据模型解析:数据是现实世界符号的抽象,而数据模型(datamodel)则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束行为,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型按不同的应用层次分成3种类型,它们是概念数据模型(conceptualdatamodel)、逻辑数据模型(logicdatamodel)、物理数据模型(physicaldatamodel)。

40.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。

41.D解析:主要考查运算符的优先级。sizeof的优先级最高,后面的顺序是:%、<<、>,优先级最低的是“=”。

42.B解析:题目中定义了一个指针变量作为函数f()的参数。主函数main()中调用f()函数,当i=0时,执行语句“(*q)++;”,此处*q就代表数组a[0]的地址,也即将q进行加1操作;当i=1时,q仍指向数组元素a[0]的地址,因为在函数f()中并未对指针变量q做任何变动,即*q仍代表数组元素a[0]的值,所以此次(*q)++即为2+1,a[0]的值变为3;直到i=4时,执行(*q)++后a[0]的值变为6,最后输出数组a的结果为6、2、3、4、5。

43.B解析:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。算法具有五个重要特性:

①有穷性:一个算法必须总是在执行有限步之后结束,且每一步都可在有限时间内完成。

②确定性:算法中每一步骤都必须有明确的定义,不允许有模棱两可的解释,也不允许有多义性,对于相同的输入只能得出相同的输出。

③可行性:算法中描述的操作可以通过已经实现的基本运算执行有限次来实现。

④输入:一个算法有零个或多个的输入。

⑤输出:一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。

44.D解析:输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。

45.A解析:p=&y使指针p指向y,x=*p++使x=y,P指向下一个数据。

46.C解析:选项A中定义两个变量a和b,并赋初值,C语言中可以同时定义多个变量,但变量之间必须用“,”隔开,显然,选项A中少了一个逗号“,”,故选项A不正确;选项B中定义变量时用了连续的赋值语句,这在定义变量是不正确的,故选项B不正确,选项D定义一个指针,然后定义了一个变量并让这个变量的初值为该指针变量,显然这这时的指针变量还没初始化就被赋值给变量,是不对的,故选项D不正确,所以,4个选项中选项C符合题意。

47.A

48.B解析:本题考核的知识点是如何使用typedef定义新的类型。本题通过typedef在定义一个结构体类型的同时,把它自定义成类型名PER,故PER是结构体类型名。所以,4个选项中B为所选。

49.C

50.A解析:本题使用了一个双重for循环,外循环变量m的变化范围是0~2,而内循环变量n的变化范围从0~m,所以执行循环体时(m,n)的值依次为(0,0),(1,0),(1,1),(2,0),(2,1),(2,2),故输出的是3×3矩阵的下三角元素。所以应该选择A。

51.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。

52.B解析:在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项A错误;选项C中定义的是一个字符变量C;选项D)中整型数组a中只能存储整型数据,而不能存储字符串常量“0123”。

53.C

54.B解析:argc=3,argv[1]='hello',argv[2]='good'。注意:printf格式串中是%c,因此输出argv[1]和argv[2]的第一个字符,即'hg'。

55.A解析:本题考查逻辑与运算符&&。在C语言中使用运算符“&&”连接两个表达式,也可以表示逻辑与运算符。在C语言中不允许出现a<=b<=c这种格式。

56.D解析:当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x[10]不论是否为其元素初始化,它所分配的存储空间仍为2*10=20个字节。

57.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

58.D解析:在C语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。注意:函数不能嵌套定义,但可以嵌套调用,故选项A)、B)和C)中的描述都错误。

59.D解析:软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。

60.D解析:位与运算符“&”,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0;取反运算符“~”,用来对一个二进制按位取反,即将0变1,1变0。在prinf()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0。

61.C

62.BC程序在运行过程中的所有计算都以二进制方式进行,所以B选项错误。

63.C第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}=i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。第二次外循环i的值为2,j的值为3,满足条件,执行break语句,跳出循环。

64.D

65.C

66.D

67.D程序调试的任务是诊断和改正程序中的错误。

68.A

69.C本题主要考查函数定义的基本知识。函数是C语言的基本组成部分,用来完成子程序的功能。一个完整的C程序包括一个main()函数(主函数)和若干个其他函数,C程序从main()函数开始执行。

在C语言中,函数定义是平行的,函数不能嵌套定义,即一个函数不能在另一个函数内部定义,函数之间没有从属关系。函数定义表达的一般形式为:

<函数返回值类型>函数名(<类型名><形式参数1>,<类型名><形式参数2>,……)

{

函数体变量定义部分;

函数体语句部分;

}

其中,<函数返回值类型>部分可以省略,默认为整型。函数返回值类型可以为各种整型、字符型、实型,还可以是指针类型。这里需要注意,在定义没有形参的函数时,函数的括号不能没有,如果没有,就不是函数了,很有可能被当成变量处理。

70.D本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps一>age为一个变量,不是指针,所以错误。

71.Dif语句的条件是当i既是3的倍数又是2的倍数时成立,所以此程序实现的功能是将10以内既是3的倍数又是2的倍数的数相加。

72.CC专门的关系运算有3种:投影、选择和连接。选择运算是

温馨提示

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

评论

0/150

提交评论