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

下载本文档

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

文档简介

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

一、单选题(20题)1.已定义以下函数fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函数的功能是

A.将p1所指字符串复制到p2所指内存空间

B.将P1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查P1和p2两个指针所指字符串中是否有'\0'

2.有以下程序:

程序运行后的输出结果是()。A.34B.55C.10D.18

3.若有定义:“inta,b;”,通过语句“scan[("%d;%d".,&a,&b);”,能把整数3赋给变量a,5赋给变量b的输入数据是()。

A.35B.3,5C.3;5D.35

4.

5.函数fread(buffer,size,count,fp)中buffer代表的是()。

A.—个存储区,存放要读的数据项

B.一个整数,代表要读入的数据项总数

C.一个文件指针,指向要读的文件

D.—个指针,指向读入数据要存放的地址

6.结构化程序所规定的三种最基本控制结构是A.A.输入、处理、输出

B.树形、网形、环形

C.顺序、选择、循环

D.主程序、子程序、函数

7.

8.用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串

A.12B.14C.18D.24

9.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

10.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

11.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}

A.20B.21C.22D.23

12.下面程序运行的结果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

13.某堆栈的输入序列为a,b,c,d,下面的四个序列中,不可能是它的输出序列的是()。

A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b

14.设有以下语句:intx=10;x+=3+x%(3),则x的值是()。

A.14B.15C.11D.12

15.是哈希查找的冲突处理方法()。

A.求余法B.平均取中法C.二分法D.开放地址法

16.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。

A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}

C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}

17.下列给字符数组初始化中,()是正确的。

A.chars2[3]="xyz";

B.chars1[]="abcd";

C.chars3[][3]={'a','x','y'};

D.chars4[2][3]={"xyz","mnp"};

18.有以下程序:voidfunl(char*p)程序执行后的输出结果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

19.C语言常量的类型从字面形式上可区分,以下判断中正确的是()。

A.2E3——整型B.2.0E3——实型C.‘\025’——字符串D.“a”——字符型

20.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。

A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车

二、2.填空题(20题)21.下列程序输出的结果是【】。

fun(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=2,m=1,n;

n=fun(k);

n=fun(m);

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

}

22.以下程序的输出结果是【】。

intfun(int*x,intn)

{if(n==0)returnx[0];

elsereturnx[0]+fun(x+1,n-1);

}

main()

{inta[]={1,2,3,4,5,6,7};

printf("%d\n",fun(a,3));}

23.有以下程序

voidf(inty,int*x)

{y=y+*x;*X=*X+y;}

main()

{intx=2,y=4;

f(y,&x);

printf("%d%d\n",x,y);

}

执行后输出结果是______。

24.单元测试又称模块测试,一般采用【】测试。

25.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在下划线内填入正确内容。

{intdata;structlink*next;}

main()

{structlink*head;

sum(head);

┆}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

26.数据结构分为线性结构和非线性结构,带链的队列属于[]。

27.下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}

28.以下程序的输出结果是【】。

#include<string.h>

main()

{chara[]={'\1','\2','\3','\4','\0'};

printf("%d%d\n",sizeof(a),strlen(a));

}

29.以下程序的辅出结果是【】。

voidfun(ints[])

{inti;

for(i=0;i<10;i++)printf("%d",s[i]);

printf("\n\n");

}

main()

{inta[3][4]={{99,2},{3,4,5},{6,7,8}};

fun(a[0]);

}

30.下列程序运行后的输出的结果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

运行程序,输入HOWAREYOU。

31.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。

32.以下程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。请填空。

#include"stdio.h"

main()

{chara1[20],a2[20];intn=0,t;

scanf("%st",a1);scanf("%s",a2);

while(a1[n]!=a2[n]&&(a1[n]!=【】))

{t=【】;

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

33.在对文件进行操作的过程中,若要求指针的位置回到文件的开头,应当调用的函数是【】。

34.以下程序的输出结果是【】。

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

35.类是一个支持集成的抽象数据类型,而对象是类的【】。

36.设y为血型变量,请写出描述“y是偶数”的表达式______。

37.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

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

}

执行后输出结果是【】。

38.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。

39.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

40.以下程序的输出结果是【】。

main()

{inta=177;

printf(“%o\n”,A);

}

三、1.选择题(20题)41.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表

42.设有定义:floata=2,b=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是

A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)

43.有以下程序#include<stdio.h>#include<string.h>typedefstrtlct{charname[9];charsex;floatscore[2];}STU;voidf(STUA)

{STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b

A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90

44.若有以下说明和语句:intc[4][5],(*p)[5];p=C;能够正确引用c数组元素的是______。

A.p+1B.*(p+1)C.*(p+1)+3D.*(p[0]+2)

45.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

46.若有说明chart;,下列表达式不正确的是______。

A.t=97B.t='a'C.t="a"D.t='a'+'b'

47.若有定义:"inta[2][3];"则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

48.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main{int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}

C.#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}

D.#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}

49.下面叙述正确的是()

A.define和auto都不能定义为用户标识符

B.可以把define和auto定义为用户标识符

C.可以把define定义为用户标识符,但auto是C语言的关键字

D.可以把auto定义为用户标识符,但define是C语言的关键字

50.下列属于不合法的main函数命令行参数表示形式的是()。

A.main(intargv,char*argc[])

B.main(intargv,char*argc)

C.main(intargv,char**arc)

D.main(intargc,char*argv[])

51.设有以下程序:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];下面选项中,表达式值为6的是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

