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(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序运行后的输出结果是()。A.m=6B.m=2C.m=4D.m=3

2.以下不能将s所指字符串正确复制到t所指存储空间的是()A.do{*t++=*s++;}while(*s);

B.for(=0;t[的]=s@];i++);

C.while(*t=*s){t++;s++}

D.for(i=0.j=0;t[i++]=sj++];);.

3.有以下程序:程序运行后的输出结果是()。A.1.000000B.0.000000C.0.250000D.0.500000

4.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为

A.goodabcB.abcdC.abcD.abcgood

5.串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符

6.有如下程序:

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn(2);

}

main()

{printf("%d\n",fib(3));}

该程序的输出结果是A.A.2B.4C.6D.8

7.

8.下面不正确的字符赋值或赋初值的方式为()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

9.

10.算法具有五个特性,以下选项中不属于算法特性的是_____。A.有穷性B.简洁性C.可行性D.确定性

11.有以下程序:

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

A.1,3

B.2,3

C.1,4

D.1,2

12.以下程序的输出结果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

13.

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

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

15.已知a、b、c为整型变量,若从键盘输入5<空格>6<空格>7<回车>,使a的值为5,b的值为6,c的值为7,则下列选项中正确的输入语句是()。

A.scanf("%3d%3d%3d",a,b,C);

B.scanf("%d%d%d",a,b,C);

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

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

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

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

17.同一个关系模型的任意两个元组值()。

A.可以全相同B.不能全相同C.必须全相同D.以上都不对

18.向一个栈顶指针为H的链栈中插入一个s所指向的结点时,需执行()。

A.H->link=s

B.s->link=H->link;H->link=s;

C.s->link=H;H=s;

D.s->link=H;H=H->link;

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

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

20.设q1和q2是指向一个float型一维数组的指针变量,k为float型变量,则不能正确执行的语句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

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

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

22.以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件中,形成文本文件,并将字符的个数写到文件的尾部。请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[32];intcount=0;

printf(”Inputthefilename:");

scanf("%s",fname);

if((fp=fopen(【】,"w+"))==NULL)

{printf("Can'topenfile:%s\n",fname);exit(0);}

printf("Enterdata:\n");

while((ch=getchar())!='#')

{fputc(ch,fp);count++;}

fprintf(【】,"\n%d\n",count);

fclose(fp);

}

23.以下程序的功能是【】。

main()

{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

intsum=0,i;

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

if(num[i]>0)

sum=num[i]+sum;

printf("sum=%6d",sum);

}

24.已有定义如下:

structnode

{intdata;

structnode*next;

}*p;

以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。

p=(structnode*)malloc(【】);

25.下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。

#include"stdio.h"

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

26.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

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

#include<stdio.h>

func(a,B)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main0

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

28.函数sub的功能是根据下面近似分式求π的值。

(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

现在请在下面的函数中填空,完成求π值的功能。

#include"math.h"

doublesub(longm)

{doublesum=0.0,t;longn;

for(n=1;n<=m;n++)sum+=【】;

t=sqrt(6*sum);

return(t);

}

29.设y是int型,请写出y为奇数的关系表达式【】。

30.在最坏情况下,冒泡排序所需要的比较次数为【】。

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

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

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

33.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是【】

34.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

35.下面的程序用来统计文件中字符的个数。请填空。

#include<stdio.h>

main()

{FILE*fP;

longnum=0;

if((fp=fopen("fname.dat","r"))==NULL)

{printf("Can'topenfile!\n");sxit(0);}

while【】

{fgetc(fp);num++;}

printr("num=%d\n",num);

fclose(fp);

}

36.软件工程研究的内容主要包括:软件开发技术和【】。

37.在关系运算中,【】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。

38.若有以下程序:

intf(intx,inty)

{return(y-x)*x;}

main()

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

d=f(f(3,4),f(3,5));

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

}

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

39.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

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

三、1.选择题(20题)41.下列关于单目运算符++,--的叙述中正确的是

A.它们的运算对象可以是任何变量和常量

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

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

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

42.在下列关于宏定义命令#define的叙述中,正确的一条是()

A.用一个指定的标识符(宏名)来代替一个长整型数

B.用一个指定的标识符(宏名)来代替一个双精度数

C.用一个指定的标识符(宏名)来代替一个字符串

D.用一个指定的标识符(宏名)来代替一个单精度实数

43.当3.5in(英寸)软盘的写保护窗口开着时,该软盘()

A.只能写不能读B.既能读又能写C.只能读不能写D.不能使用

44.若执行以下程序时从键盘上输入9,则输出结果是______。main(){intn;scanf("%d:",&n);if(n++<10)printf("%d\n",n);elseprinf("%d\n",n--);}

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

