版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年甘肃省张掖市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
3.
4.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}输出结果是()。A.28B.27C.42D.41
5.不带头结点的单链表head为空的判定条件是()。A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL
6.x>0&&x<=10的相反表达式为()。
A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10
7.
8.设有定义“inta=1,b=2,c=3;”,以下语句中执行效果与其他3个不同的是()。A.if(a>b)c=a,a=b,b=c;
B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c;
D.if(a>b){c=a;a=b;;b=c;}
9.数组A[5][6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,下标从1开始,则元素A[5][5]的地址是()。
A.1175B.1180C.1205D.1120
10.以下有关宏替换的叙述不正确的是()。A.A.使用宏定义可以嵌套
B.宏定义语句不进行语法检查
C.双引号中出现的宏名不替换
D.宏名必须用大写字母表示
11.
12.下列方法中,属于白盒法设计测试用例的方法的是()。
A.错误推测B.因果图C.基本路径测试D.边界值分析
13.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数是()
A.1B.2C.3D.4
14.栈这种数据结构一般应用在()。
A.递归调用B.子程序调用C.表达式求值D.A,B,C
15.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
16.
17.
18.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
19.一个栈的入栈序列是a,b,c,d,e,f,则栈的不可能的输出序列为()
A.fedcbB.defbcC.defcbD.abcdef
20.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}执行后的输出结果是()。
A.8,6B.8,3C.6,4D.7,4
二、2.填空题(20题)21.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotade(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=【】;【】=a[N-1][i];}}
22.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。
23.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
[14]=a;q->next=p;[15]=p;scanf("%d",&a);}
p->next='\0';return(ph);}
main()
{stuctlist*head;head=creatlist();}
24.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];
*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
25.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。
26.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于______中的一个阶段。
27.下面程序的输出是【】。
main()
{enumem{em1=3,em2=l,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s\n",aa[eml],aa[em2],aa[em3]);
}
28.程序的运行结果为【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
29.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
30.Jackson方法是一种面向【】的结构化方法。
31.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
32.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。
33.数据元素之间______的整体称为逻辑结构。
34.下列语句的输出结果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
35.执行下列语句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
36.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。
structstud
{charnum[6];
ints[4];
doubleave;
}a,*p;
37.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
38.下面程序的运行结果是【】。
#include<stdio.h>
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
39.以下程序的运行结果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
40.在面向对象方法中,()是具有相似性质的对象的集合。
三、1.选择题(20题)41.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
42.下述对C语言字符数组的描述中错误的是
A.字符数组的下标从0开始
B.字符数组中的字符串可以进行整体输入/输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.字符数组可以存放字符串
43.下列选项中不能正确定义结构体的是_______。
A.typedefstruct
B.structcolorcl{intred;{intred;intgreen;intgreen;intblue;intblue;}COLOR;};COLORcl;
C.structcolor
D.struct{intred;{intred;intgreen;intgreen;intblue;intblue;}cl;}cl;
44.下列可用于C语言用户标识符的一组是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
45.以下能正确定义一维数组的选项是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
46.有以下程序:#include<stdio,h>voidswap1(intc0[],inte1[]){intt;t=c0[0];c0[0]:c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3.5}.b[2]={3,5};swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%a%d%d\n",a[0],a[1],b[0],b[1]);}程序运行后的车出结果是()。
A.3553B.5335C.3535D.5353
47.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1B.2C.3D.9
48.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是
A.235B.0235C.02356D.2356
49.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用"",(双撇号)括起时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
50.在关系数据库中,用来表示实体之间联系的是
A.树结构B.网结构C.线性表D.二维表
51.若有如下程序:main(){intn=2;do{printf("%d",n--);}while(!--n));}则程序运行后的输出结果是()。
A.2B.11C.1D.20
52.以下选项中不能正确把c1定义成结构体变量的是
A.typedefstruct{intred:intgreen:intblue;}COLOR;COLORc1;
B.structcolorc1{intredintgreen:intblue;};
C.structcolor{intred,intgreen:intblue:)cl;
D.struct{intred;intgreen;intblue}c1;
53.对于白箱(盒)测试用例的各设计准则,下列叙述中正确的是()。
A.分支覆盖准则比语句覆盖准则严密
B.条件覆盖要比分支覆盖优越。因此,条件覆盖能完全满足分支覆盖
C.组合条件覆盖准则既能满足分支覆盖准则,也能满足条件覆盖准则。因此,组合条件覆盖准则是一种完全测试
D.上述说法都不对
54.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
55.下面程序的输出结果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}
A.0B.4C.12D.无限次循环
56.以下程序的运行结果是
#defineMAX(A,B)(A)>(B)?(A):(B)
#definePRINT(Y)printf("Y=%d\t",Y)
main()
{inta=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
PRINT(t);}
A.Y=3B.存在语法错误C.Y=7D.Y=0
57.有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4;n+=2;k--;break;}printf("%d",n);}while(k>O&&n<5);}程序运行后的输出结果是()。
A.235B.0235C.02356D.2356
58.下列说法不正确的是()。
A.C语言程序是以函数为基本单位的,整个程序由函数组成
B.C语言程序的一条语句可以写在不同的行上
C.C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写
D.C语言程序的每个语句都以分号结束
59.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
60.在C程序中,可把整型数以二进制形式存放到文件中的函数是()。
A.fprintf函数B.fread函数C.fwrite函数D.fputc函数
四、选择题(20题)61.有以下程序程序的运行结果是()。
A.4332B.2344C.1234D.1123
62.
63.
64.
65.
66.若x=5,y=3则y*=x+5;y的值为___________.
A.10B.20C.15D.30
67.
68.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
输出结果是()。
A.28
B.27
C.42
D.41
69.以下程序运行后,输出结果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
70.在软件生产过程中,需求信息的给出是______。A.A.程序员B.项目管理者C.软件分析设计人员D.软件用户
71.以下程序段中的变量已正确定义
72.
73.下列叙述中正确的是()。
A.软件测试的目的是确定程序中错误的位置
B.软件测试的目的是发现程序中的错误
C.软件调试的目的是发现程序中的错误
D.软件调试后一般不需要再测试
74.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
75.
若有下列定义和语句:
intu=011,v=0x11,w=11;
printf("%o,%x,%d\n",u,v,w);
则输出结果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
76.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
77.开发大型软件时,产生困难的根本原因是()
A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重
78.(33)有以下程序段
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:printf("%d\n",n);break;
case2:
case4:printf("%d\n",n);continue;
case0:exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是
A)for循环语句固定执行8次
B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作
D)当产生的随机数n为0时结束程序运行
79.
80.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。A.A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)B.(x>=1)
C.((x>=1)&&(x<=10))||((x>=100)&&(x<=110))
D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(Z转换A,z转换a),其他字符不变。
请修改函数fun()中的错误,得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.假定输人的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>voidproc(char*str){}voidmain{charstr[81];printf("Enterastring:kn");gets(str);proc(str);printf("Thestringafterdeleted:kn");puts(str);}
参考答案
1.D
2.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。
strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。
3.C
4.C只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。
5.A解析:在不带头结点的单链表head中,head指向第一个元素结点,head=NULL表示该链表为空,所以答案为A。
6.A
7.C
8.C因为变量“a=1,b=2”,所以表达式“a>b”不成立。选项A、B和D相当于一条语句,选项A是逗号表达式,选项B和选项D是复合语句,所以都没有执行。选项C中,语句“c=a;”不执行,语句“a=b;b=c;”执行。故本题答案为C选项。
9.D
10.D解析:本题考查宏替换的规则。宏替换有两类:简单的字符替换和带参数的宏替换。使用宏应注意:①宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查:②为了区别程序中其他的标示符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
11.C
12.CC)【解析】白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。
13.B
14.D
15.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
16.D
17.C
18.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。
19.B
20.C解析:本题考查的知识点是运算符的优先级.在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6.所以4个选项中C正确。
21.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:b[i][N-1]=a[0][i]实现把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b[i][0]=a[N-1][i]实现将a所指N行N列的二维数组中的最后一行放到b所指二维数组中的第0列。
22.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。
23.p->dataqp->data\r\nq解析:本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
24.i<na[i]i<n\r\na[i]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。
25.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:
p(double*)malloc(sizeof(double));
26.软件开发软件开发解析:软件生命周期分为3个时期共8个阶段:软件定义期(问题定义、可行性研究和需求分析)、软件开发期(系统设计、详细设计、编码和测试)、软件维护期(即运行维护阶段)。
27.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3],aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。
28.242036
29.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。
30.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
31.概念(或概念级)概念(或概念级)
32.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。
33.逻辑关系逻辑关系
34.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。
35.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。
36.22
37.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。
38.100010100010解析:对于define宏定义语句,系统在编译前进行如下替换:
i1=1000/s(N)i1=1000/s(10)i1=1000/10*10
i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)
39.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。
40.类类解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同操作性质的对象的集合,是已经定义了的关于对象的特征、外观和行为的模板。所以类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其划应类的一个实例。
41.B解析:对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树—根结点—右于树”的顺序。
42.C解析:在C语言中,通过使用库函数允许对字符数组进行整体输入/输出。C语言不允许通过赋值运算符对字符数组整体进行赋值,对字符串使用符号:只能在说明字符数组并进行初始化的时候进行。字符串结束标志为'\\0',计算字符串的实际长度时。不计入串长。
43.B解析:将一个变量定义为标准类型与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如,structcolor),不能只指定结构体名。其中可以不出现结构体名,答案D就是缺省结构体名的隋况。而变量名歹婊必须放在成员列表后面,所以B答案不能正确将cl定义为结构件变量。
44.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。
45.B解析:选项A定义数组时省略了长度,而C语言中规定,只有在定义并同时进行初始化时,数组的长度才可以省略,数组的长度为初始化时候的成员个数,故选项A错误;在C语言中规定,数组的长度必须是一个整数或整型常量表达式,故选项C不正确:定义时数组的长度不能使用变量表示,故选项D不正确,所以,4个选项中选项B符合题意。
46.D解析:函数swap1,swap2的功能均为交换两个数。main函数调用swap1(a,a+1);使得数组a的首地址赋给形参c0[],a[1]的首地址赋给形参c1[],故交换c0[0]与c1[0]后,a[0]与a[1]的值也发生了变化;函数调用swap2(&b[0],&b[1]);的功能也一样,使指针变量c0指向了b[0]存储单元,c1指向了b[1]存储单元,并在swap2函数中进行了交换,所以b[0],b[1]的值也发生变化,故本程序输出的结果是5353。
47.BB。【解析】根据二分法查找法需要两次:(1)首先将90与表中间的元素50进行比较,由于90大于50,所以性表的后半部分查找。(2)第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
48.A解析:因为变量的初始值分别为“k=5,n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行'case4:”这个分支,结果是“n=2,k=3”,打印出2;然后程序进行第二次循环,这时“n=2,k=3”,执行'case3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case2:case4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。
49.B解析:本题考查库函数调用的知识点。格式1:#include<文件名>,预处理程序在标准目录下查找指定的文件;格式2:#include'文件名',预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。
50.D解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。本题的正确答案是D。
51.D解析:本题首先定义了一个int型变量n,并初始化为2。然后进入do-while循环,do-while循环首先执行一遍循环体,输出表达式n--的值,此时表达式n--的值是n自减之前的值2,输出一个2后,n的值变为1。然后判断do-while的循环条件!(--n)是否为真,此时表达式--n的值为n自减之后的值0,!0为真,故第二次执行循环体“printf('%d',n--);”此时n的值为0,所以执行结果为:输出一个0,n的值变为-1。此时循环条件!(--n)=!(-2)为假,程序结束。故程序运行后的输出结果是20,应该选择D。
52.B解析:本题考核的知识点是结构体类型定义。结构体类型的定义格式为:
strcut结构体名
{成虽说明列表};
结构体变量的定义有3种形式:第一种,定义结构体型的同时定义结构体变量,如:strcut结构体名{成员说明列表}变量;选项C属于这种情况,故选项C正确:第二种,先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strcutstudent{成员说明列表}:student变量;选项A属于这种情况,故选项A正确;第三种,定义一个无名称的结构体类型的同时定义结构体变量,如:strcutstudent{成员说明列表}变量;选项D属于这种情况,故选项D正确.所以,4个选项中选项B符合题意。
53.A解析:白箱(盒)测试是根据对程序内部逻辑结构的分析来选取测试用例的。白箱(盒)测试用例的设计准则有:语句覆盖、分支覆盖、条件覆盖和组合条件覆盖。分支覆盖通过足够多的测试用例,使程序中的每个分支至少通过一次。分支覆盖准则比语句覆盖准则严密一些,选项A正确;条件覆盖通过执行足够多的测试用例,使每个判定中的每个条件都能取到两种不同的结果(“真”与“假”)。虽然条件覆盖要比分支覆盖优越,但、并不能完全满足分支覆盖,选项B错误;组合条件覆盖要求通过足够多的测试用例,使每个判定中各条件的各种可能组合至少出现一次,它既能满足分支覆盖准则,也能满足条件覆盖准则,但也不是完全测试,选项C错误。
54.C解析:本题中首先定义一个整型变量a并给它赋初值为3,在表达式中,从右开始执行,即先执行“a-=a*a;”等价于a=a-a*a即a=3-3*3=-6,此时a的值为-6,接着执行“a+=a-;”相当于执行a=a+a即a=-6+(-6)=-12,此时a的值为-12。所以,4个选项中选项C符合题意。
55.C解析:本题定义了一个fun函数,用于num求和,具体执行过程如下:
num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;
num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);
num=O:while条件不成立,所以返回k的值12。
56.C解析:考查带参数的宏替换。宏替换不像函数调用要进行参数值的计算、传递等,而只是简单按照原格式进行字符串的替换。
57.B解析:因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0,k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2,k=3,打印出2;这时n=2,k=-3,程序进行第3次循环,执行case3:这个分支,结果是n=3,k=2,打印出3;这时n=3,k=2,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5,k=1,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印
58.C解析:本题涉及C语言的3个基本知识点:①C语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;②C语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;⑧注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。
59.A左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如,a<<4是把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
60.C解析:fprintf是格式文件格式化输出函数,fread是读文件,fputc输出单个字符到文件。只有fwrite可以通过参数来设置以二进制形式写文件。
61.As[i]元素作为c数组的下标,使C数组元素自增,执行完毕后,c数组元素为04332。按题目要求输出,4332,所以答案选择A)。
62.B
63.D\r\n
64.C
65.A
66.D
67.B
68.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年黑龙江省《辅警招聘考试》考试试题附答案
- 小学六年级劳动教学设计:第三单元“烹饪与营养”营养家宴设计与实践
- 沪科版高一信息技术《视频信息的加工》教学设计
- 2026年黑龙江省同江市高三数学下册期末考试模拟试卷含答案(培优)
- 2026年黑龙江省密山市高三数学下册期末考试模拟卷往年题考附答案
- 2026年黑龙江省抚远市高三数学下册期末考试模拟卷含答案(预热题)
- 2026年黑龙江省海伦市高三数学下册期末考试模拟卷及答案【易错题】
- 2026年黑龙江省海伦市高三数学下册期末考试模拟考试卷附完整答案(易错题)
- 2026年黑龙江省海林市高三数学下册期末考试模拟考试卷完美版附答案
- 2026年黑龙江省穆棱市高三数学下册期末考试模拟考试卷附答案(轻巧夺冠)
- 小学五年级综合实践活动《窗户清洁及时做》劳动实践教学设计
- 2026秋部编版五年级语文上册第2单元语文园地二教学教学课件
- 单片机基础与应用(C语言版)(第3版)课件全套 王静霞 第1-9章 单片机及其开发环境 -综合应用实践
- 2026年云南中考化学真题(解析版)
- 肺结节精准管理专家共识2026年版
- 2025年全国人大机关公开遴选公务员真题(附答案)
- 房屋租金评估实施方案
- 光伏组件清洗服务合同协议2025年安全规范
- 中西方大学教育的异同
- 重师新生入学教育考试试题及答案
- 物业服务内控方案(3篇)
评论
0/150
提交评论