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

下载本文档

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

文档简介

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

一、单选题(20题)1.若有定义“inta=1234,b=-5678;”,用语句“printf("%+-6d%+-6d",a,b);”输出,以下正确的输出结果是()。

A.+1234-5678(中间有一个空格,最后有一个空格)

B.+1234-5678(最前面有一个空格,中间有一个空格)

C.+-1234+-5678(最前面和最后均无空格)

D.1234-5678(中间有两个空格,最后有一个空格)

2.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务

3.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c

4.以下选项中不能用作C语言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

5.

6.如有inta=11;则表达式(a/1)的值是()。

A.0B.3C.4D.11

7.请选出正确的程序段

A.int*p;scanf("%d",p);…

B.int*s,k;*s=100;…

C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…

D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…

8.

9.以下关于C语言文件系统的叙述中正确的是()。

A.fprintf与fwrite函数功能相同

B.文件以“r”方式打开后,可以存储文本类型的数据

C.fscanf与fread函数功能相同

D.以“w”或“wb”方式打开的文件,不可以从中读取数据

10.程序运行后的输出结果是()。A.10B.11C.20D.21

11.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A.6B.8C.9D.12

12.程序流程图(PFD)中的箭头代表的是

A.数据流B.控制流C.调用关系D.组成关系

13.

14.以下关于字符串的叙述中正确的是()。

A.C语言中有字符串类型的常量和变量

B.两个字符串中的字符个数相同时才能进行串符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.空串一定比空格打头的字符串小

15.以下是根据文件大小分配存储空间的一个算法伪代码,请问其空间复杂度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

16.软件生命周期中的活动不包括()

A.软件维护B.市场调研C.软件测试D.需求分析

17.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑

18.以下叙述中错误的是()。

A.C语言编写的函数源程序,其文件名后缀可以是C

B.C语言编写的函数都可以作为一个独立的源程序文件

C.C语言编写的每个函数都可以进行独立的编译并执行

D.一个C语言程序只能有一个主函数

19.在供应关系中,实体供应商和实体零件之间的联系是()。

A.多对多B.一对一C.多对一D.一对多

20.下列叙述中正确的是______。

A.线性表是线性结构B.栈与队列是非线性结构C.线性列表是非线性性结构D.二叉树是线性结构

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

charstr[]="ABCD",*p=str;

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

22.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。

23.在深度为5的完全二叉树中,度为2的结点数最多为【】。

24.函数pi的功能是根据以下公式近似求得的:

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

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

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

25.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

26.以下程序用于判断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");/*a、b、c能构成三角形*/

elseprintf("NO\n");/*a、b、c不能构成三角形*/

}

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

28.以下程序调用函数swap将指针s和t所指单元(a和B)中的内容交换,请填空。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swap(int*ss,int*tt){intte;te=*ss;*ss=*tt;*tt=te;}

29.若有定义doublea[5];,则a数组元素下标的上限为______。

30.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=C;c=t;

if(a<c&&b<c)t=b;b=a;a=t

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

}

32.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

33.函数count(head)统计链表的结点个数,head为表头指针,阅读程序,要求将整个if语句改成while循环控制结构,其形式为【】。

#include<stdio.h>

intcount(NODE*head)

{intn=0;

if(head!=NULL)

do

{n++;

head=head->next;

}while(head!=NULL);

returnn;}

34.下面程序的功能是:计算1~10之间奇数和及偶数之和。

#include<stdio.h>

main()

{inta,b,c,i;

a=c=O;

for(i=O;i<=10;i+=2)

{a+=i;

【】;

c+=b;

}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);

}

35.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。

36.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

37.若已知a=10,b=20,则表达式!a<b的值为【】。

38.如下语句printf("%c\n",'B'+40);在执行后的输出结果是【】。

39.设有如下定义

#defineMYSWAP(z,x,y){z=x;x=y;y=z;}

floata=5,b=16,c;

MYSWAP(______,a,b);

