2021-2022年湖南省张家界市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021-2022年湖南省张家界市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021-2022年湖南省张家界市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021-2022年湖南省张家界市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021-2022年湖南省张家界市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年湖南省张家界市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则队头出队的运算是()。

A.q=f->next;f->next=f->next->next;free(q);

B.q=f;f->next=f->next->next;free(q);

C.f->next=f->next->next;q=f->next;free(q);

D.q=f->next->next;f=f->next;free(q);

2.为非法的字符串常量()。A.“case”B.“”C.”056”D.‘123’

3.有三个关系R,S和T如下:

其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并

4.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。

A.控制流B.加工C.数据存储D.源和潭

5.一个模块直接调用的下层模块的数目称为模块的()。

A.扇入数B.扇出数C.宽度D.作用域

6.

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

A.存储密度大

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

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

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

8.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。A.32B.16C.1D.0

9.下面程序的运行结果是

#include<stdio.h>

main()

{inta=28,b;

chars[10],*p;

p=s;

do{b=a%16;

if(b<10)*p=b+48;

else*p=b+55;

p++;a=a/5;}while(a>0);

*p=′\0′;puts(s);}

A.10B.C2C.C51D.\0

10.在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)

11.

12.下列数据结构中,能用二分法进行查找的是()

A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表

13.

14.有下列程序:程序执行后的输出结果是()。A.abcdefghijklmnopq

B.afgebcdhnopqmijklhnopqmijkl

C.efgabcdmnopqhijkl

D.mijklhnopqebcdafg

15.以下程序运行后,输出结果是()#include<stdio.h>ss(char*s){char*p=s;while(*p)p++return(p-s);}main(){char*a=“abded”inti;i=ss(a);printf(“%d\n”,i);}A.8B.7C.6D.5

16.若有以下程序段,w和k都是整型变量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇则不能与上面程序段等价的循环语句是()。A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

17.下面属于黑盒测试方法的是()。

A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖

18.设有定义语句“int(*f)(int);”,则下列叙述中正确的是()。

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

19.广义表((a),a)的表头是()。

A.aB.()C.(a)D.((a))

20.以下叙述中错误的是()。

A.c语言是一种结构化程序设计语言

B.使用三种基本结构构成的程序只能解决简单问题

C.结构化程序设计提倡模块化的设计方法

D.结构化程序由顺序、分支、循环三种基本结构组成

二、2.填空题(20题)21.设有以下定义变量的语句,并且已赋确定的值,则表达式“W*X+Z-y”所求得的数据类型为【】。

charw;intx;floaty;double2;

22.数据库管理系统是位于用户与______之间的软件系统。

23.若有定义doublea[5];,则a数组元素下标的上限为______。

24.以下程序的输出结果是【】。

#include<stdio.h>

unsignedfun6(unslgnednum)

{unsignedk=1;

do{k*=mum%10;num/=10;}

while(num);

returnk;

}

main()

{unsignedn=26;

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

}

25.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystrlen(char*str)

{intI;

for(I=0;【】!='\n';I++);

return(I);}

26.数据结构分为逻辑结构与存储结构,线性链表属于【】。

27.下面rotme函数的功能是:将n行n列的矩阵A转置为A'。例如:

请填空。

#defineN4

voidrotate(inta[][N])

{inti,j,t;

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

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

{t=a[i][j];

【】;

a[j][i]=t;

}

}

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

29.以下程序运行后的输出结果是【】。

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:m++;n++;break;

case1:n++;break;

default:k++;n++;

}

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

}

30.以下程序的输出结果是【】。

#include<string.h>

main()

{chara[]={'\1','\2','\3','\4','\0'};

printf("%d%d\n",sizeof(a),strlen(a));

}

31.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【】。

32.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。

33.以下程序运行后的输出结果是【】。

main()

{charm;

m='B'+32;printf("%c\n",m);

}

34.在最坏情况下,冒泡排序的时间复杂度为【】。

35.由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(【】);

}

36.下列程序的输出结果是______。

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x==1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

{printf("\n%d",fun(11));

}

37.有以下说明定义和语句,可用a.day引用结构体成员day,写出引用结构体成员day的其他两种形式【】、【】。

struct{intday;charmouth;intyear;}a,*b;b=&a;

38.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

39.设有以下程序:

main()

{inti,sum=0;

for(i=2;i<10;i++)

{if((i%2)==0)

continue;

sum+=i;}

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

}

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

40.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序运行时输入12<回车>,执行后输出结果是【】。

三、1.选择题(20题)41.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同

42.已有定义:inti,a[10],*p;则合法的赋值语句是()。

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

43.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()。

