2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.结构化程序所要求的基本结构不包括()。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构

3.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}则以下函数调用语句错误的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

4.

5.设有定义“intm=1,n=2;”,则以下if语句中,编译时会产生错误信息的是()。

A.if(m>n)m--elsen--;

B.if(m=n){m++;n++;}

C.if(m<0&&n<0){}

D.if(m>0);elsem++;

6.若定义下列结构体,结构体变量p的出生年份赋值正确的语句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;

A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;

7.查找效率最高的二叉排序树是()。

A.所有结点的左子树都为空的二叉排序树

B.所有结点的右子树都为空的二叉排序树

C.平衡二叉排序树

D.没有左子树的二叉排序树

8.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

9.

10.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序运行后输出结查是

A.16B.10C.8D.6

11.以下选项中合法的C语言常量是()。

A.‘C-STR’B.2014.1C.”\1.0D.2EK

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

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

13.若已包括头文件且已有定义charsl[18],s2={"ABCDE")和inti,现要将字符串”ABCDE”赋给sl,下列语句错误的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

14.

15.下面程序的输出结果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不确定D.bcdef

16.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

17.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。

A.intB.floatC.doubleD.不确定

18.

19.在单链表中,增加头结点的目的是______。

A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现

20.有以下程序

#include<stdio.h>

#include<stdlib.h>

main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b

printf(”%d,%d,%d\n”,*a,*b,*c);

}

程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

二、2.填空题(20题)21.以下程序运行结果是【】。

#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));}

22.下列语句的输出结果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

23.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为【】。

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

main()

{

intp[7]={11,13,14,15,16,17,18);

inti=0,j=0;

while(i<7&&p[i]%2==1)

j+p[i++];

printf(“%d\n”j);

}

25.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。清填空。

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstr1[100],str2[]="abcdefgh";

strcpy(str1,str2);

printf('%s\n",str1);

}

26.请选出以下程序的输出结果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}

27.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

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

}

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

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);

}

30.下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。

voidsub(floatx,floaty,【】z)

{【】=x+y;}

31.在面向对象方法中,类的实例称为______。

32.软件开发环境是全面支持软件开发全过程的【】集合。

33.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

34.以下程序运行时,若从键盘输入:102030<回车>,输出的结果是【】。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

printf("%d%d%d\n",i,j,k);

}

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

36.数据结构分为逻辑结构与存储结构,线性链表属于【】。

37.若有定义intm=5,y=2,则执行表达式y+=y-=m*=y后,y的值为【】。

38.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

39.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。

40.有以下程序:

#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<回车>,执行后输出结果是【】。