40.在具有n个单元、顺序存储的循环队列中,队满时,共有【】个元素。

三、1.选择题(20题)41.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。

A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中奇数之和D.自然数1~10中偶数之和

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

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

B.main(intargv,char*argc)

C.main(intargv,char**arc)

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

43.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

44.若有代数式“ex+y2+y/x”,则正确的C语言表达式是()

A.ex+y*y+y/x

B.expx+pow(y,2)+y/x

C.exp(x)+pow(y,2)+y/x

D.ex+y2+y/x

45.在下列各m的值中,能使m%3=2&&m%5=3&&m%7=2为真的是()

A.8B.23C.17D.6

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

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

47.下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

48.对于建立良好的程序设计风格,下面描述正确的是()。

A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法即可C.充分考虑程序的执行效率D.程序的注释可有可无

49.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表

50.在数据流图(DFD)中,带有名字的箭头表示______。

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

51.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程

B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变

C.关系中的每一列称为元组,一个元组就是一个字段

D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

52.为了使模块尽可能独立,要求()。

A.内聚程度要尽量高,耦台程度要尽量强

B.内聚程度要尽量高,耦合程度要尽量弱

C.内聚程度要尽量低,耦合程度要尽量弱

D.内聚程度要尽量低,耦合程度要尽最强

53.有以下程序:fun(inti,intj){i++;j++;returni+j;}main(){inta=1,b=2,c=3;c+=fun(a,b)+a;printf("%d,%d,%d\n",a,b,c);}

A.1,2,9B.2,3,10C.1,2,10D.2,3,9

54.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

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

A.指令由操作数和操作码两部分组成

B.常用参数xxMB表示计算机的速度

C.计算机的一个字长总是等于两个字节

D.计算机语言是完成某一任务的指令集

56.以下叙述中正确的是______。A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

57.若有以下结构体,则正确的定义或引用是()。structTest{intx;inty;}v1;

A.Test.x=10;

B.Testv2;v2.x=10;

C.structTestv2;v2.x=10;

D.structTest.v2=10;

58.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的力法,称为______。

A.希尔排序B.冒泡排序C.插入排序D.选择排序

59.利用E-R模型进行数据库的概念设计,可以分成三步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行______,得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

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

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

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

四、选择题(20题)61.

62.串的长度是______。A.A.串中不同字符的个数

B.串中不同字母的个数

C.串中所含字符的个数且字符个数大于零

D.串中所含字符的个数

63.

64.

65.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.log2nB.n2C.nD.n+1

66.数据库关系模型中可以有三类完整性约束,下列选项中不属于三类完整性约束的是()。

A.实体完整性规则B.参照完整性规则C.对象完整性规则D.用户自定义完整性规则

67.

68.为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定,else子句总是与()配对。

A.缩排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if

69.有以下程序语句,正确的是()。

chara,b,c*d;

A)a=′56′;B)b=′\xbc′;

C)c=′\0xab′;D)d=′\0127′;

