版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年宁夏回族自治区石嘴山市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点
2.以下叙述中错误的是()。
A.C语言的可执行程序是由一系列机器指令构成的
B.用C语言编写的源程序不能直接在计算机上运行
C.通过编译得到的二进制目标程序需要连接才可以运行
D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
3.下列定义数组的语句中,正确的是()。
A.intN=10;intx[N]:
B.#defineNl0;intx[N];
C.intx[0..10];
D.intx[];
4.下列关于return语句的叙述中正确的是()。
A.—个自定义函数中必须有一条return语句
B.—个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
5.
6.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序运行后的输出结果是()。A.3B.4C.1D.9
7.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序运行后的输出结果是()。
A.6B.7C.5D.8
8.设x和y均为bool量,则x&&y为真的条件是()。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个
9.与“y=(x>0?1:x<0?-1:0)”;的功能相同的if语句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
10.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序运行的结果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
11.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
12.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是________
A.O(1)B.O(n)C.O(nlogn)D.O(n2)
13.下列程序的输出结果是()。main{inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0
14.对于循环队列()。
A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满D.以上说法都不对
15.有以下程序程序执行后的输出结果是()
A.60B.50C.45D.55
16.下列对队列的叙述正确的是A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据
17.树最适合用来表示()。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据
18.以下选项中错误的是()。A.printf(“%s\n”,‘s’);
B.printf“%d%c\n”,‘s’,‘s’);
C.printf(“%c\n”,‘s’-32);
D.printf(“%c\n”,65);
19.
20.一个C语言程序总是从()开始执行:
A.主程序B.子程序C.主函数D.第一个函数
二、2.填空题(20题)21.有如图所示的双链表结构,请根据图示完成结构体的定义:
structaa
{intdata;
【】}node;
22.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
23.执行下面程序后,输出结果是【】。
main()
{chars[12]="verygood!";
printf("%d",strlen(s));
}
24.下面程序的输出是【】。
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;
printf("%d\n",z);
}
25.下列程序的运行结果为【】。
#include<stdio.h>
main()
{staticcharstr1[40];
charstr2140];
strcpy(str2,"China");
strcat(str1,str2);
strcat(str1,"isagreatcountry!");
printf("%s%s",str2,strl);
printf("%d%d\n",strlen(str2),strlen(str1));
}
26.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
27.以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的
末尾。单向链表的头指针作为函数值返回。请填空。
#include<stdio.h>
structlist
{chardata;
structlist*next;
};
structlist*creat;
{structlist*h,*p,*q;
charch;
h=(【】)malloc(sizeof(structlist));
p=q=h;
ch=getchar();
while(ch!='?')
{p=(【】)mallco(sizeof(structlist));
p->data=ch;
q->next=p;
q=p;
ch=getchar();
}
p->next='\0';
【】;
}
28.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b,请填空。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++)();for(i=0;i<9;i++){printf("%d",b[i]);if(i%4==0)printf("\n");}}
29.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
30.设有chara,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。
31.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
32.设有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为______。
33.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
34.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
35.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
36.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
37.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}
38.软件工程的出现是由于【】。
39.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【】。
40.下列程序段的运行结果是______。
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+3));
三、1.选择题(20题)41.设有以下说明语句typedefstruct{intn;charch[8];}PER;
A.PER是结构体变量名
B.PER是结构体类型名
C.typedefstruct是结构体类型
D.struct是结构本类型名
42.有以下程序:voidsott(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;)}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},I;sort(aa+2,5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序运行后的输出结果是______。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
43.数据库技术的根本目标是要解决数据的()。
A.存储问题B.共享问题C.安全问题D.保护问题
44.下列SQL语句中,用于修改表结构的是()。A.A.ALTERB.CREATEC.UPDATED.INSERT
45.以下程序中函数reverse的功能是对a所指数组中的内容进行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-1];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序运行后的输出结果是______。
A.22B.10C.34D.30
46.以下程序的输出结果是
#include<stdio.h>
main()
{inta=15,b=21,m=0;
switch(a%3)
{case0:m++;break;
case1:m++;
switch(b%2)
{default:m++;
case0:m++;break;}}
printf("%d\n",m);}
A.1B.2C.3D.4
47.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序运行后的输出结果是
A.0B.4C.6D.7
48.堆排序是一种()排序。
A.插入B.选择C.交换D.归并
49.下列叙述中,不符合良好程序设计风格要求的是
A.程序的效率第一,清晰第B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息
50.以下程序的输出结果是_______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7});Print("%d%d%d%d\n",a[0][3],a[l][2],a[2][1],a[3][0]);}
A.650B.1470C.5430D.输出值不定
51.下列选项中不属于软件生命周期开发阶段任务的是()。
A.软件测试B.概要设计C.软件维护D.详细设计
52.以下不是面向对象思想中的主要特征的是
A.多态B.继承C.封装D.垃圾回收
53.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
54.以下叙述正确的是______。
A.构成C程序的基本单位是函数
B.可以在函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
55.在下列叙述中,错误的一条是()
A.scanf()函数可以用来输入任何类型的多个数据
B.数组名作函数参数时,也采用“值传递”方式
C.如果形参发生改变,不会改变主调函数的实参值
D.函数的实参与形参的类型应一致
56.在执行以下程序时,为了使输出结果为:t=4,则给a和b输入的值应满足的条件是______。main(){ints,t,a,b;scanf("%d,%d",&a,&b);s=1,t=1;if(a>0)s=s+1;if(a>b)t=s+1;elseif(a==b)t=5;elset=2*s;printf("%d\n",t);}
A.a>bB.a<b<0C.0<a<bD.0>a>b
57.下列程序的输出结果是______。#includemain(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfsdcbaB.abcdcfghiC.abcdedebaD.ihgfefghi
58.在下列叙述中,错误的一条是______。
A.定义char*string="China"中的string是一个字符串变量,其值为China
B.若有一个多维数组a,则*(a+i)与a[i]等价
C.int(*p)[4]表示p为指针变量,它指向包含4个元素的一维数组
D.数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变
59.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
60.若有定义:"inta[2][3];"则对a数组的第i行第j列无素的正确引用为()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。
A.2,4,3,9,12,12,11,11,18,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,3,1,6,8,7,5,4,10,9,
D.1,2,3,6,8,7,5,4,10,9,
62.
63.在黑盒测试方法中,设计测试用例的主要根据是()。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图
64.以下描述中正确的是()。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
65.软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
A.概要设计B.软件设计C.可行性研究和计划制定D.需求分析
66.专门的关系运算不包括下列的()运算。
A.连接运算B.选择运算C.投影运算D.并运算
67.有以下程序:
#definef(x)(x*x)main
{
inti1,i2;
i1=f(8)/(4);i2=f(4+4)/f(2+2);
printf("%d,%d\n",i1,i2);
}
程序运行后的输出结果是()。
A.64,28B.4,4C.4,3D.64,64
68.有以下程序:
程序的运行结果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
69.
70.有以下程序
#defineP(a)a+a
voidF(intx)
{return(P(2)*x*x);}
main()
{printf("%d\n",F(1+3));}
程序的运行结果是
A.10B.34
C.64D.编译出错
71.算法分析最重要的目的是
A.找出数据结构的合理性B.找出算法中输入和输出之间的关系
C.分析算法的易懂性和可靠性D.分析算法的效率以求改进
72.
以下程序输出结果是()。
main
{intm=5;
if(m++>5)printf("%d\n",m):
elseprintf("%d\n",m--);
}
A.7B.6C.5D.4
73.有以下程序:
程序运行后的输出结果是()。
A.0B.4C.6D.7
74.有以下程序则输出结果是()。A.1245B.1256C.1278D.1267
75.
76.
77.
78.以下选项中能表示合法常量的是()。
A.1,200B.1.5E2.0C.”\”D.”\007”
79.
有以下程序:
fun(intx)
{intP;
if(x==0||x==l)return(3);
p=x-fun(x-2);
returnp;
}
main
{printf("%d\n",fun(7));}
程序执行后的输出结果是()。
A.7B.3C.2D.0
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str数组中,形成一个新的字符串。
例如,str1中的字符串为fshADfg,str2中的字符串为sdAEdi,则str中的字符串应为sshEdig。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.请编写一个函数proc(),它的功能是:求出一个4×N整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:
参考答案
1.C栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表:本题答案为C)。
2.Dc语言的可执行程序是由一系列机器指令组成的。用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离c语言集成开发环境。故答案为D)。
3.D选项A、B中n为变量,C语言中不允许动态定义数组维数,即维数不能是变量。选项C无此语法。
4.B在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值,A选项描述错误。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,C选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,D选项描述错误。故本题答案为B选项。
5.A
6.B
7.A解析:在主函数main()中,语句“sum(&a[2]);”把数组元素a[0]的地址传递给了sun函数的形参a[],使得sum函数中的“(a+0)”为主函数中a[2]的地址,所以a[-1]的值为主函数中a[1]的值;a[1]的值为主函数中a[3]的伉,故函数sum中a[0]=2+4=6,由于此函数中的a是指向主函数中的a[2],所以a[2]的值为6。
8.A
9.By=(x=)071:x<0?-1:0)中有两个三目运算符,因此按从右到在的顺序运算,可写成y=(x>071:(x<0?-1:0)),故选择8选项。
10.Dfun函数的功能是对数组a[]的元素从大到小进行排序。
11.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
12.B
13.B当逻辑运算符“&&”两边的值是非零时,逻辑表达式的值为真(即为1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
14.D
15.A函数fun的功能是求数组的n个元素之和。fun(a,5)=15。由于s岫是静态局部变量,所以保持l5不变,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
16.D解析:本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。因此,本题中只有选项D的说法是正确的。
17.C树最适合用来表示元素之间具有分支层次关系的数据,故本题选C。
18.A%d表示以字符和整型类型的格式输出,%c表示以字符类型的格式输出,%s表示以字符串类型的格式输出。选项A中,‘s’是字符,不能用%s格式来输出。故本题答案为A选项。
19.C
20.C
21.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。
22.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。
23.1010解析:strlen(s)函数的返回值为字符串s包含的字符个数<不计最后的'\\0')。
24.66解析:本题变量z的值应为最后一次给它赋的值,且最后一次for循环使prt指向a[2]
25.ChinaChinaisagreatcountry!525
26.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。
27.strcurlist*strucrlist*return(h)
28.b[i-1]=a[i]-a[i-1]
29.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。
30.1000001010000010解析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。
31.n/=10或n=n/10n/=10或n=n/10解析:每次循环把n除以10所得的商赋给n。
32.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
33.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。
34.11371,13,7解析:本题考查3个知识点:①余数的计算,题中的a=10,b=3,a%b=1;②(表达式1,表达式2)形式的结果为最后一个表达式的值,题中的a=10,b=3,(a-b,a+b)=a+b=13;③条件运算符的使用,题中的a-b?a-b:a+b,判断语句a-b=7不为0,所以执行a-b,结果为7。
35.“filea.dat”“r”“filea.dat”,“r”解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。
36.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
37.*ss!='\0'*ss!='\\0'解析:本题考查的是指针的应用。题目要求求出字符串ss中指定字符的个数。分析整个程序,空缺处是检验指针ss是否指向了字符串的末尾,如没有,即执行下面语句,判断指针ss指向的字符是否字符c,若是,i自加1;所以空缺处填入*ss!='\\0',作为循环终止的条件。
38.软件危机的出现软件危机的出现
39.功能模型功能模型
40.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d”格式输出的,即输出其相应ASCII码值68。
41.B解析:本题考核的知识点是如何使用typedef定义新的类型。本题通过typedef在定义一个结构体类型的同时,把它自定义成类型名PER,故PER是结构体类型名。所以,4个选项中B为所选。
42.C解析:aa+2=aa[2],因此sort(aa+2,5)是从aa[2]开始,依次与后面的元素进行比较,将当前值小于其后一项的值进行互换,循环5次。
43.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。
44.A解析:在SQL语句中,凡是创建都用CREATE,删除都用DROP,改变用ALTER,后面跟类型和名字,附加子句。
45.A解析:主函数调用reverse时。实参为b和8,即reverse函数的功能是将数组b中的前8个元素逆置,其余元素不变。因此函数调用结束后数组b的内容为:8、7,6、5、4、3、2、1、9、10。main函数中for循环语句的功能是求b[6]元素到b[9]元素的和,即s=b[6]+b[7]+b[8]+b[9]=2+1+9+10=22,因此printf语句的输出结果是22。
46.A解析:考查switch语句的使用。switch语句的条件是'a%3=15%3=0',所以执行case0后面的语句,m++;m=1,然后就执行break,跳出switch语句,所以最后输出m的值为1\ue009。
47.D解析:本题考查的是switch语句。switch语句中的case或default只是一种入口标号,它并不形成一种子句的概念。当满足其中某个标号的条件而进入switch语句中时,如果没碰到break语句,将一直执行到switch语句的结尾。题目中使用了一个while循环使k从5递减到1,当k=5或4的时候从default标号进入switch,碰到break;语句立即跳出,没有改变n:当k=3时,执行了一次n+=k;;k=2时,也执行了一次n+=k;k=1时,执行了两次n+=k;所以最终n的值为3+2+1+1=7。故应该选择D。
48.B解析:堆排序是一种选择排序。选择排序有直接选择排序和堆排序两种。
49.A解析:当今主导的程序设计风格是“清晰第一,效率第二”的观点。结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而在实际应用中,人们更注重程序的可理解性。
50.A解析:对未给出初始值的整数数组元素,被默认初始化为零。
51.C解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。
52.D解析:面向对象思想中的三个主要特征是:封装性、继承性和多态性。
53.D解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。
54.A解析:C语言是由函数构成的。一个C程序可以包含一个主函数,即main()函数,也可以包含一个main()函数和若干其他函数。函数是C程序的基本单位。被调用的函数可以是系统提供的库函数,也可以是自定义的函数。从函数的形式上分为有参函数和无参函数。main()函数可以位于程序最前头,也可以位于程序结尾或中间,C程序总是从main()函数开始执行,不论main()函数在程序中的位置如何。C语言中函数必须独立定义,不能在一个函数中定义另一个函数,但可以在一个函数中调用另一个函数,而且被调函数的定义可以在程序中的任何位置,不一定要在调用函数之前进行定义。若被调函数在调用函数之后定义,在调用函数中需要对被调函数进行类型说明。
55.B
56.C
57.A
58.A
59.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。
60.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
61.A本题考查的是结构体成员的引用。在主函数main中定义了一个整型变量i和一个结构体变量s。f函数中,通过指针a来引用数组中的元素;通过for循环语句将数组中除最后一个元素外的其他元素(由条件i<n-1决定的)分别加上由0开始的递增数据(即0、1、2…8),所以最后的输出结果为2,4,3,9,12,12,11,11,18,9,。
62.B
63.B黑盒测试法指的是根据程序的外部功能,把程序本身看成一个黑盒子,设计测试用例来验证程序外部功能的正确性。
64.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
65.D\n通常,将软件产品从提出、实现、使用维护到停止使用、退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。软件生命周期的主要活动阶段为:可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。
\n需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
\n软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
\n软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
\n软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
\n运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
\n本题答案是D)。
\n
66.D关系运算有传统的集合运算和专门的关系运算,传统的集合运算有交,差,并,除和笛卡尔积,专门的关系运算有链接,选择,投影。
67.C本题考套的是宏定义。对带参数的宏的
展开只是将语句中宏名后面括号内的实参字符串代替#define命令行中的形参。本题中“i1=f(8)/f(4)”用"#definef(x)(x*x)"代替得i1=(8*8)/(4*4),结果为4;
"i2=f(4+4)/f(2+2)"用“#definef(x)(x*x)”代替得i2=(4+4+4+4)/(2+2+2+2),求得结果为3。故本题输出的值为4,3
68.A函数fun(char*s[],intn)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年渭南市蒲城县高新医院招聘备考题库( 5人)及一套完整答案详解
- 2025中国太平洋财产保险股份有限公司定西中心支公司招聘备考题库(甘肃)含答案详解
- 2026河南漯河市源汇区农信联社寒假实习生招募15人备考题库及答案详解(新)
- 2025湖南永州市冷水滩区教育局直属事业单位面向全区教育系统选聘12人备考题库及完整答案详解1套
- 2026年枣庄市事业单位工作人员“榴枣归乡”工作流程及参考答案详解
- 2025山东劳动职业技术学院(山东劳动技师学院)招聘8人备考题库带答案详解
- 2026中闻印务投资集团有限公司财务经理招聘1人备考题库带答案详解
- 2026年1月四川成都市金牛区妇幼保健院招聘3人备考题库及答案详解(考点梳理)
- 2025云南丽江宁蒗彝族自治县群团联盟公益性岗位招聘2人备考题库及完整答案详解1套
- 2026云南昆明市官渡残疾人联合会招聘1人备考题库及完整答案详解一套
- 河南豫能控股股份有限公司及所管企业2026届校园招聘127人考试备考题库及答案解析
- 轨道线路养护维修作业-改道作业
- QB∕T 3826-1999 轻工产品金属镀层和化学处理层的耐腐蚀试验方法 中性盐雾试验(NSS)法
- 北师大版五年级数学上册第七单元《可能性》教案
- 2023-2024学年上海市闵行区四上数学期末综合测试试题含答案
- 解除劳动合同证明电子版(6篇)
- 呼吸科规培疑难病例讨论
- 有关中国居民死亡态度的调查报告
- 核对稿100和200单元概述
- 医学统计学(12)共143张课件
- 特种设备安全检查台账
评论
0/150
提交评论