2017计算机二级考试C语言考前密卷八

2017计算机二级考试C语言考前密卷八
日期:02-11 12:30:25| 计算机等级考试|45教学网| http://www.45sw.com

2017计算机二级考试C语言考前密卷八是关于计算机等级考试方面的资料,

(1)下列数据结构中,按先进后出原则组织数据的是

A)线性链表 B)栈

C)循环链表 D)顺序表

(2)具有3个结点的二叉树有

A)2种形态 B)4种形态

C)7种形态 D)5种形态

(3)设有下列二叉树:

对此二叉树前序遍历的结果为

A)ZBTYCPXA B)ATBZXCYP

C)ZBTACYXP D)ATBZXCPY

(4)结构化程序设计主要强调的是

A)程序的规模 B)程序的效率

C)程序设计语言的先进性 D)程序易读性

(5)程序的3种基本控制结构是

A)过程、子过程和分程序 B)顺序、选择和重复

C)递归、堆栈和队列 D)调用、返回和转移

(6)下列叙述中,不属于测试的特征的是

A)测试的挑剔性 B)完全测试的不可能性

C)测试的可靠性 D)测试的经济性

(7)需求分析中开发人员要从用户那里了解

A)软件做什么 B)用户使用界面

C)输入的信息 D)软件的规模

(8)下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

A)选择 B)连接

C)投影 D)并

(9)下列叙述中,正确的是

A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系

B)用E-R图只能表示实体集之间一对一的联系

C)用E-R图只能表示实体集之间一对多的联系

D)用E-R图表示的概念数据模型只能转换为关系数据模型

(10)“年龄在18~25之间”这种约束是属于数据库当中的

A)原子性措施 B)一致性措施

C)完整性措施 D)安全性措施

(11)以下说法错误的是

A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式

B)计算机只能处理由0和1的代码构成的二进制指令或数据

C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件

D)每一种高级语言都有它对应的编译程序

(12)算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是

A)有零个输入或多个输入

B)高效性

C)有穷性

D)确定性

(13)已知int a=6; 则执行a+=a-=a*a;语句后,a的值为

A)36

B)0

C)-24

D)-60

(14)下面各选项中,均是C语言标识符的选项组是

A)forchinato

B)long_123short56_do

C)voidunion_342

D)text.txt _023_3ew

(15)下列表达式中,结果为5的是

A)6*5%6

B)5*-2+15

C)5+75%10

D)6+-2/3

www.45sw.com

(16)下列常量中,为不合法的实型常量表示的是

A).0032

B)0.0

C)0.3242E8

D).E3

(17)关于C语言的主函数描述正确的是

A)C程序可以有多个main函数

B)C程序必有一个而且只能有一个main函数

C)C程序可以没有main函数

D)C程序的执行不一定在main函数开始执行

(18)已知int a=1,b=-1;则语句printf(“%d\n”,(a--,++b));的输出结果是

A)-1

B)0

C)1

D)语句错误

(19)已知int a,b;double c;则以下语句中错误的函数调用是

A)scanf(“%d,%x,%lf”,&a,&b,&c);

B)scanf(“%d,%d,%le”,&a,&b,&c);

C)scanf(“%o,%x,%o”,&a,&b);

D)scanf(“%d,%o,%e”,&a,&b,&c);

(20)已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为

A)1

B)2

C)3

D)4

(21)若int k=8;则执行下列程序后,变量k的正确结果是

main()

{int k=8;

switch(k)

{case 9:k+=1;

case 10:k+=1;

case 11:k+=1;break;

default:k+=1;}

printf(“%d\n”,k);}

A)12

B)11

C)10

D)9

(22)若int i,j;,则for(i=j=0;i《10&&j《8;i++,j+=3)控制的循环体执行的次数是

A)9

B)8

C)3

D)2

(23)下列程序的输出结果是

#include “stdio.h”

main()

{ int i=6;

while(i--)

printf(“%d”,--i);

printf(“\n”);}

