




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年湖北省荆州市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.对于一个正常运行的C程序,下列叙述中正确的是()。A.A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
2.下列有关格式输入函数scanf的叙述中正确的是()
A.输入项可以是C语言中规定的任何变量,并且在任何变量前必须加地址符号“&”
B.可以只有格式控制项,没有地址列表项
C.在输入数据时,必须规定精度。如:scanf("%4.2f",&d);
D.当输入数据时,必须指明变量地址
3.有三个关系R,S和T如下:
其中关系T由关系R和s通过某种操作得到,该操作为()。
A.选择B.交C.投影D.并
4.以下叙述中错误的是()。
A.形参可以是常量、变量或表达式
B.实参可以是常量、变量或表达式
C.实参的类型应与形参的类型赋值兼容
D.实参的个数应与形参的个数一致
5.设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()。
A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1
6.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
7.用单链表表示的链式队列,队头在链表的()位置。
A.链头B.链尾C.链中D.可以由自己确定
8.某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()
A.3B.2C.4D.5
9.
10.
11.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是()。
A.i-1B.iC.i+1D.4一i
12.以下不完整的程序拟实现调用getmax函数,找出4个变量中最大的一个:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下选项若填入下划线处,不能实现上述功能的是()。
A.getmax(getmax(getmax(a,b),c),d)
B.getmax(getmax(a,b),getmax(c,d))
C.getmax(a,getmax(b,getmax(c,d)))
D.mx=(getmax(a,b),getmax(c,d))
13.下列能正确进行字符串赋值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
14.
15.有以下程序:#include<stdio.h>intf1(inta){returna*3;}intf2(int*b){return*b*5;}main(){intx=3,y=5;printf(“%d,%d\n”,f1(x),f2(&y));}程序的运行结果是()。
A.9,125B.9,25C.3,15D.3,45
16.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
17.输入序列为(A,B,C,D),不可能得到的输出序列是______.
A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)
18.以下关于C语言的叙述中正确的是()。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
19.软件测试的目的是()。
A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误
20.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
二、2.填空题(20题)21.以下程序运行后的输出结果是【】。
main()
{inti,n[]=10,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
22.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
word_num(str
charstr[];
{inti,num=0,word=0;
for(i=0;str[i]!=【】;i++)
if(【】=")word=0
elseif(word=0)
{
word=1;
【】;
}
return(num);
}
23.执行以下程序后,输出‘#’号的个数是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
24.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。
25.若输入5、9,以下程序的运行结果为【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
26.一张3.5英寸软盘大约能存储140万个ASCⅡ字符,若存放汉字大约能存放【】个。
27.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fsetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
28.如下语句printf("%c\n",'B'+40);在执行后的输出结果是【】。
29.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
30.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenam\n");
gets(fname);
if((fp=【】==NULL)
{printf("Cannotopen\n");exit(0);}
printf("Enterdata\n");
while(ch=getchar()!='#')
fputc(【】,fp);
fclose(fp);
}
31.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
32.在关系数据库中,将数据表示成二维表,每一个二维表称为______。
33.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。
34.下列程序的输出结果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
35.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
36.下面程序有两个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);
}
37.设有以下定义
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下图所示链表结构:
请写出删除结点y的赋值语句【】。
38.以下程序输出的结果是______。
mazn()
{inta=5,b=4,c=3,d;
d=(a>b>C);
printf("%d\n",D);
}
39.设y为int型变量,请写出描述“y是偶数”的表达式______。
40.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。
三、1.选择题(20题)41.已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序______。main(){chara='A';intb=20;pxintf("%d,%o",(a=a+a,a+b,b),a+'a'-'A',b);}
A.表达式非法,输出零或不确定值
B.因输出项过多,无输出或输出不确定值
C.输出结果为20,141
D.输出结果为20,141,20
42.在面向对象的程序设计中,下列叙述错误的是()。
A.任何一个对象构成一个独立的模块
B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖
C.下一层次的对象可以继承上一层次对象的某些属性
D.上述三种说法都正确
43.十六进制数FF.1转换成十进制数是()
A.255.0625B.255.125C.127.0625D.127.125
44.有以下程序段:intk=Owhile(k=1)k++;while循环执行的次数是()。
A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次
45.定义如下变量和数组:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};则下面语句的输出结果是()。for(k=0;k<3;k++)printf("%d",a[k][k]);
A.753B.951C.963D.741
46.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务
47.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
48.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序运行后的输出结果是
A.2B.3C.43D.44
49.若有“doublea;”,则正确的输入语句是()。
A.scanf("%1f",A);
B.scanf("%f",&A);
C.scanf("%1f",&A);
D.scanf("%1e",&A);
50.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
51.C语言中,凡未指定存储类别的局部变量的隐含存储类别是()。
A.自动(auto)B.静态(statiC)C.外部(extern)D.寄存器(register)
52.以下程序的输出结果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0],x=1;h[0].y=2;h[1]x=3;h[1].y=4;h[0].p、&h[1];h[1]..p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y;}
A.12B.23C.14D.32
53.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
54.若有如下定义和声明:structs{intm;charch;doublex;uniont{chara[6];intb[3];}tt;}ss;则sizeof(struets)的值是()
A.6B.14C.17D.20
55.定义下列结构体(联合)数组:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句printf["%d,%c",a[2].age,*(a[3].name+2))的输出结果为()。
A.15,AB.16,HC.16,AD.17,H
56.下列程序段的输出结果是()。voidfun(int*x,int*y){printf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=2,y=1;fun(&y,&x);printf("%d%d",X,y);}
A.1243B.1212C.1234D.2112
57.两个或两个以上模块之间联系的紧密程度称为()。
A.耦合B.内聚性C.复杂性D.数据传输特性
58.以下程序的输出结果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}
A.11B.12C.13D.15
59.以下标识符不是关键字的是()。
A.breakB.charC.switchD.return
60.栈和队列的共同特点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
四、选择题(20题)61.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。
A.存储媒体B.表现媒体C.传输媒体D.感觉媒体
62.设有定义:,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()。
63.
64.
65.有以下程序(strcat函数用于连接两个字符串):
程序运行后的输出结果是()。
A.U-KB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
66.以下程序的输出结果是()。main(){intRum=0;while(num<=2){num++;printf(”%d\n”,num);}}A.1B.1C.1234D.1223
67.若变量X、y已正确定义并赋值,以下符合c语言语法的表达式是()。
A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO
68.
69.下列字符数组初始化语句中,不正确的是()。A.A.charc[]='goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"ffgoodmorning"};
70.(54)在下列几种排序方法中,要求内存量最大的是______。
A.插入排序
B.选择排序
C.快速排序
D.归并排序
71.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
72.下列叙述中正确的是()。
A.数据库系统是一个独立的系统,不需要操作系统的支持
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库管理系统就是数据库系统
D.以上三种说法都不对
73.关系数据库管理系统能实现的专门关系运算包括()。
A.选择、投影、连接B.排序、查找、统计C.关联、更新、排序D.显示、打印、制表
74.
75.下列叙述中正确的是()。
A.为了建立一个关系,首先要构造数据的逻辑关系
B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项
C.一个关系的属性名表称为关系模式
D.一个关系可以包括多个二维表
76.
77.若有定义:“inta=4,b=5;floatx=3.4,y=2.1;”,则下列表达式的值为()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
78.以下选项中,不能作为合法常量的是
A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0
79.有以下程序程序的运行结果是()。
A.3B.1C.2D.0
80.下列选项中,不属于模块间耦合的是()。A.数据耦合B.标记耦合C.异构耦合D.公共耦合
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:输出M行M列整数方阵,然后求两条对角线上的各元素之和并将其返回。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是将M行N列的二维数组中的数据,按列的顺序依次存放到一维数组中,将一维数组中数据的个数存放在形参n所指的存储单元中。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,w[i][j]);printf(“\n”);}fun(w,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i<n;i++)<p=""></n;i++)<>printf(“%3d”,a[i]);}
参考答案
1.A解析:一个C语言源程序无论包括了多少函数,总是从main函数开始执行,从main函数结束。
2.D解析:如果是指针型变量或数组名,则变量前不加地址符号&,所以选项A的说法有误。必须有地址列表项才能实现正确输入,所以选项B的说法有误。在输入数据时,不可以指定实型数据的精度,所以选项C的说法有误。只有选项D的说法正确。
3.D\n两个相同结构关系的并是由属于这两个关系的元组组成的集合。
\n
4.A函数中,形参必须是变量,实参可以是常量、变量或表达式,选项A错误,选项B正确;实参的个数和类型要与形参一致,选项C、D正确。本题答案为A选项。
5.D
6.C解析:C语言中,如果对定义的变量没有赋初值,那么在后面使用时,变量的值是不确定的。所以,本程序中,没有对sum赋初值,它的值不确定。在执行了for循环语句后,sum的值也不确定的,所以,4个选项中选项C符合题意。
7.A
8.C
9.D
10.C
11.B
\n本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。
\n
12.Dgetmax函数接收两个整型变量x、y,使用条件运算符返回x和y中的较大值。main函数首先输入a、b、c、d4个整数值,然后通过调用getmax函数,输出它们的最大值。假设x、y是整数,选项A中,首先执行“getmax(a,b)”,返回a、b中的较大值X,再执行“getmax(x,c)”,返回x、c中的较大值y,最后执行“getmax(y,d)”,返回y、d中的较大值,满足题意,正确;选项B中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行“getmax(x,y)”,返回x、y中的较大值,正确;选项C中,首先执行“getmax(c,d)”,返回c、d的较大值X,再执行“getmax(b,x)”,返回b、x中的较大值y,最后执行“getmax(a,y)”,返回a、y中的较大值,正确;选项D中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行逗号表达式“(x,y)”,返回值为7,不满足题意。故本题答案为D选项。
13.C解析:字符串存储要有结束符“\\0”且要占用一个空间,选项A)、B的空间不够:printf用来输出字符,不能输入字符串.
14.D
15.Bf1函数接收整型数a,将a的值乘以3,结果作为函数返回值返回;f2接收整型变量的地址,将地址中的值取出后乘以5,结果作为返回值返回;main函数定义两个变量x、y,初值分别是3和5,所以调用f1(x)返回值为9,调用f2(&y)返回值为25。故本题答案为B选项。
16.B解析:scanf()函数要求将输入的数据存入变量所在的地址。选项A不是C语言中的输入语句,故选项A不正确;选项C中输入的是变量字符串而不是地址字符串,不满足scanf()函数要求将输入的数据存入变量所在的地址,故选项C不正确;选项D不是C语言中的输入语句,故选项D不正确:所以,4个选项中选项B符合题意。
17.D
18.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。
19.D软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误,因此本题答案为D)。
20.C解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型—个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故选项D不正确。所以,4个选项中选项C符合题意.
21.1371513715解析:本题中,定义了一个整型数组n并初始化,在for循环语句中,再对数组中各元素重新赋值。循环执行第一次时,n[1]=n[0]*2+1=0+1=1,printf函数输出1,然后i的值加1,比较i<=4成立,继续执行循环体语句,相应输出3、7、15,直至i<=4不成立,退出循环。所以最后输出为1、3、7、15。
22.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:
①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;
②str[i]代表字符串str中的第i+1个字符;
③整型变量num的值是要记录的单词的个数。
C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。
23.66解析:本题中,i,j分别为外循环和内循环的循环控制变量,外层循环共执行了4次。当i=1时,由于内层循环判断条件(2<=1)为假不执行内层循环。当i=2时,执行内层循环,输出一个#;当i=3时,内层循环循环两次,输出两个#;当i=4时,内层循环循环三次,输出三个#;当i=5时,循环判断条件不成立,退出外层循环。所以一共输出6个#。
24.数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段解析:在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性-综上所述,数据独立性最高的阶段是数据库系统管理阶段。
25.59
26.70万70万
27.filea.dat"r"filea.dat,'r'解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。
28.jj解析:在C程序中的字符量可参与任何整数运算。
29.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
30.fopen(fname"w")chfopen(fname,'w')\r\nch解析:数组fname用来存放终端输入的一个文件的文件名;文件使用方式'w'是为写而打开文本文件。若文件不存在,系统将用在fopen调用中以指定的文件名建立一个新文件;若存在,则覆盖原有内容;fputs(ch,fp)的功能是将字符ch写到文件指针fp所指的文件中去。
31.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。
32.关系或关系表关系或关系表解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系.表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名,表中的一行称为一个元组,相当于记录值。
33.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。
34.21
35.yesyes解析:程序if语句中是赋值表达式,而不是相等“==”运算。因为c=a+b中a+b的值为4,赋给c,c=4,表达式为真,输出yes。
36.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。
37.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的指针域即可。
38.00解析:关系运算符“>”的结合方式是从左向右的,所以在本题中的表达式a>b>c;从左向右开始计算,a>b的结果为“1”,接着1和c比较假,该空格处应该填0。
39.(y%2)==0(y%2)==0解析:因符合偶数的条件是对2取余为0,所以要描述y是偶数的表达式是(y%2)==0。
40.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。
41.C解析:本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即20。然后以八进制的形式输出a+'a'-'A'的值为97对应的八进制数141,由于最后—个表达式b没有对应输出格式的输出项表列就不会输出。
42.B解析:在面向对象程序设计中,对象是可以独立存在的实体。
43.A
44.A解析:程序中,k的初值为0。执行while后面小括号中的赋值表达式k=1,则k的值为1,即整个表达式的值为真。所以执行循环体,执行语句“k++;”。因为k进行自加,不再减小,没有值为0的可能,即while后面小括号中的赋值表达式的值一直为真,不能退出循环,因此while循环将无限次地执行下去,所以,选项A正确。
45.B解析:本题中的二维数组的每个元素就是一个由3个元素构成的一维数组,根据条件for(k=0;k<3;++)和要求的a[k][k]可以得出本题的答案应该是951。
46.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。
47.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。
48.A解析:本题考核的知识点是if-else语句的程序分析。我们首先看程序中if-else的匹配,由于C语言中规定else总是与最近的if搭配,因此程序中else与第二个订搭配,即该if-else语句为第一个if语句的执行部分,接着判断第一个if后面括号里的表达式的值“a>b”为假('3>4'为假),因此不执行后面if-else语句,程序将执行下面的输出语句输出d,而d一直未被改变故为原来的值2,所以,4个选项中选项A符合题意。
49.D解析:函数scanf()的调用形式:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。
50.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:
(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。
(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。
(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。
(4)++和--运算符的结合方向是“自右向左”。
(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。
51.A
52.D解析:本题中是一个含有两个结点的循环链表。
C语言中结构体的定义为:
struct结构体类型名
{
成员项表;
};
53.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。
54.C
55.C解析:本题主要考查结构体数组。a[2].age为结构体a[2]的age成员,即16。a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“Z”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2))是取指针所指向地址的内容。
56.A解析:本题主函数中首先定义了两个变量x和y,并初始化为2和1,然后将y和x的地址值,传入函数fun(),函数fun()中的形参x和y分别指向主函数中的变量y和x,所以fun()函数输出的值为1和2,fun()函数在结束之前把形参x所指内容赋为3,把形参y所指内容赋为4,所以返回主函数后,主函数中的x和y已被改写为4和3。故程序输出结果为1243。选项A正确。
57.A解析:耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
58.B解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。
59.C解析:此题考查标识符和关键字的概念。需要注意的是C语言是区分大小写的,switch是关键字,但Switch不是关键字。
60.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。
61.D媒体分为感觉媒体、表示媒体、存储媒体、传输媒体和表现媒体五种,“多媒体技术”中的媒体强调的是感觉媒体。
62.A字符串的输入不能使用“scarf(%s"s);",而应该使用‘‘gets(s)”,因此选择A)。
63.A
64.C
65.C字符数组a中包含两个‘、O’,遇到第一个‘O’时就表示字符串a结束。字符串处理函数由c吐(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到a的后面,结果放在字符数组a中。连接时将字符串a后的‘、0’取消,只在新串最后保留一个‘、0’。本题相当于将“ABCD”和“IJK”连接。因此C选项正确。
66.D当num=0时,循环成立,执行num++后;num的值为1,因此输出1,接着返回while中的表达式;当num=1时,循环成立,执行nHm++后,num的值为2,输出2,再返回while中的表达式;当num=2时,循环成立,执行num++后.nHm的值为3,输出3,最后返回while中的表达式,当num=3,循环不成立,退出。
67.Ax+1和x+10不能做左值,B)和c)错误;类型转换需要用括号括起类型名,所以D)错误。
68.D
69.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。
70.D
71.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业培训管理课件模板
- Photoshop平面设计基础 课件 任务4.2 立体字设计
- 优化治疗方案-甲磺酸伊马替尼与TKI序贯治疗
- 企业培训小课件视频
- 沧州房屋租赁合同租赁物保险与理赔服务合同
- 猪场栏位保养方案
- 租赁仓库后续管理方案
- 电力供应企业分公司设立及输电合同
- 特色小吃店品牌授权及店铺转让合同范本
- 旧学院修缮改造方案
- 2024年北京中考地理试卷
- 杭四中分班考数学试题卷
- 会议系统施工施工方法及工艺要求
- 收割机买卖合同正规范本版
- 临床成人ICU患者外周动脉导管管理要点
- 81.GJB 1112A-2004 军用机场场道工程施工及验收规范
- DZ∕T 0130-2006 地质矿产实验室测试质量管理规范(正式版)
- 计划开、竣工日期和施工进度网络图112
- 2024初中数学竞赛七年级竞赛辅导讲义七年级专题01 质数那些事
- 德宏傣族景颇族自治州缅籍“三非”人员管理问题研究的开题报告
- 手绘pop海报制作
评论
0/150
提交评论