![2021年江苏省苏州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页](http://file4.renrendoc.com/view/0e5fc5858448ef9bf948225a50b3a547/0e5fc5858448ef9bf948225a50b3a5471.gif)
![2021年江苏省苏州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页](http://file4.renrendoc.com/view/0e5fc5858448ef9bf948225a50b3a547/0e5fc5858448ef9bf948225a50b3a5472.gif)
![2021年江苏省苏州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页](http://file4.renrendoc.com/view/0e5fc5858448ef9bf948225a50b3a547/0e5fc5858448ef9bf948225a50b3a5473.gif)
![2021年江苏省苏州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页](http://file4.renrendoc.com/view/0e5fc5858448ef9bf948225a50b3a547/0e5fc5858448ef9bf948225a50b3a5474.gif)
![2021年江苏省苏州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页](http://file4.renrendoc.com/view/0e5fc5858448ef9bf948225a50b3a547/0e5fc5858448ef9bf948225a50b3a5475.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年江苏省苏州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
2.下列关于栈的叙述中,正确的是()。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对
3.假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
4.下列叙述中错误的是()。
A.C语言程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
5.排序的算法很多,若排序的稳定性和不稳定性分类,则()是不稳定排序。
A.冒泡排序B.归并排序C.直接插入排序D.希尔排序
6.已知一个大小为n的整型数组,现求该数组的全部连续子数组的元素之和的最大值,最优算法的时间复杂度是()如:a[4]={2,-1,3,-4},它的全部连续子数组为{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它们的元素之和为{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值为4。
A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)
7.下面关于图的存储的叙述中正确的是()。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与顶点个数无关
B.用邻接表法存储图,占用的存储空间大小与图中边数和顶点个数都有关
C.用邻接矩阵法存储图,占用的存储空间大小与图中顶点个数和边数无关
D.用邻接矩阵存储图,占用的存储空间大小只与图中边数有关,而与顶点个数无关
8.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
9.有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
10.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
11.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序运行后的输出结果是()。
A.7B.0C.3D.8
12.若有定义“inta=1234,b=-5678;”,用语句“printf("%+-6d%+-6d",a,b);”输出,以下正确的输出结果是()。
A.+1234-5678(中间有一个空格,最后有一个空格)
B.+1234-5678(最前面有一个空格,中间有一个空格)
C.+-1234+-5678(最前面和最后均无空格)
D.1234-5678(中间有两个空格,最后有一个空格)
13.以下关于字符串的叙述中正确的是()。
A.C语言中有字符串类型的常量和变量
B.两个字符串中的字符个数相同时才能进行串符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.空串一定比空格打头的字符串小
14.
15.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为____。
A.O(1)B.O(n)C.O(n2)D.O(log2n)
16.数据的逻辑关系是指数据元素的()。
A.关联B.结构C.数据项D.存储方式
17.下列结构体类型说明和变量定义中正确的是()。
A.structREC;{intn;charc;};RECt1,t2;
B.typedefstruct{intn;charc;}REC;RECt1,t2;
C.typedefstructREC;{intn=0;charc=‘A’;}t1,t2;
D.struct{intn;charc;}REC;RECt1,t2;
18.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
19.以下选项中,算术表达式的值与其他3个不同的是()。
A.3/5.B.3./5C.3/5D.3.0/5.0
20.
二、2.填空题(20题)21.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
main()
{intx[10],a[9],I;
for(I=0;I<10;I++)scanf("%d",&x[I]);
for(【】;I<10;I++)
a[I-1]=x[I]+【】;.
for(I=0;I<9;I++)printf("%d",a[I]);
printf("");
}
22.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty,【】z)
{*z=x+y;}
23.下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其他依次类推,请填空。
fun(intx,intb[])
{intk=0,r;
do{
r=x%【】;
b[k++]=r;
x/=【】;
}while(x);}
24.若有程序:
main()
{inti,j;
scanf('i=%d,j=%d";&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入上【】。
25.函数voidfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请补全程序。
S=1-1/3+1/5-1/7+…+1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
26.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单词链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。[*]
#include<stdio.h>
typedefstructnode/*链表结点结构*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立链表*/
{…}
voiddisp(Node*h)
{Node*
27.下面rotate函数的功能:将n行n列的矩阵A转置为A',请填空。
#defineN4
voidrotate(inta[][N])
{inti,j,t;
for{i=0;i<N;j++}
for{j=0;【】;j++}
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
28.以下说明语句中,【】是结构体类型名。
typedefstruct
{intn;
charch[8];
}PER;
29.软件定义时期主要包括______和需求分析两个阶段。
30.下面程序的运行结果是【】。
#include<stdio.h>
#defineSIZE12
main()
{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t1)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;}}
31.软件测试方法中,黑盒测试法和白盒测试法是常用的方法,其中黑盒测试法主要是用于测试【】。
32.设有以下定义和语句,则*(*(p+2)+1)的值为【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
33.数据结构分为线性结构和非线性结构,带链的队列属于[]。
34.关系操作的特点是______操作。
35.下列程序的输出结果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
36.以下程序运行后的输出结果是【】。
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=-a;a=c;c=t;
if(a<c&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
37.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
38.以下程序的运行结果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
39.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句“k=B*20;”(k为int型变量)后,k的值是______。
40.栈中允许进行插入和删除的一端叫做______。
三、1.选择题(20题)41.CPU能够直接访问的存储器是
A.软盘B.硬盘C.RAMD.CD-ROM
42.在下列语句中,其含义为“q为一个指针的函数,该指针指向整型数据”的定义语句是()。
A.int**q;B.int(*q)();C.int*q;D.int*q();
43.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。A.编码设计B.测试阶段C.运行阶段D.物理设计
44.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
45.下列选项中不属于软件生命周期开发阶段任务的是()。
A.软件测试B.概要设计C.软件维护D.详细设计
46.设a=5,bc6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>b)后n的值为______。
A.1B.2C.3D.4
47.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
48.结构化程序设计的核心和基础是()。
A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法
49.规范化理论中,分解______主要是消除其中多余的数据相关性。
A.关系运算B.内模式C.外模式D.视图
50.以下程序的输出结果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}
A.258B.741C.852D.369
51.下列选项中,不属于模块间耦合的是()。A.数据耦合B.标记耦合C.异构耦合D.公共耦合
52.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);retumy-x-1;}
A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面
53.有以下程序:voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序运行后的输出结果是()。
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
54.若以“叶”方式打开一个己存在的文件,则下列叙述正确的是()。
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作
B.文件打开时,原有文件内容不被删除,只能进行读操作
C.文件打开时,原有文件内容被删除,只能进行写操作
D.以上3种说法都不正确
55.下列关于字符串的说法中错误的是
A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志
B.'\0'作为标志占用存储空间,计入串的实际长度
C.在表示字符串常量的时候不需要人为在其末尾加入'\0'
D.在C语言中,字符串常量隐含处理成以'\0'结尾
56.有以下程序
#include<stdio.h>
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);}
程序运行后的输出结果是
A.2030B.2050C.3050D.3020
57.视图设计—般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
58.若有定义inta[10],*p=a,则p+6表示()。
A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5
59.字符串"\\\"ABCDEF\"\\"的长度是()。
A.15B.10C.7D.8
60.若有说明inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
四、选择题(20题)61.有以下程序程序运行后的输出结果是()。
A.3,3,3B.2,2,3C.1,2,3D.1,1,3
62.若有以下程序段输出结果:是()。
A.4B.8C.16D.2
63.下列叙述中错误的是()。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
64.用链表表示线性表的优点是()。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同
65.
66.Internet使用的网络协议是()。
A.3CP协议B.TCP/IP协议C.UDP协议D.IP协议
67.
68.
69.以下关于retllm语句的叙述中正确的是()。
A.一个自定义函数中必须有一条return语句
B.一个自定义函数中可以根据不同情况设置多条retum语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
70.
71.
有以下程序:
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
72.
下列程序的运行结果是()。
#include<stdio.h>
#defineADD(x)x+x
main
{intm=1,n=2,k=3;
intS=ADD(m+n)*k;
printf("s=%d",s);
}
A.sum=18B.sum=10C.sum=9D.sum=25
73.设变量已正确定义并赋值,以下正确的表达式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
74.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.连接符B.大写字母C.数字字符D.下划线
75.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构
76.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后的输出结果是A.A.0X0
B.0x0
C.0
D.0xABC
77.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
A.p=qB.*p=*qC.n=*qD.p=*n
78.
79.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
80.
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为333333334444444455555555则一维数组中的内容应该为333333334444444455555555。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.D在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。
2.B栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。
3.B
4.D形参是定义函数时由用户定义的。实参是函数调用时,主调函数为被调函数提供的原始数据。在C语言中,实参向形参传送数据的方式是“值传递'是单向传递。故本题答案为D选项。
5.D
6.B
7.B
8.C解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型—个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故选项D不正确。所以,4个选项中选项C符合题意.
9.A本题考查逻辑与运算“&&”与逻辑或运算“||”。在选项A中,因为!a=0,所以关系表达式!a=1为0,又因为逻辑与运算符“&&”两边的表达式只要一个等于零,则整个表达式为零,所以选项A正确。在选项8中,关系表达式a<b为真,表达式(a<b)&&!C为假,而表达式(a<b)&&!||1为真,所以整个表达式的值为真。选项C中,a&&b的结果为真。在选项D中,a||(b+b)&&(C-a)的结果为真。
10.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
11.C根据题意,要求统计字符数组s中阿拉伯数字的个数。“chars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以计算出‘\\0’之前阿拉伯数字的个数,由字符数组s可知,有3个阿拉伯数字。故本题答案为C选项。
12.Aprintf函数参数包括格式控制字符串和输出参数,其中格式控制字符串中除了格式控制字符外,其他字符原样输出。本题中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之间,“+”号表示输出的数字带正负号号表示输出数据向左对齐,“6”表示输出宽度,如果输出数据的宽度不够6,那么左对齐,右边补空格。所以本题输出+1234-5678(中间有一个空格,最后有一个空格)。本题答案为A选项。
13.D解析:C语言中只有字符串常量而没有字符串变量,故选项A不正确:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,故选项B不正确:字符串比较大小除了使用库函数stremp()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于coostchar*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项C也不正确。空串的长度为0,而以空格打头的字符串的长度至少为1,故选项D正确,本题应该选择D。
14.A
15.D
16.A
17.B选项A中“structREC”后面不能有分号。C选项中“typedefstructREC”的后面也不能有分号。选项D中“REC”是结构体变量,不能当作结构体类型来使用。故本题答案为B选项。
18.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。
19.CC语言中除法运算有两个运算数,两个整数的除法运算会舍去小数部分,结果为整数;由于C语言中浮点数的小数形式必须要有小数点,所以选项A(5.)、B(3.)、D(3.0和5.0)都是浮点数。选项A、B运算时自动将另一个整数转换成浮点数,然后再运算,选项D中两个都是浮点数,浮点数的除法运算结果还是浮点数。所以本题中选项A、B、D运算结果是浮点数,选项C运算结果是整数。故本题答案为C选项。
20.B
21.I=1x[I-1]I=1,x[I-1]解析:对于10个数,相临的两个数相加取和,总共要进行9次加法运算,所以空14处应填入I=1。相临的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空15处应填入x[I-1]。
22.int*int*解析:从题中代码可知:z应该是一个整型指针,因此应填int*。
23.222\r\n2解析:深刻理解+进制转化为二进制的方法,即取余法;数组名作为实参,在函数内部可以直接修改调用函数中定义的数组的值。注意:掌握两个数据进行交换的算法原理。
24.i=10j=20i=10,j=20解析:该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以本题中应该原样输入i=,j=,后面分别给变量10和20,故空格处应该填入i=10,j=20。
25.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在对S求和时,相邻两项的符号刚好相反,而在函数fun中没有对数据进行取反的操作,故第—空的目的是对数据进行取反,以保证序列中相邻两项的符号不同。故第—个应填-1或-1.0。在执行完循环体后,要将求和结果通过指针参数的形式传递绐调用fun的函数,故第二空应填*sn。
26.
27.j<=ij<=i解析:由题意可知第一个空应填入j<=i,第二个空应填入a[i][j]=a[j][i]。
28.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。
29.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:①软件定义阶段:可行性研究和需求分析;②软件开发阶段:设计、实现和测试;③软件运行维护阶段:交付使用和维护。
30.abcdefglkjihabcdefglkjih解析:本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。
31.软件外部功能软件外部功能
32.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
33.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。
34.集合集合
35.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完于函数之后,变量a所做的改变都要保存。
36.45994599解析:if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=-a;,执行a=c;c=t,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面3条语句都被执行,这3条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。
37.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
38.#&#&解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b<0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。
39.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。
40.栈顶栈顶解析:栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。
41.C解析:CPU读取和写人数据都是通过内存来完成的。
42.B解析:本题考查的是指针函数。指针函数定义的基本格式为:类型说明符(*函数名)()。其中,类型说明符表示返回的指针值指向的数据类型。
43.DD)【解析】数据库设计目前一段采用生命周期法.即将整个数据库应用系统的开分解成目标独立的若干阶段,它们是:需要分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。在数据库设计中采用上面几个阶段中的前四个阶段,并且重点以数据结构和模型设计为主线。
44.C本题考查对面向对象的理解。面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。
45.C解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。
46.B解析:m=a>b的值为逻辑值0,n=c>b不被执行,n的值仍为2。
47.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。
48.CC。【解析】结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。
49.A解析:数据库规范化的基本思想是逐步消除数据依赖中不合适的部分,根本思想是通过分解关系运算来消除多余的数据相关性。
50.C解析:在本题运行时主要注意的是当i=9时,a[i]=10-9=1;i=8时,a[i]=10-8=2;i=7时,a[i]=10-7=3;……依此类推,直到i=0时,a[i]=10-0=10;此时,i的值已变为-1,判断for的循环条件,不成立,然后输出a[2],a[5],a[8],分别为8,5,2。
51.C解析:模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。注意:评价模块独立性的主要标准,以及对它们的定义和分类。
52.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。
53.B解析:本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t。在函数中通过一个while循环,在循环中依次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“*s=t'a'+'A';”(若是小写字母,则被转换成相应的大写字母)语句。在主函数中执行函数调用ss(str1,c),很显然是把str1数组中所有字符d变成大写字母,其他字符不变。所以4个选项中B正确。
54.A解析:本题考查文件使用方式标识符,以“叶”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。
55.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。
56.A解析:本题中,最主要的是掌握几个有关文件函数的应用。
函数名:fopen
功能:打开一个文件
调用方式FILE*fp;
fp=fopen(文件名,使用文件方式);
函数名:fprintf
功能:传送格式化输出到一个文件中
调用方式:fprintf(文件指针,格式字符串,输出表列);
函数名:fclose
功能:关闭一个文件
调用方式:fclose(文件指针);
函数名:fscanf
功能:从磁盘文件执行格式化输入
调用方式:fscanf(文件指针,格式字符串,输入列表)。
57.B解析:视图设计—般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。
58.C解析:指针中存放的是变量的地址,指针也可以进行加减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中p+6指的是将指针向后移动了6个存储单元,指向a[6],存放的是a[6]的地址。
59.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
60.B解析:指针是—种用来存放变量地址的特殊变量。本题中指针变量p用于存放整型变量i的地址,改变*p的值即为改变i的值。又因为“&”和“*”两个运算符的优先级相同,按自右而左的方向结合,所以*&j运算选进行&j运算,得j的地址,再进行*运算,取所得地址里面的值,故*&j与j等价。
61.Amalloc函数动态分配一个整型的内存空间,然后把函数返回的地址用(ints)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,h,’c都指向刚申请的内存空间。因此只有最后一个赋值语句*c=3的值保留在了该空间内,因为a,b,c三个指针变量均指向该空间,所以打印该空间内的数值均为3,选项A)正确。
62.Ar右移1位,结果为4,所以选择A。
63.CC.【解析】线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学设计方案作业
- XX公司天花吊顶施工合作合同
- 个人贷款合同范文及格式
- 个人保证担保借款合同书正式版
- 临街门面租赁合同标准版
- 中铁物资商城物流配送合同新范本
- 个人住房抵押借款合同模板
- 产品生产装配标准化合同
- 采购预付款合同范本
- 临建劳务合同范本
- 廉洁应征承诺书
- 医院定岗定编
- 计算机网络毕业论文3000字
- 2023年大学物理化学实验报告化学电池温度系数的测定
- 农村公共基础知识
- 脑出血的护理课件脑出血护理查房PPT
- 煤矿机电运输安全培训课件
- 扣缴个人所得税报告表-(Excel版)
- Unit+4+History+and+Traditions单元整体教学设计课件 高中英语人教版(2019)必修第二册单元整体教学设计
- 2023年全国自学考试00054管理学原理试题答案
- 六年级译林版小学英语阅读理解训练经典题目(附答案)
评论
0/150
提交评论