A)531

B)420

C)654321

D)死循环

(24)阅读下列程序,则执行结果是

#include “stdio.h”

main()

{int a=0,b=0,c=0,i;

for(i=0;i《4;i++)

switch(i)

{case 0:a=i++;

case 1:b=i++;

case 2:c=i++;

case 3:i++;}

printf(“%d,%d,%d,%d\n”,a,b,c,i);}

A)0,1,3,4

B)1,2,3,4

C)0,1,2,5

D)0,2,3,4

(25)下面程序的运行结果是

#include “stdio.h”

main()

{int j,i,k=0;

for(j=50;j《=60;j++)

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

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

if(i》=j-1){printf(“%d”,j);

www.45sw.com

k++;}}}

A)5359

B)5953

C)3595

D)9535

(26)已知char ch=′C′;则以下表达式的值是

ch=(ch》=′A′ && ch《=′Z′)?(ch+32):ch;

A)A

B)a

C)Z

D)c

(27)以下描述错误的是

A)C程序中,函数可以直接或间接的调用自己

B)函数调用时,函数名必须与所调用的函数名字完全一致

C)函数说明语句中的类型必须与函数返回值的类型一致

D)实参数可以与形参个数不一致

(28)阅读下面程序,则执行后的结果为

#include “stdio.h”

main()

{fun3(fun1(),fun2());}

fun1()

{ int k=20;

return k;}

fun2()

{ int a=15;

return a;}

fun3(int a,int b)

{int k;

k=(a-b)*(a+b);

printf(“%d\n”,k);}

A)0

B)184

C)175

D)编译不通过

(29)阅读下面程序,则执行后的输出结果为

#include “stdio.h”

fun(int a,int b)

{int s;

s=a*b/2;

printf(“%d\n”,s);}

main()

{int a=10,b=16;

fun(a,b);}

A)10

B)16

C)160

D)80

(30)阅读下面程序,则程序执行后的结果为

#include “stdio.h”

main()

{int a=4,b=6,c=7;

double d,fun(int,int,int);

d=fun(a,b,c);

printf(“%lf\n”,d);}

double fun(int a,int b,int c)

{double s;

s=a%b*c;

return s;}

A)27

B)27.000000

C)28

D)28.000000

(31)下列不合法的指针变量的定义是

A)int *_k;

B)char *_245;

C)int *p;

D)double *5_is

(32)下列关于指针变量赋空值的说法错误的是

A)当赋空值的时候,变量指向地址为0的存储单元

B)赋值语句可以表达为变量名=′\0′;

C)赋值语句可以表达为变量名=0;

D)一个指针变量可以被赋空值

(33)阅读下面程序,则执行后输出的结果为

#include “stdio.h”

void fun(int *a,int *b)

{int m;

m=(*a+*b)*(*a+*b);

m+=(*a-*b)*(*a-*b);

printf(“%d\n”,m);}

main()

{ int a=5,b=6,*x=&a,*y=&b;

fun(x,y);}

A)120

B)121

C)122

D)123

(34)阅读下面程序,则输出结果是

#include “stdio.h”

void fun(int *a,int *b)

{int c=20,d=25;

*a=c/3;

*b=d/5;}

main()

{ int a=3,b=5;

fun(&a,&b);

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

A)6,5

B)5,6

C)20,25

D)3,5

(35)以下对一维数组c进行正确的定义初始化的语句是

A)int c[10]=0;

B)int c[10]={0}*10;

C)int c[1]={0,0,0,0,0,0,0};

D)int c[10]={0};

(36)以下二维数组c的定义形式是

A)int c[3][]

B)float c[3,4]

C)double c[3][4]

D)float c(3)(4)

(37)阅读下列程序,则执行后输出的结果是

#include “stdio.h”

int k=1;

main()

{fun(k);

printf(“%d\n”,k);}

fun(int k)

{ k++;

k=k*6;}

A)1

B)2

C)6

D)12

