2021年江苏省苏州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021年江苏省苏州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021年江苏省苏州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021年江苏省苏州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021年江苏省苏州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021年江苏省苏州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.已知有如下结构体:structsk{inta;floatb;}data,*p;若有P=&data,则对data的成员a引用正确的是()。A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a

2.下列标识符不是关键字的是()。

A.breakB.charC.SwithchD.return

3.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

4.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)

C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)

D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)

5.下列关于栈的叙述中,正确的是()。

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对

6.一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点()。

A.99B.100C.101D.49E.50F.51

7.若有以下语句:typedefstructS{intg;charh;}T;以下叙述中正确的是()。A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量

8.若有定义“intx,y;”,并已正确给变量赋值,则以下选项中与表达式“(x-y)?(x++):(y++)”中的条件表达式“(x-y)”等价的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

9.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

10.

11.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序运行后的输出结果是()。

A.0101B.1000C.1100D.1010

12.以下关于顺序存储结构的叙述中,()是不正确的。

A.存储密度大

B.逻辑上相邻的结点物理上不必邻接

C.可以通过计算机直接确定第i个结点的存储地址

D.插入、删除运算操作不方便

13.有以下程序:

程序运行后的输出结果是()。

A.0B.一1C.1D.7

14.C程序是由()构成的。

A.主程序与子程序B.主函数与子函数C.一个主函数与若干个其他函数D.主函数与子程序

15.

16.有以下程序段:main(){intx[M][N];...Arrlet(x);...}则作为函数Arrlet的形参,以下表示形式非法的是()。

A.intx[M][]B.int(*x)[N]C.intx[][N]D.intx[M][N]

17.标准库函数fgets(s,n,file)的功能是()。

A.从文件file中读取长度为n的字符串存入字符数s由

B.从文件file中读取长度不超过n-1个字符的字符放到字符数组S中

C.从文件file中读到n个字符串存入字符数组s中

D.从文件file中读取长度为n-1个字符的字符串存字符数组S中

18.设有定义“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能计算出一个char型数据所占字节数的表达式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

19.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树中的叶子节点数为()。

A.18B.33C.19D.32

20.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

二、2.填空题(20题)21.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

22.在面向对象方法中,类之间共享属性和方法的机制称为______。

23.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要修改相应的应用程序,称为【】。

24.有以下程序:

intf(intn)

{if(n==1)retum1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);

}

程序运行后的输出结果是【】。

25.设有如下宏定义

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通过宏调用实现变量a,b内容交换,请填空。

floata=5,b=16,c;

MYSWAP(【】a,b);

26.下列程序段的运行结果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

27.若已定义inta[10],i;以下fun函数的功能是,在第一个循环中给前10个数组元素依次赋1,2,3,4,5,6,7,8,9,10;在第二个循环中使a数组前10个元素中的值对称拆叠,变成1,2,3,4,5,5,4,3,2,1。请填空。

fun(inta[])

{inti;

for(i=1;i<=10;i++)【】=i;

for(i=0;i<5;i++)【】=a[i];

}

28.诊断和改正程序中错误的工作通常称为【】。

29.常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。

30.以下程序中函数fun()的功能是构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。

#include<atdio.h>

typedefstructnode/*链表结点结构*/

{charsub[3];

structnode*next;

}Node

Node~un(chars)/*建立链表*/

{......}

voiddisp(Node*h)

{Node*Ps

p=h->next;

while(【】)

{printf("%s\n",p->suh);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);prinff("\n");

31.软件工程研究的内容主要包括:【】技术和软件工程管理。

32.注释说明了程序的功能,它分为【】注释和功能性注释。

33.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

34.下面程序的运行结果是()。

#include<stdio.h>

main()

{inta=25;

fun(&A);

}

fun(int*x)

{printf("%d\n",++*x);

}

35.在索引查找或分块查找中,首先查找【】,然后再查找相应的【】,整个索引查找的平均查找长度等于查找索引表的平均查找长度与查找相应子表的平均查找长度之和。

36.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

37.表示条件;10<x<100或x<0的C语言表达式是【】。

38.下面程序的运行结果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

39.下面程序中函数fun的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

for(i=0;i<n;i++)

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

40.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},<1,3,5,7}},则初始化后,a[2][2]得到的初值是______。

