版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年黑龙江省牡丹江市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.程序运行后的输出结果是()。A.3B.4C.5D.6
2.以下程序的输出结果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6
3.有以下程序:
程序运行后的输出结果是()。A.1B.11C.7D.9
4.有下列程序:程序执行后的输出结果是()。A.Zhao,m,85,Zhao,m,85
B.Sun,f,90,Zhao,m,85
C.Zhao,m,85,Sun,f,90
D.Sun,f,90,Sun,f,90
5.在关系数据库中,用来表示实体间联系的是()。
A.网状结构B.树状结构C.属性D.二维表
6.以下叙述正确的是()。
A.表达式“sizeof(FILE*)==sizeof(int*)”的值为真
B.文件指针的值是一个整数,它的值一定小于文件字节数
C.文件指针的值是所指文件的当前读取位置
D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符
7.
8.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
9.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
10.若有定义“doublea=22;inti=0,k=18;”,则不符合C语言规定的赋值语句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
11.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
12.判断一包含n个整数的数组a[]中是否存在i、j、k满足a[i]+a[j]+a[k]=0的时间复杂度需要()
A.O(n^2)B.O(n^2logn)C.O(n^3)D.O(nlogn)
13.算术运算符和圆括号有不同的运算优先级,对于表达式“a+b+c*(d+e)”,关于执行顺序,以下说法正确的是()。
A.先执行“(d+e)”得r2,再执行“c*r2”得r3,再执行“a+b”得r1,最后执行“r1+r3”得表达式最后结果
B.先执行“a+b”得r1,再执行“(d+e)”得r2,再执行“c*r2”得r3,最后执行“r1+r3”得表达式最后结果
C.先执行“(d+e)”得r2,再执行“c*r2”得r3,再执行“b+r3”得r4,最后执行“a+r4”得表达式最后结果
D.先执行“a+b”得r1,再执行“r1+c”得r5,再执行“(d+e)”得r2,最后执行“r5*r2”得表达式最后结果
14.当一个函数无返回值时,定义它的函数类型应是()。
A.voidB.intC.任意D.无
15.下列说法中错误的是A.A.只能在循环体内使用break语句
B.在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环
C.在while和do…while循环中,continue语句并没有使整个循环终止
D.continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断
16.以下叙述中错误的是
A.在程序中凡是以“#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
17.下列不属于软件调试技术的是______。A.强行排错法B.集成测试法C.回溯法D.原因排除法
18.若有下列定义(设int类型变量占2个字节):
inti=8;
则下列语句:
printf("i=%08d",i);
输出的结果是()。A.A.i=8B.i=00000008C.i=08D.8
19.下列叙述中错误的是()。
A.一个C语言程序只能实现一种算法
B.c程序可以由多个程序文件组成
C.C程序可以由一个或多个函数组成
D.一个c函数可以单独作为一个C程序文件存在
20.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序运行后的输出结果是()。
A.48B.34C.35D.45
二、2.填空题(20题)21.设x、y、z均为int型变量,请写出描述"x或y中至少有一个小于z"的表达式______。
22.以下程序的运行结果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
23.软件工程研究的内容主要包括:【】技术和软件工程管理。
24.C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。
25.若变量n中的值为24,则函数共输出【】行,最后一行有【】个数。
voidprint(intn,intaa)
{inti;
for(i=1;i<=n;i++)
{printf("%6d,aa[i]);
if(!(i%5))printf("\n");
}
printf("\n");
}
26.下列程序的输出结果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
27.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。
28.算法的复杂度主要包括时间复杂度和______复杂度。
29.以下程序运行后的输出结果是【】。
main()
{
inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<4)
{
if(i==2||==4)continue;
j=0;
do
{
s+=a[i][j];
j++;
}while(j<4);
}
Printf("%d\n",s);
}
30.以下程序的输出结果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}
31.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。
32.用十六进制给存储器中的字节地址进行编号,其地址编号从0000到FFFF,则该存储器容量是【】。
33.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
34.面向对象的模型中,最基本的概念是对象和______。
35.以下程序运行后的输出结果是()。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%%d\n",a,b,C);
}
36.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。
37.数据流图的类型有【】和事务型。
38.下列程序运行后的输出结果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
39.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)后,结果是______。
40.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
三、1.选择题(20题)41.若运行时给变量x输入12,则以下程序的运行结果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}
A.0B.22C.12D.10
42.若执行下列的程序时,从键盘上输入1和2,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
43.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
44.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.x&&y
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
45.fgetc函数的作用是从指定文件读入—个字符,该文件的打开方式必须是______。
A.只读B.追加C.读或读写D.以上均正确
46.设有定义:intk=1,m=2;floatf=7;则以下选项中错误的表达式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
47.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是
A.data的每个成员起始地址都相同
B.变量data所占内存字节数与成员c所占字节数相等
C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
D.data可以作为函数的实参
48.下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[a-1-i];a[n-1-i]=t;}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}程序运行后的输出结果是()。
A.27B.6C.25D.30
49.设a=3、b=4、c=5,则表达式!(a+b)+c-1&&b+c/2的值为______。
A.6.5B.6C.0D.1
50.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n".m);执行后输出结果是
A.0X0B.0x0C.0D.0XABC
51.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是______。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
52.以下程序的输出结果是main(){charx=040;printf("%o\n",x<<1);}
A.100B.80C.64D.32
53.设a,b,c,d,m和n均为int型变量,且a=5,b=6,c=7,d=m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()
A.0B.1C.2D.3
54.以下程序的运行结果为______。char*c[]={"ENTER","NEW","POINT","FIRST"};char**cp[]={c+3,c+2,c+1,c};char***cpp=cp;main(){printf("%s\n",**++cpp);}
A.ENTERB.NEWC.POINTD.FIRST
55.定义int*swap()指的是______。
A.—个返回整型值的函数swap()
B.—个返回指向整型值指针的函数swap()
C.—个指向函数swap()的指针,函数返回一个整型值
D.以上说法均错
56.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
57.已知p、p1为指针变量,a为数组名,i为整型变量,下列语句中,不正确的是______。
A.p=&i;B.p=a;C.p=&a[i];D.p=10;
58.以下对枚举类型名的定义中正确的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
59.以下叙述中错误的是A.gets函数用于从终端读入字符串
B.getchar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
60.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
四、选择题(20题)61.有以下函数intaaa(char*s){char*t=s;while(*t+t);t--:return(t-s);}以下关于aaa函数的功能叙述正确的是()。A.求字符串S的长度B.比较两个串的大小C.将串S复制到串tD.求字符串S所占字节数
62.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。
A.fget(f0,ch);
B.foutc(ch,fo);
C.fprinff(fp,”%c”,ch);
D.fwrite(&ch,sizeof(ch),1,fp);
63.下列程序段的输出结果是
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A.无输出B.12,123.5,12345.5
C.1234,123.5,12345.5D.1234,123.4,12345.5
64.
65.
66.
67.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
68.有以下程序段以下关于程序段执行情况的叙述,正确的是()。
A.当产生的随机数n为0时,结束程序运行
B.当产生的随机数n为4时,结束循环操作
C.当产生的随机数n为l和2时,不做任何操作
D.细循环语句固定执行8次
69.有以下程序:
程序运行后的输出结果是()。
A.1,2B.1,0C.3,2D.0,0
70.有以下程序程序运行后的输出结果是()
A.3,5,3,5B.3,5,5,3C.5,3,3,5D.5,3,5,3
71.设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);
72.
执行下述程序后,输出的结果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf("%d",a);
}
A.1B.4C.9D.0
73.当变量c的值不为2、4、6时,值为“真”的表达式是()。
74.
75.
76.以下选项错误的是
77.
78.
79.以下数据结构中不属于线性数据结构的是______。
A.队列B.线性表C.二叉树D.栈
80.(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()
A.cedba
B.acbed
C.decab
D.deabc
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。注意:部分源程序给出如下。请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(chara){voidmain{chars[81];print{("Enterastring:\n");gets(s):fun(S);printf("Thestringafterdeleted:\n");puts(s);}
参考答案
1.B[解析]&按位与,如果两个相应的二进制位都为1.则该位的结果值为1.否则为0.按位或两个相应的二进制位中只要有一个为1.该位的结果值为1.2的二进制为0000010.4的二进制为000000所以做或运算结果为0000110.该数与5即00000101做与操作结果为0000100.即4.
2.B当b=1时,a=1,第二个if语句成立,此时a=6,返回for循环;当b=2,两个if语句都为假,此时a=3,再返回循环;当b=3,第二个if成立,此时a=8,继续循环;当b=4,第一个if成立,退出for循环体时b为4,a为8。
3.D题干中,函数fun的功能是将二维数组p的行下标为1、列下标为1的元素(p[1][1])的值赋给二维地址s指向的*s所指向的存储单元。main函数中定义了整型指针p,动态分配了整型长度的内存空间,调用函数fun将数组元素a[1][1],即9赋给p所指向的空间。本题答案为D选项。
4.D程序定义结构体类型STU,main函数定义结构体STU变量b,并将b的地址赋给指针变量a。调用函数f,传入a。在函数f中,定义了STU变量c,并将c的地址赋给d,再用d指向的值赋给a指向的地址,接着输出a指向的值,也就是c的值:Sun,f,90。由于函数f的调用通过指针参数a修改了变量b的值,因此a指向的值也就是b的值等价于c:Sun,f,90。本题答案为D选项。
5.D单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。
6.A“sizeof(FILE*)=4”,因为“file*”为指针,指针变量占用字节数为4,所以“sizeof(int*)=4”,选项A正确。文件指针的值是地址,是一个十六进制数,它的值不一定小于文件字节数,因此选项B错误。文件指针是所指文件的当前读取位置,而不是文件指针的值,因此选项C错误。“intfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函数可以向任意类型的文件写入任意数量的数据(不能超过系统的缓冲区),写文件先写入缓冲区,最后一起写入文件,因此选项D错误。故本题答案为A选项。
7.D
8.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。
9.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。
10.B运算符“%”为二元运算符,具有左结合性,参与运算的量均为整型。B选项中的变量a是double型,不符合规定。故本题答案为B选项。
11.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
12.A
13.B题干表达式中,圆括号的优先级最高,乘法运算符次之,加法运算符最低。同优先级中,加法运算符的结合性从左向右结合,所以题干中的表达式执行顺序是:先执行“a+b”得r1,再执行“(d+e)”得r2,再执行“c*r2”得r3,最后执行“r1+r3”得表达式最后结果。故本题答案为B选项。
14.A
15.A解析:只能在循环体内和switch语句体内使用break语句,当break出现在循环体中的switch语句体时,其作用是跳出该switch语句体。当break出现在循环体中,但不在switch语句体中时,则在执行break后,跳出本层循环体。continue语句的作用是,跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
16.D解析:在C语言中,凡是以“#”开头的行都称为编译预处理命令行,如#include、#define、#if等,每行的末尾不得用“;”结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C源程序进行编译前执行的.当然也在程序执行之前执行,因此选项D是错误的。
17.B解析:我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。所以答案是选项B。A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。测试有单元测试、集成测试、确认测试、系统测试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。
18.B解析:本题考查printf函数的格式。“%08”格式符中的“0”表示在指定数据输出宽度的同时,在数据前面的多余空格处加“0”;“8”表示指定数据的输出宽度为8位。
19.A答案A
解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。
20.A\n第一调用func函数时输出4,第二次调用func函数时num的值并不会释放,仍然是上次修改后的值4,第二次调用结果为8,所以输出结果是48。
\n
21.X<Z||y<zX<Z||y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即X<Z或y<z,是“或”的关系。
22.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为'1,2,3,0,0,1,2,3,0,0,'。
23.软件开发
24.顺序结构顺序结构解析:结构化程序有3种摹本结构,即顺序结构、选择结构(包括if语句和switch语句)和循环结构(包括for语句、while语句、do…while语句)。
25.54
26.88解析:本程序定义了3个指针变量p1、p2、p,并且将a、b的地址分别赋给p1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是*(p=&c),即使指针p指向了变量c,因而*(P)代表了c的存储单元,赋值语句“*(p=&c)=*p1*(*p2);”是把整数8赋给了变量c。
27.外模式外模式解析:外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。
28.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
29.9292解析:主函数中首先定义了一个4行4列的二维数组,然后执行一个while循环,该循环中又嵌套了一个do-while循环。现看while循环,该循环通过i++的值来判断是否结束循环当i++的值为4的时候结束循环,当i=0时,执行while的循环体,显然if语句条件不满足不执行,接着让i=0,然后执行do-while循环体,我们不难看出do-whilo循环的功能是将第i+1行的所有元素加起来,所以这时s的值为s=a[1][0]+a[1][1]+a[1][2]+a[1][3)=26,当i=1时,i+1=2,uf后面括号里的表达式的值为真执行后面的continue语句,结束该次循环;当i=2时,i加1变为3,把第3+1行的所有元素的加到s上,此时s=s+a[2][0]+a[2][1]+a[2][2]+a[2][3]=92,当i=3时,3+1=4,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环,当i=3时,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环当i=4时while循环结束,所以最后输出的s的值为92。
30.3691236912解析:本题考查最基本的for循环。for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3,即每次a的值增加3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。
31.循环循环解析:算法一般由顺序,选择和循环三种基本控制结构组合而成。
32.64KB
33.220220解析:根据赋值运算符“自右至左”的结合顺序,程序中赋值表达式x=f*=n/=(c=50)的求解步骤为:首先计算n/=(c=50),即n=n/c=100/50=2;然后计算f*=n,即f=f*n=10*2=20.000000,由此得到x的值为20.000000。
34.类类
35.1020010200解析:a的初值为10,b的初值为20,因此“a%b”结果为10,“(a%b<1)”为假,“a/b”的结果为0,“(a/b>1)”为假,所以“(a%b<1)||(a/b>1)”的值为0(假),c的值为0。
36.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。
37.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
38.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符中,则不能使用scanf()数,所以本题中输入空格就返回了'\\0\\,s数组也就确定了,后面的输入就不再读入数组s中。
39.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。
40.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
41.A解析:本题考查的是三目运算符的用法,三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)的值为真时,求(表达式2)的值为整个表达式的值;如果(表达式1)的值为假,则求(表达式3)的值为整个表达式的值。题中,表达式x>12的结果为假,所以执行的语句是x-12,最终y的值应该是0。
42.B解析:本题考查if语句。scanf函数通过键盘读入a、b的值,a=1,b=2。第一个if语句,先判断条件,发现a<b条件成立,则s=b=2,s=s*s=4。
43.D解析:该题考查逻辑与'&&'和逻辑或'||'以及逻辑非'!'符号的用法。选项A)即3&&4为真;选项B)即3<=4为真;选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为x的值为真;此时选项C)变为1&&-1为真。选项D)不用计算,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。
44.D解析:本题考查逻辑运算符的使用。当“&&”的两个运算对象都足逻辑1时,表达式才返回值是1;当“||”的两个运算对象至少有一个是逻辑1时,表达式返回值是1。选项A)中,x和y都是逻辑1,所以返回值是1;选项B)中,x=4<=y=6为逻辑1,所以返回值是1;选项C)中,y+z的值等于14,非0,y-z的值为-2,非0,所以逻辑表达式4||14&&-2的值不为0;选项D)中,x<y为1,!z为0,1&&0为1,0||为1,因此,!1为0。
45.D解析:fgetc函数是指从指定的文件读入—个字符,该文件必须是以读或读写方式打开的。fgetc函数的调用形式为:ch=fgetc(fp);。
46.C解析:A、D选项是关系运算表达式,在C语言中,只要关系运算符两边是合法的表达式就可以了。C选项中,%只能对整型进行运算,其中对f进行了强制类型转换,但是转换的表达式错了,应为:(int)(f)。
47.D解析:选项A),共用体的每个成员的起始地址都相同;选项B),共用体变量所占的内存长度等于最长的成员的长度;选项C)因为每个成员的起始地址相同,所以整型数5以浮点型输出时为5.000000;选项D)C语言规定,不能把共用体变量作为函数的参数。
48.A解析:本题考查函数调用时的参数传递.函数reverse将数组b进行了逆置,此时的b[10]=(10,9,8,7,6,5,4,3,2,1},后面for语句的功能是将b中的前3个数累加,将结果放在s中,最后将s输出,结果s=10+9+8=27。
49.D
50.C解析:本题考核的知识点是C语言中的自反赋值运算符。“m-=n”相当于“m=m-n”,两个相等的数相减,其值为0。所以,C选项为所选。
51.D解析:本题考查的是判断奇偶数。选项A、B和c中都是当k是奇数时表达式的值为1,否则为0。而选项D中因为逻辑非!运算符的优先级最高,所以当k为0的时候,k的值为1,整个表达式的值也就是1,而当k为非。的时候!k的值为0,整个表达式的值为0。所以本题应该选择D。
52.A解析:本题考核的知识点是位运算符的应用.首先将八进制040转换成二进制数000100000,在将此;进制数左移一位为001000000,输出时转换成八进制数100。所以,4个选项中A为所选。
53.C
54.C
55.B解析:—个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是—个返回整型指针的函数。
56.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
57.D
58.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。
59.B其中B选项的getchar函数用于从终端读入字符。故本题答案为B选项。
60.D解析:本题考核的知识点是指针变量定义和赋值语句的基本应用。在使用一个指针变量之前,先要用声明语句对其进行定义,在定义了一个指针变量之后,系统就为这个指针变量分配了一个存储单元,用它来存放地址。在C语言中有两个有关指针的运算符:&运算符,为取地址运算符,*运算符是指针运算符,*p代表p所指向的变量。本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q并让它指向p,选项A中将常量1赋给指针p不正确;选项B也是将常量2赋给*p,故选项B不正确;选项C中P不是指向指针的指针变量,而将他赋值给一个指向指针的指针变量小显然不正确,所以,4个选项中选项D符合题意。
61.A在while循环开始前,指针t和s都指向字符串的起始位置。while循环的判断条件中,判断t所指位置是否为字符串的结束标志,同时让t右移一位。当while循环结束时,t自减1,此时t指向的位置是字符串的结束标志,故t-s的值是字符串的长度。
62.A函数fgete()从文件读入一个字符到指定变量。函数fputc()将指定字符写入审文件中,函数fprinff(),fwrite()均是写入文件操作函数。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度消防水泵房改造与维护合同协议书3篇
- 工作计划表模板(共6篇)
- 岩溶泉水化学特征研究-第2篇-洞察分析
- 装饰工程关键工序的施工方法及确保质量的技术措施
- 施工方案及组织计划
- 03 完形填空20篇(15空名校名题)-2023-2024学年七年级英语上学期期中热点题型专练(原卷版)
- 土工布铺设施工方案与技术措施
- 施工进度计划及进度保证措施
- 武汉市家庭居室装饰装修工程施工合同
- 水电安装工程分包合同
- 中国特色大国外交和推动构建人类命运共同体
- 《风电场项目经济评价规范》(NB-T 31085-2016)
- 粗粒土和巨粒土最大干密度记录表及报告
- 爱丽丝梦游仙境话剧中英文剧本(共6页)
- 书法少年宫活动记录
- 表冷器性能计算书
- 走遍德国 A1(课堂PPT)
- 照明公司个人工作总结范文
- 热控专业施工质量验收范围划分表
- 2022年sppb简易体能状况量表
- 各类传染病个案调查表集
评论
0/150
提交评论