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.在单链表中,增加头结点的目的是()。

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

2.对一个算法的评价,不包括()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度

3.

4.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

A.选择B.连接C.投影D.并

5.已知shortint类型变量占用两个字节,若有定义:shortintx[10]={0,2,4};,则数组x在内存中所占字节数是()。

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

6.

7.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,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

8.

9.设以下变量均为int类型,则值不等于7的表达式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

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

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

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

C.不允许使用GOTO语句

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

11.

12.下列代码的复杂度是多少?如果多于1个答案正确,选择最小的那个。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

13.对于一个正常运行的C程序,下列叙述中正确的是()。A.A.程序的执行总是从main函数开始,在main函数结束

B.程序的执行总是从程序的第一个函数开始,在main函数结束

C.程序的执行总是从main函数开始,在程序的最后一个函数中结束

D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束

14.以下选项中,合法的一组C语苦数值常量是()。

A.28.5e-3-0xf

B.12OXa234.5

C.1774c1.5Oabc

D.0x8A10,0003.e5

15.

16.有以下程序:#include#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

17.若有以下说明和定义:则对函数fun的正确调用语句是()。A.(*a)(&c);B.a=a(x);C.b=*b(x);D.fun(b);

18.下面哪个不是用来解决哈希表冲突的开放地址法()

A.线性探测法B.线性补偿探测法C.拉链探测法D.随机探测法

19.有以下程序:#include<stdio.h>voidfun(doublex,double*y,double*z){*y=*y-1.0;*z=*z+x;}main(){doublea=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;fun(b-a,pa,pb);printf(“%f\n”,a);}程序运行后的输出结果是()。

A.8.000000B.9.000000C.1.500000D.10.500000

20.以下选项中,能用作数据常量的是______。A.o115B.0118C.1.5e1.5D.115L

二、2.填空题(20题)21.软件工程研究的内容主要包括:【】技术和软件工程管理。

22.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。

main()

{floata,b,c;

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

if(【】)printf("YES\n");/*abc能构成三角形*/

elseprintf("NO\n");/*abc不能构成三角形*/

}

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

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

#include<stdio.h>

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

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

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

26.软件测试的方法有动态测试、静态测试和【】13种。

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

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

main()

{intX=10,y=20,t=0;

if(X==y)t=x;x=y;y=t;

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

}

29.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。可行性研究阶段采用的是【】。

30.语句"int(*ptr)();"的含义是______是指向函数的指针,该函数返回一个int型数据。

31.有以下语句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

33.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

34.在Windows环境下,可以将窗口最小化为【】。

35.在树形结构中,树根结点没有______。

36.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

37.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

39.以下程序运行后的输出结果是【】。

#include<stdio.h>

msin()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

40.下列程序的运行结果是【】。

#include<stdio.h>

main()

{unionEXAMPLE

{struct

{intx;inty;}in;

inta;

intb;

}e;

e.a=1;e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

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

}

三、1.选择题(20题)41.需求分析阶段的任务是()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

42.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。

A.741B.963C.852D.875421

43.有以下程序#include<stdio.h>main(){intk=5,n=0;while(k>0){switch(k){defhult:break;case1:n+=k:case2:case3:n+=k;}k--;}printf("%d\n",n);}程序运行后的输出结果是()

A.0B.4C.6D.7

44.变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

45.以下关于函数的叙述中正确的是______。A.每个函数都可以被其他函数调用(包括main函数)

B.每个函数都可以被单独编译

C.每个函数都可以单独运行

D.在一个函数内部可以定义另一个函数

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

A.在C程序中,语句之间必须要用分号(;)分隔

B.在C程序中#include行和#define行不是C语句

C.程序中的注释部分可有可无,通常可以省略

D.当输入数值数据时,对于整型变量只能输入整型值:对于实型变量只能输入实型值

47.有以下程序

intfun1(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);

}

main()

{doublew;w=fun2(1.1,2.0);……}

程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0

48.下列叙述中错误的是()。

A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

49.有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}执行后的输出结果是()。

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

50.软件需求分析阶段的工作,可以分为四个方面需求获取,需求分析,编写需求规格说明书,以及()A.阶段性报告B.需求评审C.总结D.以上都不正确

51.以下数组定义中不正确的是_______。

A.inta[2][3];