三、1.选择题(20题)41.下列程序的输出结果是______。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

42.使用白盒测试法时,确定测试数据应该根据()和指定的覆盖标准。

A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能

43.以下程序的输出结果是______。main(){charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

44.以下合法的赋值语句是()

A.x=y=100B.d--;C.x+y;D.c=int(a+b);

45.设intx=1,y=1;表达式(:x||y--)的值是______。

A.0B.1C.2D.-1

46.计算机软件一般包括应用软件和____。

A.字处理软件B.系统软件C.服务性软件D.操作系统

47.下面程序的输出结果是()。main(){structm1{inta;intb;}en[2]={1,3,2,7);printf("%d\n",en[0].b/en[0].a*en[1].a);

A.6B.0C.1D.3

48.若变量已正确定义,下列正确的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

49.表示关系x<=y<=z的C语言表达式为______。

A.(x<=y)&&(y<=z)

B.(x<=y)and(y<=z)

C.(x<=y<=z)

D.(x<=y)&(y<=z)

50.判断char型变量c1是否为小写字母的正确表达式为()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

51.若程序执行时的输入数据是"2473",则下述程序的输出结果是#include<stdio.h>voidmain(){intcs;while((cs=getchar())!=;'\n'){switch(cs-'2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2);}}}

A.668977B.668966C.6677877D.6688766

52.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;该程序段实现的功能是()。

A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点

53.下列叙述中,正确的一条是()

A.语句"goto12;"是合法的

B.for(;;)语句相当于while(1)语句

C.if(表达式)语句中,表达式的类型只限于逻辑表达式

D.break语句可用于程序的任何地方,以终止程序的执行

54.有以下程序:main(){intm,n,P;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则王确的输入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,P=789

D.123456789

55.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

56.以下对C语言中共用体类型数据的正确叙述是______。

A.可以对共用体变量名直接赋值

B.一个共用体变量中可以同时存放其所有成员

C.一个共用体变量中不能同时存放其所有成员

D.共用体类型定义中不能出现结构体类型的成员

57.以下能正确定义字符串的语句是()。

A.charstr[]={'\064'};

B.charstr="\x43";

C.charstr=";

D.charstr[]="\0";

58.以下对枚举类型名的定义中正确的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={one","two","three"};

D.enuma{"one","two","three"};

59.有下列二叉树,对此二叉树中序遍历的结果为()。

A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE

60.若a是noat型变量,b是unsigned型变量,以下输入语句中,合法的是______。

A.scanf("%6.2f%d",&a,&b);

B.scanf("%f%n",&a,&b);

C.scaaf("%f%3o",&a,&b);

D.scanf("%f%f",&a,&b);

四、选择题(20题)61.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);}

程序运行后的输出结果是

A.4B.3C.2D.1

62.

63.有以下程序:#include〈stdio.h〉intabe(intu,intv);main{inta=24,b=16,c;c=abc(a,b);printf(“%d\n”,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;)returnu;}输出结果是()。A.6B.7C.8D.9

64.

65.有以下程序段:

当执行上述程序段,并从键盘输入:nalne=LilinLim=1001<;回车>;后,name的值为()。

A.name:=Lilinum=1001B.nfll"ne=LiliC.Uli.h.um=D.Lili

66.

67.有以下程序:

voidmain()

{inta=1,b=2,m=0,n=0,k;

k=((n=b>a)+b)‖(m=a<b);

printf("%d,%d\n",k,m);

}

程序运行后的输出结果是()。

A.0,0B.0,1C.1,0D.1,1

68.

69.

70.若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

71.有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是()。A.A.235B.0235C.02356D.2356

72.

73.

74.下列叙述中正确的是()。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空问不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

75.

76.(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是()

A.详细设计

B.需求分析

C.总体设计

D.编程调试

77.以下选项中叙述错误的是()。

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的性能不可以说明为static型变量

78.若某二叉树中的所有结点值均大于其左子树上的所有结点值,且小于右子树上的所有结点值,则该二叉树遍历序列中有序的是()。

A.前序序列B.中序序列C.后序序列D.以上说法均可以

79.以下与存储类别有关的四组说明符中,全部属于静态类的一组是()。

A.extem和static

B.auto和static

C.register和static

D.register和ex[erll

80.有以下程序程序运行后的输出结果是()。

A.3,3,3B.2,2,3C.1,2,3D.1,1,3

五、程序改错题(1题)81.下列给定的程序中,proc()函数的功能是:将str所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。

例如,若输人:Howdoyoudo,则输出:HoWdOyoUd0。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}

参考答案

1.B本题主要考查结构指针:P=&data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a和P->a来访问结构体变量中的成员。

2.C在C语言中,字母区分大小,所以break、char、return、switch都是C语言中的关键字,而Swithch不是。

3.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

4.C本题考查逻辑与(&&)和逻辑或(||)运算符的使用。x值在[1,10]之间,C语言中可以写成x值在[100,11O]之间,C语言表达式应写成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]满足任意条件就可以,所以是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)&&(x<=110)。

5.B栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。

6.A

7.B解析:语句typedefstructS{intg;charh;}T的作用是用T作为struetS{intg;charh;)的简写,所以选B。

8.A条件表达式“x=表达式1?表达式2:表达式3”的含义是:先求解表达式1,若其值不为0(真),则求解表达式2,将表达式2的值赋给x;若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给X。本题中与条件表达式“(x-y)”等价的是“(x-y<0||lx-y>0)”。故本题答案为A选项。

9.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

10.D

11.D函数fun的作用是求一个十进制数的二进制数。通过辗转相除法获取这个整数的二进制数。因此(10)10=(1010)2。故本题答案为D选项。

12.B

13.Ba一一的含义是先用后减l,所以当a的值为0时,跳出循环,但是仍要执行a一一,g的值变为一1。

14.B

15.A

16.AC语言规定二维数组作为实参传递时,形参必须要指明二维数组的列数,否则函数内无法识别数组的宽度,行数提供没有任何作用。“(*x)[N]”与“x[][N]”以及“x[M][N]”效果一样。通过排除法选择A选项。故本题答案为A选项。

17.B本题考查fgets函数的使用调用形式:fgets(s,n,fp)。fgets函数参数说明:“S”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组S中,读入字符串后会自动在字符串末尾加入"\0"结束符,表示字符串结束。

18.A根据题目中的定义可知,“sizeof(p)”计算的是数组p中所有元素所占用的字节数,而不是char型数据所占的字节数。故本题答案为A选项。

19.C设叶子结点数为〃,则该树的结点数为n+9+5=n+\n14,根据树中的结点数=树中所有结点的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,则n=19。本题选择C选项。

20.D程序调试的任务是诊断和改正程序中的错误。

21.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)

