文档库 最新最全的文档下载
当前位置:文档库 › 2015计算机二级C语言考试预测题(五)

2015计算机二级C语言考试预测题(五)

2015计算机二级C语言考试预测题(五)

一、选择题

(1)下列选项中,不是算法的基本特征的是()。

A)完整性B)可行性

C)有穷性D)拥有足够的情报

(2)结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法。

A)对象B)数据结构C)数据流D)目标

(3)下列工具中为需求分析常用工具的是()。

A)PAD B)PFD C)N-S D)DFD

(4)线性表进行二分法检索,其前提条件是()。

A)线性表以顺序方式存储,并按关键码值排好序

B)线性表以顺序方式存储,并按关键码的检索频率排好序

C)线性表以链式方式存储,并按关键码值排好序

D)线性表以链式方式存储,并按关键码的检索频率排好序

(5)下列选项中不属于结构化程序设计方法的是()。

A)自顶向下B)逐步求精C)模块化D)可复用

(6)下列关于结构化程序设计原则和方法的描述中,错误的是()。

A)选用的结构只准许有一个入口和一个出口

B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C)不允许使用GOTO语句

D)语言中所没有的控制结构,应该采用前后一致的方法来模拟

(7)软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及()。

A)阶段性报告 B)需求评审C)总结D)都不正确

(8)下列关于软件测试的描述中正确的是()。

A)软件测试的目的是证明程序是否正确

B)软件测试的目的是使程序运行结果正确

C)软件测试的目的是尽可能地多发现程序中的错误

D)软件测试的目的是使程序符合结构化原则

(9)用链表表示线性表的优点是()。

A)便于随机存取

B)花费的存储空间较顺序存储少

C)便于插入和删除操作

D)数据元素的物理顺序和逻辑顺序相同

(10)在数据库设计中,将E-R图转换为关系模式的过程属于()。

A)需求分析阶段B)逻辑设计阶段

C)概念设计阶段D)物理设计阶段

(11)以下叙述错误的是()。

A)C语言区分大小写

B)C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改

C)整数和实数都能用C语言准确无误地表示出来

D)在C程序中,正整数可以用十进制、八进制和十六进制的形式来表示

(12)下列叙述中错误的是()。

A)用户所定义的标识符允许使用关键字

B)用户所定义的标识符应尽量做到“见名知意”

C)用户所定义的标识符必须以字母或下划线开头

D)用户定义的标识符中,大、小写字母代表不同标识

(13)下列选项中可作为C语言合法常量的是()。

A)-80 B)-080 C)-8e1.0 D)-80.0e

(14)下列定义变量的语句中错误的是()。

A)int _int; B)double int_;

C)char For; D)float US$;

(15)下列关于函数的叙述中正确的是()。

A)每个函数都可以被其他函数调用(包括main函数)

B)每个函数都可以被单独编译

C)每个函数都可以单独运行

D)在一个函数内部可以定义另一个函数

(16)当a=1、b=2、c=3、d=4时,执行下面程序段后,x的值是()。

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

A)1 B)6 C)3 D)2

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

#include

main()

{ int a=4,b=3,c=2,d=1;

printf("%d",a

}

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

(18)若有语句:char *line[5];下列叙述中正确的是()。

A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C)定义line是一个指针数组,语句中的*号称为间址运算符

D)定义line是一个指向字符型函数的指针

(19)以下程序:

#include

main()

{ char str[10];

scanf("%s",&str);

printf("%s\n",str);

}

运行上面的程序,输入字符串how are you,则程序的执行结果是()。

A)how B)how are you C)h D)howareyou

(20)设x和y都是int类型,且x=1,y=2,则printf("%d%d",x,y,(x,y))的输出结果是()。A)1 2 B)1 2 2 C)1,2 D)输出值不确定

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

#include

main()