52.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

53.以下程序的输出结果是

#include

inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;

main()

{p=(int*)malloc(sized(int));

f(p,a);

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

free(p);}

f(int*s,intp[][3])

{*s=p[1][1];}

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

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

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

55.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的______。

A.总貌B.细节C.抽象D.软件的作用

56.模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的—类是______。

A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚

57.关于结构化程序设计原则和方法描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中所没有的控制结构,应该采用前后一致的方法来模拟

58.以下程序的输出结果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);}

A.100200B.57C.200100D.75

59.设有以下说明语句:structex{intx;floaty;charz;}example;在下面的叙述中,不正确的一条是______。

A.struct是结构体类型的关键词

B.example是结构体类型名

C.x,y,2都是结构体成员名

D.structex是结构体类型

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

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

四、选择题(20题)61.以下选项中,当x为大于l的奇数时,值为0的表达式是()。

62.在软件生产过程中,需求信息的给出是______。A.A.程序员B.项目管理者C.软件分析设计人员D.软件用户

63.

64.

65.

66.

67.以下程序运行后的输出结果是()。

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

68.以下叙述中错误的是

A.C语言源程序经编译后生成后缀为.obj的目标程序

B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C.用C语言编写的程序称为源程序,它以ASCII码形式存放在一个文本文件中

D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

69.有以下程序#include<stdi0.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(”%d\n”,m);}intf(intx){returnx*2;}程序运行后的输出结果是()A.8B.2C.4D.1

70.在关系数据库中,用来表示实体之间联系的是()。

A.二维表B.E—R图C.元组D.文件

71.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

程序运行后的输出结果是

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

72.为了避免嵌套的条件分支语句if—else的二义性,C语言规定:C程序中的else总是与_____组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if

73.设有定义:,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()。

74.

75.

76.

77.结构化程序设计主要强调的是()。

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

78.有以下程序段

#include<stdio.h>

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","newworld");

fun("test.t","hello,");}

程序执行后,文件test.t中的内容是A.A.hello,

B.newworldhello,

C.newworld

D.hello,rld

79.

80.软件详细设计产生的图如下:该图是()。

A.N—s图B.PAD图C.程序流程图D.E—R图

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

参考答案

1.A解析:fun()函数中声明了两个字符串指针作为形参,在其函数体中用了一个while循环,首先while括号内表达式*p2=*p1是将p1所指的内容赋值到P2所指的存储空间中,然后再判断是否为'\\0',表达式的值为真时,执行循环体,指针p1和指针P2分别下移一位,当p1指向字符'\\0'时,表达式的值为假,循环结束,故此函数的功能是将p1所指字符串复制到p2所指内存空间中。

2.D题干中,函数fun的功能是通过递归,将数组a中下标为0~n-1位置的元素累加,作为函数返回值返回。main函数调用fun时,传入的a+2作为数组参数,传入n的值是4,所以函数返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序输出18。本题答案为D选项。

3.C\n在输入时必须遵守scanf函数中的格式才能正确地赋值给相应的变量,由于scanf函数为“%d;%d”,所以在输入时要输入3;5,答案为C。

\n

4.C

5.Dfread函数用来读二进制文件,其中buffer是数据块的指针,它是内存块的首地址,输入的数据存入此内存中;size表示每个数据块的字节数;count用来指定每读一次读入的数据块个数;fp是文件指针,指向要读的文件。选项A、B、C错误。本题答案为D选项。

6.C解析:结构化程序设计方法采用顺序、选择和循环三种基本程序控制结构编写程序,从而使程序具有好的结构。

7.C

8.B

9.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

10.A解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。

11.B解析:第1个循环对数组a进行赋值:第2个循环对数组p进行赋值;第3个循环对k进行累加,k的初值等于5,第1次循环,k=k+p[0]*2=5+0*2=5,第2次循环,k=k+p[1]*2=5+2*2=9,第3次循环,k=k+p[2]*2=9+6*2=21并输出。

12.C解析:表达式“x+=-z---y”等价于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

13.D

14.A

15.D

16.CC语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。

17.A

18.A本题中使用了函数的调用,由funl函数中的while循环可知,循环的作用是为了把q所指向的内容增加1,而从主函数传到函数时是从下标为3开始传,因此当调用函数执行完后,传过去的字符串为hsbn,前面不变。

19.B2E3是实型常量的指数形式,选项A错误;2.0E3是实型常量的指数形式,选项B正确;‘\\025’是八进制表示的转义字符,选项C错误;“a”是双引号标注的字符串常量,选项D错误。故本题答案为B选项。