A.6.500000B.6C.5.500000D.6.000000

44.下面程序输出的结果是()。main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=-i;elseif(ok2)x=10;x=1;printf("%d\n",x);}

A.-1B.0C.1D.不确定的值

45.下列不是合法的C语言语句是()。

A.a=5B.{inti;i++;}C.;D.{;}

46.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。

A.希尔排序B.冒泡排序C.插入排序D.选择排序

47.下列叙述中止确的是()。

A.数据的逻辑结构与存储结构必定一一对应

B.由于汁算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

48.下列选项中不合法的+六进制数是()。

A.OxffB.OXllC.OxlgD.OXabc

49.设有如下的变量定义,以下符合C语言语法的表达式是______。inti=8,k,a,b;unsignedlongw=5;doublex=1,42,y=5.2;

A.a+=a-=(b=4)*(a=3);B.x%(-3);C.a=a*3=2;D.y=float(i);

50.有以下程序main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}whUe(k>0&&n<5);}程序运行后的输出结果是

A.235B.0235C.02356D.2356

51.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

52.为了避免嵌套的if-else的二义性,C语言规定:else与______配对。

A.缩排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if

53.下列程序的执行结果是______。main(){intx=2,y=2,z=0;if(z<0)if(y>o)x=4;elseX=5;printf("%d\t",x);if(z=y>0)x=7;elseif(y=0)x=3;elseX=6;printf("%d\t",x);printf("%d\t",z);}

A.271B.432C.570D.250

54.执行语句printf(“%ukn”,+12345)的输出结果是()。

A.12345B.0C.-1D.非定值

55.以下4个程序中,完全正确的是

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

56.设有下列语句inta=1,b=2,c;c=a^(b《2);执行后,C的值为()。

A.6B.7C.8D.9

57.设有下列二叉树:

对此二叉树先序遍历的结果是

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

58.下列叙述中正确的是A.break语句只能用于switch语句

B.在switch语句中必须使用default

C.break语句必须与switch语句中的case配对使用

D.在switch语句中,不一定使用break语句

59.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据和相关文档的集合

60.下面程序段中c的二进制值是______。chara=3,b=6,c;c=ab<<1;

A.1011B.1111C.11110D.11100

四、选择题(20题)61.

62.

63.以下叙述中错误的是()。

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是-种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

64.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

65.

66.有以下程序

#include<stdio.h>

main()

{charcl,c2;

c1=A+8-4

c2=A+8-5;

printf("%C,%d\n",cl,c2);

}

已知字母A的ASCIl码为65,程序运行后的输出结果是()。

A.E,69B.D,69C.E,DD.输出无定值

67.已知inta,b;doublec;,则以下语句中错误的函数调用是

A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);

68.

69.下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.以上三种描述都不对

70.

71.

72.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

73.以下选项中有语法错误的是()。A.char*str[]={"guest"};

B.charstr[][lO]={"guest"};

C.char*str[3];str[t]={"9uest"};

D.charstr[3][lO];str[1]={"guest"};

74.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

75.

76.以下程序的输出结果是()。

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf("%d,%d\n",a,b);}

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

77.有以下程序

78.有如下程序

#include"stdio.h"

main()

{intj,i,k=0;

for(j=20;j<=30;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

程序的运行结果是

A.2329B.2923

C.3292D.9232

79.

80.有以下程序

main()

{

inta[3][2]={0},(*ptr)[2],i,j;

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

{

ptr=a+i;

scanf("%d",ptr);

ptr++;

}

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

{

for(j=0;j<2;j++)

printf("%2d",a[i][j]);

printf("\n");

}

}

若运行时输入:123<回车>,则输出结果是

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算n!。例如,若输人:6,则输出:6!=720.000000。

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

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

试题程序:

六、程序设计题(1题)82.输出1—100之间不能被12整除的数。

参考答案

1.A

2.D

3.D

4.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

5.B扇入数是指调用一个给定模块的模块个数。扇出数是指由一个模块直接调用的其他模块数,即一个模块直接调用的下层模块的数目。本题答案为B选项。

6.B

7.B

8.C题中定义了无符号数,c=a>>3;是指右移3位,然后输出。结果为C。

9.C解析:考查用字符指针处理字符串的方法。语句'p=s;'是使指针p指向字符数组s。*p则引用了p所指位置的数组元素。通过指针来引用一维数组元素。

10.B在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项8中表达式E>0||E<0是一个逻辑表达式。

11.D

12.DD)【解析】二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。

13.B

14.B程序首先定义二维字符数组v,使用4个字符串初始化,另外定义字符指针数组P。通过第1个for循环,将v的4个字符串的首地址赋给p。第2for循环通过两层内嵌循环将p中元素指向的字符串首字母进行排序交换。规则是将指向的字符串的首字母字符按照字母表中的顺序排序后交换。注意,这里交换的是首字母,而不是整个字符串,所以程序输出:afgebcdhnopqmijkl。本题答案为B选项。

15.D

16.C当循环结束时,w的值应为-1,而其他选项中w的值为0,故选择c选项。

17.A黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等。白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。

18.B此定义语句“int(*f)(int);”为指向函数的指针变量的定义方法,其中f为指向函数的指针变量,第1个int为函数返回值类型,第2个int为函数的形参类型。故本题答案为B选项。

19.C

20.BC语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有三种基本结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并充分利用现有模块搭建新系统,提高程序的重用性和可维护性。

21.double或双精度型double或双精度型

22.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。

23.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。

24.1212解析:循环语句中,表达式num%10是取num的个位。循环直至num为0结束,这是逐一求出num+进制表示的各位数字,并累乘于变量k中。函数最后返回k,所以程序输出12。

25.*(str+I)或str[I]*(str+I)或str[I]解析:str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+I)来访问字符串中的第I个元素,判断是否为结束标志,如果不是,I=I+1,继续取下一个元素进行判断,直到*(str+I)的值为'\\0'为止,也可以用下标的方式引用字符,如*(str+I)相当于str[I]。