45.下列函数的运行结果是

main()

{inti=2,p;

intj,k;

j=i;k=++i;p=f(j,k);

printf("%d",p);}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);}

A.-1B.1C.2D.编译出错,无法运行

46.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。

A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值

47.已知i、j、k为血型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

48.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

49.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

A.scanf(“%d”a,b,c);

B.scanf(“%d%d%d”,a,b,c);

C.scanf(“%d”,P);

D.scanf(“%d”,&p);

50.若有以下定义的语句

structstudent

{intage;

intnum;};

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

{structstudent*p;

p=stu;

…}

则以下不正确的引用是

A.(p++)->numB.p++C.(*p).numD.P=&stu.age.

51.C语言中下列叙述正确的是_______。

A.不能使用do...while语句构成的循环

B.do...while语句构成的循环,必须用break语句才能退出

C.do...while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do...while语句构成的循环,当while语句中的表达式值为零时结束循环

52.有以下函数定义:voidfun(intn,doublex){......}若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

53.某二叉树共有60个叶子结点与50个度为1的结点,则该二叉树中的总结点数为()。

A.148B.169C.182D.198

54.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序运行后的输出结果是

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

55.C语言中各种基本数据类型的存储空间长度排列为()。

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long~float≤double

D.float≤int≤long≤char≤double

56.不能与do…while(exp)语句中的(exp)等价的表达式是()。

A.(!exp==O)B.(exp>0||exp<0)C.(exp==0)D.(exp!=O)

57.下列程序的输出结果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

58.有以下程序:#include<stdio.h>floatf1(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0));t=p1;p1=p2;p2=t;y2=p2(p1(2.0));prinff("%3.0f,%3.Of\n",y1,y2);}程序运行后的输出结果是()。

A.8,16B.8,8C.16,16D.4,8

59.下列叙述中正确的是()。

A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构

60.下列所述中,是软件调试技术的是()。

A.错误推断B.集成测试C.回溯法D.边界值分析

四、选择题(20题)61.以下程序的输出结果为

main()

{

char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};

char**p;

inti;

p=alpha;

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

printf("%s",p[i]);

printf("\n");

}

A.ABCDEFGHIJKLB.ABCD

C.ABCDEFGHIJKLMNOPD.AEIM

62.

63.面向对象方法中,不属于对象基本特点的是()。

A.标识唯一性B.分类性C.封装性D.一致性

64.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内

B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C.在循环体内使用break语句和continue语句的作用相同

D.break语句只能用于switch语句体中

65.表示关系M<=N<=P的C语言表达式为()。

A.(M<=N.AND(N<=P.

B.(M<=N.&&(N<=P.

C.(M<=N<=P.

D.(M<=N.&(N<=P.

66.已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是

A.scanf("%2d,%2d,%2d",i,j,k);B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

67.

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

main

{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)

if(p[i]%2)j+=p[i];

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

}

A.42B.45C.56D.60

68.

设变量已正确定义,则以下能正确计算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

69.

70.

有以下程序:

main

{inti,n=0:

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

{do

{if(i%3)continue:

n++:

}while(!i);

n++:

}

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

}

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

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

71.设有以下语句

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

A.1B.16C.32D.0

73.

74.有以下程序:

程序运行后的输出结果是()。A.235B.0235C.02356D.2356

75.已定义c为字符型常量,则下列语句中正确的是()。

A)c=′97′B)c="97"

C)c=97D)c="a"

76.下列关于指针变量赋空值的说法错误的是

A.当赋空值的时候,变量指向地址为0的存储单元B.赋值语句可以表达为变量名=’\0’;

C.赋值语句可以表达为变量名=0;D.一个指针变量可以被赋空值

77.若有定义intx'y;并已正确给变量赋值。则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x_y)等价的是()。

A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)

78.

79.

若有以下程序段,w和k都是整型变量:

w=k:

LB:if(w==0)gotoLE;

W--:

printf("*")

gotoLB;

LE;

则不能与上面程序段等价的循环语句是()。

A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

80.下列数据结构中,能够按照‘‘先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:从整数l0-55,查找能被3整除且有一位上的数值是5的数,把这些:故放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放位数,a2放十位数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:

WWW

SSS

HHH

III

则字符串中的内容应是WSHIWSHIWSHI。

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

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

试题程序:

参考答案

1.A本题考查了多重for循环。当(i*j)>3时,跳出循环,本题中i=1,j=3,i*J后值为3,所以执行下边语句:m*=i+j,也可写成m=m*i+j,这时要注意优先级,所以m的值为6。

2.A[解析]do{*t++=*s++;}while(*s);不能因为当*s=^0'时,while(*s)跳出循环,这样字符串结束标志“0没有复制给*t,造成*t不完整。\u3000\u3000注意,*t++=*s++是先执行t=*s,然后才进行t=t+1.s=s+1.B),C),D)三项都能将“0复制过去。

3.D程序定义double变量x、y,给x赋初值2.0。if语句判断,当x小于0.0时,给y赋值0.0。否则当x小于10.0时,y的值为1.0/x;当x大于等于10.0时,y的值为1.0。题干中x的值为2.0,所以y的值为1.0/x,即0.500000。本题答案为D选项。

4.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件“fl.txt”,并让指针fp1指向它,接着调用fpfintf()函数将“abc”写到文件fp1所指的文件里,由于开始fp1指向文件的“fl.txt”的开始位置,因此“abc”将把文件“fl.txt”里原来的内容“good”覆盖掉,故文件“fl.txt”里最后的内容为“abc”。

5.B

6.B

7.C

8.C

9.A

10.B解析:一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入;由一个或多个输出.简洁性不属于这5个特性,所以本题应该选择B。

11.Af函数功能使第二个指针指向的元素增1,第一个指针指向的元素不变,所以答案选择A)。

