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

下载本文档

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

文档简介

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

一、单选题(20题)1.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

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

2.若变量c为char类型,能正确判断出c为小写字母的表达式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

C.(′a′<=c)and(′z′>=c)

D.(c>=′a′)&&(c<=′z′)

3.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

4.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序运行后的输出结果是()。A.ZhangB.ZhaoC.WangD.19

5.有3个节点的二叉树可能有()种。

A.12B.13C.5D.15

6.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。

A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表

7.

8.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

A.1个B.2个C.4个D.5个

9.数据的逻辑关系是指数据元素的()。

A.关联B.结构C.数据项D.存储方式

10.下列程序段的输出结果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);

A.100000B.8C.40D.77

11.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

程序运行后的输出结果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

12.有以下程序

A.741B.963C.852D.87542l

13.非线性结构是数据元素之间存在一种()。

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

14.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

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

A.由3种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环3种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

16.若有定义:“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);

17.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的运行结果是

A.987654321B.4321098765C.5678901234D.987651234

18.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序运行后的输出结果是()。A.1,2B.3,4C.5,6D.123,456

19.下而程序的输出结果是()。

A)32

B)26

C)24

D)4

20.若有定义“inta,b,c;”,想通过语句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分别赋给变量a、b、c,则正确的键盘输入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

二、2.填空题(20题)21.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。

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

main()

{charm;

m='B'+32;printf("%c\n",m);

}

23.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fsetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

25.若有程序:

main()

{inti,j;

scanq("i=%d,j=%d",&i,&j);

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

}

要求给i赋10,给j赋20,则应该从键盘输入【】。

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

#include<string.h>

typeaefstructstudent{

charname[10];

longsno;

floatscore;

{STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(C.name,)>0)d=C;

printf("%1d%s\n",d.sno,p->name);

}

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

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

29.在树型结构中,根结点没有【】结点,其余每个结点有且仅有【】个前驱结点;叶结点没有后继结点,其余每个结点的【】结点数不受限制。

30.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

31.阅读下列程序,则程序的输出结果为【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

33.下面程序的运行结果是______。

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

34.下列程序执行后输出的结果是【】。

main()

{intarr[10],i,k=0;

for(i=O;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

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

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

printf(“%d\n”,s);

}

37.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。

main()

{

inti,a[20],sum,count;

sum=count=【】;

for(i=0;i<20;i++)scanf("%d",【】);

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

{

if(a[i]>0)

{count++:

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum.count);

}

38.Windows的空口分为两类,一类是应用程序窗口,另一类是【】窗口。

39.若定义#definePI3.14159,则执行完下列程序后输出结果是______。

#definePI3.14159;printf("PI=%f",PI);

40.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充家整。

seanf("%d",【】);

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

三、1.选择题(20题)41.若执行下列程序时从键盘上输入2,则输出结果是()。#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<3)printf("%d\n",a);elseprintf("%d\n",va--);}

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

42.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其输出为______。

A.不确定B.编译错误C.gD.输出null字符

43.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是():

A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

44.若有以下定义的语句: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.

45.在说明语句:int*f();中,标识符f代表的是

A.一个用于指向整型数据的指针变量

B.一个用于指向一维数组的行指针

C.一个用于指向函数的指针变量

D.一个返回值为指针型的函数名

46.CPU主要由运算器与控制器组成,下列说法中正确的是()

A.运算器主要负责分析指令,并根据指令要求做相应的运算

B.运算器主要完成对数据的运算,包括算术运算和逻辑运算

C.控制器主要负责分析指令,并根据指令要求做相应的运算

D.控制器直接控制计算机系统的输入与输出系统

47.结构化程序设计方法的3种基本控制结构中不包括

A.循环结构B.递归结构C.顺序结构D.选择结构

48.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

49.若要说明一个类型名STP,使得定义语句STPs;等价于char*s;,以下选项中正确的是A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefSTP*char;

D.typedefchar*STP;

50.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

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

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

52.在数据库设计中,将E-R图转换为关系模式的过程属于()。

A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

53.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

54.为了提高软件模块的独立性,模块之间最好是()。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合

55.若有如下语句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));则上面程序段()。

A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环

56.下面说明不正确的是

A.chara[10]="china";

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

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

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

57.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序

58.有以下程序:main(){inti=0,S=0;do{if(i%2){i++;continue;}i++;s+=i;)while(i<7);printf("%d\n",s);}执行后输出结果是()。

A.16B.12C.28D.21

59.若要定义a为3×4的二维数组,正确的定义语句是()

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

60.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对

D.和之前的第一个if配对

四、选择题(20题)61.若变量已正确定义,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

62.有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是()。