26.存储结构

27.j<Ia[i][j]=a[j][i]j<I\r\na[i][j]=a[j][i]解析:本题中要求将n行n列的矩阵A转置,即让数组中行上的元素变成对应列上的元素。即把对角线两边的元素对换,所以本题的第一个空白处应该填写j<i,第二个空白处填写交换对角线两边的元素的语句a[i][j]=a[j][i]。

28.概念(或概念级)概念(或概念级)

29.130130解析:本题主函数中用了一个for循环,循环了3次:当i=9时,i/10=0,执行switch语句中case0分支,m和n的值各增1,变为1和1,然后遇到break语句,退出switch语句;当i=10和11时,i/10都等于1,执行switch语句中的case1分支,两次使n增1,变为3,退出switch语句。故该空格处应该填130。

30.545\u3000\u30004解析:字符串处理函数strlen()返回的是字符数组的实际长度,不包括字符申结束标志‘\\\u30000’。而sizeof运算符则计算的是字符数组的总长度,包括串末尾的结束标志。

31.XX解析:主函数中首先定义了一个字符型变量c,接着执行下面while语句,在while循环中,首先从键盘上读入一个字符Y并给赋给字符变量c,赋值表达式的值不为'?',执行输出语句,输出字符X。接着判断while中的循环条件,读入一个字符'?'并赋值给c,赋值表达式的值为'?'循环条件不再满足,退出循环。

32.3232解析:二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此,26-1=32.所以答案为32。

33.BB解析:字符类型的数据在内存中以相应的ASCII码存放,另外,字符数据还可以作为整数参加运算。格式控制参数中的格式字符用以指定输出项的数据类型和输出格式,输出字符与其对应的输出项的类型要一致。本题中,“b”的ASCII码为98,字符类型m的ASCII码为98+32=130,所以最后输出为b。

34.

解析:冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过遍的从前往后的扫描和遍的从后往前的扫描,需要的比较次数为。

35.main()0a[j]=0count<25

36.44解析:本题考查函数的递归调用.在主函数中第1次调用于函数是调用的fun(11),返回11-fun(9);第2次调用于函数是调用的fun(9),返回9-fun(7);第3次调用于函数是调用的fun(7),返回7-fun(5):第4次调用子函数是调用的fun(5),返回5-fun(3):第5次调用于函数是调用的fun(3),返回3-fun(1):第6次调用于函数是调用的fun(1),返回3。总的返回值是:11-(9-(7-(5-(3-3))))=4.

37.(*B).dat.b->day

38.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

39.2424解析:continue语句功能:结束本次循环(注:不是终止整个循环),即跳过循环体中continue语句后面的语句,开始下一次循环。

40.1212解析:字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为12。

41.C【解析】在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多,在插入和删除数据元素时,只需要移动相应的记录指针即可,在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。

42.D解析:本题考核的知识点是指针变量的赋值。本题中定义了一个整型数组a和一个整型指针变量P。选项A中将一个整型数赋值给一个指针变量,C语言规定,只能特地址赋给指针指针变量,故选项A不正确:选项B中a[5]为一数组元素,同样不是一个地址,故选项B不正确;选项c中a[2]为一数组元素,同样是一个整型数据,不是个地址,故选项C不正确:选项D中数蛆名a代表数组首地址加2,代表第三个元素的地址,故选项D正确,所以,4个选项中选项D符合题意。