22.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

23.逻辑独立性逻辑独立性解析:数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。

24.33解析:i=1时,f(1)=1,j=j+f(1)=0+1=1;i=2时,f2=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此时循环结束,程序运行后的输出结果是3。

25.cc解析:该题考查以下两个知识点:

(1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#define标识符字符串

(2)在MYSWAP宏定义中,利用中间变量z来交换x和y的值,所以要实现a和b的交换,只需通过中间变量即可,所以,此处应填c。

26.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8-20,此时y=8。

27.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]

28.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

29.边值分析法边值分析法解析:本题考查了黑箱测试的方法。黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法。

30.p!=NULL或P或p!=0或p!='0'p->next或(*p).nextp!=NULL或P或p!=0或p!='0'\r\np->next或(*p).next解析:程序中定义了一个结构体类型名Node,其中定义了一个指向结点类型的指针next。接下来用Node定义了头结点指针变量h和指向第一个结点的指针变量p,在满足p未指向最后一个结点的空指针时(即为NULL),输出p所指向结点的字符串,所以第一处应填p!=NULL,然后将p指向下一个非空结点,所以第二处应填P->next或与其等效的形式,反复执行直到所有的结点都输出。

31.软件开发

32.序言性序言性解析:注释一般分为序言性注释和功能性注释。

33.概念(或概念级)概念(或概念级)

34.2626解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

35.索引表块索引表\r\n块

36.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。

37.(x>10&&x<100)||x<0

38.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。

39.i<na[i]i<na[i]解析:在main函数中,randomize是为了生成随机种子,以便在使用rand函数时产生不同的数。通过循环用rand函数产生10个随机数。在fun函数中,要在n个数中找最大值,所以第一处填写i<n,每次将当前最大值与数组中的某元素比较,第二处填写a[i]。