{ int a=8,b=6,m=1;

switch(a%4)

{ case 0:m++; break;

case 1:m++;

switch(b%3)

{ default: m++;

case 0:m++; break;

}

}

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

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

(22)定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面的语句输出结果是()。

for(i=0;i<3;i++) printf("%d",x[i][2-i]) ;

A)159 B)147 C)357 D)369

(23)有下列程序段:

typedef struct NODE

{ int num;struct NODE *next;

} OLD;

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

A)以上的说明形式非法B)NODE是一个结构体类型

C)OLD是一个结构体类型 D)OLD是一个结构体变量

(24)下列数组定义中错误的是()。

A)int x[ ][3]={0};

B)int x[2][3]={{l,2},{3,4},{5,6}};

C)int x[ ][3]={{l,2,3},{4,5,6}};

D)int x[2][3]={l,2,3,4,5,6};

(25)以下叙述错误的是()。

A)变量的作用域取决于变量定义语句的位置

B)全局变量可以在函数以外的任何部位进行定义

C)局部变量的作用域可用于其他函数的调用

D)一个变量说明为static存储类型是为了限制其他编译单元的引用(26)若定义函数int *func(),则函数func的返回值为()。A)一个实数B)一个指向整型变量的指针

C)一个指向整型函数的指针D)一个整型函数的入口地址

(27)若有以下定义,则正确引用数组元素的是()。

int a[5],*p=a;

A)*&a[5] B)*a+2 C)*(p+5) D)*(a+2)

(28)以下对C语言中联合类型数据的正确叙述是()。

A)定义了联合变量后,即可引用该变量或该变量中的任意成员

B)一个联合变量中可以同时存放其所有成员

C)联合中的各个成员使用共同的存储区域

D)在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变(29)有以下函数定义:

int fun(double a,double b)

{return a*b;}

若以下选项中所用变量都已正确定义并赋值,错误的函数调用是()。A)if(fun (x,y)){……}B)z= fun (fun (x,y),fun (x,y));

C)z= fun (fun (x,y)x,y); D)fun (x,y);

(30)执行以下语句段后,xy的值是()。

int*pt,xy;

xy=200;

pt=&xy;

xy=*pt+30;

A)200 B)170 C)260 D)230

(31)下述程序的输出结果是()。

# include

void main()

{ int a[20],*p[4];

int i,k=0;

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

a[i]=i;

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

p[i]=&a[i*i+1];

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

k=k+*(p+i);

printf ("%d",k);

}

A)10 B)18

C)6 D)数组元素引用不合法,输出结果不定

(32)下面各语句行中,能正确进行赋值字符串操作的是()。

A)char s[5]={'a','b','c','d', 'e'}; B)char *s;gets(s);

C)char *s;s="ABCDEF"; D)char s[5];scanf("%s",&s);

(33)下面程序的输出结果是()。

#include

main()

{ char a[]={'a', 'b', 'c', 'd', 'f ', 'g'},*p;

p=a;

printf("%c\n",*p+4);

}

A)a B)b C)e D)f

(34)下面函数的功能是()。

sss(s,t)

char *s,*t;

{while(*s);

while(*t)

*(s++)=*(t++);

return s;

}

A)将字符串s复制到字符串t中B)比较两个字符串的大小

C)求字符串的长度D)将字符串t续接到字符串s中

(35)下列程序的运行结果是()。

#include

void sub(int*s,int*y)

{ static int m=4;

*y=s[m];

m--;

}

void main()

{ int a[]={1,2,3,4,5},k;

int x;

printf("\n");

for(k=0;k<=4;k++)

{ sub(a,&x);

printf("%d,",x);

}

}

A)5,4,3,2,1, B)1,2,3,4,5, C)0,0,0,0,0, D)4,4,4,4,4,

(36)设q1和q2是指向一个int型一维数组的指针变量,k为float型变量,则不能正确执行的语句是()。

A)k=*q1*( *q2); B)q1=k; C)q1=q2; D)k=*q1+*q2;

(37)下列程序的输出结果为()。

main()