(38)已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是

A)10

B)5

C)2

D)以上答案都不对

(39)已知:int c[3][4];则对数组元素引用正确的是

A)c[1][4]

B)c[1.5][0]

C)c[1+0][0]

D)以上表达都错误

(40)现有如下程序段

#include “stdio.h”

void fun(int *a,int *b,int *c)

{*c=*a+*b;}

main()

{int a[2]={12,23},c;

fun(a,a+1,&c);

printf(“%d\n”,c);}

则程序的输出结果为

A)23

B)12

C)0

D)35

(41)若有以下语句,则正确的描述是

char a[]=“toyou”;

char b[]={′t′,′o′,′y′,′o′,′u′};

A)a数组和b数组的长度相同

B)a数组长度小于b数组长度

C)a数组长度大于b数组长度

D)a数组等价于b数组

(42)已知:char a[15],b[15]={“I love china”};则在程序中能将字符串I love china赋给数组a的正确语句是

A)a=“I love china”;

B)strcpy(b,a);

C)a=b;

D)strcpy(a,b);

(44)阅读下面程序,则执行后的结果为

#include “stdio.h”

main()

{ char *str=“abcdefghijklmnopq”;

while(*str++!=′e′);

printf(“%c\n”,*str);}

A)f

B)a

C)e

D)q

(45)现有如下程序段

#include “stdio.h”

int fun(int k,int *m)

{if(k%3)*m=k*k;

else *m=k/3;}

main()

{ int (*p)(int,int *),m;

p=fun;

(*p)(78,&m);

printf(“%d\n”,m);}

则程序段的输出结果为

A)24

B)25

C)26

D)27

(46)阅读下列程序,则执行后的输出结果为

#include “stdio.h”

www.45sw.com

fun(int x)

{if(x/2》0)fun(x/2);

printf(“%d”,x%2);}

main()

{ fun(20);

putchar(′\n′);}

A)11100

B)10100

C)10101

D)10110

(47)阅读如下程序段,则执行后程序的输出结果是

#include 《stdio.h》

main()

{structa{int x; int y;}num[2]={{20,5},{6,7}};

printf(“%d\n”,num[0].x/num[0].y*num[1].y);}

A)0

B)28

C)20

D)5

(48)阅读程序段,则执行后的输出结果为

#include “stdio.h”

typedef union{ long x[2];

int y[4];

char z[8];} atx;

typedef struct aa{ long x[2];

int y[4];

char z[8]; } stx;

main()

{printf(“union=%d,struct aa=%d\n”,sizeof(atx),sizeof(stx));}

A)union=8,struct aa=8

B)union=8,struct aa=24

C)union=24,struct aa=8

D)union=24,struct aa=24

(49)阅读下列程序段

#include “stdio.h”

typedef struct aa

{ int a;

struct aa *next; } M;

void set(M *k,int i,int *b)

{ int j,d=0;

for(j=1;j《i;j++)

{ k[j-1].next=&k[j];

k[j-1].a=b[d++]; }

k[j].a=b[d]; }

main()

{ M k[5],*p;

int d[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

printf(“%d\n”,table); }

则下面的表达式在table处,能使程序执行后,打印输出数据45的是

A)p-》next-》a

B)++p-》a

C)(*p).a++

D)p++-》a

(50)阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)

#include “stdio.h”

void main()

{FILE *fp;

int a[10],*p=a;

fp=fopen(“a123.txt”,“w”);

while( strlen(gets(p))》0 )

{ fputs(a,fp);

fputs(“\n”,fp);}

fclose(fp);}

A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中

B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中

C)从键盘输入若干行字符,第一行写入文本文件a123.txt中

D)从键盘输入若干行字符,依次写入文本文件a123.txt中


觉得2017计算机二级考试C语言考前密卷八这篇文章不错,记得收藏哦。

Tags:计算机等级考试   ,计算机等级考试试题,全国计算机等级考试试题,计算机等级考试真题