B.intb[][3]={0,1,2};

C.intc[100][100={0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

52.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)||('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

53.有以下程序:main(){inti=1,j=2,k=3;if(i++==l&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k):}程序运行后的输出结果是()。

A.123B.234C.223D.233

54.若有定义:inta[3][4],()不能表示数组元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

55.有以下程序main(){ihta[]{2,4,6,9,10},y=0,x,*p;p=&a[1];for(x=1);X<3;x++)y+=p[x];printf("%d\n",y);程序运行后的输出结果是

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

56.如下程序的执行结果是()main(){intn=1;printf("%d%d%\n",n,++n,n--);}

A.111B.122C.123D.121

57.有以下程序:voidswap(char*x,char*y){chart;t=*x,*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。

A.123,abcB.abc,123C.1bc,a23D.321,cba

58.设有定义: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)

59.有以下程序:main(){intk=5,n=0;while(k>0);{switch(k){default;break;case1:n+=k;case2;case3:n+=k;}k--;}printf("%d\n",n);}程序运行后的输出结果是______。

A.0B.4C.6D.7

60.假定当前盘符下有两个如下文本文件:

文件名a1.txta2.txt

内容123#321#

则下面程序段执行后的结果为

#include"stdio.h"

voidfc(FILE*p)

{charc;

while((c=fgetc(p))!=′#′)putchar(c);}

main()

{FILE*fp;

fp=fopen("a1.txt","r");

fc(fp);

fclose(fp);

fp=fopen("a2.txt","r");

fc(fp);

fclose(fp);

putchar('\n');}

A.123321B.123C.321D.以上答案都不正确

四、选择题(20题)61.

62.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。A.A.数据库系统B.文件系统C.人工管理D.数据项管理

63.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

64.

65.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

程序运行后的输出结果是

A.550550B.580550

C.680680D.580680

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

structabc

{

inta,b,c;

}

main()

{

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

intt;

t=s[0].a+s[1].b;

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

}

A.5B.6C.7D.8

67.

在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)

68.以下选项中合法的标识符是()。

69.以下选项中,不能作为合法常量的是

A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0

70.若程序中有以下说明和定义。

structabc

{

intx;chary;

}

structabcs1,s2;

则会发生的情况是

A.编译时出错B.程序将顺序编译、连接、执行

C.能顺序通过编译、连接,但不能执行D.能顺序通过编译,但连接出错

71.

72.

73.

以下程序执行后sum的值是()。

main

{inti,sum;

for(i=1;i<6;i++)sum+=i:

printf("1%d\n",sum):

}

A.15B.14C.不确定D.0

74.对表达式for(表达式1;;表达式3)可理解为()。

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

75.下面描述中错误的是()。

A.系统总体结构图支持软件系统的详细设计

B.软件设计是将软件需求转换为软件表示的过程

C.数据结构与数据库设计是软件设计的任务之一

D.PAD图是软件详细设计的表示工具

76.有以下程序

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

}

若运行时给变量x输入12,则以下程序的运行结果是

A.0B.22

C.12D.10

77.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

A.-369B.369C.0.369D.整数集合{1,2,3,4,5}

78.

79.有以下程序

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

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

80.

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被15或18整除的自然数之和,k的值由主函数传人。若k的值为800,则函数的值为7605。

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

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

试题程序:

六、程序设计题(1题)82.请编一个函数fun(ohlr*str),该函数的功能是把字符串中的内容逆置。

例如,字符串中原有的字符串为asdf9,则调用该函数后,串中的内容为9fdsa。

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

试题程序:

#include<string.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidfun(char*str)

{

}

voidmain

{

chara[N];

FILE*out:

printf("Enterastring:");

gets(a);

printf("Theorigiralstringis:");

puts(a);

fun(a):

printf("Thestringaftermodified:");

puts(a);

strcpy(a,"Welcome!");

fun(a);

ut=fopen("outfile.dat","w");

fprintf(out,"%s".a);

fclose(out);

}

参考答案

1.A根据单位链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。

2.B

3.A

4.B解析:本题主要考查关系模型中几种运算的特征。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。故选项B正确。

5.D

6.D

7.B解析:子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

8.A

9.C

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

11.A

12.D

13.A解析:一个C语言源程序无论包括了多少函数,总是从main函数开始执行,从main函数结束。

14.B

15.D

16.C宏定义不是C语句,末尾不需要有分号。所以语句Printf("%4.1f\\n",,S(a+b));展开后为printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序会出现语法错误。

17.A题干中,函数fun接收一个整型指针参数,返回值为int类型。main函数首先定义一个函数指针a,将函数fun的地址赋给a,所以a是指向函数fun的指针,可以通过a调用函数fun。选项A中,通过a调用函数fun,可以使用(*a),接收的参数是整型变量c的地址,正确;选项B中,参数x是一个数组,错误;选项C中,调用b函数,由于程序没有给出函数b的定义,因此这里调用b是错误的,而且函数b是没有参数的,这里调用b的时候传入了参数,所以C错误;选项D中,由于b是一个函数,不能作为整型指针变量传给fun函数,因此D错误。本题答案为A选项。

18.C

19.Cmain函数定义两个double类型的变量a、b,分别赋初值为2.5、9.0。另外定义两个double类型的指针变量pa、pb,其中pa指向a,pb指向b。然后将b-a、pa、pb传给函数fun,此时x的值为6.5,y指向a,z指向b。“*y=*y-1.0;”是将变量a的值减去1.0赋给a,a的值为1.5;“*z=*z+x;”是将变量b的值加上6.5赋给b,b的值为15.5。fun函数执行完毕后,输出a的值为1.5。故本题答案为C选项。

20.D在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。

21.软件开发

22.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的条件是两边之和大于第三边。要用'&&'指令连接三个条件,表示三个条件都要满足。

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

24.132132解析:在程序中,i从9开始循环,当i=9时,执行case0后的语句m++;n++;此时m=1,n=1,然后执行break,跳出循环;当i=10时,执行detault后的语句k++;n++;此时k=1,n=2;当i=11时,再执行default后的语句,k=2,n=3。此时,m=1,n=3,k=2。输出结果为132。

25.30253025解析:本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中inta=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中staticinta=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中intc=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中a+=b++相当于a=a+b,b=b+1.所以,在第一个ptine('%d',a)中a=a+b=10+20=30,第二个printf('%d',a)中a=a+c=5+20=25,即输出3025。

26.正确性测试正确性测试

27.b=14b=14解析:分析程序可知,n的初始值为1,因此,while(n<=3)循环3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。当n=4时,判断条件不满足,退出循环。

28.20020,0解析:在主函数中首先定义了3个整型变量x、y、t,并分别给它们赋初值为10、20、0,接着执行汀语句,在if后面括号内的条件表达式中,条件x==y即10==20不成立,则不执行其后的语句t=x,然后退出if语句,顺序执行语句x=y;y=t;。执行完这两条语句后x的值变为20,y的值变为0,所以最后输出x、y的值为20和0。

29.结构化分析方法结构化分析方法解析:结构化分析方法主要用于系统分析阶段;结构化设计方法主要用于系统设计阶段;结构化程序设计方法主要用于编码阶段。可行性研究属于系统分析阶段,因此,可行性研究阶段采用的是结构化分析方法。

30.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(*旨针变量名)()。注:“类型标识符”为函数返回值的类型。

31.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成:格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

32.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2:分支,最后a和b的值分别为2和1。

33.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

34.图标或按钮图标或按钮

35.前件前件

36.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。

37.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查逻辑表达。年号能被4整除(y%4==0)但不能被100整除(y%100!=0),两者是与的关系,年号能被400整除即y%400==0,与前两项是或的关系。

38.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。

39.1371513715解析:程序中n是一个有5个元素,且元素值全为0的数组。在for循环中,当i=1时,n[1]=n[0]*2+1,此时n[1]=1;i=2时,n[2]=n[1]*2+1,此时n[2]=3;i=3时,n[3]=n[2]*2+1,此时n[3]=7;i=4时,n[4]=n[3]*2+1,此时n[4]=15,循环结束。输出函数中%d后有空格,因此输出结果为13715。

40.484,8解析:C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x、e.a、e.b占用同一段内存单元。执行语句e.b=2;后,e.in.x=e.a=e.b=2;执行语句e.in.x=e.a*e.b;时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值为4,因此运算得出e.in.y的值为4+4=8。程序最后的输出结果为4,8。

41.DD)【解析】需求分析是软件定义时期的最后一个阶

\n段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。

42.C解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、20所以应该选择C。

43.D解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。

44.D解析:指针变量是通过指向变量地址来指定变量值的。这里只要取m的地址赋给p,即可实现使p为指向m的指针变量。

45.B解析:本题考查函数的一些概念.main()函数是一个程序的主函数,它由系统调用,所以选项A不正确。一个C语言源程序文件可以只包含一个函数,每个源文件都可以被单独编译成。obj文件,最后链接成可执行文件。因此每个函数都可以被单独编译,选项B正确。一个C程序必须从主函数main()开始运行,其他函数只能是直接或间接被main()函数调用才能得以运行,因此选项C错误。C语言不支持函数的嵌套定义,所有函数只能是全局函数,所以选项D错误。故应该选择B。

46.B

47.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。

48.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。

49.D解析:本题考查逗号表达式。逗号表达武的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就足最后一个表达式N的值。(++x,y++)这个表达式的返回值是y++,先使用y的债,然后将y加1,所以输出第一个值为1。第二个输出的值为z+2=3+2=5。

50.B解析:需求分析阶段的工作,可以概括为以下4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。本题的正确答案为选项B。

51.D解析:一维数组的定义方式为:

类型说明符数组名[常量表达式];

选项A符合此定义形式,正确;C语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项B正确,而选项D是错误的。

52.D解析:字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在ASCII码表中都是连续的。大写字母A到Z是从65到90,所以只要变量c1大于A并且小于Z就能保证其为大写字母。注意:逻辑运算符的功能与作用。

53.D解析:本题的考点是关于C语言的逻辑表达式的计算规则。对于逻辑表达式“i++==1&&(++j==3||k++==3)”,首先判断“i++==1”,由于i初值为1,“i++==1”为真,同时i加1值为2。由于第一项为真,对于“&&”运算符,结果取决于后一项“(++j==3||k++==3)”。而逻辑表达式“(++j==3||k++==3)”计算时,首先判断“++j==3”,由于j初值为2,++j后j值为3,“++j==3”为真,对于“||”运算符不需要判断后一项表达式的结果就可以断定此逻辑表达式结果为真,因此“k++==3”并没有进行判断,k++也未执行,k仍是初值3,输出结果应该是233。正确选项是D。

54.D

55.C解析:题目首先申请了一个整型数组a,并让一个指针变量p指向数组的元素arl)。然后使用一个for循环,循环变量x从1递增到2,即循环两次.在循环体中每次让y累加p[x]的值,而p[x)写成指针形式就是*(p+x)。所以两次y加的值分别是a[2]和a[3]的值,故最终输出6+8=14。应该选择C。

