




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河北省张家口市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.C语言常量的类型从字面形式上可区分,以下判断中正确的是()。
A.2E3——整型B.2.0E3——实型C.‘\025’——字符串D.“a”——字符型
2.结构化程序的3种基本控制结构是()。
A.递归、堆栈和队列B.过程、子程序和函数C.顺序、选择和重复D.调用、返回和转移
3.C语言提供的合法的数据类型关键字是()。
A.DoubleB.shortC.integerD.Char
4.以下程序执行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不确定D.0
5.设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈
6.有以下程序A.6B.3C.8D.12
7.若希望下列的程序运行后输出25,程序空白处的正确选项是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
8.若有定义“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
9.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
10.若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是()。
A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环
11.
12.设有定义“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能计算出一个char型数据所占字节数的表达式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
13.请选出以下程序的输出结果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
14.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}编译时编译器提示错误信息,你认为出错的语句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;
15.以下叙述中正确的是()。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列中的队尾指针一定大于队头指针
D.循环队列中的队尾指针一定小于队头指针
16.求2n个数中的最大值和最小值,最少的比较次数是()
A.4n/3B.2n-2C.3n-2D.3n/2
17.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序运行后的输出结果是()。A.0B.1C.2D.3
18.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.40
19.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
A.1267B.1256C.1278D.1245
20.设有以下函数“voidfun(intn,char*s){…}”,则下列对函数指针的定义和赋值均正确的是()。
A.void(*pf)(int,char);pf=&fun;
B.void*pf();pf=fun;
C.void*pf();*pf=fun;
D.void(*pf)(int,char*);pf=fun;
二、2.填空题(20题)21.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
22.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
23.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。
24.请选出以下程序的输出结果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}
25.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
pfintf("%d%d%d\n",a,b,c);
}
执行后输出结果是【】。
26.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
27.诊断和改正程序中错误的工作通常称为【】。
28.以下程序的运行结果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
29.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为【】。
30.以下程序的输出结果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
31.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
32.算法的执行过程中,所需要的存储空间称为算法的【】。
33.一棵二叉树第6层(根结点为第一层)的结点最多为______个。
34.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
35.以下程序运行后的输出结果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
36.若有以下程序
main()
{intp,a=5;
if(p=a!=0)
printf("%d\n",p);
else
pfintf("%d\n",p+2);
}
执行后输出结果是【】。
37.以下程序中,fun函数的功能足求3行4列二维数组每行尢素中的最大值。请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,B);for(i=0;j<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];for(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}
38.若有定义inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。
39.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
40.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后输出结果是______。
三、1.选择题(20题)41.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
42.以下选项中可作为C语言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
43.在计算机中,算法是指()
A.加工方法B.解题方案的准确而完整的描述C.排序方法D.查询方法
44.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
45.以下合法的赋值语句是______。
A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)
46.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
47.若指针p已正确定义,要使p指向两个连续的整型动态存储单位,不正确的语句是
A.p=2*(int*)malloc(sizeof(int));
B.p=(int*)malloc(2*sizeof(int));
C.p=(int*)malloc(2*2);
D.p=(int*)malloc(2,sizeof(int));
48.不能把字符串"Hello!"赋给数组b的语句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
49.没有程序段:intk=10;while(k=0)k=k-1;则下面描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
50.当运行以下程序时,从键盘输入AhaMA(空格)Aha<CR>,则下面程序的运行结果是#include<stdio.h>main(){chars[80],c='a';inti=0;scanf("%s",s);while(s[i]!='\n\){if(s[i]]==c)s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;}puts(s);}
A.ahaMaB.AbAMaC.A11AMa[空格]ahaD.ahAMa[空格]ahA
51.以下程序段的输出结果为()。staticchara[]="programme";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);
A.programmeB.pormC.有语法错误D.prog
52.下列标识符不是关键字的是()。
A.breakB.charC.SwitchD.return
53.有下列程序:
main()
{inty=20;
do{y--;}while(--y);
phntf("%d\n",y--);
}
当执行程序时,输出的结果是()。
A.-1B.1C.4D.0
54.字符(char)型数据在微机内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCII码
55.阅读以下程序及对程序功能的描述,其中正确的描述是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}
A.程序完成将磁盘文件的信息在屏幕上显示的功能
B.程序完成将两个磁盘文件合二为一的功能
C.程序完成将一个磁盘文件复制到另一个磁盘文件中
D.程序完成将两个磁盘文件合并并在屏幕上输出
56.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。
A.5B.24C.32D.40
57.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
58.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);
A.因变量类型与格式描述符的类型不匹配,输出无定值
B.输出项与格式描述符个数不符,输出为0值或不定值
C.62,142,k=%d
D.62,142,k=%10
59.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。
A.R-SB.R×SC.R∩SD.R∪S
60.有以下程序:maln(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是()。
A.45B.20C.25D.36
四、选择题(20题)61.以下选项中,能表示逻辑值“假”的是()
A.1B.0.000001C.0D.100.0
62.在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是
A.数据库系统B.文件系统C.人工管理D.数据项管理
63.有以下程序:
程序运行后的输出结果是()。
A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92
64.
65.以下语句的输出结果是()。
inta=-1,b=4,k;
k=(++a<0)!(b--<=0);
printf("%d,%d,%d\n",k,a,b);
A.1,0,4B.1,0,3C.0,0,3D.0,0,4
66.如果要在表单中创建一个普通文本框,下列标记中正确的是()。
A.<inputtype=”text”>
B.<inputtype=”password”>
C.<inputtype=”CheCkbox”>
D.<inputtype=”radio”>
67.有以下程序:
程序运行后的输出结果是()。
A.33B.197C.143D.28
68.
69.
70.有以下程序:
程序运行后的输出结果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
71.下列选项不符合良好程序设计风格的是()。
A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计原则是高耦合、高内聚
72.
73.
74.(72)n个顶点的强连通图的边数至少有______。
A.n-1
B.n(n-1)
C.n
D.n+1
75.某系统总体结构图如下图所示:
该系统总体结构图的深度是()。
A.7B.6C.3D.2
76.下面程序的输出结果是()。
#inclde<stdio.h>
#defineSUB(X,Y)(X)*Y
main()
{inta=3,b=4;
printf("%d\n",SUB(a++,b++));
}
A.12B.15C.16D.20
77.有以下程序:
执行后输出结果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
78.在数据库设计中,将E—R图转换成关系数据模型的过程属于()。
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段
79.
以下程序的输出结果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
80.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传人,若k的值为600,则函数的值为5671。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.下列程序定义了M×M的二维数组,并在主函数中赋值。请编写函数proc(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如,若a数组中的值为则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B2E3是实型常量的指数形式,选项A错误;2.0E3是实型常量的指数形式,选项B正确;‘\\025’是八进制表示的转义字符,选项C错误;“a”是双引号标注的字符串常量,选项D错误。故本题答案为B选项。
2.C1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复3种基本控制结构就足以表达出各种其他形式结构的程序设计方法。本题答案为C选项。
3.Bdouble,char,int,第一个字母都是小写。
4.Csum+=i等价于sun+i,在本题中sum没有赋初值,而题中只输出sum的值,因此整个结果为不确定值。
5.D
6.A[解析]本题中第一次调用为fum(8.fn(5.6)),因为fun(5.6)返回值为5.所以第二次调用为fn(8.5)=6.所以选择A)。
7.D要想使程序输出25,则j-40=25,j=65,而j初值是50,所以填入for循环的语句,使引用的数组元素累加65-50=15即可,D选项中,i下标从0开始,i=2指向第3个数50+a[2]=50+10=60,继续循环60+a[3]=60+5=65,此时i=4跳出,循环结束。
8.C“P”是指针变量,指向一个地址:“*P”为P指针所指向地址的内容“&”是取变量地址。
9.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。
10.D此题考查的是基本的循环,答案为D。
11.B
12.A根据题目中的定义可知,“sizeof(p)”计算的是数组p中所有元素所占用的字节数,而不是char型数据所占的字节数。故本题答案为A选项。
13.B
14.A本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。
15.B在实际应用中,队列的顺序存储结构一般采用循环队列的形式。当循环队列为满或者为空时,队尾指针=队头指针。本题答案为B选项。
16.A
17.A根据C语言运算符的优先级与结合性,先计算a/b,结果为l,再将a/b的结果与C做按位与运算,即l与2做按位与运算,其结果为0。
18.B
19.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。
20.D函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的入口地址,指向函数的指针应该定义为“void(*Pf)();”。如果定义为“void*pf();”,则表示函数pf的返回值是一个基类型为void的指针。故本题答案为D选项。
21.概念概念
22.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
23.(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,与前两项是或的关系。
24.C
25.503503解析:如果if后面的条件为真,只执行其后的一条语句或一条复合语句,如果if后面的条件为假,只执行else后面的一条语句或一条复合语句。先判断表达式“a<b”为假,不执行“t=a”,但执行“a=b;b=t;”,a的值为3,b的值为0。在判断表达式“a<c”,值为真,所以执行后面的3条语句“t=a;a=c;c=t”,结果a的值为5,c的值为3,所以最后输出的结果为5、0和3。
26.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
27.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。
28.k=5k=5解析:本题主要考查了函数的递归调用方法。g=0或g=1或g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。
29.1313解析:在任意一棵二叉树中,叶子结点总是比度为2的结点多一个。本题中的二叉树有3个叶子结点,所以,该二叉树有3-1=2个度为2的结点;又知本题中的二叉树有8个度为1的结点。所以,本题中的二叉树总结点数为:叶子结点数+度为l的结点数+度为2的结点数=3+8+2=13。所以,本题的正确答案为13。
30.1616解析:首先将程序中宏替换掉,先把“MCRA(i)”替换成“2*i”,然后把“MCRA(j,2*i)”替换成“2*2*j+2*i”,经计算该表达式的值为16,所以最后输出为16。
31.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
32.空间复杂度空间复杂度解析:算法执行时所需要的存储空间,称为算法的空间复杂度。
33.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。
34.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
35.*2*4*6*8**2*4*6*8*解析:程序中定义了一个字符数组a,并初始化为123456789,接着定义了一个指针p并让它指向数组a,紧接着执行了一个while循环,此循环的作用是:当i为偶数时,将“*”赋给a[i],p指向数组末尾,循环结束,此时数组中a[0]、a[2]、a[4]、a[6]和a[8]的值都为“*”,所以最后调用puts()函数输出的a的值为*2*4*6*8*
36.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=o”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。
37.x<ar[i][j]x<ar[i][j]解析:本题考查的是循环的嵌套。本题定义了二维数组a,存放3行4列的数组元素,定义了,一维数组b用于存放每行的最大数。存函数fun中,通过二重for循环求每行的最大数,外层for循环用于控制行数,内层for循环用于控制列数。当外层循环执行一次时,内层循环则执行4次,并求出了这一行的最大值x,最后将每一行求出最大值x赋值给存放最大值的数组br,故本题答案为x<ar[i][j]。
38.00解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a[0][1]、a[0][2]、a[0][3]。
39.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。
40.00解析:本题中的for循环共执行了6次,每执行一次将相应i的值相乘,最后当i=-1时停止循环.该for循环执行完后t的值为5*4*3*2*1*0=0,故最后输出I的值为0。
41.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。
42.A解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。
43.B在计算机中,算法被定义为对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。算法具有有穷性、确定性、可行性、输入和输出五大特点。
在本题中,选项A、C、D的说法明显偏离了算法的定义,因此正确答案选B。
44.D解析:本题考查的知识点是do-while循环结构循环执行条件的判断.使用do-while语句必须注意以下几点:
先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同,
如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。
C语言中的do—while语句是在表达式“真”时重复执行循环体。
在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为p不等于12345且n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者p小于12345又或者n大于等于3。选项A的意思是:p的值不等于12345并且n的小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件,所以选项A不正确;选项B的意思是:p的值等于12345并且n的值大于3,不是循环结束的条件一个子集,所以选项B不正确;选项C的意思是:p的值不等于12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件,所以选项C不正确;选项D描述的意思是:p的值等于12345或者你的大于等于3是结束条件的子集,所以选项D满足题意。所以4个选项中D正确。
45.B解析:本题中的答案A与D都缺少“;”,而答案C中,表达式是不能独立成为语句的,答案B使用了C语言的自减运算符它就相当于D=D-1,所以答案B为一赋值语句。
46.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。
47.A解析:malloc()函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元并把该存储区的首地址作为返回值,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。选项D多了一个参数,不符合malloc()函数的调用格式;整型变量在有的计算机系统里占4个字节,并不一定在所有的计算机系统里都是两个字节;选项A中是申请一个整型的存储空间并把该存储空间的首地址乘以2,这样的做法是不正确的,其存储空间为没乘以2之前的存储空间的2倍的连续存储空间的地址。
48.B解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。
49.C解析:本题的while语句是将0赋给k,表达式的值为0,没有执行循环体语句。
50.A解析:本题主要考查的知识点是大写字母比它对应的小写字母ASCII码值小32,并且字符可以看作整数进行算术运算等操作。
51.B解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址,第一次for循环,p=a,p指向数组的第一个元素,*p是取指针p所指地址的内容,输出p;第二次for循环,p=p+2,则p指向数组的第三个元素,*p是取指针p所指地址的内容,输出o;第三次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出r;第四次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出m;结束循环。
52.C解析:break、char、return、switch都是C语言中的关键字,switch不是。因为C语言区分字母的大小写。
53.D解析:本题考查do…while循环。当--寸是0(即y是0)时结束循环,输出y--是先输出y的值再将y的值减1。
54.D解析:将—个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
55.C解析:本题中,最主要的是掌握几个有关文件的函数的应用。
函数名:fopen功能:打开一个文件调用方式FILE*fp;fp=fopen(文件名,使用文件方式);
函数名:feof功能:检查文件是否结束调用方式:feof(FILE*fp);
函数名:fputc功能:把一个字符写到磁盘文件上去调用方式:fputc(ch,fp)(ch是要输出的字符,fp是从指定的文件读入一个字符,该文件必须是以读或读写方式打开的调用方式:ch=fgetc(fp)(ch是字符变量,fp是文件指针变量);
函数名:fclose功能:关闭一个文件调用方式:fclose(文件指针)。
56.C解析:在for循环体中,首先判断自变量i能否被5整除,然后再自加两次,最后判断i能否被8整除。当for循环执行到第30次时,i的值为30能被5整除,然后i经过两次自加1运算,值变为32,能被8整除,故执行“printf('%d',i);”语句,即输出32。本题的答案为选项C)。
57.C解析:选项A中定义了一个字符型数组并赋初值,故选项A正确;选项B定义了一个字符型数组t并初始化,然后定义了一个指针变量s并让它指向t,故选项B正确;选项C先定义?一个长度为10的字符型数组,然后在给它赋值,这时应该分别给数组中的每个元素赋值,故选项C不正确;选项D中先定义了一个长度为10的字符型数组s,然后通过字符串拷贝函数将字符串“abedefs”赋值给它,选项D正确。所以,4个选项中选项C符合题意。
58.C解析:第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个pfintf函数,有两个%说明,第1个%后面的字符要原样输出。注意:本题考查printf函数的格式。①“%x”和“%o”分别表示以十六进制和八进制无符号型输出整型数据(不带前导Ox或O):②printf函数中格式说明符之前插入的任何字符都原样输出:⑧格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。
59.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。
60.C解析:通过for循环语句s=*(t+0)+*(t+2)+*(t+4)+*(t+6)+*(t+8)=1+3+5+7+9=25。
61.C\n本题考查逻辑值假,在程序中非0字符表示逻辑真,0表示逻辑假,所以答案选择C。
\n
62.A本题考查数据库中的数据管理技术相关知识。
数据管理技术的发展大体可以归为三个阶段:人工管理、文件系统和数据库管理系统。
人工管理阶段:计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等还没有磁盘等直接存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理方式基本是批处理。这个阶段有几个特点:数据不保存;应用程序中包含自己要用到的全部数据;数据不共享;数据不具有独立性。
文件系统阶段:计算机不仅用于科学计算,还用在信息管理方面。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备。软件领域出现了操作系统和高级软件。操作系统中的文件系统是专门管理外存的数据管理软件,文件是操作系统管理的重要资源之一。数据处理方式有批处理,也有联机实时处理。在文件系统支持下,数据开始从程序中逐步独立出来,数据文件可以独立、长期地存储,数据的逻辑结构和物理结构有了一定的区别。数据的逻辑结构是指呈现在用户面前的数据结构形式。数据的物理结构是指数据在计算机存储设备上的实际存储结构。文件系统对计算机数据管理能力的提高虽然起了很大的作用,但是仍然存在许多根本性问题。主要表现在:数据文件是为满足特定业务领域某一部门的专门需要而设计,数据和程序相互依赖,数据缺乏足够的独立性;数据没有集中管理的机制,其安全性和完整性无法保障,数据维护业务仍然由应用程序来承担;数据冗余度大;对现有数据文件不易扩充,不易移植,难以通过增、删数据项来适
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冰雪旅游项目2025年投资可行性区域旅游市场前景研究报告
- 智慧社区2025年大数据精准营销模型构建成果鉴定与社区服务创新报告
- 直接展示幼儿园数学试题及答案
- 建筑施工安全教育培训效果评估试题及答案
- 物理知识的深度2025年试题及答案
- 工业废气催化燃烧技术在冶金行业应用现状与环保策略报告
- 文艺团笔试题目及答案
- 有色金属资源循环利用产业链现状与2025年市场潜力分析报告
- 短视频平台内容监管与行业监管法律法规研究报告
- 施工现场安全数据分析试题及答案
- 电音节策划方案
- 贝恩杯案例分析大赛初赛题目
- 2023年江苏省南京市中考语文默写题复习(附答案解析)
- 全国各省市邮编对照表
- 行政区域代码表Excel
- YS/T 837-2012溅射靶材-背板结合质量超声波检验方法
- 烧烤类菜单表格
- DB11∕T 583-2022 扣件式和碗扣式钢管脚手架安全选用技术规程
- 酒水购销合同范本(3篇)
- 海康威视系统图标
- 印染厂管理手册
评论
0/150
提交评论