20.D

21.6

22.1010解析:题目中的fun()函数直接调用了自身,所以它是递归函数。函数中只有一条if语句,意思是:若n为0,则返回x所指内容(x[0]等价于*x),否则返回x所指内容加上fun(x+1,n-1)。即,当n>0时,fun(x,n)=x[0]+fun(x+1,n-1)=x[0]+x[1]+fun(x+2,n-2)=…=x[0]+x[1]+…+x[n];当n=0时,fun(x,n)=x[0];当n<0时,函数将无限循环递归调用下去,因为n-1下去永远也不会等于0。所以本题中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故应该填10。

23.8484解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

24.白盒法白盒法

25.structlink*headstructlink*head解析:因为本题中是用结构体变量构成了链表,所以要从链表头节点逐个节点的引用结构体的数据域,需要有个指向结构体变量的指针依次指向各个节点,即p=p->next,而用指针引用结构体成员数据的方法为:p->data。注意:结构体变量和共用体变量之间的区别为联系。

26.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。

27.i<10i<10解析:分析程序,当(i=0,1,2,…)时,“j=i*10+9”语句的运行结果是(9,39,69,99)个位数为9的所有整数;题中要求是100以内的整数,所以i<10;“if(j%3!=0)continue;”语句的功能是当条件不能被3整除时,继续循环不执行操作,直到能被3整除时输出该数,即输出的数满足条件100以内能被3整除且个位数为9。

28.545\u3000\u30004解析:字符串处理函数strlen()返回的是字符数组的实际长度,不包括字符申结束标志‘\\\u30000’。而sizeof运算符则计算的是字符数组的总长度,包括串末尾的结束标志。

29.9920O345067

30.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符串,则不能使用scanf()函数,所以本题中输入空格就返回了'\\0',s数组也就确定了,后面的输入就不再读入数组s中。

31.空间复杂度和时间复杂度算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。

32.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]

33.rewindrewind解析:库函数rewind()的作用是使文件位置指针重新返回文件的开头,所以本题应该填rewind。

34.99解析:本题要输出的结果是字符串'IBM\\n012\\1\\\\'的长度,'IBM'是3个字符,\'\\n\'是1个字符,'012'又是3个字符,最后的\'\\1\'和\'\\\\\'都是1个字符。所以最终字符串的长度应该是3+1+3+1+1=9。故本题应该填9。

35.实例将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。

36.(y%2)==0(y%2)==0解析:因符合偶数的条件是对2取余为0,所以要描述y是偶数的表达式是(y%2)==0。

37.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。

38.x+=1;

39.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

40.261261解析:在控制格式符中“o”代表的是将数据按八进制数输出,十进制数的177代表的八进制数是261。

41.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。

42.B解析:选项B中由于1和2都是整型,其1/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4个选项中选项B符合题意。

43.A解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。

44.D解析:p是指向一个一维数组的指针,选项A、B和C中都是地址,而非数组元素。选项D正确。

45.B解析:关系数据库逻辑设计的主要工作是将\ue008E-R\ue009图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

46.C解析:选项A将97作为ASCII码值(小写字母a的ASCII码值)赋给字符变量t。选项D将字符a和字符b的ASCII码值的和赋给变量t。选项B是将字符a的ASCII码值赋给变量t,也是正确的。选项C中的“a”是字符串常量,不是字符常量。

47.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i][j];⑤*(&a[0][0]+3*i+j)。

48.C解析:选项A和B中p指向局部变量s的地址,退出函数fun后,该局部变量也被释放,不能使p指向一个整型单元地址;选项D中通过malloc函数分配一个整型地址,但不能被返回到main函数中,因为指针参数指向的地址不能被改变;选项C中,p是指向指针的指针,函数fun改变的是其指向的内容,而不是其地址。

49.C

50.B解析:main函数通常可用两个参数,参数名可由用户自定,但类型是固定的,第一个参数必须是整型,第二个参数是一个指向字符型的指针数组的指针,可以表示为**arc或*argc[]。4个选项中只有选项B不符合。

51.D

52.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:

(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。

(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。

(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。

(4)++和--运算符的结合方向是“自右向左”。

(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。

53.D解析:本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

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

55.A

56.D解析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。

57.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。

58.B解析:函数fun中的a和b是全局变量,在main函数中全局变量a和b不起作用。因此调用函数fun后main中a和b的值不变,a=5、b=7。

59.B解析:example是结构体类型变量名,因此选项B的说法是不正确的。

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

61.A当X为大于1的奇数,x%2==0表达式为0,所以选择A)。

62.D本题主要考查软件开发过程中,各角色的任务。在软件开发过程中,需要参与过程的角色主要有用户、软件分析人员、软件设计人员、项目管理人员和程序员等。其中为系统提供需求信息的是用户的事情。

63.C

64.D

65.A

66.A

67.C函数f的功能是利用冒泡排序方法,将二维字符数组的前n行进行递增排序。

注意,本题目排序时整个字符串都交换。数组P排序后

温馨提示

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

评论

0/150

提交评论