




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年陕西省安康市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.以下选项中不能作为C语言合法常量的是()
A.0.1e+6B.‘cd’C.“\a”D.‘\011’
3.设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)
4.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
5.在一棵高度为5的理想平衡树中,至少含有16个结点,最多含有()个结点。
A.31B.32C.30D.33
6.设有定义“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++;
7.C语言常量的类型从字面形式上可区分,以下判断中正确的是()。
A.2E3——整型B.2.0E3——实型C.‘\025’——字符串D.“a”——字符型
8.有定义语句:“int*p[4];”,以下选项中与此语句等价的是()。
A.intp[4];B.int**P;C.int*(p[4]);D.int(*p)[4];
9.一个关系中属性个数为1时,称此关系为()。
A.对应关系B.单一关系C.一元关系D.二元关系
10.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。
A.(rear+1)MODn=front
B.rear=front
C.rear+1=front
D.(rear-l)MODn=front
11.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的运行结果是
A.A.331
B.41
C.2
D.1
12.C程序是由()构成的。
A.主程序与子程序B.主函数与子函数C.一个主函数与若干个其他函数D.主函数与子程序
13.用树形结构来表示实体之间联系的模型称为()。
A.关系模型B.层次模型C.网状模型D.数据模型
14.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()。
A.求子串B.联接C.匹配D.求串长
15.算法能正确地实现预定功能的特性称为算法的()。
A.正确性B.易读性C.健壮性D.高效率
16.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
17.下列叙述中错误的是()。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
18.下列关于栈的描述中错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针
19.当执行下面的程序时,如果输入ABC,则输出结果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
20.程序调试的任务是()。
A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误
二、2.填空题(20题)21.函数viodfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
s=1-1/3+1/5-1/7+…1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2i+1);
s++=w;
}
【】=s;
}
22.若输入5、9,以下程序的运行结果为【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
23.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
24.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
25.表示条件;10<x<100或x<0的C语言表达式是【】。
26.若运行时给变量x输入12,则以下程序的运行结果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
27.以下程序运行后的输出结果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}
28.下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,I;
a=c=0;
for(I=0;I<=10;I+=2)
{a+=I;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
29.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。
30.输出若干学生3门课程的成绩。
#include<stdio.h>
【】
structstudent
{intnum;
floatscore[3];
}
main()
{inti=0,n;
floata[3];
【】*ptr[200];
printf("请输入学生学号和3门课成绩,学号为0表示数据输入结束\n");
do
{ptr[i]=(structstudent*)malloc(sizeof(structstudent));
scanf("%d%f%f%f",&ptr[i]->num,&a[O],&a[1],&a[2]);
ptr[i]->score[O]=a[O];
ptr[i]->score[1]=a[1];
ptr[i]->score[2]=a[2];
if(【】)break;
i++;
}while(1);
n=i-1;
【】;
for(i=O;i<=n;i++)
printf("%-6d%.1f%.1f%.1f\n",ptr[i]->num,ptr[i]->score[0],
ptr[i]->score[1],ptr[i]->score[2]);}
31.以下程序运行后的输出结果是【】。
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%",n[i]);
}
32.设inta=5,b=6,表达式(++a==b--)?++a:--b的值是【】。
33.以上程序运行后的输出结果是【】。
main()
{inti=10,j=0;
do
{j=j+i;i-;}
while(i>2);
printf("%d\n",j);
}
34.以下程序的输出结果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}
35.下列程序的运行结果是______。
#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);
}
36.以下程序的输出结果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
37.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。
38.下列程序的功能是将字符串s中所有的字符c删除。请填空。
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
39.有定义chara,b;若想通过&运算符保留a对应的二进制数的第3位和第6位的值,其余位置0,则b的二进制数应是【】。
40.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
三、1.选择题(20题)41.结构化程序设计的3种结构是()
A.顺序结构,分支结构,跳转结构
B.顺序结构,选择结构,循环结构
C.分支结构,选择结构,循环结构
D.分支结构,跳转结构,循环结构
42.下列叙述中正确的是()。
A.break语句只能用于swish语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
43.下列说法中,不属于数据模型所描述的内容的是()
A.数据结构B.数据操作C.数据查询D.数据约束
44.设有如下定义:inta=4;则计算表达式“a+=a-a*a”后的值是()。
A.0B.-12C.-24D.-8
45.与十进制数96等值的二进制是()
A.1100000B.10010110C.1100001D.1100011
46.若有定义:inta[4][10];,则以下选项中对数组元素a[i][j]引用错误的是______。(0<=i<4,0<=j<10)
A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)
47.c语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后
48.下面不属于软件设计原则的是()。
A.抽象B.模块化C.自底向上D.信息隐蔽
49.能将高级语言程序转换成目标语言程序的是______。
A.调试程序B.解释程序C.编译程序D.编辑程序
50.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是______。
A.6B.3C.死循环D.0
51.以下程序运行后的输出结果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}
A.1000B.10010C.110D.10100
52.下列程序的输出结果是()。
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("%dXn",j);}
A.42B.45C.56D.60
53.下列关于“数据库系统(DBS)”的叙述中,正确的一条是______。
A.DBS是指在计算机系统中引入数据库后的系统构成
B.DBS是帮助用户建立、使用和管理数据库的一种计算机软件
C.DBS是用户建立的若干数据库文件的集合
D.DBS是一种新颖的关系数据库管理系统
54.下列选项中,当x为大于1的奇数时,值为0的表达式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
55.若有说明语句:doubleop,a;,则能通过scanf语句正确给输入项读入数据的程序段是()。
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
56.______是构成C语言程序的基本单位。
A.函数B.过程C.子程序D.子例程
57.有以下程序structSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i-0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum};}程序运行后的输出结果是
A.260B.270C.280D.285
58.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的—个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
59.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是
A.1B.2C.3D.4
60.若变量已正确定义,则以下语句的输出结果是______。s=32;s^=32;printf("%d",s);
A.-1B.0C.1D.32
四、选择题(20题)61.假定X和Y为double型,则表达式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
62.以下定义语句中正确的是()。
A.
B.
C.
D.
63.若有以下程序段,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("*");
64.设有如下程序段
65.若有定义inta[9],+P=a;,则P+5表示()。
A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5
66.
以下程序的输出结果是()。
main
{inti;
for(i=0;i<3;i++)
switch(i){case0:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
A.000102B.000020C.000122D.000111
67.下面程序由两个源程序文件t4.h和t4.c组成,程序编译运行的结果是()。
t4.h的源程序为:
A.920B.1611C.911D.1610
68.
69.
70.
71.
有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
72.
73.
74.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
75.
76.
77.若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是()。
A.a[o][4]B.a[1][3]C.a[o][3]D.a[1][4]
78.
已知有如下结构体:
structsk
{inta;
floatb;
}data,*p;
若有P=&data,则对data的成员a引用正确的是()。
A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a
79.有以下程序:
程序运行后的输出结果是()。
80.有以下程序:
#include<stdio.h>
intfun()
{staticintx=1;
X*=2:
returnx;
}
main()
{inti,S=1;
for(i=1;i<=3;i++)S*=fun();
printf("%d\n",s);
}
程序运行后的输出结果是()。
A.0B.10C.30D.64
五、程序改错题(1题)81.已知一个数列从0项开始的前3项为0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数proc的功能是:计算并输出该数列前n项的和sum。n的值通过形参传人。例如,当n=20时,程序的输出结果应为42762.000000。请修改程序中的错误,使它能得到正确结果。注意:不要改动maiil函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}
六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中除下标为偶数、同时ASCⅡ码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFG12345,其中字符8的ASCⅡ码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCⅡ码值为奇数,所在数组中的下标为偶数,因此不应当删除。依次类推,最后t所指的数组中的内容应是ACEG。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。试题程序:
参考答案
1.A
2.B字符串常量应该用双引号标注,即“cd”,单引号标注的单个字符表示字符常量,所以B选项中的表示方法错误。故本题答案为B选项。
3.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。
4.C解析:这是一个逗号表达式,它的值应为表达式y=x+3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。
5.A
6.A选项A中,if语句的语句块“m--”后面少了分号,不合法,编译会出错。其他选项都是正确的。故本题答案为A选项。
7.B2E3是实型常量的指数形式,选项A错误;2.0E3是实型常量的指数形式,选项B正确;‘\\025’是八进制表示的转义字符,选项C错误;“a”是双引号标注的字符串常量,选项D错误。故本题答案为B选项。
8.D本题int*p[4]的作用是声明一个指针数组,每个元素都是int*型指针。
9.C解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。
10.B
11.D本题考查if-else语句的使用。if-else语句可以在条件为“真”或为“假”时执行指定的动作,由if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。else语句要与上面最近的if语句进行匹配,如果要嵌套调用if-else语句,需要将嵌套部分用{}括起来,避免程序报错。题目中给出了一个if语句和一个if-else语句,if-else语句为第一个if语句的子语句。首先执行外层if语句,执行条件为x>y,由于x=1,y=2,故该条件为假,不执行if的子语句,直接执行语句printf("%d\\n",x++);,该语句先输出x的值,然后进行x++操作。x的初始值为1,输出结果为1。
12.B
13.B解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有3种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是B。
14.C
15.A
16.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。
17.CC.【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。
18.B栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。
19.A
20.D程序调试的任务是诊断和改正程序中的错误。
21.-1或-1.0或-1*sn-1或-1.0或-1\r\n*sn
22.59
23.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。
24.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式为:scanf(格式控制,地址表列),因此,第一处应该填写地址,由于是循环输入,所以填&a[i]。依据题意第二处应该填写a[i],以实现sum=sum+a[i]的求和。
25.(x>10&&x<100)||x<0
26.00解析:三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>12为假,所以结果为x-12,即为0。
27.1020010200解析:本题考查的是混合运算。“(a/b<1)&&(a%b<1)”的运算顺序为:括号>算术运算符>关系运算符>逻辑运算符。其中a%b=10,a,b=0,所以a%b<1的值为0,a/b<1的值为1,故整个表达式的结果为0,所以输出的a,b,c的值为10200。
28.b=I+1b=I+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2后的和累加至a,所以a的值就是110之间的偶数之和;b的值是111之间的奇数和,但在输出b值时,c去掉多加的11,即为110之间的奇数之和。
29.线性结构线性结构解析:队列有且只有一个根结点,而且每一个结点最多有一个前件,也最多有一个后件,满足线性结构的条件,所以属于线性结构。
30.#include<alloc.h>structstudentptr[i]->num==Ofree(ptr[i])#include<alloc.h>\r\nstructstudent\r\nptr[i]->num==O\r\nfree(ptr[i])
31.1371513715解析:本题中数组n有5个元素且初值为0,以下为for循环的执行过程。
第1次循环:循环前i=1,执行循环语句n[1]=n[1-1)*2+1=n[0]*2+1=1,输出1;
第2次循环:循环前i=2,执行循环语句n[2]=n[2-1)*2+1=n[1]*2+1=1*2+1=3,输出3;
第3次循环:循环前i=3,执行循环语句n[3]=n[3-1]*2+1=n[2]*2+1=3*2+1=7,输出7;
第4次循环:循环前i=4,执行循环语句n[4]=n[4-1)*2+1=n[3]*2+1=7*2+1=15,输出15;
所以程序的运行结果为:13715。
32.77解析:此表达式为三目运算符,++a的值为6,b--的值为6,则整个表达式的值为++a的值,++a的值为7。请注意前缀++,--和后缀++,--的区别。
33.5252解析:do...while语句的形式为:
do
{
语句;
}while(条件表达式)
当条件表达式为非零时,继续执行循环体,直到条件表达式为零时退出循环。
34.4040解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”
35.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。
36.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。
37.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。
38.S[j++]=s[i]S[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j++将下标加1,指向下一元素要存储的位置。
39.100100100100解析:“&”运算符的运算规则是:两个二进制数的对应二进制位只要有一个为0,则结果为0;二者都为1时,结果为1。因此,要想保留某位可用1,屏蔽某位用0。
40.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
41.BB)【解析】程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
42.C解析:只能在循环体内和swish语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
43.C通俗地讲,数据模型就是现实世界的模拟和抽象。数据模型是把现实生活中的具体事务转换成计算机能够处理的数据工具。任何一种数据库系统都必须建立在一定的数据模型之上。由于现实世界的复杂性,不可能直接从现实世界中建立数据模型,所以,人们通常采用如下的处理过程。
现实世界抽象至信息世界,再转化为机器世界
把整个过程划分成三个世界和两个阶段。首先要把现实世界抽象为信息世界,并建立信息世界中的数据模型,即概念模型,然后进一步把概念模型转化为可以在计算机中实现的且最终支持数据库系统的数据模型。现实世界,简单地说,就是人们赖以生存的生活环境,它是具体事物和抽象概念的总和。信息世界也称为概念世界,现实世界在人们头脑中的反映就是信息世界,信息世界不是现实世界的录像,必须从具体事务出发抽象其概念。当信息世界进入计算机后,就成为了机器世界。
一般地讲,任何一种数据模型都是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常都是由数据结构、数据操作和完整性约束三个要素组成的。因此本题的正确答案选C。
44.D解析:a+=a-a*a等价于a=a+a-a*a=4+4-4*4=-8。
45.A
46.B解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。
47.C解析:不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。
48.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。
49.C解析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由O和1组成的二进指令,所以高级语言必须先用—种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。
50.C解析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。
51.B
52.B解析:在C语言中,数组的下标默认为0,因此数组p的下标范围为:0~7。程序循环过程为:第1次循环i=0,执行循环,并且i自加,得i=1,因此p[i]为p[1]=12,12%2=0,不执行后面的语句:接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;这样一直到退出循环。最后,i的值为.i=13+15+17=45。
53.A解析:数据库系统DBS是指在计算机系统中引入数据库后的系统构成。数据库系统是一种带有数据库的综合系统,它包括硬件、软件(如操作系统、数据库管理系统、编译系统及应用开发工具软件等)、数据库以及开发者和使用者。
54.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。
55.D解析:double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf('%1f',p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%if(或%le)。否则,数据不能正确输入。所以选项D)为正确答案。
56.A解析:C程序是由函数构成的。—个C源程序至少包含—个main函数,也可以包含—个main函数和若干个其他函数,因此,函数是C程序的基本单位。
57.B解析:本题考查的知识点是结构体数组元素的成员元素的引用。程序中首先定义了一个结构体,其成员为一字符数组和一浮点型数组。在main()首先定义了一个结构体数组并初始化.接下来在for循环中遍历了结构体数组中的第一个元素中数组成员即{'20021',90,95,85'}循环结果为90+95+85=270最后sum为270,又输出格式为“%6.2f\\n”要求保留两位小数故最后输出为270.00。所以4个选项中B正确。
58.C解析:栈是—种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进栈,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。
59.B解析:本题考查逻辑与运算的运算规则。其规则是:当运算符前后两个条件表达式都满足时,其最终结果才为真。当发现第一个表达式的值为假后,计算机将不再执行后面表达式的运算。
本题中,由于前一个表达式的值为“假”,所以,后面的表达式不再进行运算,因而n的值保持不变,仍为2。
60.B解析:为按二进制异或运算符,变量s与其相等的数值异或的结果为0。
61.D本题考查C语言中变量类型的转换。
C语言中若参与运算的变量的数据类型不同,则先转换成同一类型,然后进行运算。转换数据始终往长度增加的方向进行,以确保精确度,如int和long运算,则将int转换为long再运算,所有的浮点运算都是以双精度(double)进行的。
题目中x、y都为double型数据,而表达式3/2为两个整型变量之间的计算,计算结果只保留整数部分,小数部分省略掉。3/2的结果为1。后面变为计算y=x+1,这时都需要变为double型数据,结果为3.000000。
62.C解析:选项A中两个变量的定义应当以逗号隔开;选项B中a和b应当分开赋值;选项D中变量类型不相匹配,b应当是指针型变量。
63.C本题主要考查几种循环结构的比较。在题目中,给出了一段程序,程序首先对整型变量w赋值;然后定义了一段程序LB,在该段程序中,首先判断变量w是否为零,如果是,则用GOTO语句跳出该段程序至LE,如果不为零,则w自减并输出*,然后用GOTO语句跳到该程序段开始的地方执行。该段程序其实相当于一个循环,循环的结束条件是变量w的值等于零。
在选项A中,我们可以看到循环结束的条件是变量w的值等于零,而初值也一样,与题目中的程序段意思完全一致。
在选项B中,我们可以看出循环结束的条件是变量w的值等于零,而程序也是先判断,再执行后面的语句,与原程序段描述的意思一致。
在选项C中,do-while循环是直到型循环,即先执行一次循环体中的语句后,再判断循环条件,当w的值已经等于0时,循环依然要运行一次,与原程序段描述的内容不一致,是题目的答案。
在选项D中,循环所描述的内容也与原程序段一致。
提醒:在完成这类题时,首先需要弄明白原程序段的作用,如果看不懂,则可以比较选项中与其他选项不同的结果。
64.A本题主要考查的是字符数组、字符串和字符指针的一些概念。数组元素个数,是在定义数组的时候确定的,本题的S数组元素个数是20。而字符串长度是从该字符串的第1个字符开始,一直到“\0”字符为止,所历经的字符个数,
“\0”不算在内。所以本题P所指字符串(”Beijin9”)的长度为7。因此选项B)的叙述不正确。s是数组名,而不是指针变量,因此选项C)不正确。数组s中除了包含字符串“Beijin9”外,还包含其后的20个以内字节的内容,而指针变量p中包含的只
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挂车租出合同6篇
- 场地有偿使用合同7篇
- 公寓式房屋转租合同
- 广告制作安装合同书
- 临街商铺租赁合同
- 工程降水分包合同
- 土地利用规划的制定与执行指导书
- 员工租赁车辆协议
- 信封印刷合同6篇
- 围墙工程包工合同
- 高技能人才培训基地 建设项目实施方案
- 消毒供应中心礼仪培训
- 微信公众号运营步骤
- 2024年河南省中职对口升学高考语文试题真题(解析版)
- DB37T 4614.2-2023“爱山东”政务服务平台移动端 第2部分:运营管理规范
- 初中数学新课程标准(2024年版)
- 《马诗》教学课件新课学习
- 吊罐法掘天井安全技术操作规程(4篇)
- 2024年高考语文复习:酬和类古代诗歌阅读 专项练习题汇编(含答案解析)
- GB/T 36547-2024电化学储能电站接入电网技术规定
- 医疗废物管理条例
评论
0/150
提交评论