版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年湖北省鄂州市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
3.已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97"C.c=97D.c="a"
4.为了提高软件模块的独立性,模块之间最好是()。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
5.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。
A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);
B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);
D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
6.以下描述中正确的是
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由d。开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
7.若有以下程序:inta=1,b=2;a=a^b;b=b^a;则执行以上语句后a和b的值分别是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
8.
9.
10.采用邻接表存储的图的广度优先遍历算法类似于二叉树的()。A.A.先序遍历B.中序遍历C.后序遍历D.按层遍历
11.
12.设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为()。
A.aedfcbB.acfebdC.aebcfdD.aedfbc
13.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个。
A.1B.2C.3D.4
14.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为____。
A.O(1)B.O(n)C.O(n2)D.O(log2n)
15.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序经运行后形成下图所示的数据结构。则以下可以删除中间节点b的正确选项是()。
A.pt=p->next;p->next=p->next->next;free(pt);
B.pt=p->next;p->next=p->next->next->next;free(pt);
C.pt=&b;free(pt);
D.pt=&b;p->next=p->next->next->next;free(pt);
16.对包含N个元素的散列表进行检索,平均检索长度________
A.为o(log2N)B.为o(N)C.不直接依赖于ND.上述三者都不是
17.计算机硬件组成中,CPU包含______。
A.控制器和存储器B.控制器和运算器C.控制器、运算器和存储器D.内存储器和外存储器
18.C语言中最简单的数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.字符型、实型、逻辑型
19.
20.已知广义表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的运算结果是()。
A.(a)B.AC.aD.(A)
二、2.填空题(20题)21.栈中允许进行插入和删除的一端叫做______。
22.以下说明语句中,【】是结构体类型名。
typedefstruct
{intn;
charch[8];
}PER;
23.设有以下定义
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下图所示链表结构:
请写出删除结点y的赋值语句【】。
24.数据流图的类型有【】和事务型。
25.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-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));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
26.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,e+d)*10;
printf("%d\n",t);
}
27.以下程序的输出结果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
28.下列程序的运行结果是______。
#defineP(A)printf("%d",A)
main()
{intj,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>1;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
29.注释一般分为序言性注释和______注释。
30.[]的任务是诊断和改正程序中的错误。
31.以下程序的输出结果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
32.由25人围坐成圆圈,先从任意一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1、2、3…),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include<stdio.h>
【】
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
33.以下程序的功能是:输出x、y、z三个变量中的最大值,请填空。
main()
{intx,y,z,u;
printf("Enterx,y,x;");scanf("%d%d%d",&x,&y,&z);
if(【】)u=x;
elseu=y;
if(【】)u=z;
printf("u=%d",u);
}
34.下列程序的输出结果是16.00,请填空:
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
35.有以下语句段
intnl=10,n2=20;
printf("______",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
36.下面程序的输出是【】。
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);
}
37.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
38.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
39.设有如下宏定义
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通过宏调用实现变量a,b内容交换,请填空。
floata=5,b=16,c;
MYSWAP(【】a,b);
40.以下程序的输出结果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
三、1.选择题(20题)41.下列程序的输出结果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}
A.5B.3C.7D.1
42.关于结构化程序设计原则和方法描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中所没有的控制结构,应该采用前后一致的方法来模拟
43.下列程序是用来判断数组中特定元素的位置所在的。
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
for(i=0;i<t;i++)
if(s[*k]<s[i])*k=i;
returns[*k];}
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]);}
如果输入如下整数:876675896101301401980431451777
则输出结果为
A.7,431B.6C.980D.6,980
44.下列程序的输出结果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
45.“年龄在18—25之间”这种约束是属于数据库当中的()
A.原子性措施B.一致性措施C.完整性措施D.安全性措施
46.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间
47.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
48.下列关于栈的描述正确的是()。
A.在栈中只能插入元素而不能删除元素
B.在栈中只能删除元素而不能插入元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
49.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序:floatsort(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[3],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.10,9,8,7,6,5,4,3,2,1
C.1,2,3,8,7,6,5,4,9,10
D.1,2,10,9,8,7,6,5,4,3
50.若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是______。
A.*pB.a[10]C.*aD.a[p-a]
51.检查软件产品是否符合需求定义的过程称为()。
A.确认测试B.集成测试C.验证测试D.验收测试
52.以下选项中,不能正确赋值的是()
A.charsl[10];sl="Ctest";
B.chars2[]={'C','t','e','s','t',}
C.chars3[20]="Ctest";
D.char*s[4]="Ctest\n";
53.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
54.设有如下定义:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正确的赋值语句是()。
A.q=&data.m;
B.*q=data.m;
C.q=(structsk*)&data.m;
D.q=(structsk*)data.m;
55.若x和y都是int型变量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的输出结果()
A.200B.100C.100200D.输出格式符不够,输出不确定的值
56.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是
A.sets(&s[0]);
B.scarf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
57.设有定义:charp[]={′1′,′2′,′3′},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
58.若有定义:inta[4][10];,则以下选项中对数组元素a[i][j]引用错误的是______。(0<=i<4,0<=j<10)
A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)
59.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
60.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是()。
A.地址传递B.值传递C.由实参传给形参,并由形参传回给实参D.由用户指定传递方式
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
62.
63.
下列程序的运行结果是()。
#include<stdio.h>
main
{staticchara[]="Languagef",b[]="programe":
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k)):
}
A.gaeB.angC.programD.有语法错
64.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
65.
66.
67.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
68.有以下程序
#include<stdio.h>
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{
intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
程序的运行结果是
A.34756B.23445
C.35745D.12345
69.若某二叉树中的所有结点值均大于其左子树上的所有结点值,且小于右子树上的所有结点值,则该二叉树遍历序列中有序的是()。
A.前序序列B.中序序列C.后序序列D.以上说法均可以
70.有以下程序程序运行后的输出结果是()。
A.程序错无输出结果B.31.5C.7.5D.14.0
71.
72.以下程序的输出结果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}
A.99B.520C.1320D.2020
73.有以下程序:
以上程序执行后abc.dat文件的内容是()。
A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina
74.选出下列标识符中不是合法的标识符的是()。
A.hot_doB.cat1C._priD.2ab
75.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
76.
77.
78.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
79.链表不具有的特点是A.A.不必事先估计存储空间
B.可随机访问任一元素
C.插入和删除不需要移动元素
D.所需空间与线性表长度成正比
80.下面各选项中,均是C语言中合法标识符的选项组是
A.forchinatoB.long_123short56_do
C.voidunion_342D.text_023_3ew
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:从字符串str中,删除所有大写字母F。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>voidproc(char*str){inti,j;//****found****for(i=j=0;str[i]一0;i++)if(str[i]!=F)//****found****str[i]=str[i];str[j]=\0;}voidmain{charstr[80];printf("\nEnterastring:");gets(str);printf("Theoriginalstring:");puts(str);proc(str);printf("Thestringafterdeleted:");puts(str);printf("\n\n");}
六、程序设计题(1题)82.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#defineN8
typedefstruct
{
charnum[10];
doubles[N];
doubleave;
}STREC;
voldfun(STREC*a)
{
}
voidmain
STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
inti;
fun(&s);
printf("The%ssstudentdata:\n",s.num);
for(i=0;i<N;i++)
printf("%4.1fkn",s.s[i]);
printf("\nknave=%7.3fkn",s.aVe);
printf("\n");
}
参考答案
1.D
2.D解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。
3.C解析:本题考核的知识点是字符型变量的基本概念。用单引号括起来的一个字符称为字符常量,而选项B和选项D中用的是双引号,而用双引号括起来的字符为字符串常量,故选项B和选项D不正确。因为在C语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中,所以C语言使字符型数据和整形数据之间可以通用,选项C正确.而选项A中,给字符型变量赋值时只能赋一个字符,而9,7作为字符时为两个字符且必须分别为单引号括起来,故选项A不正确,所以,4个选项中选项C符合题意。
4.D解析:耦合性与内聚性是模块独立性的两个定性标准,是互相关联的。在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,有利于提高模块的独立性。
5.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。
6.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
7.B本题考查按位异或的用法。按位异或运算的规则是:两个运算数的相应二进制位相同,则结果为0,相异则结果为1。b=2的二进制为00000010,a=1的二进制为00000001,a=a^b一00000011,转化为十进制后为3,b=b^a=00000010^00000011=00000001,即1。
8.C
9.D
10.D
11.D
12.B
13.D
14.D
15.A题干中,a、b、c3个节点都是node类型,它们都有两个成员:字符成员id,node类型指针成员next。由于a的next指向b,b的next指向c,因此a、b、c构成了链表。要想删除b节点,只需要将a节点的next(p->next)指向c(p->next->next),然后将节点b的存储空间释放即可。所以删除b节点的语句为“pt=p->next;p->next=p->next->next;free(pt);”。故本题答案为A选项。
16.C
17.B
18.B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以a+7=c+b是错的。因此,正确答案是选项B),它相当于a=(b=c+2),可分解为两个表达式:b=c+2和a=b。
19.C
20.D
21.栈顶栈顶解析:栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。
22.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。
23.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:链表中结点的删除,要删除结点y,只需要让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此只需把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。
24.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
25.p->dataqp->data,q解析:本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
26.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*l0进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+9d)*10)的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
27.99解析:本题要输出的结果是字符串'IBM\\n012\\1\\\\'的长度,'IBM'是3个字符,\'\\n\'是1个字符,'012'又是3个字符,最后的\'\\1\'和\'\\\\\'都是1个字符。所以最终字符串的长度应该是3+1+3+1+1=9。故本题应该填9。
28.5555解析:分析程序执行过程,第一次循环时,i=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5:第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++]):P(a[4])=P(5),输出5,之后i自加等于5。
29.功能性功能性解析:注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么,
30.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。
31.aa解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。
32.main()0a[j]=0count<25
33.x>yz>u
解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
35.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成;格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。
36.66解析:本题变量z的值应为最后一次给它赋的值,且最后一次for循环使prt指向a[2]
37.自然连接自然连接解析:在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。
38.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。
39.cc解析:该题考查以下两个知识点:
(1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#define标识符字符串
(2)在MYSWAP宏定义中,利用中间变量z来交换x和y的值,所以要实现a和b的交换,只需通过中间变量即可,所以,此处应填c。
40.functionrunningresultis:9.0
41.A解析:本题考查函数的递归调用。在函数递归调用时,fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的计算结果为5。
42.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。
43.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。
44.C解析:本题中char*p=a+5;即相当于p=&a[5],而--p,是先要减1,则printf语句要输出的值就是a[4]。
45.C解析:本题主要考查数据库的各种特性。其中数据库的完整性是指数据的正确性和相容性(如学生的学号必须惟一,性别只能是女或男等),数据库是否具备完整性关系到数据库系统能否真实反映现实世界,因此维护数据库的完整性是非常重要的。根据题意分析可知这种约束属于数据库中的完整性措施。
46.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。
47.D解析:C语言规定,字符常量在程序中要用单引号括起来。判断c1是否为小写字母的充要条件c1>='a'和c1<='z',用逻辑与(&&)来表示。A选项的这种形式在C语言中没有,所以选项D)正确.
48.C解析:根据数据结构对栈的定义及其特点可知:栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。栈是限定只在表尾进行插入或删除操作的线性表。
49.C解析:本题考查数组名作为函数形参的函数调用问题。数组名作函数形参是按地址传递,形参的改变可以传回实参。sort函数的两个形参中一个是数组名,sort函数的功能是对数组元素进行由大到小的排序。主函数调用sort函数时,实参为aa[3]元素的地址和整数5,即sort函数将对数组aa中的元素aa[3]、aa[4]、aa[5]、aa[6]、aa[7]5个元素的值进行由大到小的排序,排序后aa[3]=8、aa[4]=7、aa[5]=6、aa[6]=5、aa[5]=4,而数组aa中其余元素的值不变,因此结果是C。
50.B解析:程序中定义了数组a[10],则其元素的下标范围为0~9,而B选项中的a[10]所表示的元素已经超出a数组元素的范围,故应该选择B。
51.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
52.A
53.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。
54.C利用强制类型转换(structsk*)把整数型地址&data.m转换成结构体变量指针赋给结构体指针变量q。
55.A
56.D解析:在格式输入中,要求给出的是变量的地址,而D)答案中给出的s[1]是一个值的表达式。
57.A解析:在本题中,p和q同为指向字符类型数据的指针。*q和p[0]同为字符型数据。选项B)、C)和D)都符合题目的要求;选项A)计算得出的是指针类型数据所占的内存字节数。
58.B解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。
59.B[答案]B
[考点]数据结构与算法
[评析]依次从上到下,可得出:
第1层结点数为1;
第2层结点数为2*1=2;
第3层结点数为2*2=4;
第n层结点数为2的n-1次幂
60.B解析:本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参.
61.B该程序首先给一维数组赋值,然后三次调用fun函数,其中fun(a,0,3);功能是将一维数组中第1个元素和第4个元素互换,第2个元素和第3个元素互换;其中fun(a,4,9);功能是将一维数组中第5个元素和第10个元素互换,第6个和第9个元素互换,第7个元素和第8个元素互换;其中fun(a.O,9);功能是将将一维数组中第l个元素和第10个元素互换,第2个元素和第9个元素互换……依此类推。因此B选项正确。
62.C
63.A
\n本题考查指针用法,if语句的功能是判断两个数组中的字符是否相同,如果相同则输出。
\n
64.A解析:本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:
类型标识符函数名(类型标识符形参…);
这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型,故选项A不正确。所以,4个选项中选项A符合题意。
65.C
66.A
67.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。
68.C在本题中,首先定义了一个fun函数,函数中的形参是一个数组,该函数中首先定义了一个静态整型变量j并赋了初值,注意,静态变量的作用域是整个程序,而非该函数。从该函数的程序段不难看出该函数的作用是通过一个循环求形参数组中相邻两个元素(具体根据j确定)的和,并保存。
在主函数中,定义了一个数组并赋初值,然后用循环调用fun函数。
当k=1时,调用fun函数,此时刚开始j的值为0,那么fun函数分别计算数组a中的第一个元素与第二个元素的和与第二个元素与第三个元素的和,并分别保存为数组的第一个元素和第二个元素,结果分别为3和5。
当k=2时,调用fun函数,此时j的值为2,那么fun函数只计算数组a中的第三个元素与第四个元素的和,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿游戏与课程设计
- 家用制冷设备的噪音与振动抑制技术考核试卷
- 印刷设备维修工具与设备选用考核试卷
- 服装行业服装智能制造与供应链协同方案
- 乳饮料的香精香料选择与应用技巧考核试卷
- 地毯市场营销的线上线下融合策略考核试卷
- 农业政策与化肥市场分析考核试卷
- 农民就业指导与培训指南
- 酒店预定服务流程作业指导书
- 体育活动在社区的推广与应用
- 2024年山东省水利水电工程施工企业安全生产管理三类人员C证考试题库(含答案)
- 个人代开税票合同协议书
- 冀教版数学五年级上册7.2 综合与实践 估算玉米收入
- 安全先进个人事迹材料(7篇)
- DL∕T 523-2017 化学清洗缓蚀剂应用性能评价指标及试验方法
- 服饰品牌解析智慧树知到期末考试答案章节答案2024年上海工程技术大学
- 广安市岳池县2022-2023学年七年级上学期期末道德与法治试题【带答案】
- 经营异常授权委托书范本
- 2022-2023学年广东省广州市天河区教科版(广州)六年级上册期末测试英语试卷(含听力音频) 【带答案】
- 国家开放大学-工程力学(本)(闭卷)
- 江西旅游经济发展调查分析报告
评论
0/150
提交评论