![2021-2022年河北省邯郸市全国计算机等级考试C语言程序设计测试卷(含答案)_第1页](http://file4.renrendoc.com/view/284405fe76e30d46676851de4c8ddf6f/284405fe76e30d46676851de4c8ddf6f1.gif)
![2021-2022年河北省邯郸市全国计算机等级考试C语言程序设计测试卷(含答案)_第2页](http://file4.renrendoc.com/view/284405fe76e30d46676851de4c8ddf6f/284405fe76e30d46676851de4c8ddf6f2.gif)
![2021-2022年河北省邯郸市全国计算机等级考试C语言程序设计测试卷(含答案)_第3页](http://file4.renrendoc.com/view/284405fe76e30d46676851de4c8ddf6f/284405fe76e30d46676851de4c8ddf6f3.gif)
![2021-2022年河北省邯郸市全国计算机等级考试C语言程序设计测试卷(含答案)_第4页](http://file4.renrendoc.com/view/284405fe76e30d46676851de4c8ddf6f/284405fe76e30d46676851de4c8ddf6f4.gif)
![2021-2022年河北省邯郸市全国计算机等级考试C语言程序设计测试卷(含答案)_第5页](http://file4.renrendoc.com/view/284405fe76e30d46676851de4c8ddf6f/284405fe76e30d46676851de4c8ddf6f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河北省邯郸市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.折半查找法的查找速度一定比顺序查找法快()。
A.正确B.错误
2.
3.已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)
4.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()
A.HL=p;p->next=HL;
B.p->next=HL;HL=p;
C.p->next=HL->next;HL->next=p;
D.p->next=HL;p=HL;
5.有以下程序(strcat函数用于连接两个字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的运行结果是()。
A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
6.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
7.执行完下列语句段后,i值为()。A.A.2B.4C.8D.无限递归
8.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。
A.125B.n/2C.nD.n+1
9.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
10.以下程序是用来计算两个非负数之间的最大公约数:我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()A.O(1)B.O(logn)C.O(n)D.O(n^2)
11.由两个栈共享一个存储空间的好处是______。
A.减少存取时间,降低下溢发生的几率
B.节省存储空间,降低上溢发生的几率
C.减少存取时间,降低上溢发生的几率
D.节省存储空间,降低下溢发生的几率
12.
13.有以下程序:程序运行后的输出结果是()。A.20B.13C.10D.31
14.有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){ case1: switch(y) { case0:a++;break; case1:b++;break; } case2:a++;b++;break; case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的运行结果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
15.若有定义;intw[3][5];,则以下不能正确表示该数组元素的表达式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)
16.
17.if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
18.算法的时间复杂度是指()A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数
19.在C语言中,函数隐含的类型是()
A.autoB.staticC.intD.void
20.一个关系中属性个数为1时,称此关系为()。
A.对应关系B.单一关系C.一元关系D.二元关系
二、2.填空题(20题)21.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。
22.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
23.下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(*p++);}
24.设Y是int型变量,请写出判断Y为奇数的关系表达【】。
25.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。
26.用以下程序计算1到100的整数的累加和。请填空。
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=j
i++;
}
printf("sum=%d\n",【】);
}
27.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
28.现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是【】。
29.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{
intfindbig(int,int,int);
int(*f)(),x,yz,z,big;
f=【】;
scanf("%d%d%d",&X,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
30.以下程序的输出结果为【】。
main()
{intk=1;
white(k<=15)
if(++k%3!=2)continue;
elseprintf("%d",k);
printf("\n");
}
31.数据库管理系统常见的数据模型有层次模型、网状模型和______三种。
32.下列程序段中循环体的执行次数是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
33.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。
34.阅读下面程序,则程序的执行结果为【】。
#include"stdio.h"
main()
{inta=30,b=20,z;
z=fun(a+b,a-b);
printf("%d\n",z);}
fun(inta,intb)
{intz;
z=a/b;
returnz;}
35.Jackson方法是一种面向【】的结构化方法。
36.当运行以下程序时,输入abcd,程序的输出结果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}
37.以下条件表达式可计算:1+|a|的值,请填空。
a>=0?【】:【】
38.以下程序的功能是求下列算式中A、B、C的值,请填空。
#include<stdio.h>
main()
{inta,b,c,k,t=348;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;【】;c++)
{k=【】;
if(k==t)
printf("A=%dB=%dC=%d\n",a,b,c);
}
}
39.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。
40.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
三、1.选择题(20题)41.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
42.有以下程序:voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(A);for(i=0;i<10;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,6,8,10,12,7,8,9,10,
C.1,2,3,4,10,12,14,16,9,10,
D.1,2,6,8,10,12,14,16,9,10,
43.c语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后
44.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
45.有以下程序:main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序运行后的输出结果是
A.3B.6C.9D.2
46.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",p[i][2]);}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}则程序运行后的输出结果是()。
A.369B.248C.456D.789
47.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
48.设有以下定义和语句inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是
A.a[0][1]B.a[1][0]C.a[1][1]D.a[l][2]
49.有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。
A.正整数1~9的累加和B.正整数1~10的累加和C.正整数1~9中奇数之和D.正整数1~10中偶数之和
50.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。
A.1B.2C.8D.4
51.在C语言中,运算对象必须是整型数的运算符是()。
A.%B.\C.%和\D.**
52.在下列选项中,没有构成死循环的是()。
A.inti=100;while(1){i==i0+1;if(i>100)break;}
B.for(;;);
C.intk=10000;do{k++;}while(k>10000);
D.ints=36;while(s)--s;
53.下列关于软件测试的目的和准则的叙述中,正确的是()
A.软件测试是证明软件没有错误
B.主要目的是发现程序中的错误
C.主要目的是确定程序中错误的位置
D.测试最好由程序员自己来检查自己的程序
54.有以下程序:#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是()。
A.startB.endC.startendD.endrt
55.实体是信息世界中广泛使用的一个术语,它用于表示()。
A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物
56.若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
57.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A.abcdB.adbaC.abcD.abca
58.关系代数运算是以______为基础的运算。
A.关系运算B.谓词运算C.集合运算D.代数运算
59.现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是
[注]:"]"表示空格,<Enter>表示回车
A.12,34,45<Enter>
B.x=12,y=34,z=45<Enter>
C.x=12C,sumy=34,z=45<Enter>
D.x=12],sum]y=34,line]z=45<Enter>
60.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.example.x=10
D.structexamplev2={10};
四、选择题(20题)61.
62.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};
则语句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的输出结果是()。
A.159B.147C.357D.369
63.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。
A.提高耦合性降低内聚性有利于提高模块的独立性
B.降低耦合性提高内聚性有利于提高模块的独立性
C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D.内聚性是指模块间互相连接的紧密程度
64.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合
65.下列关于栈的叙述正确的是()。
A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据
66.下列关于信息系统的叙述中,错误的是()。
A.广播电视是一种双向的、点到多点的信息交互系自
B.网络聊天是一种双向的,以信息交互为主要目的系统
C.电话是一种双向的、点对点的、以信息交互为主要的的系统
D.雷达是一种以感测和识别为主要目的的系统
67.
68.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
69.
70.有以下程序(注:字符a的ASCIl码值为97)}程序运行后的输出结果是()。
A.789B.abcC.7890D.979899
71.以下对一维数组c进行正确的定义初始化的语句是
A.intc[10]=0;B.intc[10]={0}*10;
C.intc[1]={0,0,0,0,0,0,0};D.intc[10]={0};
72.有以下程序:#include<stdio.h>main(){chars[]={"012xy"};inti,n=o;for(i=0;s[i]!='0';i++)if(s[i]>=as[i]<=z)n++;printf("%d\n",n);}程序运行后的输出结果是()。A.0B.2C.3D.5
73.
74.在满足实体完整性约束的条件下()。
A.一个关系中应该有一个或多个候选关键字
B.一个关系中只能有一个候选关键字
C.一个关系中必须有多个候选关键字
D.一个关系中可以没有候选关键字
75.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
76.以下不合法的字符常量是()。
A."、、"B.’\”’C.’\018’D.\xcc"
77.以下关于字符串的叙述中正确的是()。
78.下列叙述中正确的是()。
A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
B.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
C.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
D.顺序存储结构能存储有序表,链式存储结构不能存储有序表
79.下面不属于软件设计原则的是()。
A.抽象B.模块化C.自底向上D.信息隐蔽
80.有以下程序段:
以下选项中表达式的值为11的是()。
A.
B.
C.
D.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:根据输入的:个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回l;若不能,则返回0。
例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<math.h>
intproc(inta,intb,intc)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return1;
elseif(a==b||b==C||a==c)
return2;
//****found****
elsereturn3;
}
elsereturn0;
}
voidmain
{
inta,b,c,shape;
printf("\nInputa,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d.b=%d,c=%d\n",a,b,c);
shape=proc(a,b.c):
printf("\n\nTheshape:%d\n",shape);
}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是将a中的十位数和个位数依次放在变量c的千位和十位上,b中的十位数和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}
参考答案
1.B
2.B
3.B
4.C
5.C字符数组a中包含两个‘\\0’。遇到第1个‘\\0’时就表示字符串a结束。字符串处理函数strcat(字符数组a,字符数组b),功能是连接两个字符串,把字符串b连接到字符串a的后面,结果放在字符数组a中。连接时将字符串a后的‘\\0’取消,只在新串最后保留一个‘\\0’。本题相当于将“ABCD”和“IJK”连接。故本题答案为C选项。
6.A
7.B
8.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
9.A程序定义一个二维字符数组v,使用5个字符串对其初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。
10.B
11.B解析:常常一个程序中要用到多个栈,为了不发生上溢错误,就必须给每个栈分配一个足够大的存储空间。但实际中,很难准确地估计,若每个栈都分配过大的存储空间,势必造成系统空间紧张;若让多个栈共用一个足够大的连续存储空间,则可利用栈的动态特性使他们的存储空间互补。
12.D
13.D程序首先定义整型变量s和i,s的初值为0。for循环中i的取值为1,2,3,4,另外在switch语句中,执行各个分支后,若没有break语句,会继续执行后续分支。当i=1时,switch语句执行case1、case2和default,将s自增3后再自增5,此时s的值为8;当i=2时,switch语句执行case2、default,将s自增3后再自增5,此时s的值为16;当i=3时,switch语句执行case3、case1、case2、default,将s逐步自增2,自增3,自增5,此时s的值为26;当i=4时,switch语句执行default语句,将s自增5,此时s的值为31。本题答案为D选项。
14.Bcase常量表达式只是起语句标号作用,并不进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去,不再进行判断,直到碰到break或函数结束为止。所以执行内层“switch(y)”时只执行了“a++;”,此时a的值为1,然后执行外层case2语句的“a++;b++;”,a值为2,b值为1。故本题答案为B选项。
15.B通过—维数组名或指向维数组元素的指针来引用数组元素有两种写法:a[i]和*(a+i),它们是等价的。这是一种运算符之间的等价转换,就好像a-(b-C)等价于a-b+c一样。知道了这种转换,我们可以将之扩展到二维数组甚至任意维数组上来。因为[]运算符的结合性是从左至右的,所以w[i][j]等价于(w[i][j],此时可以先将任意一个[]运算符转换为指针形式为:(*(w+i)[j]或*(w[i]+j),或者同时转换:*(*(w+i)+j)。上述几种形式都完全等价于w[i][j]。选项A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正确的。选项B小,因为[]运算符的优先级高于*运算符,所以*(w+1)[4]等价于*((w+1)[4]等价于*(*((w+1)+4)),即*(*(w+5)+0),它等价于w[5][0],很明显它超过数组的范围了,故不正确。选项C等价于w[1][0],是下确的。选项D中,&w[0][0]是数组w第1个元素的地址,它等价于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以个数,然后再除以这个数一样。所以,&w[0][0]等价于*(w+0)+0。即*w。所以原式就变为*(*w+1)等价于w[0][1],这个也是合法的。综上所述,本题应该选择B。
16.A
17.D
18.D解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。
选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误。因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。
选项C错误,因为根据一个算法所编制出的程序程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。
所以,本题的正确答案为D。
19.C
20.C解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。
21.黑箱黑箱解析:本题考查了软件测试中的黑箱测试。黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。
22.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。
23.\0's\\0'\r\ns解析:本题选通过for循环从键盘读入20个字符,然后在最后赋一定值'\\0'后为结束标志,再使指针p指向字符串的首地址。最后通过while循环对字符串进行扫描并输出。
24.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或不为0。本题具体做法如下:Y%2=1或Y%2!=0。
25.1616解析:函数运算不改变数据类型,所以结果也是double型,fabs(x)是对x取绝对值,pow(y,fabs(x))是y的labs(x)次幂,即2.04。0=16.000000(注意;结果为double型)。
26.0i<=100;sum
27.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。所以此题中输入数据的形式是5.04,c=3。
28.!knahT!knahT解析:此程序是一道次序颠倒题,即输入'Thank!',则输出'!knahT'。
29.findbigfindbig解析:本题首先定义了一个指向函数的指针变量f,如果希望让它指向某个函数,只需把函数名赋给该指针变量即可。所以本题的空白处应该填入函数名findbig。
30.25811142581114解析:本题通过while和if语句,求得出1~15之间与3取模为2的整数,并依次输出。
31.关系模型关系模型
32.33解析:本题考查do…while语句形式:
do循环体
while表达式
首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。
33.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。
34.55解析:函数调用的时候,函数名字必须与所调用的函数名完全一致,形参与实参类型要一致,在没有给出函数返回值类型的情况下,默认为整形,当返回值为整型的函数放到主函数后面时,可以不需要事先说明就调用这个函数。return既可以返回一个普通常量,也可以返回一个指针变量。
35.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
36.a*b*c*d*a*b*c*d*解析:本题考查的是函数与一个简单的算法结合在一起的应用。首先定义一个int型变量来存放字符串str的长度,执行while条件语句。通过分析可知,字符串2*i项的值可由第i项的值得到;第2*i-1项直接赋值为*,i递减,如此反复直到不满足i>0的条件时,输出运行后的字符串。
37.1+a1-a1+a\r\n1-a解析:因为题目中求的是1+|a|的值,即1和a的绝对值之和。所以根据数学中求绝对值的规则,当a>=0时,绝对值取本身,当a<0时,绝对值取相反数,再结合条件运算符的计算规则可得到本题的答案为a>=0。注意:逗号表达式的求值规则。
38.c<10或c<=9(a*100+b*10+c)+(a*100+b*10+a)c<10或c<=9\r\n(a*100+b*10+c)+(a*100+b*10+a)解析:本题使用穷举法,用一个3重循环穷举A、B、C可以组合成的所有三位数,对每种情况来判断是否满足题目要求,满足则输出3个值。因为A、B、C分别代表一位数,所以C的取值范围是0~9,故第一空应该填c<10或c<=9。根据下面输出的判断条件k==t可知,k应该为每种情况下ABC+ABA的值,故应该填写(a*100+b*10+c)+(a*100+b*10+a)或者其他等价表达式。
39.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。
40.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
41.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
42.B解析:本题在调用函数时,实参是数组名也是把数组a的首地址传递给形参,由条件i=2且i<6得出函数将列以a[2]开始的4个元素(3、4、5、6)进行乘2操作,结果分别是a[2]=6、a[3]=8、a[4]=10、a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值没有发生变化。
43.C解析:不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。
44.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
45.B解析:主函数中首先定义了一个3行3列的二维数组,定义了一个整型变量指向它,直接通过for循环给数组的每一个元素赋值,使得a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][l]=5、a[1][2]=6、a[2]10]=7、a[2][1]=8、a[2][2]=9。所以,4个选项中选项B符合题意。
46.A解析:本题首先定义了一个二维数组,然后将数组名作为参数传递给子函数sub(),在子函数中使用了一个循环,循环变量i从0递增到n(n为2),即循环了3次,依次输出数组的a[0][2]、a[1][2]、a[2][2]三个元素,所以程序运行后输出的结果是369,应该选择A。
47.Bscanf(\u3000)语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf(\u3000)函数不能输入空格;getehar(\u3000)函数用于输入字符,其调用形式为:ch=getelaar(\u3000),getehar(\u3000)函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets(\u3000)函数的凋用形式为:gets(str_adr),其中stradr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。9ets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc(\u3000)函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回。
48.C解析:本题中首先定义了一个3行2列的数组a,一个长度为3的指针数组p,接着把地址a[1]赋给P[1]此时p[0]为a[1][0]的地址,p[0]+1为a[1][1]的地址,故*(p[0]+1)代表的元素为s[1][1]。所以,4个选项中选项C符合题意。
49.D解析:通过for(i=1;i<10;i+=2)可知,i取值为1~10的奇数,即1,3,5,7,9,i+1即为2,4,6,8,10。因此,程序的功能是计算并输出1~10中的偶数之和,s+=i+1就是累加这些偶数。
50.C
\n在C语言中各种数据类型在内存中所占的字节数与机器的位数有关,16位机中(也就是在标准c中),若int类型数据占2个字节,则float类型数据占4个字节,double类型数据占8个字节。
\n
51.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。
52.D
53.BB)【解析】软件侧试的目的:
\n①软件测试是为了发现错误而执行程序的过程;
\n②一个好的测试用例能够发现至今尚未发现的错误;
\n⑧一个成功的测试是发现了至今尚未发现的错误。
\n软件侧试的准则:
\n①所有测试都应追溯到需求;
\n②严格执行测试计划,排除测试的随意性;
\n③充分注意测试中的群集现象:
\n④程序员应避免检查自己的程序;
\n⑤穷举测试不可能;
\n⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
54.B
55.C解析:实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。
56.D解析:函数scanf的地址列表应由变量的地址组成。选项A中虽然&p也为地址,但它是指针变量p的地址,该地址的存储单元中只能存放地址值,不能存放整型数据。选项B中*p相当于变量n,所以不能正确读入数据;选项C不正确,因为n为变量名;选项D中p为指针变量,并且值为变量n的地址,所以选项D能够正确读入数据。D为所选。
57.A解析:字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符ASCII码值较大时,该字符所在的字符串就是较大的字符串。主函数中调用了函数scmp(),分析不难知道该函数的作用是返回参加比较的两个字符串中的较小的字符串,它的主函数中定义了一个二维字符数组来存放三个字符串。接着通过for循环给每个字符串赋值,赋值后三个字符串分别为“abcd”、“abba”、“abc”,接着比较str[0]和str[1]的大小,根据字符串大小比较标准可知str[0]较小,然后通过函数strcpy()把str[0]中的字符串,拷贝到string中,然后比较string和str[2)的大小,比较结果是string较小,最后输出string的值为“abcd”。
58.C解析:关系代数是以集合代数为基础女发展起来的,它是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括针对数据库环境专门设计的操作,包括对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。
59.D解析:若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。
60.D解析:在定义结构体变量时,不能只用结构体名example或关键字struct进行定义,必需要用结构体类型名structexample定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。
61.D\r\n
62.C
63.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。故答案为B选项。
64.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《隧道的结构荷载》课件
- 如何招聘人才课件
- 《库存管理案例》课件
- 2025至2031年中国学生笔记本电脑行业投资前景及策略咨询研究报告
- 2025至2031年中国卧式干湿多用蒸箱行业投资前景及策略咨询研究报告
- 1.1 公有制为主体 多种所有制经济共同发展 【知识精研】高中政治统编版必修二经济与社会
- 《虞美人》《鹊桥仙》课件 【知识精研】统编版高一语文必修上册
- 《沟通与交流的礼仪》课件
- 《财务报表编制教学》课件
- 《copd的评估及治疗》课件
- GB/T 18109-2024冻鱼
- 《榜样9》观后感心得体会二
- 《西安交通大学》课件
- 重庆市2024-205学年秋高二(上)期末考试历史试卷(含答案)康德卷
- 设备维修绩效考核方案
- 小学二年级数学计算题共4165题
- 一氧化碳中毒培训
- 初二上册好的数学试卷
- 广东省潮州市2024-2025学年九年级上学期期末道德与法治试卷(含答案)
- 2025年职业卫生工作计划
- 突发公共卫生事件卫生应急
评论
0/150
提交评论