三、1.选择题(20题)41.有以下程序main(){inta[][3]=({1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n".a[0][1]+a[1][1]+a[1][2]);}执行后输出结果是

A.7B.6C.8D.无确定值

42.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。

A.两个语句都是将变量a的值赋予变量p

B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p

C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a

D.两个语句都是使p指向变量a

43.有以下程序:intfa(intx){returnx*x;)intfb(intx){returnx*x*x;}intf(int(*f1)().int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序运行后的输出结果是()。

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

44.若函数中有定义语句:inta;,则()。

A.系统将自动给a赋初值0B.这时a中的值是和随机数C.系统将自动给a赋初值-1D.这a中无任何值

45.根据下列的定义,能打印出字母P的语句是()

structstu{charname[10];

intage;

};

stmctstus[10]={"John",11,

"Paul",12,

"Mary",11,

"adam",12

}:

A.printf("%c",s[3].name);

B.printf("%c",s[3].name[1]);

C.printf("%c",s[2].name[11]);

D.printf("%c",s[1].name[0]);

46.若有说明语句:charc='\72'则变量c()。

A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定

47.下列叙述中,正确的是

A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系

B.用E-R图只能表示实体集之间一对一的联系

C.用E-R图只能表示实体集之间一对多的联系

D.用E-R图表示的概念数据模型只能转换为关系数据模型

48.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

49.下列程序段的运行结果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}

A.67B.0C.字符'C'的地址D.字符'C'

50.有三个关系R、s和T如下:

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

A.并B.自然连接C.笛卡尔积D.交

51.若有下面的说明和定义,则sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

52.下面程序的输出结果是()#include<stdio.h>#include<string.h>{char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2.strcat(pi,p2));printf("%s\n",str);}

A.xyzabcABB.zabcABCC.yzabcABCD.xycbcABC

53.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为

A.log2nB.n2C.O(n1.5)D.n(n-1)/2

54.设有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

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

55.若有如下程序:main(){staticchar*a[3]={"123","456","789");char**b;b=a;++b;printf("%s,%s\n",*a,*a+1);printf("%s,%s\n",*b,b[1]);}则程序运行后的输出结果是()。

A.123,456,456,789

B.123,23456,56

C.123,23456,789

D.123,456456,56

56.假设下面四个选项中所有的数都是8进制数或16进制数,均是不正确的选项是()。

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0al27ff-123

57.若有定义:inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为

A.1.4B.1C.2D.2

58.设inta=12,则执行完语句a+=a-=a*a后,a的值是()。

A.552B.264C.144D.-264

59.有以下程序:main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}程序运行后的输出结果是______。

A.随机值B.0C.5D.6

60.已知a的ASCⅡ码为97,执行下面两个语句后,输出的结果为______。charc1=97;c2=98;printf("%d%c",c1,c2);

A.9798B.97bC.a98D.ab

四、选择题(20题)61.

62.

63.有以下程序

#include<stdio.h>

#defineN4

voidfun(inta[][N],intb[])

{inti;

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

b[i]=a[i][i];

}

main()

{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

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

printf("\n");

}

程序的运行结果是

A.l,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,

64.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试计划D.需求规格说明书评审

65.执行下面的程序后,a的值为()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

66.有下列程序:

fun(intx,inty)

{staticintm=0,i=2;

i+=++rn;m=ixy;returnm;

}

main

{intj=l,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j.m);printf(”%d\n”,k);

}

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

A.5.5B.5,11C.11,11D.11,5

67.

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

#include<stdio.h>

voidmain

{intb[6]={2,4,6,8,10,12);

int*p=b,**q=&p;

printf("%d,",*(p++));

printf("%d,",**q);

}

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

68.若变量已正确定义,有以下程序段其输出结果是()。

A.0,1B.0,0C.1,1D.程序进入无限循环

69.

A.intB.floatC.doubleD.不确定

70.

71.以下选项中关于程序模块化的叙述错误的是()。

A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

C.把程序分成若干相对独立的模块,可便于编码和调试

D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

72.

73.有以下程序:

若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,c2的值为字符b,程序运行后的输出结果是:l2,a,34,b。则正确的输入格式是(以下-代表空格,<;CR>;代表回车)()。

A.12-a34-b<CR>

B.12-a-34-b<CR>

C.12,a,34,b<CR>

D.12a34b<CR>

74.

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

A.调用printf函数时,必须要有输出项

B.使用putChar函数时,必须在之前包含头文件stdio.h

C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D.调用getChar函数读入字符时,可以从键盘上输入字符所对应的ASCIl码

76.设有以下语句:

TypedefstructTT

{charc;inta[4];}CIN;

则下面叙述中错误的是()。

A.不可以用TT定义结构体变量

B.TT是结构体标识名

C.可以用CIN定义结构体变量

D.CIN是structTT类型的变量

77.有以下程序:

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

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

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

78.

79.选出下列标识符中不是合法的标识符的是()。

A.hot_doB.cat1C._priD.2ab

80.最常用的一种基本数据模型是关系数据模型,对于它的表示应采用

A.树B.网络C.图D.二维表

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:判断一个整数m是否是素数,若是返回1,否则返回0。在main()函数中,若proc()返回1,则输出″YES″;若proc()返回0,则输出″NO″!

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

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

试题程序:

六、程序设计题(1题)82.请编一个函数fun(char*str),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为asdfg,则调用该函数后,串中的内容为gfdsa。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C

2.B1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

3.DD)选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。

4.C

5.A选项A中,if语句的语句块“m--”后面少了分号,不合法,编译会出错。其他选项都是正确的。故本题答案为A选项。

6.C解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

7.C对于结点个数相同的二叉排序树,平衡二叉排序树的深度最小。而二叉排序树的查找效率取决于二叉排序树的深度。

8.A函数fgete()从文件读入一个字符到指定变量。函数fputc()将指定字符写入审文件中,函数fprinff(),fwrite()均是写入文件操作函数。因此选项B,c。D错误。答案为A选项。

9.B

10.B解析:本题考查的是指针的简单应用。题目中首先定义了一个int型数组a并初始化了,然后定义了两个指针变量p和q,并分别初始化p为指向数组元素a[3]、q指向p后面的第2个元素即指向a[5]。所以最终输出的值为a[3]+a[5]的值10。应该选B。

11.B所谓常量,是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,需要使用双引号;选项C不是合法的常量形式;选项D为实型常量中的指数形式,但指数形式e(E)之前必须是数字,之后必须为整数。故本题答案为B选项。

12.CN—s图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以8不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。

13.C数组名sl是代表sl数组首地址的地址常量,因为“=”左边不能出现常量,所以s1="ABCDE"的方法是错误的。

14.D

15.C解析:字符串少一个结束标志,所以输出的结果不确定。

16.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。

17.C

18.B

19.A\nA。【解析】头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。

\n

20.A解析:本题中,首先创建开辟一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同的变量。分别给a、b、C所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量的值,即3,3,3。所以选A。

21.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。

22.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。

23.数据字典数据字典解析:在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典。

24.2424解析:本题考核的知识点是数组的定义和数组元素的引用。主函数中首先定义了一个长度为7的数组,然后用一个while循环引用数组的元素,当i大于7或者p[i]为偶数时,循环结束。显然当i=2时,p12]=14为偶数时,循环结束,此时j的值为j=p[0]+p[1]=24;

25.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组str1和str2,并且给str2赋初值“abcdefgh”,接着调用函数strcpy(str1,str2),将字符串str2的值赋给str1。在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后将指针s和t都移到下一个元素。所以空白处应该填*t++或*(t++)。