A.自然连接B.交C.除D.并

63.数据库概念设计的过程中,以下各项中不属于视图设计设计次序的是()。

A.自顶向下

B.由整体到个体

C.由内向外

D.由底向上

64.(70)需求分析阶段的任务是确定()

A.软件开发方法

B.软件开发工具

C.软件开发费用

D.软件系统功能

65.

66.

67.

68.

设有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

执行上面的程序段后,*(ptr+10)的值为()。

A.\0B.0C.不确定的值D.0的地址

69.

70.设fun函数的定义形式为

voidfun(charch,floatx){…}

则下列对函数fun的调用语句中,正确的是()。A.A.fun("abc",3.0);B.t=fun('D'.16.5);

C.fun('65',2.8);

D.fun(32,32);

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

w=k;

LB:if(w==0)gotoLE;

w--;

printf("*");

gotoLB;

LE:

M

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

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

B.w=k;<CR>while(w--!=0)printf("*");w++;

C.w=k;<CR>do{w--;printf("*");}while(w!=0);

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

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

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

73.设有如下定义:int(*ptr);则以下叙述中正确的是()。

A.ptr是指向一维组数的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指int型数据的指针

74.

75.C语言中以只读方式打开一个文件应选择_______________参数。

A.“r”B.“w”C.“rb”D.“a”

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

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

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

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

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

77.

78.

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

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

80.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据和相关文档的集合

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入8,该项的斐波拉契级数值为21。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。

参考答案

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

2.D

3.D解析:输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。

4.Bfun(x+2)表示的是结构体数组中的第3个元素即{03,"Zhao",l8),而输出的是name元素,所以答案为B。

5.C

6.D

7.C

8.B

9.A

10.C解析:将变量a按位求反,再与b按位与,最后左移1位。9的二进制表示为00001001,020的二进制表示为00010000。a按位求反为11110110,再与b按位与结果为00010000,左移1位结果为00100000。按八进制输出为040。

11.B解析:在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

12.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式“——y”的值。y先自减1,然后再输出y的值。

13.B

14.AC语言中,函数声明的函数名、返回值类型和参数列表必须与函数定义相同。其中参数列表中可以省略参数名。题干中,fun函数返回整型,3个参数分别是:整型指针、整型指针、整型。选项A中,第1个参数应该是整型指针类型,第2个参数也应该是指针类型,错误;其他选项都正确。故本题答案为A选项。

15.A由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。

16.Cscanf函数要求为:输入的变量为地址形式。4个选项中,C选项符合要求。故本题答案为C选项。

17.C解析:函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5.6,7,8,9,01;再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

18.C此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2.dat文件,fscanf是向文件输入,所以根据程序循环写入和写出.可知答案为C。

19.C本题考查的是联合所占的存储空间。sizeof(t)=sizeof(douhle)*3=8*3=24。联合体所占的存储空间取决于所占空间最大的成员所占的空间。

20.B题干中,格式输入函数scanf的格式控制字符串中,第1个%d与第2个%d之间有一个逗号。所以输入的第1个整数和第2个整数之间必须要有一个逗号,选项C、D错误;输入的第2个整数和第3个整数之间需要间隔符,可以使用<Tab>键、<Enter>键、空格符。故本题答案为B选项。

21.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。

22.BB解析:字符类型的数据在内存中以相应的ASCII码存放,另外,字符数据还可以作为整数参加运算。格式控制参数中的格式字符用以指定输出项的数据类型和输出格式,输出字符与其对应的输出项的类型要一致。本题中,“b”的ASCII码为98,字符类型m的ASCII码为98+32=130,所以最后输出为b。

23.filea.dat"r"filea.dat,'r'解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

24.852852解析:循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852。

25.i=0j=20i=0,j=20解析:该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以说本题中应该原样输入i=,j=,后面分别给变量0和20,所以说空格处应该填入i=0,j=20。

26.2002Shanxian2002Shanxian解析:本题中第一个if语句将结构体变量a.name和结构体变量b.name中较小的那个赋值给结构体变量d,第二个if语句将结构体变量c.name和结构体变量d.name较大的那个赋给结构体变量d。通过函数strcmp比较。strcmp()函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若第一个小于第二个返回值小于0,相等时返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。本程序中第一个if语句strcmp(a.name,b.name)>0为真,故将b的值赋给d,第二个if语句strcmp(c.name,d.name)>0为假,故不执行后面的语句,最后d的值为b的值,因此d.sno和p->name的值为2002Shangxian。

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

28.2525解析:本题考查带参数的宏的定义及相关运算。运算过程为:t=POW(x+y)=(2+3)*(2+3)=25。