70.(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系

B.系统结构部件转换成软件的过程描述

C.软件层次结构

D.软件开发过程

71.以下叙述中错误的是()。

A.C程序在运行过程中所有计算都以二进制方式进行

B.C程序在运行过程中所有计算都以十进制方式进行

C.所有C程序都需要编译链接无误后才能运行

D.C程序中字符变量存放的是字符的ASCIl码值

72.有以下程序

73.

有以下程序:

voidfun(char*a,char*b)

{a=b;(*a)++;}

main

{charc1=A,c2=a,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

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

A.AbB.aaC.AaD.Bb

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

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

75.已定义以下函数:

fun(int*p)

{return&p;}

该函数的返回值是()。

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

76.

77.

78.第

42

若有说明语句

chara[]="Itismine";

char*p="Itismine";

则以下不正确的叙述是

A.a+1表示的是字符t的地址

B.p指向另外的字符串时,字符串的长度不受限制

C.p变量中存放的地址值可以改变

D.a中只能存放10个字符

79.下列程序的运行结果为()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,则应输出0.192582。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写函数proc(),它的功能是:求出str所指字符串中指定字符的个数,并返回此值。例如,若输入字符串12341234123,输入字符4,则输出2。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.Aprintf函数参数包括格式控制字符串和输出参数,其中格式控制字符串中除了格式控制字符外,其他字符原样输出。本题中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之间,“+”号表示输出的数字带正负号号表示输出数据向左对齐,“6”表示输出宽度,如果输出数据的宽度不够6,那么左对齐,右边补空格。所以本题输出+1234-5678(中间有一个空格,最后有一个空格)。本题答案为A选项。

2.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。

3.D

4.CC选项中不能含有逗号,所以“1,234”不能用作C语言程序的合法常量。B选项表示的是八进制的常量,D选项表示的是十六进制的常量。故本题答案为C选项。

5.D

6.D

7.C解析:本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

8.D

9.Dfprintf函数和fscanf函数都可以读写文本文件,而fwrite和fread函数可以读写二进制文件,选项A、C错误;文件以“r”方式打开后,只可以读取文本数据,选项B错误。故本题答案为D选项。

10.D[解析]声明data是结构S数组。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函数中p=data[1];即p.a=data[1].a;p.b=data[1].b;执行语句prit("%odn",++(pa);打印输出时p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.

11.CC。R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。

12.B解析:程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。

13.C

14.D解析:C语言中只有字符串常量而没有字符串变量,故选项A不正确:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,故选项B不正确:字符串比较大小除了使用库函数stremp()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于coostchar*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项C也不正确。空串的长度为0,而以空格打头的字符串的长度至少为1,故选项D正确,本题应该选择D。

15.C

16.B【答案】:B

【知识点】:软件生命周期

【解析】:一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。它把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。故选B。

17.A

18.C函数是指预先定义功能块,其目的是提高程序的重用性。在C语言中函数的源程序,后缀名可以为C。C语言所编写的函数都可以是一个独立的源文件。一个C语言程序只能有一个主函数。C语言中编写的函数不是每个都可以独立地编译和执行的,因为C语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。

19.A一家供应商可提供多种零件,一种零件也可被多家供应商提供。所以实体供应商和实体零件之间的联系是多对多。本题答案为A选项。

20.A解析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

21.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d”格式输出的,即输出其相应ASCII码值68。

22.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。

23.1515解析:在深度为5的完全二叉树中,度为2的结点数最多的是深度为5的满二叉树。在深度为5的满二叉树中,前4层中所有结点的度为2。即在深度为5的完全二叉树中,度为2的结点数最多相当于深度为4的满二叉树中的结点数。深度为4的满二叉树中的结点数为24(上标)-1=15。

24.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由题面中提供的计算pi的公式可知;在第i项其值为1/(i*i),考虑到运算结果为浮点数,故必须要将1转化为浮点数或采用1.0/(i*i)的形式。故本题应填1.0/(i*i)或其等效形式。

25.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。

26.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在逻辑表达式中,如果要同时满足几个条件可以使用逻辑与运算符“&&”,故本题的答案应该为:a+b>c&&a+c>b&&b+c>a或其他等价形式。

27.解析:程序通过语句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”将结构体变量s中各结点连接成了一个循环链表,即最后一个结点的指针域指向了头结点,整个链表形成了一个环,并通过语句“p=s;q=p->next;r=q->next;”将结构体指针变量p、q、r指向了各结点。

28.swap(st);swap(s,t);解析:本题要在主函数中调用swap函数交换a、b的值,实现数据交换需要进行地址传递,所以函数的形参都应该是需要交换的数据的地址,程序中通过“s=&a;t=&b;”将指针变量s和t指向变量a、b的地址,因此,引用时直接引用指针变量s和t即可。

29.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。

30.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。

31.4599

32.str[i]或str+iistr[i]或str+i\r\ni

33.while(p!=NULL){n++;head=head→next;}while(p!=NULL){n++;head=head→next;}解析:do…while循环转化为while循环,循环体执行的内容应该是一致的,不同的是do…while结构是先执行一次循环体,然后再判断循环条件是否满足,而while循环则是先判断循环条件是否满足,满足则执行循环体。所以do…while循环结构若想转换为while循环结构,必须在do…while循环之前先对循环条件进行一个判断,即此题中的if(head!=NULL)。注意:3种循环结构的比较。

34.b=i+1

35.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。

36.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。

37.11解析:计算表达式!a<b,先计算!a,因a的值为10,!a的值为0,而关系表达式0<20为真,所以表达式!a<b的值为1。

38.jj解析:在C程序中的字符量可参与任何整数运算。

39.CC解析:本题关键在考生是不是了解宏的基本运用,再使用宏的时候明显少了一个实参。在定义宏的时候变量z是用来做中间变量的,题目中缺的变量就是一个中间变量C。

40.n-1

41.D解析:本题考核的知识点是for循环语句和复合赋值+=运算符的应用。本题中,i赋初值为1,并对其每次进行加2操作,即i每次均为1~10之间的奇数,s+=i+1,即s=s+i+1,相当于s等于原来的s每次加上1~10之间的偶数,直到i<10不成立.当i=1时,s=0+1+1=2;当i=3时,s=2+3+1=2+4;当i=5时,s=2+4+5+1=2+4+6;当i=7时,s=2+4+6+7+1=2+4+6+8;当i=9时,s=2+4+6+8+9+1=2+4+6+8+10;当i=11时,i<10不成立,结束循环。所以,4个选项中选项D符合题意。

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

43.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。

44.C

45.B

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

47.D解析:C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数组之中;②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。

本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

48.A解析:选项B错误:符号名的命名除了要符合语法之外,还应具有一定的实际含义,以便理解程序功能;选项C错误:程序设计风格强调清晰第一,效率第二;选项D错误:程序注释能帮助读者理解程序,是提高程序可读性的重要手段。所以选项A正确。

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

50.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

51.D数据处理是指将数据转换成信息的过程,故选项A叙述错误。数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B叙述错误。关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C叙述错误。所以本题选D。

52.B

53.A解析:本题主要考查了函数的调用作为表达式来使用,同时函数调用是按值传递的,函数中对形参的操作并不能影响到实参。函数fun(1,2)的返回值为5,而实参a的值保持不变仍为1,所以c+=fun(1,2)+1执行后,c=3+5+1=9。

54.D解析:由于20000+20000、4000+10及30000+10000都是整型表达式,故运算的结果仍然是整型,表达式运算的结果超出了整型数据的范围,不正确。而D是长整型运算,不会超出长整型的范周。

55.A

56.D本题主要考查宏的一些基本概念。通常,预处理命令位于源文件的开头,但不一定必须位于开头,也可以写在函数与函数之间;由于预处理命令的末尾不加分号,不以分号来区分一条宏命令,所以,不能在一行上写多条预处理命令,只能写一条,否则,系统处理时就会把它当做一条命令处理;宏名一般习惯用大写字母表示,以便与变量名相区别,这只是习惯用法,并不是C语言中有这样的规定,宏的定义可用小写字母;C语言中,宏的替换是在程序编译时进行,不占用程序运行的时间,故本题答案为D。

57.C解析:定义结构体类型的变量的方式有:①紧跟在结构体类型说明之后进行定义,如题目中给出的;②在说明对结构成员的引用形式为

结构体变量名.成员名

选项A对结构成员的引用的形式是错误的,Test是结构体名,不能用来引用结构成员。选项B中定义结构体类型的变量的形式是错误的,Test是结构体名,不能用宋定义结构体类型的变量。选项D中对结构成员的引用的形式是错误的,对结构成员的引用的形式为:结构体变量名.成员名。4个选项中只有选项C是正确的定义或引用。

58.A解析:希

温馨提示

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

评论

0/150

提交评论