![2021-2022年广东省清远市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页](http://file4.renrendoc.com/view/93c80d6001059fb84d93e6ba0d9e4981/93c80d6001059fb84d93e6ba0d9e49811.gif)
![2021-2022年广东省清远市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页](http://file4.renrendoc.com/view/93c80d6001059fb84d93e6ba0d9e4981/93c80d6001059fb84d93e6ba0d9e49812.gif)
![2021-2022年广东省清远市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页](http://file4.renrendoc.com/view/93c80d6001059fb84d93e6ba0d9e4981/93c80d6001059fb84d93e6ba0d9e49813.gif)
![2021-2022年广东省清远市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页](http://file4.renrendoc.com/view/93c80d6001059fb84d93e6ba0d9e4981/93c80d6001059fb84d93e6ba0d9e49814.gif)
![2021-2022年广东省清远市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页](http://file4.renrendoc.com/view/93c80d6001059fb84d93e6ba0d9e4981/93c80d6001059fb84d93e6ba0d9e49815.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年广东省清远市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下程序的输出结果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
2.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
3.若有定义语句“chars[10]=“1234567\0\0”;”,则Strlen(s)的值是()。
A.7B.8C.9D.10
4.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
5.
6.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()
A.多对多B.一对一C.多对一D.一对多
7.广告系统为了做地理位置定向,将IPV4分割为627672个区间,并标识了地理位置信息,区间之间无重叠,用二分查找将IP地址映射到地理位置信息,请问在最坏的情况下,需要查找多少次?()
A.17B.18C.19D.20
8.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的运行结果是()。
A.abcB.28cC.abc28D.因类型不一致而出错
9.以下叙述中正确的是()。
A.结构体变量中的成员可以是简单变量、数组或指针变量
B.不同结构体的成员名不能相同
C.结构体定义时,其成员的数据类型可以是本结构体类型
D.结构体定义时,类型不同的成员项之间可以用逗号隔开
10.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。structnode{hardata;structnode*next;)*P,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
11.下列关于栈的叙述中,正确的是()。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对
12.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
13.健壮的算法不会因非法的输入数据而出现莫名其妙的状态()
A.对B.错
14.若有语句“typedefstructS{intg;charh;}T;”,则下列叙述中正确的是()。
A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量
15.下列条件语句中,输出结果与其他语句不同的是()。
A.if(a)printf("%dn",x);elseprint[("%d\n",y)
B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)
C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)
D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)
16.
17.
18.下列叙述中正确的是()。
A.在switch语句中不一定使用break语句
B.在switch语句中必须使用default语句
C.break语句必须与switch语句中的case配对使用
D.break语句只能用于switch语句
19.以下语句定义正确的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
20.有下列程序:程序执行后的输出结果是()。
A.hAppychristmAs
B.happychristmas
C.HAppyCHrIstmAs
D.HAPPYCHRISTMAS
二、2.填空题(20题)21.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf(“%d”,______);
printf(“%d\n”,______);
22.#define命令出现在程序中函数的外面,宏名的有效范围为______。
23.某二义树中度为2的结点有18个,则该二叉树中有______个叶子结点。
24.以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。请按题意,完成填空。
试题程序:
#include<conio.h>
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
for(i=1;i<x;i+=2)
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
clrscr();
printf("\nPleasenteranintegernumber:\n");scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("\n");
}
25.假定变量x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式【】。
26.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块),其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
27.函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
28.在E-R图中,矩形表示【】。
29.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
30.以下程序运行后的输出结果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
31.下面程序的输出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
32.下列程序的输出结果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
如:dp=x*-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
33.有以下程序:
#include<stdio.h>
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
执行后的输出结果是【】。
34.模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
35.以下程序的运行结果为【】。
#include<stdio.h>
main()
{staticintb[2][3]={{1,2,3},{4,5,6}};
staticint*pb[]={b[0],b[1]};
inti,j;
i=0;
for(j=0;j<3;j++)
printf("b[%d][%d]=%d",i,j,*(pb[i]+j));
printf("\n");
}
36.若有定义:intk;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("##%d",k);
37.以下程序的输出结果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
38.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
39.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
40.以下程序的运行结果是【】。
#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);
}
三、1.选择题(20题)41.下列叙述中正确的是()。
A.线性链表的各元素在存储空间中的位置必须是连续的
B.线性链表的头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
42.若已定义c为字符型变量,则下列语句中正确的是()。
A.c='97'B.c="97";C.c=97;D.c="a";
43.在数据库系统中,用户所见的数据模式为A.概念模式B.外模式C.内模式D.物理模式
44.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,i;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr+++;}for(i=0;i<3;i++){foil(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}若运行时输入:123<回车>,则输出结果为
A.产生错误信息B.102000C.123000D.102030
45.下述对C语言字符数组的描述中错误的是()
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
46.若有程序fun(inta,intb){staticintc=0;c+=a+b;rerurnc;}main(){intx=5,y=3,z=7,r;r=fun(y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的输出结果是______。
A.23B.15C.19D.18
47.有以下程序;intf1(doubleA){returna*a;}intf2(doublex,doubley){doublea,b;a=n(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);┇}变量w中的值是()
A.5.21B.5C.5D.0
48.下面判断正确的是
A.char*a="china";等价于char*a;*a="china";
B.charstr[5]={"china"};等价于charstr[]={"china"};
C.char*s="china";等价于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
49.以下叙述中正确的是()。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以“#”开头
C.每个C程序必须在开头包含预处理命令行:#include<stdio.h>
D.C语言的预处理不能实现宏定义和条件编译的功能
50.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn.k;floatscore.sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序运行后结果不正确,调试中发现有—条语句出现在程序中的位置不正确。这条语句是
A.sum=0.0;
B.sum+=score;
C.ave=sun/4.0;
D.printf("NO%d:%f\n",n,ave);
51.在下面的语句中,赋值语句错误的是_______。
A.a=(b=(c=2,d=3));B.i++;C.a=a/b=2;D.a=a<a+1;
52.已定义以下函数:fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函数的功能是()。
A.将P1所指字符串复制到p2所指内存空间,
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有'\0'
53.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。下列不能将变量c中的大写字母转换为对应小写字母的语句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
54.用链表表示线性表的优点是()。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同
55.若有以下定义和语句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
56.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
57.对于白箱(盒)测试用例的各设计准则,下列叙述中正确的是()。
A.分支覆盖准则比语句覆盖准则严密
B.条件覆盖要比分支覆盖优越。因此,条件覆盖能完全满足分支覆盖
C.组合条件覆盖准则既能满足分支覆盖准则,也能满足条件覆盖准则。因此,组合条件覆盖准则是一种完全测试
D.上述说法都不对
58.以下程序的输出结果是______。main(){charstr[12]={'s','t','r','i','n','g'};printf("%d/n",strlen(str));}
A.6B.7C.11D.12
59.以下程序的输出结果是main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}
A.1B.0C.非0的数D.-1
60.有以下程序main(){intx=10,y=10;printf("%d%d\n",x--,--y);}程序运行后的输出结果是()
A.1010B.99C.910D.109
四、选择题(20题)61.(57)下列叙述中,不属于软件需求规格说明书的作用的是______。
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
62.
以下程序的输出结果是()。
main
{inti,k,a[10],p[3];
k=5;
for(i=0:i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k、;
}
A.20B.21C.22D.23
63.有以下程序:
程序运行后的输出结果是()。
A.3B.4C.lD.9
64.以下选项中与
65.
66.有以下程序程序的运行结果是()。
A.852B.963C.741D.875421
67.
下列程序的输出结果是()。
#include<stdio.h>
main
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.1C.6D.8
68.
69.
70.设有以下定义uniondata{intd1;floatd2;)demo;则下面叙述中错误的是()。A.变量demo与成员d2所占的内存字节数相同
B.变量demo中各成员的地址相同
C.变量demo和各成员的地址相同
D.若给demo.d1赋99后,demo.d2中的值是99.0
71.假定已建立以下链表结构,且指针P和q已指向如图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。
A.p一>next=q一>next;flee(q);
B.p=q一>next;free(q);
C.p=q;free(q);
D.(*p).next=(幸q).next;ffee(p);
72.对于一个正常运行的C程序,以下叙述中正确的是()。A.程序的执行总是从main函数开始
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
73.
74.下列定义变量的语句中错误的是()。
75.以下选项中关于C语言常量的叙述错误的是()。
A.经常被使用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量.
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
76.
77.对如下二叉树进行后序遍历的结果为()。
A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
78.C语言中char类型数据占字节数为()。
A.3B.4C.1D.2
79.若有以下说明和语句:
sturctst
{intn;char*ch;};
structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;
则值为6的表达式是()。
A)p++->nB)p->n++
C)(*p).n++D)++p->n
80.在E—R图中,用来表示实体联系的图形是()。
A.椭圆形B.矩形C.菱形D.三角形
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是计算正整数m
各位上数字的平方和。例如,输入498,则输出应该是161。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是找出成绩最低的学生记录,通过形参将其返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include<stdio.h>2#include<string.h>3#include<conio.h>4#include<stdlib.h>5#defineN106typedefstructss7{charnum[10];8ints;9}STU;10fun(STUa[],STU*s)11{1213}14voidmain()15{16FILE*wf;17STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m18inti;19system("CLS");20printf("*****Theoriginaldata*****\n");21for(i=0;i<N;i++)22printf("No=%sMark=%d\n",a[i],num,a[i].s);23fun(a,&m);24printf("****TheResult****\n");25printf("Thelowest:%s,%d\n",m.num,m.s);26/*************************/27wf=fopen("out.dat'*,"w");28fprintf(wf,"%s,%d",m.num,m.s);29fclose(wf);30/*************************/
参考答案
1.D本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。
2.B选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。
3.Astrlen函数计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中的字符串从第1个字符开始,遇到第1个结束标识‘\\0’为止,注意不占字符串长度,所以字符串长度为7。故本题答案为A选项。
4.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
5.D
6.C解析:该题考查的是实体间的联系。多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中有m个实体(m≥0)与之联系,则称实体集A与实体集B之间是多对多联系,记作m:n。一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之有联系,反之亦然,则称实体集A与实体集B之间是一对一联系,记作1:1。一对多联系(1:n):如果对于实体集A中每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B之间是一对多联系,记作1:n。那么根据题意可知是多对一联系。所以选项C是正确的。
7.D
8.Cfprintf函数将内容写入硬盘的文件,fputs函数将字符串写入文件,最终文件的内容为abc28。故本题答案为C选项。
9.A结构体变量中的成员可以是简单变量、数组、指针变量或者结构体变量,选项A正确;不同结构体成员名可以相同,选项B错误;结构体定义时,其成员的数据类型不能是本结构体类型,选项C错误;结构体定义时,类型不同的成员项之间使用分号隔开,选项D错误。本题答案为A选项。
10.D由题目中线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,P指向r结点,r指向q结点即可。而在选项D中,r->next=q,这时r指向的节点为q;p->next=r,这时P指向的节点为r;q->next:r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。
11.B栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。
12.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)
13.A
14.BT为结构体类型名,可以用来定义结构体变量。故本题答案为B选项。
15.D主要考查if判断语句,A选项if(a),如果a为真,则输出X,否则输出Y。B选项if(a==0),如果a恒等于0,则输出Y,否则输出X。C选项a(!=o),如果a不等于0,则输出X,否则输出y。D选项if(a==0),如果a恒等于0,则输出X,否则输出y。由以上结论可知,输出结果不同的为D选项。
16.B本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf函数接收字符串时的结束标志为回车或者空格。因此选项B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此B正确。
17.B
18.Adefault语句在switch语句中可以省略,所以B选项错误;switch语句中并非每个case后都需要使用break语句,所以C选项错误;break语句还可以用于for等循环结构中,所以D选项错误。故本题答案为A选项。
19.D本题考查的是如何对二维数组进行赋值。选项A)中数组第二维的大小是4,但却给赋了5个元素;选项B)中C语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式而不可以省略第二个方括号中的常量表达式:选项c)中数组第一维的大小是2,但是赋值却超过了2;选项D)中在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。
20.C程序定义一个字符数组b和一个字符变量k。for循环通过循环变量k,遍历数组b中的各个字符,通过if语句判断当前下标为k的字符的ASCII值与字符'm'的ASCII值的大小,ASCII值小于‘m’的ASCII值的字符改成大写字母(b[k]=b[k]-'a'+'A'),然后输出b[k]。在字符串“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所以程序输出:HAppyCHrIstmAs。本题答案为C选项。
21.k*kk*k解析:本题考查的知识点是scarf()函数和printf()函数的用法。scanf()函数有两个参数,第一个参数是格式控制部分(格式控制部分是字符串,主要由“%”号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空格处位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成的,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第;个空位于printf()函数的第二个参数处,所以应该填*K。
22.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
23.1919解析:二叉树具有如下性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。根据题意,度为2的节点为18个,那么,叶子结点就应当是19个。
24.*n=j*n=j解析:本题题干信息是能整除x且不是偶数的所有整数之和。循环语句中i从1开始且每次增2,所以i始终是奇数,*n=j;语句是记录能够符合题意的各个整数的各数。
25.x==0
26.驱动模块驱动模块解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。
27.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
28.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。
29.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。
30.98768769876\r\n876解析:指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。指针的定义:
类型说明符*指针变量名;
31.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
32.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。
33.-4-4解析:因为n=0,所以!n为真,执行x-=1;得到x=x=2-1=1;m=1为真,执行x-=2;得到x=x-2=1-2=-1;x=-1为真,执行x-=3;得到x=x-3=-1-3=-4。
34.在进行单元测试时,要用一些辅助模块去模拟与被测模块相联系的其他模块,即为被测模块设计和搭建驱动模块和桩模块。其中,驱动模块相当于被测模块的主程序,它接收测试数据,并传给被测模块,输出实际测试结果;而桩模块是模拟其他被调用模块,不必将子模块的所有功能带入。\r\n\r\n
35.b[0][0]=1b[0][1]=2b[0][2]=3
36.本题主要考查for循环语句。for循环的增量表达式为逗号表达式,相当于k+=2;,即每次循环后k增加2。第一次循环时,k=2,因此输出##2;第二次循环时k=4,输出##4。此后k=6,不满足循环条件。\r\n\r\n
37.246
38.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
39.概念(或概念级)概念(或概念级)
40.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2:分支,最后a和b的值分别为2和1。
41.DD.【解析】在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。
42.C解析:C语言中,字符型数据和整型数据之间可以通用。一个字符数据既可以字符形式输出,也可以整数形式输出,所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C)正确。由于题目要求选出正确的语句,选项A)少分号,不能构成语句,因此错误。B)、D)是将一个字符串赋给一个字符变量,所以错误。
43.B解析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式也称存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方法的描述。根据上述介绍可知,数据库系统中用户所见到的数据模式为外模式。因此,本题的正确答案是B。
44.D解析:本题主要考查的是scanf()函数的输入原理。scanf()函数执行时,先从键盘缓冲区中读取用户输入的数据,若缓冲区为空或输入数据少于所需数据,则暂停程序等待用户的输入,直到用户敲入回车,scanf()将继续到键盘缓冲区中读取输入,如此反复直到满足scanf()函数所需数据,程序才继续执行下面的语句,而scanf()没有取完的数据仍然会保存在键盘缓冲区内,到程序结束时还没取完就会被释放掉,不会影响其他的程序运行。另外,scanf()函数将取到的数据匹配给第2个及其后面的指针参数所指的内存地址中去,而不检查该参数的类型是否匹配。所以在本题中考生不要被指针ptr的定义所迷惑,它所做的只不过是临时保存一下a+i的值,然后送到scanf()函数中去。题目首先定义了一个二维数组a[3][2]并用{0}初始化之,因为当所赋初值少于所定义数组的元素个数时,将自动给后面的元素朴以初值0,所以数组a[3][2]中所有的元素都被初始化为0了。在主程序的第一个for循环体中有三条语句,该循环体会被执行两次,每次执行时i的值分别为0和1。第1条语句让ptr的值分别为a+0(即元素a[0])[0])的地址)和a+1(即元素a[1][0]的地址);第2条语句是一条输入语句,它每次接受一个十进制整数存入到ptr所指的内存地址中,题目要求输入的数据为“123<回车>”,所以两次scanf()函数的调用使a[0][0]和a[1][0]分别被赋为1和2。笫3条语句让ptr自增1在这里没有起到任何作用,因为每次进入循环体ptr都会被重新赋值。最后,程序用一个两重循环按行列输出二维数组a中的所有元素。所以,选项B符合题意。
45.C
46.A解析:static声明的外部变量只限于被本文件引用,而不能被其他文件引用。用static来声明—个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第—个fun,其两个实参的值为(3,5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。
47.C
48.C解析:选项A)char*a;*a=“china”应改为a=china;,选项B)应该是charstr[6];D)项表述方法有错误。
49.B解析:选项B)正确,预处理命令行之前都有一个“#”符号。C语言提供三种预处理:宏替换,文件包含,条件编译。
50.A解析:程序中使用了两层for循环,外层循环的作用是控制人数,循环一次是求一个人的成绩和,然后除以4得到平均成绩。每个人的成绩总和一开始时都必须清0,否则就会出现后面人的总成绩越来越大。“sum=0.0”;应在外层循环中。选项A正确。
51.C解析:①C语言中的赋值号“=”是—个运算符;②赋值语句是由赋值表达式加上一个分号构成。赋值表达式的左侧不能为常量或表达式。
52.A解析:本题中的while((*p2=*p1)!='\\0')语句首先进行赋值*p2=*p1,即把p1所指存储单元的字符逐一复制到p2所指存储单元中,然后判断p1所指单元内容是否为'\\0',若判断条件成立,则指针p1和p2依次指向下一个字符,继续执行循环体语句,否则循环终止。
53.D解析:由题意可知,小写字符a和大写字符A的ASCII代码相差为32,所以选项C)能将大写字符c的ASCII代码转换为小写字符c的ASCⅡ代码;选项A)和C)左侧的表达式都是大写字符c与大写字符A的差与'a'的ASCII代码的和就是小写字符c的ASCII代码。而选项D)中应该是加上'a',而不是减去'a'。
54.C【解析】在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多,在插入和删除数据元素时,只需要移动相应的记录指针即可,在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。
55.A解析:本题中定义了3个指向整型的指针变量p、q、w,并让P指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将NULL赋值给q。由整型变量指针的定义可知,可以给整型指针指向的变量赋一个常数值(表达式);可以给指针变量赋一个同种类型的指针变量(或地址值);选项A因为q不指向任何变量,给一个空指针指向的单元赋值是错误的。
56.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
57.A解析:白箱(盒)测试是根据对程序内部逻辑结构的分析来选取测试用例的。白箱(盒)测试用例的设计准则有:语句覆盖、分支覆盖、条件覆盖和组合条件覆盖。分支覆盖通过足够多的测试用例,使程序中的每个分支至少通过一次。分支覆盖准则比语句覆盖准则严密一些,选项A正确;条件覆盖通过执行足够多的测试用例,使每个判定中的每个条件都能取到两种不同的结果(“真”与“假”)。虽然条件覆盖要比分支覆盖优越,但、并不能完全满足分支覆盖,选项B错误;组合条件覆盖要求通过足够多的测试用例,使每个判定中各条件的各种可能组合至少出现一次,它既能满足分支覆盖准则,也能满足条件覆盖准则,但也不是完全测试,选项C错误。
58.A解析:在C语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动添加上“\\0”,故字符串的长度为6。
59.A解析:本题考核的知识点是逻辑运算符的运用。由于单目运算符优先级高于“&&”和“‖”、运算,所以先计算!a、!b和!c分别为“假”、“假”、“真”,然后是&&运算和“‖”运算,原表达式就等价于“假”&&“假”‖“真”又由于“&&”的优先级高于“‖”运算符,所以先计算“假”&&“假”,还是为假,最后是“假”‖,“真”为真。因此最后d被赋值为1,故最后输出为1。所以,4个选项中A为所选。
60.D
61.D
62.B
\n第一个循环的作用是把从0~9的数赋
\n给a数组;第二个循环的作用是把
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《贷款业务管理》课件
- 《电子产品制造工艺》课件
- 《RA的血液净化》课件
- 《阿里物流简介》课件
- 《华为组织结构图》课件
- 《MBO与股权激励》课件
- 2025至2031年中国伞尖行业投资前景及策略咨询研究报告
- 2025至2030年中国直柄风动砂轮机数据监测研究报告
- 【语文】《烛之武退秦师》课件+2024-2025学年统编版高一语文必修下册
- 《“红领巾”真好教学课件》
- 麻醉科质量与安全管理小组工作计划
- 个人下半年工作计划范文2篇
- 沪教版二年级下册计算题100道及答案
- 认识比例尺人教版课件
- 材料表面工程技术课件
- 2022版义务教育(生物学)课程标准(附课标解读)
- 医院放射诊疗中的辐射防护常识学习培训
- 《中国山水画技法》课件
- 如何提升小学教学质量
- 陕西省西安市2023-2024学年六年级上学期期末数学试卷(A卷)
- 变电站模块化建设2.0版技术导则
评论
0/150
提交评论