56.A

57.C解析:首先看swap()函数,函数中定义了一个临时字符变量t,然后将形参指针x所指内容存入t,再将形参指针y所指内容存入到x所指内容中,最后将临时变量t的内容存入到y所指内容中。所以该函数实现的是:交换两个字符指针所指向的内容。在主函数中,首先定义了两个字符指针s1和s2,同时用字符串'abc'和'123”来初始化它们,此时它们指向的是两个字符串的第1个字符。所以,在调用完swap()函数后,彼此交换了两个字符串的第1个字符,最后输出结果为1bc,a23。故应该选择C。

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

59.D解析:在switch语句中,若case语句后没有break语句,则执行完本层case后会继续执行后面case中的操作。k的初值为5,while条件成立,进入switch(5),执行default语句,退出switch,执行k--后得4,再进入while循环,执行switch(4),退出switch,再执行k--后得3,继续while循环,执行switch(3),n=n+k=3,再执行k--后得2,进入while循环,执行case2,再执行n=n+k=5,然后执行k--后得1,最后一次进入while循环,执行case1,n=n+k=6,然后继续执行case2和case3后的语句,n=n+k=7,且执行k--后得0,此时while条件不满足,退出循环,输出n的值为7。

60.A解析:本题的功能是顺序的读两个文本文件,依次输出。当打开文件时出现错误,fopen函数将返回NULL。

61.B

62.A数据库系统的一个重要目标就是使程序和数据真正分离,数据蚀立性包括数据的物理独立性和数据的逻辑独立性。相对文件系统人工管

温馨提示

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

评论

0/150

提交评论