43.D

44.C解析:如果没有大括号,else总是与它上面的最近的if配对。所以本题中的elseif(ok2)是与if(!ok1)配对的,首先因为a<b成立所以进一步判断b!=15也成立,再进一步判断!ok1,为假,不执行子句X=-1;继续判断ok2是否为真,ok2亦为假,故子句x=10;也不执行,最后让x=1;输出x,所以结果应该选择C。

45.A解析:选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。

46.A解析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。

47.D解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的,选项A错误。计算机的存储空间是向量式的存储结构,但一种数据的逻辑结构根据需要可以表示成多种存储结构,如线性链表是线性表的链式存储结构,数据的存储结构不一定是线性结构,因此选项B错误。数组一般是顺序存储结构,但利用数组也能处理非线性结构,选项C错误。由此可知,只有选项D的说法正确。

48.C解析:+六进制是以“0x”或“0X”开头的字符串,字符串中只能含有0~9这10个数字和a、b、c、d、s、f这6个字母。

49.A

50.A解析:因为变量的初始值分别为“k=5,n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行“case4:”这个分支,结果是“n=2,k=3”,打印出2;程序然后进行第二次循环,这时“n=2,k=3”,执行“case3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case2:case4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。

51.B解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a=0,则!a成立,执行下列的语句,x--,得x=11:第二个if语句,判断条件,发现c=o,则条件不成立,执行下列的else语句,得x=4。

52.B解析:在if语句中又包含—个或多个if语句称为if语句的嵌套。应当注意if与else的配对关系,在C语言中,从最内层开始,else总是与它上面最近的(未曾配对的)if配对。

53.A解析:本题考查if语句的嵌套,第一个嵌套语句,else看上去似乎和第一个if配对,实际上是和第二个if配对:第二个嵌套语句中的两个条件表达式应该注意,第一个条件表达式是将y>0的逻辑值赋给变量z,第二个条件表达式是将0赋给变量y,不是逻辑等于运算符“==”。

54.A解析:“%u”表示输出无符号的整数(注意:如果输出值前有符号,将自动转化为相应的无符号数输出)。

55.B解析:选项A)main();的分号是错误的,不能有分号;选项C)的注释语句多了两个*号;选项D)include前面没有#。

56.D解析:变量b的初值等于2,所以表达式b<<2表示b的值二进制左移两位,即扩大4倍,所以变量b的等于8。然后与a的值1进行异或运算,得9。

57.C解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF。

58.D解析:break语句除了能用于switch语句外,还可以用于循环语句中,因此选项A不正确。在switch语句中,可以使用default来执行所有case均失配时的分支,也可以不使用default,此时若所有case均失配则跳出switch,因此选项B不正确。在switch语句中,每个case的作用就是标出一个执行的起点,当符合某个case时,程序就从该case所标出的起点处开始执行,若没有break语句中断执行的话,程序会一直执行到switch的最后一条语句,而不是碰到下一个case就跳出switch。虽然break与case的配对使用会让所有case分支互不重叠条理明确,但不配对使用在C语言中也是允许的。因此选项C不正确,应该选择D。

59.D解析:软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。

60.B解析:C语言提供六种位运算符,按优先级由高到低的顺序分别为:取反(~)、左移(<<)和右移(>>)、按位与(&)、按位异或(∧)、按位或(|)。所以表达式c=ab<<1先运算b<<1得二进制值为00001100,再运算a∧00001100,最后得二进制值00001111。

61.C

62.C

63.A使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

64.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

65.D

66.A\n本值输出两个值,%c为输出一个字母,0/4d输出一个数字。“A”的ASCIl码为65,再加4之后为69,也就是字母E,所以本题A正确。

\n

67.C本题主要考查格式输入函数scanf。此函数一般的输入形式是scanf(格式控制,地址表列);。函数“格式控制”的含义同printf函数,以%开始,以一个格式字符结束,中间可以插入附加的字符。常用的格式字符主要有:

d:用来输入有符号的十进制整数。

u:用来输入无符号的十进制整数。

o:用来输入无符号的八进制整数。

x:用来输入无符号的十六进制整数(大小写作用相同)。

c:用来输入单个字符,包括回车键。

s:用来输入字符串,将字符串送到一个字符数组中,在输入时以非空格字符开始,以第一个空格字符结束。字符串以串结束标志’\\0’作为其最后一个字符。

f:用来以小数形式输入实数(包括浮点型和双精度型)。

e:用来以指

温馨提示

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

最新文档

评论

0/150

提交评论