26.C

27.QTHRGQTHRG解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若t<s,则函数值小于0。strcpy(t,s)函数的功能是把字符数组,所指字符串的内容复制到字符数组t所指的存储空间中。

本题中,t[10]='CDEF'.第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG”,if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。

28.3535解析:考查swap()函数。函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。

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

30.float**zfloat*\r\n*z解析:C程序中可以通过传送地址的方式在被调用函数中直接改变被调用函数中变量的值,从而达到函数之间数据的传递。

31.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。

32.软件工具软件工具

33.->->解析:若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。

34.1030010300解析:输入语句使i=10,j=30,k没有被重新赋值,仍为初值0。

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

36.存储结构

37.-16-16解析:将赋值运算符右侧的“表达式”的值赋给左侧的变量,并且赋值运算符按照“自右而左”的结合顺序,本题表达式应先算m的值为10,再运算y的值为8,最后计算y=y+(-8)=-8+(-8)=-16。

38.参照完整性参照完整性

39.3232解析:二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此,26-1=32.所以答案为32。

40.1212解析:字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为12。

41.A解析:本题定义了一个指向由3个元素组成的一维数组的指针变量pa,通过赋值让它指向具有2行3列的数组a,此时用指针变量pa,表示数组元素a[i][j]的形式是pa[i][j]。for循环执行了3次;第一次i值为0,执行pa[1][0]=pa[1][0]-1执行后a[1][0]的值变为3;第二次i值为1,执行pa[1][1]=pa[1][1]-1,执行后a[1][1]的值为4;第三次i值为2,执行pa[1][2]=1,执行后a[1][2]的值变为1。故printf语句输入的值为2+4+1=7。所以,A选项为所选。

42.C解析:“p”是指针变量,指向一个地址:“*p”,为p指针所指向地址的内容。

43.C解析:函数f()有3个形式参数f1、f2和x,其中f1、f2是指向函数的指针变量。在main()函数中执行了函数调用“f(fa,fb,2)”,从而使f()的形式参数f1指向了fa,形式参数f2指向了fb,把实参2传给了形参变量x。函数f()中的return语句相当于“fb(2)-fa(2)”(fb(2)的返叫值为2*2*2=8,fa(2)返回值为2*2=4)即(8-4),值为4。函数f()执行后把返回值4赋给了i,输出i的值是4。所以4个选项中C正确。

44.B本题考查变量赋值基本概念。在声明一个变量后,如果未显式的对其进行赋值,则它的值是一个随机值。

45.D解析:本题主要考查按结构数组元素方式引用结构成员。字母P为“Paul”的第一个字母,是结构体s[1]的name成员的第二个元素的值,即s[1].name[0]的值。

46.A解析:C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“\\”开头的字符。其中,“\\ddd”表示用ASCII码(八进制数)表示一个字符,本题中的charc='\\72'H口表示占一个字符的变量c的ASCII码值。

47.A解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。

48.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。

49.B解析:先定义了一个指向字符型数组str的指针p,指针p旨向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\\0',所以*(p+3)=0。

50.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。

51.D解析:结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用伸变量所占的内存长度等于最长的成员的长度。结构件变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

52.D

53.D解析:假设线性表的长度为n,则在最坏情况下,冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。

54.D解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。

55.C解析:a为指针数组,a[0]即数组a的数组名指向字符串'123'的首地址,输出*a为'123',*a+1将指针下移1个存储单元,输出字符串为”23”。a[1]指向字符串'456'的首地址,a[2]指向字符串'789'的首地址。b为指针的指针,它的值为数组a的首地址。

56.D解析:在8进制中,不可能包括8以亡的数字,它的范围只在0~7之间,以0开头。同样,十六进制是以0x开头,数字在0~9和a~f之间。

57.B解析:在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1+0.4赋值给c,由于c为整型变量所以要将1.4转换为整型,即舍弃小数位(c的值变为1)。

58.D

59.B解析:本题定义了数组x[8]和指针变量s,由C语言规定,指针加1的含义是使指针指向数组的下一个元素,而不是指针值简单的加1,因此通过s=x+3;使s指向数组元素x[3]。由于指向数据的指针变量可以带下标表示,如s[i]与*(s+i)等价。因此题目要求输出s[2]的值,即*(s+2)的值,也就是x[5]的值,为0。

60.B解析:整型数据和字符数据可以通用,变量c1和c2被定义为字符型,语句c1=97和c2=98的作用相当于执行c1='a'和c2='b'两语句。在输出语句中,%d%c是输出格式符,要求在相应位置上分别输出一个整数和一个字符。

61.B

62.D

63.B本题考查二维数组的相关操作。程序主要包括两个部分:主函数部分和fun函数。主函数初始给出了一个4×4的二维矩阵,并对每一行赋初值,可以看出每一行都要有4个元素,而对于给出的初值个数不满足4个的,要先从第一列开始将各个值赋给各列,不足的部分用0补齐。函数fun的作用是将二维矩阵a中行号与列号相同的数据赋值给一维矩阵y,y的下标与该数据在a中的行号相同。题目

温馨提示

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

评论

0/150

提交评论