{ union un

{ char *name;

int age;

int pay;

} s;

https://www.wendangku.net/doc/6418808619.html,="zhaoming";

s.age=32;

s.pay=3000;

printf("%d\n",s.age);

}

A)32 B)3000 C)0 D)不确定

(38)以下有关宏替换的叙述不正确的是()。

A)使用宏定义可以嵌套

B)宏定义语句不进行语法检查

C)双引号中出现的宏名不替换

D)宏名必须用大写字母表示

(39)下列程序执行输出的结果是()。

#include

f(int a)

{ int b=0;

static c=3;

a=c++;b++;

return(a);

}

main()

{ int a=2,i,k;

下载大学学习资料就到学姐学长网全部资料免费https://www.wendangku.net/doc/6418808619.html, for(i=0;i<2;i++)

k=f(a++);

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

}

A)3 B)4 C)5 D)6

(40)已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A)一个整型变量,代表要读入的数据项总数

B)一个文件指针,指向要读的文件

C)一个指针,是指向的输入数据放在内存中的起始位置

D)一个存储区,存放要读的数据项

二、填空题

(6)若有定义:int a=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是___________。c=(a-=(b-5));

c=(a%3)+(b=1);

(7)以下程序运行后的输出结果是___________。

main()

{ int a,b,c;

a=10; b=20; c=(a/b<1)&&(a%b<1);

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

}

(8)以下程序运行后的输出结果是___________。

#define Power2(x) x*x

main()

{ int i=6,j=8;

printf("%d\n",Power2(i+j));

(9)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。

void fun(int,int,int(*)[4],int *);

main()

{ int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i<3;i++) printf("%4d",b[i]);

printf("\n");

}

void fun(int m,int n,int ar[][4],int *br)

{ int i,j,x;

for(i=0;i

{ x=ar[i][0];

for(j=0;j

if(___________)

x=ar[i][j];

br[i]=x;

}

}

(10)下面程序的功能是:输出100以内能被4整除且个位数为8的所有整数,请填空。

main()

{ int i,j;

for(i=0; ___________;i++)

{ j=i*10+8;

if(j%4!=0) continue;

printf("%d",j); }

}

(11)以下程序的输出结果是___________。

#include

fun()

{ static int a=0;

a+=3;printf("%d ",a);

}

main()

{ int cc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

(12)下面程序的运行结果是___________。

#include

#define SIZE 12

main()

{ char s[SIZE];int i;

for(i=0;i

sub(s,5,SIZE-1);

for(i=0;i

printf("\n");

}

sub(char *a,int t1,int t2)

{ char ch;

while(t1

{ ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;

}

}

(13)下面程序的运行结果是___________。

#include

main()

{ char a[80],*p="AbabCDcd";

int i=0,j=0;

while(*p!='\0')

{ if(*p>='a' && *p<='z') {a[i]=*p;i++;}

}

a[i]='\0';

puts(a);

}

(14)“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是___________。

(15)下面程序的运行结果是___________。

#define P(a) printf("%d ",a)

main()

{ int j,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>1;j--)

{ switch(j)

{ case 1:

case 2: P(a[i++]); break;

case 3: P(a[--i]);

}

}

}

参考答案

一、选择题

(1)A)(2)C)(3)D)(4)A)(5)D)(6)C)(7)B)(8)C)(9)C)(10)B)(11)C)(12)A)(13)A)(14)D)(15)B)(16)A)(17)A)(18)A)(19)A)(20)A)(21)B)(22)C)(23)C)(24)B)(25)D)(26)B)(27)D)(28)C)(29)C)(30)D)(31)B)(32)B)(33)C)(34)D)(35)A)(36)B)(37)B)(38)D)(39)B)(40)C)

二、填空题

(1)共享性

(2)E-R图

(3)类

(4)冒泡排序

(5)循环链表

(6)1

(7)10 20 0

(8)62

(9)x

(10)i<10

(11)3 6 9 12

(12)abcdelkjihgf

(13)babcd

(14)6

(15)5 5

相关文档