40.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a(0][1]、a[0][2]、a[0][3]

41.C解析:本题中char*p=a+5;即相当于p;&a[5],而-p,是先要减1,则printf语句要输出的值就是a[4]。

42.A白盒测试是把测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上是源程序,以程序的内

【知识拓展】软件测试按照功能划分可以分成白盒(白箱)测试和黑盒(黑箱)测试。其中黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。

43.C解析:p是指针数组,通过第1个循环的赋值,p[0]、p[1]、p[2]分别指向二维数组ch的第1行、第2行、第3行,因此输出字符串“12345678”。

44.B解析:选项A的结尾没用‘;’,所以不是一条语句:选项C中的表达式不会改变任何变量的内容,也不是合法的赋值语句;选项D有语法错误,int应该加上括号。所以,4个选项中只有选项B符合题意,运行后d的内容被减一。

45.B

46.B

47.A解析:en[2]是结构体类型的数组,en[0].b/en[0].a*en[1].a=3/1*2=6。

48.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

49.A解析:C语言中没有关键词and,逻辑与运算符是&&,不是and,因此,选项B是错误的;而&是c语言的按位与运算,因此选项D是错误的:选项C是数学表达式,也是不对的。

50.D解析:C语言规定,字符常量在程序中要用单引号括起来。判断c1是否为小写字母的充要条件c1>='a'和c1<='z',用逻辑与(&&)来表示。A选项的这种形式在C语言中没有,所以选项D)正确.

51.A解析:本题主要考查了switch语句的使用方法。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时则执行default后面的语句。

52.A解析:因为刚开始时s指向a结点(链表头),所以语句q=s;使q也指向a结点。s=s->next;语句使s指向a的下一个结点b。p=s;语句使p也指向b结点。接下来是一个while循环,循环条件为p->next,即当p没有指向链表尾时执行循环体p=p->next;让p指向下一个结点,所以当循环结束时,p指向链表尾(c结点)。执行到此时,s、p、q分别指向的结点是b、c、a。然后执行p->next=q;,使c结点的后续指针指向了a结点。最后执行q->next=NULL;,使a结点的后续指针为NULL。由此可见,该程序段实现了将a结点移动到c结点之后,即首结点成为尾结点。故应该选择A。

53.B

54.A解析:本题的考点是关于C语言的输入语句scanf的通配符。C语言规定:scanf中的双引号中的输入格式(就是俗称的通配符)决定了输入的格式。要输入123给m,456给n,789给p,由scanf的输入格式:“m=%dn=%dp=%d”决定了输入必须的格式是:m=123n=456p=789。

55.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

56.C解析:共用体变量中的所有成员共享一段公共存储区,并非同时存放于共用体变量中,如共用体变量中有两个成员,int型成员占两个字节,float型成员占4个字节,则该共用体变量占4个字节,并非2+4=6个字节。

57.D解析:C语言中,字符串是用一对双引号括起来的字符序列,并用字符型数组来存放,故选项A)、C)不是字符中;选项B)定义的是一个字符变量str,不能用来存放字符串,所以不正确。

58.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。

59.B解析:对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树—根结点—右于树”的顺序。

60.C

61.B解析:在main函数中,对f(1)和f(2)的值进行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值为1+2=3

62.A

63.Cabc函数是求u、v的最大公约数,当v=16时,循环成立,执行其后的语句,即w=u%v,u=v;v=w;w=24%16=8,u=16,v=8,接着返回到while中,当v=8时,循环成立,执行其后昀语句,即w=u%v;u=v;v=w;w=16%8=0,u=8,v=0,接着再返回到while中,当v=0时,循环不成立,退出循环。

64.A

65.D在输入格式控制“name=%snum=%d”中,普通字符“ns.111e=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=Lifthum=1001<回车>”后,将字符串Ijli赋给字符数组llalne,整数1001赋给变量num。因此D选项正确。

66.A

67.C先计算b>a,b=2,a=1,所以n=1,1+b=3,不为0,所以或运算结果为1,不计算右边的表达式的值,所以m的值不变,k=1,m=0.

68.C

69.A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论