29.前驱一后继前驱\r\n一\r\n后继

30.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

31.30x30x解析:本题的参数传递属于值传递,所以函数内不能改变调用函数中的数据。

32.参照完整性参照完整性

33.8080解析:本题考查的知识点是共用体数组变量所占内存的长度。数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。

34.1212解析:本题的第一个for循环用于给数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。

35.前件前件

36.55解析:此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空。输出语句不在for循环体内,所以在循环执行完毕后才输出s的值。s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。

37.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本题要求从终端读入数据到数组中,统计其中正数的个数,井计算它们的和。程序中首先要对存放正数个数的变量count及存放和值的变量sum初始化为0,所以第一空应填0。接着要求从终端读入数据到数组中,可以通过scanf函数实现,因此第二空应填&a[i]。最后通过sum+=a[i];语句累加正数a[i]的值到sum中,因此第三空应填a[i]。

38.文档文档

39.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。

40.k[7]*kk[7]*k解析:scanf()函数有两个参数,第—个参数是格式控制部分(格式控制部分是字符串,主要由“%”号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空格处位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成的,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第二个空位于printf()函数的第二个参数处,所以应该填*K。

41.B解析:本题考查ifelse语句。程序中首先使用函数scanf()通过键盘读入a的值,并通过第1个if语句,先判断条件,取a的值2和3比较,然后将a的值加1,发现条件成立,执行下列的printf语句,输出a的值3。

42.A解析:由于s[2][6]表示字符串已超出了数组s的表示范围,在C中不会刘数组越界进行检查,当数组越界时,会得到一个不确定的值。

43.A解析:“%”是求余运算符或模运算符,“%”两侧均应为整型数据,选项A)中的x是double型数据。

44.D解析:结构体成员的引用可以用“结构体变量名.成员名”或者“结构体变量指针->成员名”两种方式来引用。注意:结构体类型的变量、数组和指针变量的定义。

45.D解析:带回指针值的函数,其一般定义形式为:

类型标识符*函数名(参数表);

例如;int*f(x,y);

其中,f是函数名,调用它以后能得到一个指向整型数据的指针(地址),x,y是函数f的形参。在f的两侧分别为*运算符和()运算符,而()优先级高于*,因此f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的int表示返回的指针指向整型变量。

46.B

47.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。

48.A解析:while循环的执行过程如下:(1)计算while后面圆括号中表达式的值.当值为非0时,执行步骤(2);当值为0时,执行步骤(4)。(2)执行循环体一次。(3)转去执行步骤(1)。(4)退出循环。在选项A)中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环.所以选项A)为正确答案。

49.D解析:指针类型的自定义的形式如下:typedef类型说明符*用户类型名。不难看出只有选项D是正确的定义形式。所以,D选项为所选。

50.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

51.D解析:在概念设计中,按照模块的划分画出各个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看是否有重复和不合理的地方。不能只进行简单的合并。

52.BB。【解析】数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将E-R图转换为关系模式。

53.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

54.D解析:耦合性与内聚性是模块独立性的两个定性标准,是互相关联的。在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,有利于提高模块的独立性。

55.B解析:do-while语句的一般格式为:

do{循环体语句}while(表达式);

先执行循环体语句一次,再判断表达式的值,若值为真,则继续执行循环,否则终止循环。本题中,先执行printf('%d\\n',x-=2),值为x=x-2,即为1。然后判断表达式的值,!(--x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式!(--x)的值为0,结束循环。

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

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

57.B解析:由栈“后进先出”的特点可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中栈是先进后出的,所以不可能是任意顺序。所以B是正确的。它执行的顺序是:e1进栈→e2进栈→e2出栈→e3进栈→e4进栈→e4出栈→e3出栈→e1出栈,所以只看出栈序列应为e2,e4,e3,e1。

58.A解析:在循环体中有一条if语句,其后面表达式为i%2,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,i%2为假,执行“i++;s+=i。在循环中i为偶数时的值分别为0、2、4、6,加1后的值分别为1、3、5、7,s中存放的是它们的和,值为16。

59.B

60.C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。所以选项C)为正确答案。

61.A选项A)是非法的表达式,C语言中没有“<>”运算符。

62.C

63.B\n数据库概念设计的过程中,视图设计一般有三种设计次序,它们是:

\n自顶向下。这种方法是先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化。

\n由底向上。这种设计方法是先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。由内向外。这种设计方法是先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其他对象。本题答案为B)。

\n

64.D

65.B

66.B

67.C

68.A

\n本题主要考查字符数组和指针,在c语言中,字符型数组在存放字符串时会自动在末尾加上\0

温馨提示

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

评论

0/150

提交评论