12.D本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

13.A

14.C解析:在C语言中,字符串以'\\0'作为结束符,因此数组x的长度为7+1=8,而数组y的长度等于7。

15.C解析:通过scanf()函数从键盘读入数据时,接收参数的使用变量的地址值,所以选项A和B是错误的。选项D要求输入时以逗号间隔,故按题目要求的输入方式不能正确读取到3个数,也是错误的。所以正确答案是C。

16.D

17.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。

18.C

19.D

20.B解析:选项A)是将指针q1和q2所指向的变量值相加,然后赋给k;选项B)中,float型数据和指针型数据之间不能进行赋值运算:选项C)中,是两个指针变量之间的赋值:选项D)中,是两个指针型变量所指向的两个float型数据相乘。

21.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。

22.fnamefpfname\r\nfp解析:fopen()函数实现打开文件的功能,通常的调用方式为:FILE*fp;fp=fopen(文件名,使用文件方式),因此,第一个横线处要求填写要打开文件的名字fname。fprintf()函数的—般调用方式为:fprintf(文件指针,格式字符串,输出表列),所以第二个横线处应填写fp。

23.计算数组num中大于零的数据之和计算数组num中大于零的数据之和

24.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是开辟一个长度为sizeof(struetnode)的内存区。(structnode*)的作用是使malloc返回的指针转换为指向structnode类型数据的指针。

25.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本题的考点是fopen()函数,此函数的格式是fopen(文件名,使用文件方式),题目的要求是将从键盘读入的文本写到文件中,因此选择的打开方式应该是'w'(只写)。或者是读写“r+”或“w+”。

26.t*10或10*tt*10或10*t解析:本题要求累加一系列有规律的数,从输出结果来看,s保存的是最终结果,而s在循环体中,每次累加一个t,则说明t在5次循环中分别等于1.12、123、1234、12345;而t每次循环等于“填空内容”加上循环变量i,又因为i在5次循环中分别等于1、2、3、4,5,所以t每次循环要加的“填空内容”应分别为0、10、120,1230,12340,这一系列值正好是前一次t的值的10倍.所以“填空内容”应是t*10。

27.11231123解析:在主函数中第一次调用func子函数时,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因为在子函数中将m和i定义成了static类型,所以在子函数中对m和i进行的改变,在下一次调用子函数时能进行保存,所以第二次调用子函数时,m=11,i==3,则i=i+m+1=15,m=i+a+b=15+5+3=23。

28.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果写为1/(n*n),则会因为1和n都为整型,结果则为实型,将1变为1.0,结果则为实型。

29.y%2==1y%2==1解析:由关系运算符组成的表达式称为关系表达式。判断2除y的余数是否为1,即可判断y是否为奇数。

30.n(n-1)/2n(n-1)/2解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2。

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

32.28

33.概念数据模型概念数据模型

34.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)

35.(!feof(fp))或feof(fp):=0(!feof(fp))或feof(fp):=0

36.软件工程管理软件工程管理解析:软件工程足指,采用工程的概念、原理、技术和方法指导软件的开发与维护:软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。即软件工程研究的内容主要包括:软件开发技术和软件工程管理。

37.选择选择解析:关系运算中,选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。

38.99解析:f(3,4)=(4-3)×3=3,f(3,5)=(5-3)×3=6,所以d=f(f(3,4),f(3,5))=f(3,6)=(6-3)×3=9。

