2021-2022年吉林省吉林市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2021-2022年吉林省吉林市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2021-2022年吉林省吉林市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2021-2022年吉林省吉林市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2021-2022年吉林省吉林市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年吉林省吉林市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序运行后的输出结果是()。A.30B.40C.10D.20

2.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序运行后的输出结果是()。A.3B.8C.4D.9

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

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

4.下列叙述中,不符合良好程序设计风格的是()。

A.程序的效率第一,清晰第二B.程序的可读性好C.程序中有必要的注释D.输人数据前要有提示信息

5.有以下程序:#include<stdio.h>#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf(“%4.1f\n”,S(a+b));}程序的运行结果是()。

A.7.5B.31.5C.程序有错,无输出结果D.14.0

6.

7.有3个关系R、S和T如下.

则由关系R和S得到关系T的操作是()。A.自然连接B.差C.交D.并

8.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______

A.有向完全图B.连通图C.强连通图D.有向无环图

9.第

17

若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

10.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;执行该程序段后,k的值是()。

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

11.程序设计的任务包括()。

A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确

12.

有以下程序:

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.i-1B.iC.i+1D.4一i

13.

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

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]-1;

else

p[1][i]=1;

}

printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

}

A.8B.7C.12D.9

14.若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是()。

A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环

15.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

16.当变量c的值不为2、4、6时,值为“真”的表达式是()。

A.(c>=2&&c<=6)&&(c%2!=1)

B.(c==2)||(c==4)||(c==6)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)||(c!=3)||(c!=5)

17.以下对于C语言的描述中,正确的是:()

A.C语言调用函数时,值传递方式只能将实参的值传给形参,形参的值不能传递给实参

B.C语言中函数既可以嵌套定义,也可以递归调用

C.函数必须有返回值

D.C程序中有调用关系的所有函数必须放在同一源程序文件中

18.在计算机中,算法是指()

A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法

19.有以下程序:#include<stdio.h>structS{inta,b;}data[2]=110,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(p.a));}程序的运行结果是()。

A.10B.11C.20D.21

20.算法的时间复杂度是指A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数

二、2.填空题(20题)21.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。

22.下面程序的输出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

23.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

24.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar(

n1=ch1-'0';n2-n1*10+(ch2-'0');

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

}

程序运行时输入:12<回车>,执行后输出结果是______。

25.面向对象的模型中,最基本概念是对象和【】。

26.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要修改相应的应用程序,称为【】。

27.若s是int型变量,且s=8,则s%3+(s+1)%3表达式的值为()。

28.当输入1、3、2时,程序运行的结果为【】。

#include<math.h>

main()

{floata,b,c,disc,x1,x2,p,q;

do

{scanf("%f,%f,%f",&a,&b,&c);

disc=b*b-4*a*c;

}while(disc<=0);

p=-b/(2*a);q=sqrt(disc)/(2*a);

x1=p+q;x2=p-q;

printf("\nx1=%6.2f;x2=%6.2f\n",x1,x2);

}

29.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。

30.有以下程序;

inta=2;

intf(int*A)

{return(*A)++;}

main()

{ints=0;

{inta=5;

s+=f(&A)

}

s+=f(&A)

printf("%d\n",s)

}

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

31.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

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

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

main()

