版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年辽宁省抚顺市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()
A.并运算B.交运算C.差运算D.除运算
2.以下程序的输出结果是()。
main()
{charst[20]="hell0\O\t\\\”;
printf("%d%d\n",strlen(st),sizeof(st));
}
A.99
B.520
C.1320
D.2020
3.以下关于顺序存储结构的叙述中,()是不正确的。
A.存储密度大
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算机直接确定第i个结点的存储地址
D.插入、删除运算操作不方便
4.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。
A.运行后报错B.66C.611D.510
5.
6.在面向对象方法中,实现信息隐蔽是依靠()。
A.对象的继承B.对象的多态C.对象的封装D.对象的分类
7.设x和y均为int型变量,且x=10,y=3,则以下语句的输出结果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
8.有以下程序:#include<stdio.h>main(){char*s="[2]34";intk=0,a=0;whil(s[k+1]!=\0){k++;if(k%2=o){a=a+(s[k]-0+1);continue;}a=a+(s[k]-0);printf("k=%da=%d\n",k,a);}程序运行后的输出结果是()。A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15
9.在下面栈的基本运算中,不是加工型运算的是______。
A.初始化B.进栈C.退栈D.判栈空
10.软件详细设计的主要任务是确定每个模块的()。
A.算法和使用的数据结构B.外部接口C.功能D.编程
11.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
12.以下选项中合法的C语言常量是()。
A.2.0KbB.”C++’C.”\2.0D.1.01
13.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是______。A.输出字符a的ASCⅡ码B.输出字符c的ASCⅡ码C.输出字符cD.程序出错
14.
15.以下符号中不能作为标识符的是()。A.256B.voidC.vanfD.4Struct
16.
17.对表进行水平方向和垂直方向的分割,分别对应的关系运算是()
A.选择和投影B.投影和选择C.选择和联接D.投影和联接
18.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的运行结果是()。
A.55B.50C.45D.60
19.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
20.若执行下述程序时,若从键盘输入6和8,结果为()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}
A.36B.64C.48D.以上都不对
二、2.填空题(20题)21.下面程序的输出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
22.下列程序的输出结果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
23.执行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
24.以下程序运行后输入3,abcde<回车>,则输出结果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
25.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
26.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
27.数据库管理系统是位于用户与______之间的软件系统。
28.下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。
add(intx,inty,【】z)
{【】=x+y;}
29.下列循环的循环次数是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
30.数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像和【】。
31.以下程序的运行结果是【】。
#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=%d\n",k);
}
32.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
33.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
34.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。
35.在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的______特性。
36.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
37.以下程序运行后的输出结果是【】。
#include<stdio,h>
main()
charc1,c2;
for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);
printf("\n");
}
38.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
39.软件设计模块化的目的是______。
40.下列程序的运行结果为【】。
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
main()
{enumweekdayworkday,weekend;
inti,a[8];
workday=tue;
weekend=sun;
printf("\ntueday=%dsunday=%d;",workday,week_end);
workday=sun+tue;
week_end=(enumweekday)3;
printf("tueday=%dsunday=%d;",workday,weekend);
a[sun]=sun;
a[mon]=mon;
a[tue]=rue;
a[wed]=wed;
a[thu]=thu;
a[fri]=fri;
a[sat]=sat;
for(i=l;i<=7;i++)printf("%d",a[i]);
}
三、1.选择题(20题)41.下面程序的输出结果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
42.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
43.请选出可用作C语言用户标识符的是()。
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,-abc,Case
D.2a,Do,$izeof
44.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
45.在下列设备中,属于输出设备的是()
A.键盘B.鼠标C.显示器D.软盘
46.已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义structa*f(intt1,int*t2,strcutat3,structa*t4)structap,*p1;inti;则正确的函数调用语句为
A.&p=f(10,&i,p,p1);
B.p1=f(i++,(int*)p1,p,&p);
C.p=f(i+1,&(i+2),*p,p);
D.f(i+1,&i,p,p);
47.在下列几种排序方法中,要求内存量最大的是______。
A.插入排序B.选择排序C.快速排序D.归并排序
48.下列所述中,是软件调试技术的是()。
A.错误推断B.集成测试C.回溯法D.边界值分析
49.下面函数的功能是()intfunl(char*X){char*y=X;whar(*y++);return(y-x-1);}
A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串y中D.将字符串x连接到字符串y后面
50.下列程序的输出结果是()。main(){chara[7]"aO\OaO\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}
A.22B.76C.72D.62
51.以下叙述中错误的是()
A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B.在程序结束时,应当用fclose函数关闭已打开的文件
C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D.不可以用FILE定义指向二进制文件的文件指针
52.下列表达式中,可以正确表示x≤0或x≥1的关系是()。
A.(x>=1)‖(x<=0)
B.x>1‖x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
53.下面程序段的运行结果是()。char*p="%d,a=%d,b=%d\n";inta=111,b=10,c;c=a%b;p+=3;printf(p,c,a,b);
A.1,a=111,b=10B.a=1,b=111C.a=111,b=10D.以上结果都不对
54.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1B.2C.3D.9
55.以下叙述中错误的是A.gets函数用于从终端读入字符串
B.getchar函数用于从磁盘文件读入字符
C.fputs函数用于把字符串输出到文件
D.fwrite函数用于以二进制形式输出数据到文件
56.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}
A.5B.4C.6D.不确定
57.下列选项中不符合良好程序设计风格的是A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计要保证高耦合、高内聚
58.设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是______。A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量
59.有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a%d,b=%d\n",a,B);}该程序的输出结果是______。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
60.下列叙述中,不属于设计准则的是()。
A.提高模块独立性B.使模块的作用域在该模块的控制域中C.设计成多入口、多出口模块D.设计功能可预测的模块
四、选择题(20题)61.
62.
63.若有定义:char*st=”howareyou”;,下列程序段中正确的是()。
A.
B.
C.
D.
64.已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。以下不能将变量C中的大写字母转换为对应小写字母的语句是()。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
65.计算机能直接执行的程序是()。
A.源程序B.目标程序C.汇编程序D.可执行程序
66.已知二叉树后序遍历序列是dabeC,中序遍历序列是debaC,它的前序遍历序列是()。
A.aChedB.deCabC.deabeD.Cedba
67.
68.(38)索引属于()
A.模式
B.内模式
C.外模式
D.概念模式
69.
70.设有如图所示二叉树,对此二叉树后序遍历的结果为()。
A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY
71.有以下程序:
程序执行后的输出结果是()。
A.5B.24C.32D.40
72.
73.执行下列程序后,输出的结果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0
74.
75.合法的数组定义是()。
A.
B.
C.
D.
76.数据库管理系统是()。
A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统
77.
78.
79.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp),的返回值为()。
A.0B.\0C.非0值D.NULL
80.有以下程序:
#include<stdio.h>
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i+j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是()。
A.m=6
B.m=2
C.m=4
D.m=3
五、程序改错题(1题)81.下列给定程序、中,函数proc()的功能是:先将字符串s中的字符按顺序存放到t中,然后把s中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写fun函数,其功能是:计算并输出3~m所有素数的平方根之和。
例如,若主函数从键盘给m输入50后,则输出为s=68.665791。
请勿改动main函数与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
注意:m的值要大于2但不大于100。部分源程序给出如下。
试题程序:
#include<math.h>
#include<stdio.h>
doublefun(intm)
{}
voidmain
{
intm;
doubles;
FILE*out:
printf("\n\nInputm:");
scanf("%d",&m);
s=fun(m);
printf("\n\ns=%f\n\n",s);
ut=fopen("outfile.dat","w");
for(m=0;m<10;m++)
fprintf(out,"%f\n",fun(m+80));
felose(out);
}
参考答案
1.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
2.B\n从题目中可知,\O、\t、\\分别为一个字符,而sizeof是求字节个数的函数,其中包括\O占的字节,strlen函数是求数组长度的函数;其以\0结束,因此strlen的值为5,sizeof的值为20。
\n
3.B
4.A解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。
5.B
6.C解析:通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。
封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,也是面向对象程序设计的基础。
继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。
多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。
经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。正确答案是选项C。
7.D
8.C输出结果:k=1a=2\r\nk=2a=4\r\nk=3a=7\r\nk=4a=12
9.D
10.A解析:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。本题正确答案为选项A。
11.A函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。
12.DC语言中,常量有整型常量、实型常量、字符常量和字符串常量等。整型常量和实型常量又称为数值型常量。其中整型常量只能用数字表示,不带小数点。实型常量必须用带小数点的数表示,所以选项A错误,选项D正确;字符型常量是用单引号标注的单个字符,字符串常量是用双引号标注的若干个字符,选项B、C错误。故本题答案为D选项。
13.D解析:此题中s是—个字符数组,而字符数纽是在编绎时为它分配内存单元的,即此字符数组的地址在编译时是确定的,所以对此地址变量并不能赋值,故语句“s+=2;”错误,故程序出错。
14.D
15.B
16.B
17.A解析:从关系中找出满足给定条件的那些元组称为选择,是从行的角度进行的运算,即水平方向抽取元组。从关系模式中挑选若干属性组成新的关系称为投影,是从列的角度进行的运算,相当于对关系进行垂直分解。所以,本题选择A。
18.D静态变量是始终存在的,当函数变量退出后,静态变量会保存数据,再次调用该函数时,以前的静态变量值仍然保留着。fun(a,5)的值是15,再次调用后sum=15,所以fun(b,4)=45,s=45+15=60。故本题答案为D选项。
19.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。
20.B
21.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3]、aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。
22.99解析:考查ifelse语句,n==4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+fun5(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。
23.1515解析:程序的功能是求1、2、3、4、5的和即15。
24.cdeabcdeab解析:本题move()函数的作用,是将形参s仕所指地址的连续n位循环右移1位,即让str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函数中用了一个for循环调用move()函数,共循环3次,所以数组s被循环右移了3位,故最后输出的值为cdeab。
25.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。
26.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
27.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。
28.int**zint*\r\n*z解析:函数希望通过形参z带回结果,形参z必须是指针类型的。由于返回整型结果,所以第一处填int*;函数返回前必须先把结果通过形参z间接引用传回,第二处应填*z。
29.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
30.模式/内模式映像模式/内模式映像解析:映像即一种对应规则,指出映像双方如何进行转换。数据库系统在三级模式之间提供了两层映像,这两层映像是外模式/模式映像与模式/内模式映像。
31.k=5k=5解析:由题可知fib(0)的值为0,fib(1)和fib(2)的值为1,因此,fib(3)=fib(2)+fib(1)=2;fib(4)=fib(3)+fib(2)=3;fib(5)=fib(4)+fib(3)=5。
32.参照完整性参照完整性
33.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。
34.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。
35.有穷性有穷性解析:算法的4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。
36.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。
37.918273645918273645解析:程序通过for循环将字符'0'~'9'从前向后,同时从后向前依次输出,所以输出结果为:0918273645。
38.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
39.降低复杂性降低复杂性
40.tueday=2sunday=7;tueday=9sunday=3;1234567
41.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i--,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。
42.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。
43.B解析:C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void是C语言的关键字。
44.A解析:函数定义时如果数据类型默认,则默认为int。函数中如果有“retum(表达式):”语句,表达式的类型可能与函数的类型不一致,但它并不能改变函数的类型,实际情况是把表达式转换为函数值的类型作为返回值,因此本题的函数值类型是int。
45.C
46.B解析:本题目中函数f的返回值为结构类型的指针,函数的四个形参分别为:t1为整型,t2为整型的指针,t3为structa类型,t4为structa类型的指针。在进行函数调用的时候,函数的实参必须要与形参说明相对应,函数的返回值也要赋给相应类型的变量。选项A)函数的返回值不能赋给一个常量;选项C)&(i+2)没有什么意义;选项D)返回值没有传递给任何变量,向函数传递的应该是structa类型的指针,可是传的却是变量。
47.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部
分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继
续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依
次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整
个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩
下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合
成一个新的有序表。
注意:各种排序方法实现过程及实现机制。
48.C解析:软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。
49.A
50.C解析:函数sizeof(a)的功能:求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。
51.D解析:顺序文件只能从头读写,二进制文件可以随机读写,选项A正确:文件在使用后应关闭,当程序结束时,应当把打开的文件关闭,选项B正确:用fread()函数可以一次性地读取同类型的很多数据,选项C正确;在C语言中指向各种文件的文件指针都是通过FILE来定义的,故选项D是错误的。所以4个选项中选D
52.A解析:题中要求x的取值是小于等于0或者大于等于1,这说明表达式是或的关系,所以在写成C语言表达式应是逻辑或的关系,逻辑或运算符是“‖”。
53.B解析:题中字符指针p指向了字符串“%d,a=%d,b=%d\\n”,c=a%b=111%10=1,p+=3使指针p向后移动了3个字符的位置。printf(p,c,a,b)相当于printf(“a=%d,b=%d\\n”,c,a,b);,格式控制串指明输出两个数据,输出项有3项,则最后一项不输出,所以答案为B)。注意:格式输出函数scanf的使用。
54.BB。【解析】根据二分法查找法需要两次:(1)首先将90与表中间的元素50进行比较,由于90大于50,所以性表的后半部分查找。(2)第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
55.B其中B选项的getchar函数用于从终端读入字符。故本题答案为B选项。
56.C
57.D解析:编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。因此,本题的正确答案是D。
58.C解析:将题目中的定义语句去掉前面的typedef和后面的NEW(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,ST是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,struetST一起构成一个结构体类型,就好像字符类型char.若只去掉前面的typedef,就是一条结构体定义同时声明一个结构体变量NEW的语句,因为NEW的前面部分是structST的完整写法。可以看作是structST.C语言允许用typedef说明一种新类型名,其语法格式为:
typedef类型名标识符;
以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给stmctST的完整写法定义一个新的名称NEW。所以,此时的NEW是一个结构体类型,它相当于structST,即可以和char一样单独用来声明该结构体变量,而ST只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。
59.A解析:在这个switch语句中,因为x的值为1,所以执行case1:后面的a++,这样a=1。但又由于其下没有break语句,所以其后面的语句“a++;b++”也将被执行,这样一来,a=2,b=1。
60.Cc)【解析】大量软件设计表明,以下的设计准则是可以借鉴为设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重点措施目标对专业的认知六大模块基本知识的认知
- 商场商户管理培训
- 2024年陕西省中考化学真题(A卷)【附答案】
- 宠物打扫培训课件
- 中风的自我治疗方案
- 《纹绣分为哪几种》课件
- 《全文获取途径》课件
- 办公室软件培训活动
- 保安管理规定
- 华为AI盘古大模型研究报告:研究框架
- 四级essay写作格式(18篇)
- 忻州市记者(编辑)任职资格综合考评表
- RFID智能仓库管理系统
- 20.通信工程施工方案
- YY/T 0295.1-2005医用镊通用技术条件
- GB/T 9119-2010板式平焊钢制管法兰
- GB/T 10114-2003县级以下行政区划代码编制规则
- GB/T 10069.3-2008旋转电机噪声测定方法及限值第3部分:噪声限值
- 语文课前三分钟演讲西塘古镇课件
- qq仪表dcs-io表热水循环泵出口压力
- 翻身拍背课件
评论
0/150
提交评论