39.概念(或概念级)概念(或概念级)

40.数据模型数据模型

41.D解析:利用Release命令可以将表单从内存中释放,Refresh是刷新表单,Hide是隐藏表单,此两个命令都不可以释放表单,Delete的用法是错误的。

42.C

43.C

44.B解析:n++是在语句结束后再加1,因此,if语句中相当于判断的是9<10,当然是执行if语句后面的printf语句,而这时,因为if语句被执行,n的值也被加1,所以在打印时,n值为10,而n-是在printf语句执行完毕后再减1的。

45.A解析:函数调用相当于f(2,3),程序运算应得结果为'-1'。

46.B解析:由函数intfun(int*p){return*p;}的定义可知,返回值为整型指针变量p所指向的数据。

47.B解析:函数scan()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。

48.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。

49.C解析:scantf()函数要求,除了第1个参数为格式化字符串以外,其余参数均为相应变量的地址值。本题中,只有p是地址值,故应该选择C。

50.D解析:考查对结构体成员的引用方法。结构体成员的引用可以用'结构体变量名.成员名'或者'结构体变量指针->成员名'两种方式来引用。

51.D解析:选项A是错误的,C语言支持do…while语句;选项B是错误的,do…while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。

52.C解析:函数调用的一般形式为:函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为void的函数,不能作为赋值表达式的组成部分,所以选C。

53.B解析:本题考查二叉树的性质。叶子结点即度为0的结点,它总是比度为2的结点多一个,所以,具有60个叶子结点的二叉树有59个度为2的结点。总结点数等于个叶子结点加上59个度为2的结点再加上50个度为1的结点的和,一共为169个结点。

54.A解析:此题考查的是编译预处理命令以及自加运算符。F(a++,b++)先取a和b的值,参加运算,再把a和b的值分别加1,所以F(a++,b++)=F(3,4)=3*4=12。

55.C解析:在TurboC2.0环境中,char占1个字节、int占2个字节、long占4个字节、float占4个字节、double占8个字节。所以本题的正确答案为C。

56.C解析:本题考查do…while循环。在do…while循环中,当表达式的值为非零(真)时,执行循环,不能与其等价的是为零的表达式,即(exp==0)。

57.C解析:本题中char*p=a+5;即相当于p=&a[5],而--p,是先要减1,则printf语句要输出的值就是a[4]。

58.A解析:程序中定义了三个指向函数的指针变量p1、p2、t,函数返回值均是float类型。在main函数中,p1指向了函数f1,p2指向了函数f2。语句y1=p2(p1(2.0));先调用f1函数,将其返回值4.000000传递给f2的形参n,并将其函数返回值8.000000赋值给y1。然后在main函数中交换p1,p2指针变量的指向,使p1指向了函数f2,p2指向了函数f1,执行语句y2=p2(p1(2.0));先调用函数f2,得到返回值4.000000,将其传递给f1函数的形参n,并将返回值16.000000赋值给y2。在输出y1,y2时,各浮点数占3列,小数位数为0,即输出了:8,16。

59.A解析:一个非空的数据结构如果满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件,则称为线性结构。线性链表是线性表的链式存储结构,选项A的说法是正确的。栈与队列是特殊的线性表,它们也是线性结构,选项B的说法是错误的:双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,选项C的说法是错误的;二叉树是非线性结构,而不是线性结构,选项D的说法是错误的。因此,本题的正确答案为A。

60.C解析:软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。

61.C指针数组*alpha[6]实际上相当于一个二维数组,而p是一个指向指针的指针,p=alpha后,引用p[x]便是引用数组*alpha[6]中的第x个数组元素的首地址,所以打印的结果应当为ABCDEFGHIJKLMNOP。

62.B

63.D对象的基本特点有:标识唯一性、分类性、多态性、封装性,以及模块独立性好。

64.A本题主要考查的知识点是:break和IContinue语句。break语句可以用于swhitCh或循环体内,作用是跳/出switCh或循环体。Continue语句只能用于循环体内,作用是结束当前循环,进入下次循环。故本题中只有选项A)是正确的。

65.BM<=N和N<=P是逻辑与的关系,应使用运算符&&。

66.C本题主要考查scanf输入语句及其格式。在本题中的四个选项中,分别用不同的格式试图从键盘输入数据。

在选项A中,给出的输入格式是“%2d,%2d,%2d”,表示输入的数据中间用逗号隔开,而且其输入的宽度为2,即可以输入一个两位数,如果输入的位数小于2,则左边补空格。在其输出列表中,表示方式也不对

温馨提示

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

评论

0/150

提交评论