{

inta[]={2,4,6},*prt=&a[0],x=8,y,z;

for(y=0;y<3;y++)

z=(*(ptr+y<x)?*(ptr+y):x;

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

}

34.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

doublefun(doublex){return(x*x-2*x+6);}

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun([6]);

y2=fun([7]);

printf("y1=%lf,y2=%lf\n",y1,y

35.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

36.以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的

末尾。单向链表的头指针作为函数值返回。请填空。

#include<stdio.h>

structlist

{chardata;

structlist*next;

};

structlist*creat;

{structlist*h,*p,*q;

charch;

h=(【】)malloc(sizeof(structlist));

p=q=h;

ch=getchar();

while(ch!='?')

{p=(【】)mallco(sizeof(structlist));

p->data=ch;

q->next=p;

q=p;

ch=getchar();

}

p->next='\0';

【】;

}

37.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

scanf(“%d”,______);

printf(“%d\n”,______);

38.计算机病毒除有破坏性、潜伏性和激发性外,还有一个最明显的特性是【】

39.下列程序的输出结果是______。

#defineLEN5

inta[LEN],k;

main()

{fun1();

fun2();

}

fun1()

{for(k=0;k<LEN;k++)

a[k]=k;

}

fun2()

{intk;

for(k=0;k<LEN;k++)

printf("%d",*(a+k));

}

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

三、1.选择题(20题)41.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。

A.if(a>b)&&(b>c))k=1;elsek=();

B.if((a>b)||(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=1;

D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;

42.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为

A.21B.78C.23D.28

43.下面程序的输出结果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

44.若有说明语句:inta,b,c,*d=&c:,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是

A.scanf("%d%d%d"&a,&b,D)

B.scanf("%d%d%d"&a,&b.&D)

C.scanf("%d%d%d",a,b,D)

D.scanf("%d%d%d",a,b,*D)

45.请读程序:#include<stdio.h>Charfun(char*c)(if(c<='z'&&*c>='A')*c-='A'-'a'return*c;}main(){chars[81],*p=s;gets(s);while(*p){*p=fun(p);putchar(*p);p++;puchar('\n');}若运行时从键盘上输入OPENTHEDOOR<CR>(<CR>表示回车),则上面程序的输出结果是()

A.oPENtHEdOOR

B.opethedoor

C.OPENTHEDOOR

D.OpenTheDoor

46.结构化程序设计主要强调的是

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

47.计算机病毒不能破坏()中的软件。

A.ROMB.RAMC.软盘D.硬盘

48.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_

49.C语言中用于结构化程序设计的3种基本结构是()。

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

B.if、switch、break

C.for、while、do-while

D.if、for、continue

50.以下程序的输出结果是______。main(){inta=3;printf("%d\n",(a+=a-=a*A));}

A.-6B.1C.2D.-12

51.语句“printf("%d\n",12&012);”的输出结果是______。

A.12B.8C.6D.12

52.结构化程序设计主要强调的是______。

A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性

53.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()

A.每个元素都有一个直接前件和直接后件

B.线性表中至少要有一个元素

C.表中诸元素的排列顺序必须是由小到大或由大到小

D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件

54.在设计程序时,应采纳的原则之一是()。

A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解

55.下列选项可以正确表示字符型常量的是

A.'\r'B.aC.\897D.296

56.有以下程序:#include<stdio.h>voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其输出结果是()。

A.5353B.5335C.3535D.3553

57.对于下述程序,在方式串分别采用"wt"和"wb"运行时,两次生成的文件TEST的长度分别是

#include<stdio.h>

voidmain()

{FILE*fp=fopen("TEST",);

fputc(′A′,fp);fputc(′\n′,fp);

fputc(′B′,fp);fputc(′\n′,fp);

fputc(′C′,fp);

fclose(fp);}

A.7字节、7字节B.7字节、5字节C.5字节、7字节D.5字节、5字节

58.下列不正确的转义字符是()。

A.'\\'B.'\t'C.'\n\D.'088'

59.有以下程序:voidsott(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;)}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},I;sort(aa+2,5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序运行后的输出结果是______。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,7,6,3,4,5,8,9,10,

C.1,2,7,6,5,4,3,8,9,10,

D.1,2,9,8,7,6,5,4,3,10,

60.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是

A.fopen(“A:\user\abc.txt”,“r”)

B.fopen(“A:\\user\\abc.txt”,“r+”)

C.fopen(“A:\user\abc.txt”,“rb”)

D.fopen(“A:\user\\abc.txt”,“w”)

四、选择题(20题)61.(52)栈和队列的共同点是()

A.都是先进后出B.都是先进先出

C.只允许在端点处插入和删除元素

D.没有共同点

62.设有定义

63.有以下程序:

voidmain()

{

inty=10;

while(y>>1){printf("y=%d\n",y);}

}

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

A.y=0

B.y=-1

C.y=1

D.while构成无限循环

64.

65.

66.有以下程序:

注意:字母a的ASCIl码值为97,程序运行后的输出结果是()。

A.dB.goC.godD.good

67.以下叙述中错误的是(

)。A.函数形参的值也可以传回给对应的实参

B.函数调用可以作为一个独立的语句存在

C.若函数有返回值,必须通过r;mm语句返回

D.C程序必须由一个或一个以上的函数组成

68.已定义以下函数

fun(char*p2,char*p1)

{

while((*p2=*p1)!=’\0’){p1++;p2++;}

}

函数的功能是

A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有’\0’

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

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

70.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

71.C语言的基本单位是()。

A.函数B.过程C.子程序D.子函数

72.

73.

74.有以下程序

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

A.15B.12C.16D.20

75.在计算机中,算法是指()

A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法

76.以下不合法的字符常量是()。

77.以下不能将a所指字符串正确复制到所指存储空间的是()。

78.有以下程序main(){intc=35;printf("%d\n",c&c);}程序运行后的输出结果是______。

A.0B.70C.35D.1

79.

80.有以下程序:

#include<stdio.h>

main()

{inta;

scanf("%d",&a);

if(a++<9)printf("%d\n",a);

clscprintf("%d\n",a--);

}

程序运行时从键盘输入9<回车>,则输出结果是()。

A.10B.11C.9D.8

五、程序改错题(1题)81.下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。

请修改函数proc()中的错误,使它能得出正确的结果。

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

试题程序:

六、程序设计题(1题)82.数组point中存放着m个人的成绩,请编写函数fun().它的功能是:返回高于平均分的人数,并将高于平均分的分数放在high所指的数组中。例如,当point数组中的数据为50,60,65,70.75,80.88,90,95时,函数返回的人数应该是5,high中的数据应为75,80,88,90,95。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。注意:部分源程序给出如下。试题程序:

参考答案

1.AFor循环结束后,数组a的值并没有变化,由于数组是由0开始,所以a[2]的值是30。

2.B本题考查strlen函数和转移字符,strlen函数的功能是求字符串的长度,在本题中有“\”,C语言中“\”是转义字符,在计算长度时会将转义符以及后面的第一个字符作为1个长度进行计算,所以答

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

4.A一般来讲,程序设计风格首先应该简单和清晰,其次程序必须是可以理解的,可以概括为“清晰第一,效率第二”。

5.C宏定义不是C语句,末尾不需要有分号。语句“printf(“%4.1f\\n”,S(a+b));”展开后为“printf(“%4.1f\\n”,3.5;*a+b*a+b;);”,所以程序会出现语法错误。故本题答案为C选项。

6.A

7.B关系之间的操作分为自然连接、投影、交、并、差等,由图可知此操作为差操作。

8.D

9.B解析:条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非O(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、--的用法。

10.B解析:因为a<b成立,所以条件表达式a<b?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

11.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。

12.B

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

\n

13.B

\n本题考查for循环及if…else语句嵌套,第1次执行for循环,p[1][0]=p[1][0]=p[1][0]-1=3;第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=l,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

\n

14.D此题考查的是基本的循环,答案为D。

15.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.

16.D逻辑或运算中只要有一个运算量为真,结果就为真。当“c>=2&&c<=6”条件不成立时,c的值肯定不是2、3、4、5、6,“c!=3”与“c!=5”均成立,所以D选项的结果一定为真。故本题答案为D选项。

17.A

18.B在计算机中,算法被定义为对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。算法具有有穷性、确定性、可行性、输入和输出五大特点。

在本题中,选项A、C、D的说法明显偏离了算法的定义,因此正确答案选B。

19.D声明data是结构体S的数组,初始化data[0].a=10,data[0].b=100,data[l].a=20,data[1].b=200。主函数中“p=data[1];”,即p.a=data[1].a,p.b=data[1].b,执行语句“printf(“%d\\n”,++(p.a));”。输出时,p.a先增1再输出,p.a=data[1].a=20,先增1等于21。故本题答案为D选项。

20.DD。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模。09函数fin),算法的时间复杂度也因此记做T(n)=O(f(n))。因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeComplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。

21.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。

22.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

23.1616解析:函数运算不改变数据类型,所以结果也是double型,fabs(x)是对x取绝对值,pow(y,fabs(x))是y的labs(x)次幂,即2.04。0=16.000000(注意;结果为double型)。

24.1212解析:本题考核的知识点是字符类型数据的表示方法和存储形式。字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=ch1-'0'='1'-'0'=49-48=1n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为12。

25.类类解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化:将属性集和方法集相同的所有对象组合在一起,可以构成一个类。

26.逻辑独立性逻辑独立性解析:数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。

27.22解析:考查基本表达式的计算,“%”运算符的功能是取余。题中条件s=8,则s%3=2,(s+1)%3=9%3=0,所以表达式s%3+(s+1)%3=2+0=2。

28.x1=-1.00;x2=-2.00

29.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

30.77解析:如果局部变量与全局变量重名,在局部变量的作用域,全局变量不起作用。所以在main函数中第一次调整函数f时a=5得s=5,第二次调用函数f时a=2得s=5+2=7。函数f在执行语句return(*A)++时首先返回*A,然后将*A的值加1。

31.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

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

33.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系个表达式(*ptr+y)<x)?(ptr+y):x的值,再赋绐变量z,当y=O时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(pry)=2,所以z=2;当y=1时*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,*((ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

34.

35.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

36.strcurlist*strucrlist*return(h)

37.k*kk*k解析:本题考查的知识点是scarf()函数和printf()函数的用法。scanf()函数有两个参数,第一个参数是格式控制部分(格式控制部分是字符串,主要由“%”号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空格处位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成的,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第;个空位于printf()函数的第二个参数处,所以应该填*K。

38.传染性或传播性传染性或传播性

39.01234。01234。解析:函数fun1给数组a的每个元素赋值,fun2则输出结果。

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

41.A解析:“a>b?(b>c?1:0):0”的求解顺序是:先判断a>b是否为真,如果为真,则执行b>c?1:0,如果b>c为真,则(b>c?1:0)的值为1,从而整个表达式返回1,否则整个表达式返回0;如果a<=b,则表达式返回0。因此功能等价的语句应为if((a>B)&&(b>C))k=1;elsek=0;。

42.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。

43.B解析:sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;constb=12;,其中数据类型可以缺省,默认为整型;enumc{a1,a2};定义了—个枚举类型enumc,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。因此它们的字节数均为2,2,2。

44.A解析:本题考核的知识点是scanf()函数的使用。seanf()函数有两个参数,第一个参数是输入格式字符串,第二个参数是输入变量地址列表.输入格式字符串主要由“%”符号和格式字符组成。地址列表是由多个地址组成的。选项B中d已经为地址,不应在加上求地址符号“&”,故选项B不正确;选项C中,a和b都为变量不是地址,应该在a和b之前加上求地址符号“&”,故选项C不正确;选项D中指针d所指向的存储空间的位置为变量c的值,不为地址,故选项D不正确,所以,4个选项中A为所选。

45.B

46.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。

由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。

结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。

47.A

48.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。

49.A解析:本题主要考查结构化程序设计的基本结构。结构化程序设计有3种基本结构:顺序结构、选择结构、循环结构。

50.D解析:赋值运算符的结合方向是自右至左,所以表达式a+=a-=a*a先运算最右边的a*a得9,再运算a=a-9,即a=3-9,所以此时a的值由3变成了-6,最后运算a=a-+(-6),即a=(-6)+(-6)=-12。

51.B解析:012是八进制数,转换成十进制为10,12&10转换成二进制为00001100&00001010=00001000,00001000转换成十进制为8。

52.B解析:采用结构化编程方法的好处主要在于:一是便于控制、降低程序的复杂性,因此便于编写程序。二是程序清晰易读,可理解性好。因此,结构化程序设计主要强调的是程序的易读性,而不是程序的规模、程序的执行效率和程序的可移植性。

53.D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。

54.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。

55.A解析:C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的范围是0~127。由于字符常量用单引号括起来,所以选项B),C)错误,选项D)超过了字符常量的表示范围。

56.B解析:swap1函数传递的是变量的地址,可以实现两个数的交换;而swap2函数传递的是值,执行完swap2后,c0,c1的值互换了,但main函数中的b0和b1并未互换,即形参值的改变无法传给实参。

57.B解析:以'wt'方式写入的是字符文件,转义字符\'\\n\'被看作两个字符来处理。而'wb'方式写入的是二进制文件,转义字符\'\\n\'是一个字符。

58.D解析:'\\\\'是反斜线转义字符;'\\t'是水平跳格转义字符;'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。

59.C解析:aa+2=aa[2],因此sort(aa+2,5)是从aa[2]开始,依次与后面的元素进行比较,将当前值小于其后一项的值进行互换,循环5次。

60.B解析:本题考核的知识点是文件名的表示法以及文件的读写模式。由于“\\”是转义字符,所以在文件名中的“\\”用“\\\\”来表示。要打开文本文件进行读写,应使用读写模式“r+”。

61.C注:这一共同点和线性表不一样

62.A*(s+3)指针后移3个单位,为a[31的值。答案选择A)。

63.D位运算;条件判断y>>1对循环没有任何影响,始终为真,所以循环是一个无限循环。

64.D

65.C

66.Afun函数的功能是输出字符串中ASCII码能被2整除的字符,g的ASCIl码为l03,0的ASCIl码为111,d的ASCIl码为l00,只有d满足。因此,本题答案为A)。

67.A函数参数传递是个不可逆的过程,形参不会把值传回实参,所以A)选项(24)[答案]A)[解析]c的值为a乘以b的值,为3。所以答案选择A)。

68.A本题主要考查字符串的操作。从题目的选项中我们可以看出,本题给出的程序是对字符串进行相应的操作。

本题的程序是一个fun

温馨提示

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

评论

0/150

提交评论