




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年江苏省扬州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.有以下函数:intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函数的功能是()。
A.将y所指字符串赋给x所指存储空间
B.查找和y所指字符串中是否有"\0'
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
3.当一个函数无返回值时,定义它的函数类型应是()。
A.voidB.intC.任意D.无
4.执行下列程序后,输出的结果是()。#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
5.有以下程序:#include<stdio.h>main(){char*p=“6938”;inti,s=0;for(i=3;i>=0;i--)s=10*s+p[i]-‘0’;printf(“%d\n”,s);}程序运行后的输出结果是()。
A.8396B.6938C.3869D.3689
6.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性
7.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序运行后的输出结果是()。
A.**$$B.%##C.%&&D.**##
8.下列程序的输出的结果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07
9.
10.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序运行后的输入结果是()。A.3B.6C.8D.12
11.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,?,pn,若p1=n,则pi为()。
A.iB.n-iC.n-i+1D.不确定
12.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
13.需求分析的主要任务是()。
A.确定软件系统的功能B.确定软件开发方法C.确定软件开发工具D.确定软件开发入员
14.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
15.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
16.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()
17.以下程序的输出结果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1
18.
19.则以下函数调用语句错误的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);
20.
二、2.填空题(20题)21.软件工程研究的内容主要包括:【】技术和软件工程管理。
22.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。
23.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。
24.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
25.有以下程序:
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若运行时输入:1234<回车>,程序的输出结果是【】。
26.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
27.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
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;}
28.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。
29.数据结构分为逻辑结构与存储结构,线性链表属于【】。
30.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
31.输出若干学生3门课程的成绩。
#include<stdio.h>
【】
structstudent
{intnum;
floatscore[3];
}
main()
{inti=0,n;
floata[3];
【】*ptr[200];
printf("请输入学生学号和3门课成绩,学号为0表示数据输入结束\n");
do
{ptr[i]=(structstudent*)malloc(sizeof(structstudent));
scanf("%d%f%f%f",&ptr[i]->num,&a[O],&a[1],&a[2]);
ptr[i]->score[O]=a[O];
ptr[i]->score[1]=a[1];
ptr[i]->score[2]=a[2];
if(【】)break;
i++;
}while(1);
n=i-1;
【】;
for(i=O;i<=n;i++)
printf("%-6d%.1f%.1f%.1f\n",ptr[i]->num,ptr[i]->score[0],
ptr[i]->score[1],ptr[i]->score[2]);}
32.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
33.下列程序的运行结果是【】。
#include<stdio.h>
voidmain()
{ints=0,k;
for(k=7;k>4;k--)
{switch(k)
{case1:
case4:
case7:s++;break;
case2:
case3:
case6:break;
case0:
case5:s+=2;break;}}
printf("s=%d",s);}
34.在数据库系统中,实现各种数据管理功能的核心软件称为【】。
35.数据库设计分为以下六个设计阶段:需求分析阶段、【】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
36.在数据库的概念结构设计中,常用的描述工具是【】。
37.在进行软件结构设计时,应遵循的最主要原理是【】。
38.以下程序的输出结果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
39.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
40.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
三、1.选择题(20题)41.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()
A.m=3B.m=2C.m=1D.m=0
42.有以下程序floatfl(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,Y2;p1=f1;p2=f2;y1=p2(p1(2.O));t=p1;p1=p2;p2=t;y2=p2(pl(2.0));printf("%3.0f,%3,Of\n",y1,y2);}程序运行后的输出结果是
A.8,16B.8,8C.16,16D.4,8
43.对于下列字符串,说明表达式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};
A.10B.1C.6D.7
44.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
45.软件开发离不开系统环境资源的支持,其中必要的测试数据属于A.硬件资源B.通信资源C.支持软件D.辅助资源
46.下列程序的输出结果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)putchar('\n')main(){intx=2;P(F(5)*x);}
A.12B.13C.14D.16
47.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
48.下列选项中不属于软件生命周期开发阶段任务的是()。
A.软件测试B.概要设计C.软件维护D.详细设计
49.数据流图用于抽象描述一下软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
50.已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是
A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对
51.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
52.设有下列二叉树:
对此二叉树中序遍历的结果为______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
53.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的彤参和实参分别占用不同的存储单元
54.C语言提供的合法关键字是______。
A.swicthB.chanC.CaseD.default
55.以下叙述中错误的是()
A.局部变量的定义可以在函数体和复合语句的内部
B.全局变量的定义可以在函数以外的任何部位
C.同一程序内局部变量和全局变量不允许同名
D.函数的形参属于局部变量
56.变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。
A.&m=8B.*p=8C.*p=1010D.p=&m
57.有以下程序:#include<stdio.h>main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
58.语句“printf("a\bhow\'are\'y\\\bou\n");”的输出结果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
59.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
60.若有如下程序:intsub(intm){if(m==1||m==0)return2;elsereturn(sub(m-1)*sub(m-2));}main(){intn;scanf("%d",&n);printf("%d",sub(n));}如果从键盘输入4<回车>,则程序运行后的输出结果是()。
A.8B.16C.24D.32
四、选择题(20题)61.有以下程序:
#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
62.如果intC=3,d=4,k=0,下列描述正确的是()。A.c>d!=k和c>(d!=k)的执行顺序是一样的
B.c&&d>k的结果为假
C.c||(d=k)执行后d的值为0
D.!c!=(d!=k)表达式的值为1
63.
64.第
15
题
非空的循环单链表head的尾结点(由p所指向),满足
A.p->next==NULLB.p==NULLC.p->next=headD.p=head
65.设有以下程序段:
structMP3
{charname[20];
charcolor;
floatprice;
}std,*ptr;
ptr=&std:
若要引用结构体变量std中的color成员,写法错误的是()。
A.std.color
B.ptr->color
C.std->color
D.(*ptr)color
66.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
67.下列选项中属于软件生命周期开发阶段任务的是()。
A.可行性研究
B.需求分析
C.详细设计
D.软件维护
68.
69.有两个关系R、S如下:
由关系R通过运算得到关系s,则所使用的运算为()。
A.选择B.投影C.插入D.连接
70.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
71.
72.
73.
74.
75.有以下程序程序的运行结果是()。
A.321678B.876543C.1098765D.345678
76.
77.
78.合法的数组定义是()。
A.
B.
C.
D.
79.
80.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到pl所指的字符串的后面。
例如,分别输人下面两个字符串:FirstString——SecondString
程序运行后的输出结果是:FirstString————SecondString
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.B
2.C本题中由循环条件可知遇到“0或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
3.A
4.D本题主要考查带参数的宏定义,过程如下:由于定义为define(x)x*x没有括号优先级,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
5.A程序首先定义一个字符指针P,使其指向一个字符串“6938”。然后通过for循环使用逆序的方式遍历字符串的各个字符,并将各个字符当作整数参与算术运算。其中,“p[i]-‘0’”的含义是将字符串中的数字字符转换成对应的整数;“10*s+P[i]-‘0’”是将上一次运算结果乘以10后与转换后的整数相加,再累加到S中。所以for循环执行完后,S的值是将字符串“6938”逆序后当作整数输出。故本题答案为A选项。
6.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。
7.Bmain函数中,根据“b=2,c=3”可知表达式“b>=2&&c<=3”为真,flag值为1。由“a=1”和外层switch语句的case标号没有break语句,可知外层switch语句执行case1,case0。对于外层case1:嵌套的switch语句根据“flag=1”执行case1,执行“printf(“%%”);”,输出“%”,接着执行break语句,结束内层switch执行外层;对于外层case0:嵌套的switch语句根据“c=3”执行default语句,执行“printf(“##”);”,输出“##”。故本题答案为B选项。
8.C根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,因为x的类型是int,则X的值为1;执行语句y=(K+3.8)/5.0时,即先将整型变量X的值1转换为double型1.0,然后3.8相加得4.8,进行除法运算4.8/5.0结果为0.即变量y的值为0,d*Y的值也为0,故选C选项。
9.A
10.B此题考查的是函数fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。
11.C
12.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
13.A需求分析是软件开发之前必须要做的准备工作之一。需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。故需求分析的主要任务是确定软件系统的功能。本题答案为A选项。
14.A
15.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
16.C将两个字符串连接起来组成一个字符串,选用strcat函数来连接。
17.B函数调用时,prt函数的作用是为使m数组中的数自增1,因此数组下标从0开始,每个元素都自加1。
18.B
19.DD选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。
20.D
21.软件开发
22.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。
23.自盒自盒解析:自盒测试法即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。白盒测试法主要有逻辑覆盖、基本路径测试等。
24.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。
25.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。
26.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
27.=-1*sn=-1\r\n*sn解析:C语言中实参变量和形参变量的数据传递是单向的“值传递”方式。指针变量作函数也要遵循这一规则。调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。
28.11解析:在执行逻辑表达式“j=!ch&&i++”时,首先判断j=!ch的值,因为“ch='$'”不为0,所以“j=!ch=0”,编译系统便不再计算表达式“i++”的值,i的值不变,仍为1。
29.存储结构
30.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做:n++是先取n的当前值和1做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=<1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3.退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加l,即程序结束后得到n=4,但输出的是3。
31.#include<alloc.h>structstudentptr[i]->num==Ofree(ptr[i])#include<alloc.h>\r\nstructstudent\r\nptr[i]->num==O\r\nfree(ptr[i])
32.-3-3解析:%运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”。
33.s=3s=3解析:当k=7时,执行case7,s++,s的值为1。当k=6时,直接break出switch结构;当k=5时,执行case5,s+=2,s的值为3;当k=4时由于不满足for循环的条件,所以结束循环,所以输出的s的值为3。注意:循环语句和条件的嵌套使用。
34.数据库管理系统或DBMS数据库管理系统或DBMS解析:数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。
35.概念设计阶段概念设计阶段解析:数据库设计分为以下六个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。
36.E-R图E-R图解析:E-R图是设计概念模型的有力工具。
37.模块独立原理模块独立原理
38.1313解析:函数fun是一个递归函数。执行fun(3);,x=3,x/2=1>0,又调用f(1),此时,x=1,x/2=0,不满足继续递归调用的条件,输出1,返回到fun(3)中,输出3。所以本题的输出结果为13。
39.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。
40.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。
41.C
42.A解析:题目一开始定义了两个函数,f1()实现的是返回参数的平方;f2()实现的是返回参数的2倍。接下来在主函数中定义了三个函数指针p1,p2,t。语句p1=f1;p2=f2;让指针p1指向函数n(),指针p2指向函数9()。然后调用p2(p1(2.0)),即让2先平方再乘以2,结果为8并赋给y1。然后语句序列t=p1;p1=p2;p2=t;交换了p1和p2的值,即p1指向f2(),p2指向f1()。再调用p2(p1(2.0)),让2先乘以2再平方,结果为16赋给y2.最后输出y1,y2的值为8和16,应该选择A。
43.C解析:strlen(s)返回s字符串中字符的个数,若s是个数组,则返回数组元素的个数。
44.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
45.D软件开发离不开系统环境资源的支持,其中主要的资源有硬件资源、通信资源、辅助资源等。(1)硬件资源是指组成计算机及相关应用所需要的硬件,它是软件开发必不可少的资源,因为无论什么样的软件工具都需要在硬件上完成任务,它是其他资源的基础资源。(2)通信资源是指为软件开发提供通信支撑的资源,它与测试数据无关。(3)支持软件是指为软件开发提供操作平台的软件,如常用的面向对象开发的Rose软件,它主要是软件开发的工具。通过对上述分析的总结,可以知道本题的正确答案选D。
46.A解析:本题考查带参数的宏的定义及相关运算。P(P(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。
47.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。
48.C解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。
49.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
50.C解析:a数组存放的是字符串,系统会自动在字符串的最后加上一个'\\0',所以a数组的长度为4,而b数组的长度为3,故a数组长度大于b数组长度。
51.C解析:分析程序可知,该程序实现的功能是对数m,n求其最大公约数。在本题中m与n的值分别为65与14,其最大公约数为1,故其输出结果为m=1。
52.B解析:所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
53.D
54.D
55.C
56.D解析:指针变量是通过指向变量地址来指定变量值的。这里只要取m的地址赋给p,即可实现使p为指向m的指针变量。
57.C解析:该题目的关键是要搞清楚“&&”和“||”两个逻辑运算符的运算功能。运算符“&&”和“||”是双目运算符,要求有两个运算量。在逻辑与运算中,只有当“&&”运算符前面运算量的值为真时,才需要判断后面的值;若为假,就不必判断后面的值。而在逻辑或运算中,只要“||”运算符前面的值为真,就不再判断后面的值;只有前面的值为假,才判断后面的值。本题中j++的值为真,因此不进行k++运算,k值保持不变,(j++||k++)的值为真,继续计算i++,计算后i值为2。
58.C解析:“\\b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“\\b'’格式符前面的字母不能输出;“\\'”格式符表示输出单引号字符;“\\\\”格式符表示输出反斜线字符。
59.D解析:在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。
60.D解析:本题的sub()函数是一个递归函数,当参数m为1或0时返回2,否则返回sub(m-1)*sub(m-2)。所以sub(4)递推下来就是sub(4)=sub(3)*sub(2)=sub(2)*sub(1)*sub(1)*sub(0)=sub(1)*sub(0)*2*2*2=25(上标)=32。所以正确答案是D。
61.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
62.DA)中>的优先级大于!=,所以执行顺序不一样;B)中c和d>k都为真,所以整个表达式为真;C)中不用执行d=k,因为c就可以确定这个表达式的值。
63.A
64.C循环链表是另一种形式的链式存储结构。表中最后一个结点的指针域指向头结点,整个链表形成一个环。这种循环链表的好处是从任意结点开始都可以找到其他结点。
循环链表的操作和线性链表基本一致,差别仅在于链表最后的结点,线性链表的判断条件是结点的指针域是否为“空”,而循环链表的判断条件是结点的指针域是否指向头结点。非空的循环单链表head的尾结点p满足p->next=head。
65.A\n本题中要引用结构体变量std中的color,要使用指针,而std.color不是一个指针类型,所以答案选择A。
\n
66.B当n为9时,此时if语句成立,执行n++后,n为10,因此输出n的值为10,故选择B选项。
67.C\n软件生命周期可分为软件定义、软件开发和软件运行维护3个阶段。软件开发期包括概要设计、详细设计、实现和测试4个阶段。
\n
68.B
69.B解析:专门的关系运算包括:选择、投影和连接。1、选择:从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算,即从水平方向抽取记录。2、投影:从关系模式中指定若干个属性组成新的关系。投影是从列的角度进行的运算,相当于对关系进行垂直分解。3、连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来控制的,连接条件中将出现两个表中的公共属性名,或者具有相同语义、可比的属性。选择和投影运算的操作对象只是一个表。相当于对一个二维表进行切割。连接运算需要两个表操作为操作对象。由图可知关系R通过运算得到关系S。关系S与关系R相比,记录的条数没有发生变化,属性的个数发生了变化。因此所使用的运算应该是投影。选项C插入运算会增加记录的条数。所以选项B是正确的。
70.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符合题意。
71.C
72.C
73.C
74.B
75.A本题中,函数fun()的功能是将数组k中前5个元素倒序,因此返回后数组k中的元素排列是5…432,l,6,7,8,9,10。程序打印输,hqk[21到k[71元素的值,flP321678,所以选择A)。
76.C
77.C
78.B选项A),字符串”string”中的元素是char类型,而数组a中存放的是int类型的元素,不匹配。选项c),a中只能存放字符类型数据,而”0”是字符串。选项D),定义二维数组时,列数不可省略。
79.A
80.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
81.
82.
voidfun(charpl[],charp2[])
in“,j;
for(i=0;pl[i]f=。、0’;i++);
for(j=0;p2[j]!=。、0’;j++)p1[i++]=p2[j];
p1[i],_。、0’;}
【考点分析】“
本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,不要忘了最后需要加上字符串结束标识‘、0’。
【解题思路】
本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第l个字符申的末尾。最后在第l个字符串的结尾加上字符串结束标识‘、0’。2021-2022年江苏省扬州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.有以下函数:intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函数的功能是()。
A.将y所指字符串赋给x所指存储空间
B.查找和y所指字符串中是否有"\0'
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
3.当一个函数无返回值时,定义它的函数类型应是()。
A.voidB.intC.任意D.无
4.执行下列程序后,输出的结果是()。#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
5.有以下程序:#include<stdio.h>main(){char*p=“6938”;inti,s=0;for(i=3;i>=0;i--)s=10*s+p[i]-‘0’;printf(“%d\n”,s);}程序运行后的输出结果是()。
A.8396B.6938C.3869D.3689
6.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性
7.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序运行后的输出结果是()。
A.**$$B.%##C.%&&D.**##
8.下列程序的输出的结果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07
9.
10.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序运行后的输入结果是()。A.3B.6C.8D.12
11.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,?,pn,若p1=n,则pi为()。
A.iB.n-iC.n-i+1D.不确定
12.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
13.需求分析的主要任务是()。
A.确定软件系统的功能B.确定软件开发方法C.确定软件开发工具D.确定软件开发入员
14.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
15.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
16.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()
17.以下程序的输出结果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1
18.
19.则以下函数调用语句错误的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);
20.
二、2.填空题(20题)21.软件工程研究的内容主要包括:【】技术和软件工程管理。
22.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。
23.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。
24.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
25.有以下程序:
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若运行时输入:1234<回车>,程序的输出结果是【】。
26.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
27.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
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;}
28.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。
29.数据结构分为逻辑结构与存储结构,线性链表属于【】。
30.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
31.输出若干学生3门课程的成绩。
#include<stdio.h>
【】
structstudent
{intnum;
floatscore[3];
}
main()
{inti=0,n;
floata[3];
【】*ptr[200];
printf("请输入学生学号和3门课成绩,学号为0表示数据输入结束\n");
do
{ptr[i]=(structstudent*)malloc(sizeof(structstudent));
scanf("%d%f%f%f",&ptr[i]->num,&a[O],&a[1],&a[2]);
ptr[i]->score[O]=a[O];
ptr[i]->score[1]=a[1];
ptr[i]->score[2]=a[2];
if(【】)break;
i++;
}while(1);
n=i-1;
【】;
for(i=O;i<=n;i++)
printf("%-6d%.1f%.1f%.1f\n",ptr[i]->num,ptr[i]->score[0],
ptr[i]->score[1],ptr[i]->score[2]);}
32.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
33.下列程序的运行结果是【】。
#include<stdio.h>
voidmain()
{ints=0,k;
for(k=7;k>4;k--)
{switch(k)
{case1:
case4:
case7:s++;break;
case2:
case3:
case6:break;
case0:
case5:s+=2;break;}}
printf("s=%d",s);}
34.在数据库系统中,实现各种数据管理功能的核心软件称为【】。
35.数据库设计分为以下六个设计阶段:需求分析阶段、【】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
36.在数据库的概念结构设计中,常用的描述工具是【】。
37.在进行软件结构设计时,应遵循的最主要原理是【】。
38.以下程序的输出结果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
39.已知字符A的ACSII码值为65,以下语句的输出结果是______。
charch='B';
printf("%c%d\n",ch,ch);
40.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
三、1.选择题(20题)41.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()
A.m=3B.m=2C.m=1D.m=0
42.有以下程序floatfl(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,Y2;p1=f1;p2=f2;y1=p2(p1(2.O));t=p1;p1=p2;p2=t;y2=p2(pl(2.0));printf("%3.0f,%3,Of\n",y1,y2);}程序运行后的输出结果是
A.8,16B.8,8C.16,16D.4,8
43.对于下列字符串,说明表达式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};
A.10B.1C.6D.7
44.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
45.软件开发离不开系统环境资源的支持,其中必要的测试数据属于A.硬件资源B.通信资源C.支持软件D.辅助资源
46.下列程序的输出结果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)putchar('\n')main(){intx=2;P(F(5)*x);}
A.12B.13C.14D.16
47.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
48.下列选项中不属于软件生命周期开发阶段任务的是()。
A.软件测试B.概要设计C.软件维护D.详细设计
49.数据流图用于抽象描述一下软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
50.已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是
A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对
51.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
52.设有下列二叉树:
对此二叉树中序遍历的结果为______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
53.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的彤参和实参分别占用不同的存储单元
54.C语言提供的合法关键字是______。
A.swicthB.chanC.CaseD.default
55.以下叙述中错误的是()
A.局部变量的定义可以在函数体和复合语句的内部
B.全局变量的定义可以在函数以外的任何部位
C.同一程序内局部变量和全局变量不允许同名
D.函数的形参属于局部变量
56.变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。
A.&m=8B.*p=8C.*p=1010D.p=&m
57.有以下程序:#include<stdio.h>main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
58.语句“printf("a\bhow\'are\'y\\\bou\n");”的输出结果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
59.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
60.若有如下程序:intsub(intm){if(m==1||m==0)return2;elsereturn(sub(m-1)*sub(m-2));}main(){intn;scanf("%d",&n);printf("%d",sub(n));}如果从键盘输入4<回车>,则程序运行后的输出结果是()。
A.8B.16C.24D.32
四、选择题(20题)61.有以下程序:
#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
62.如果intC=3,d=4,k=0,下列描述正确的是()。A.c>d!=k和c>(d!=k)的执行顺序是一样的
B.c&&d>k的结果为假
C.c||(d=k)执行后d的值为0
D.!c!=(d!=k)表达式的值为1
63.
64.第
15
题
非空的循环单链表head的尾结点(由p所指向),满足
A.p->next==NULLB.p==NULLC.p->next=headD.p=head
65.设有以下程序段:
structMP3
{charname[20];
charcolor;
floatprice;
}std,*ptr;
ptr=&std:
若要引用结构体变量std中的color成员,写法错误的是()。
A.std.color
B.ptr->color
C.std->color
D.(*ptr)color
66.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
67.下列选项中属于软件生命周期开发阶段任务的是()。
A.可行性研究
B.需求分析
C.详细设计
D.软件维护
68.
69.有两个关系R、S如下:
由关系R通过运算得到关系s,则所使用的运算为()。
A.选择B.投影C.插入D.连接
70.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
71.
72.
73.
74.
75.有以下程序程序的运行结果是()。
A.321678B.876543C.1098765D.345678
76.
77.
78.合法的数组定义是()。
A.
B.
C.
D.
79.
80.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到pl所指的字符串的后面。
例如,分别输人下面两个字符串:FirstString——SecondString
程序运行后的输出结果是:FirstString————SecondString
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.B
2.C本题中由循环条件可知遇到“0或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。
3.A
4.D本题主要考查带参数的宏定义,过程如下:由于定义为define(x)x*x没有括号优先级,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
5.A程序首先定义一个字符指针P,使其指向一个字符串“6938”。然后通过for循环使用逆序的方式遍历字符串的各个字符,并将各个字符当作整数参与算术运算。其中,“p[i]-‘0’”的含义是将字符串中的数字字符转换成对应的整数;“10*s+P[i]-‘0’”是将上一次运算结果乘以10后与转换后的整数相加,再累加到S中。所以for循环执行完后,S的值是将字符串“6938”逆序后当作整数输出。故本题答案为A选项。
6.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。
7.Bmain函数中,根据“b=2,c=3”可知表达式“b>=2&&c<=3”为真,flag值为1。由“a=1”和外层switch语句的case标号没有break语句,可知外层switch语句执行case1,case0。对于外层case1:嵌套的switch语句根据“flag=1”执行case1,执行“printf(“%%”);”,输出“%”,接着执行break语句,结束内层switch执行外层;对于外层case0:嵌套的switch语句根据“c=3”执行default语句,执行“printf(“##”);”,输出“##”。故本题答案为B选项。
8.C根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,因为x的类型是int,则X的值为1;执行语句y=(K+3.8)/5.0时,即先将整型变量X的值1转换为double型1.0,然后3.8相加得4.8,进行除法运算4.8/5.0结果为0.即变量y的值为0,d*Y的值也为0,故选C选项。
9.A
10.B此题考查的是函数fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。
11.C
12.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
13.A需求分析是软件开发之前必须要做的准备工作之一。需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。故需求分析的主要任务是确定软件系统的功能。本题答案为A选项。
14.A
15.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
16.C将两个字符串连接起来组成一个字符串,选用strcat函数来连接。
17.B函数调用时,prt函数的作用是为使m数组中的数自增1,因此数组下标从0开始,每个元素都自加1。
18.B
19.DD选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。
20.D
21.软件开发
22.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。
23.自盒自盒解析:自盒测试法即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。白盒测试法主要有逻辑覆盖、基本路径测试等。
24.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025酒店总经理的个人年度工作总结范文(28篇)
- 房产交易法律顾问服务3篇
- 废除借款合同声明3篇
- 幼儿园保育员个人的工作总结(33篇)
- 宿舍不乱丢垃圾保证3篇
- 发包方叫停工程建设合作3篇
- 广告公司委托书版3篇
- 粮食演讲稿(20篇)
- 2024年宁波市北仑区大榭街道社区卫生服务中心招聘工作人员考试真题
- 基因重组技术在疫苗制备中的应用考核试卷
- 团体医疗补充保险方案
- DB41T 1836-2019 矿山地质环境恢复治理工程施工质量验收规范
- 2024年江苏省高考政治试卷(含答案逐题解析)
- 培训调查问卷分析报告
- 肝癌肝移植中国指南解读
- 2024版年度中华人民共和国传染病防治法
- 后厨岗位招聘笔试题及解答(某大型央企)2025年
- 2024人教版初中九年级数学上册第二十二章二次函数大单元整体课时教学设计
- 高血钙症的遗传易感性研究
- 2023年版成人机械通气患者俯卧位护理解读
- GB 44495-2024汽车整车信息安全技术要求
评论
0/150
提交评论