全国计算机等级考试二级C语言笔试模拟题

全国计算机等级考试二级C语言笔试模拟题
全国计算机等级考试二级C语言笔试模拟题

全国计算机等级考试二级C语言模拟试题

笔试部分

一、填空题

(1)算法的空间复杂度是指

A )算法程序的长度

B)算法程序中的指令条数

C)算法程序所占的存储空间

D)执行过程中所需要的存储空间

【参考答案】D

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

A)便于随机存取

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

C)便于插入和删除操作

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

【参考答案】C

(3)数据结构中,与所使用的计算机无关的是数据的

A )存储结构

B )物理结构C)逻辑结构D )物理和存储结构

【参考答案】C

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

A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性

【参考答案】D

(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指A)模块间的关系B)系统结构部件转换成软件的过程描述

C)软件层次结构D)软件开发过程

【参考答案】B

(6)检查软件产品是否符合需求定义的过程称为

A )确认测试

B )集成测试C)验证测试D )验收测试

【参考答案】A

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

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

【参考答案】A

(8)应用数据库的主要目的是

A)解决数据保密问题B)解决数据完整性问题

C)解决数据共享问题D)解决数据量大的问题

【参考答案】C

(9)在数据库设计中,将E-R 图转换成关系数据模型的过程属于

A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段

【参考答案】B

(10)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是

A)数据库系统B)文件系统C)人工管理D)数据项管理

【参考答案】A

(11)以下叙述中正确的是

A)构成C程序的基本单位是函数

B)可以在一个函数中定义另一个函数

C)m ain ()函数必须放在其他函数之前

D)C函数定义的格式是K&R 格式

【参考答案】A

(12)结构化程序所规定的三种最基本控制结构是

A)输入、处理、输出B)树形、网形、环形

C)顺序、选择、循环D)主程序、子程序、函数

【参考答案】C

(13)一个 C 语言程序是由

A)一个主程序和若干子程序组成 B )函数组成

( 14 )请选出可用作 C 语言用户标识符的是

A ) void,define,WORD

B )a3_b3,_123,IF C) FOR,--abc,Case D) 2a,Do,Sizeof

【参考答案】B

(15)下列各数据类型不属于构造类型的是

A)枚举型B)共用型C)结构型D)数组型

【参考答案】A

(16)在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是

A) a=20000+20000; B) a=4000*10;

C) a=30000+10000; D) a=4000L*10L

【参考答案】D

( 17)以下不正确的叙述是

A )在C程序中,逗号运算符的优先级最低

B) 在C程序中,APH和aph是两个不同的变量

C) 若a和b类型相同,在计算了赋值表达式

a=b后b中的值将放入a中,而b中的值不变

D) 从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

【参考答案】D

( 18) sizeof( float )是

A) 一个双精度表达式 B )一个整型表达式C) 一种函数调用D) 一个不合法的表达

【参考答案】B

(19)若x,i,j 和k 都是int 型变量,则计算表达式x= (i=4,j=16,k=32 )后,x 的值为

A) 4 B) 16 C) 32 D) 52

【参考答案】C

(20)下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。

#include

main ()

{ int i=0,j,k;

do{i++;k=316-13*i;}while ( _________ );

j=k/11;

printf ( "316=13*%d+11*%d",i,j );

}

A) k/11 B) k%11 C)k/11==0 D)k%11==0

【参考答案】B

( 21 )设有定义:int n=0,*p=&n,**q=&p, 则下列选项中正确的赋值语句是

A ) p=1; B) *q=2; C)q=p; D) *p=5;

【参考答案】D

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

#include main()

{ int y=10;

do{y--;}while (--y) ;

printf ("%d、n",y--);

}

A ) -1 B) 1 C) 8 D) 0 【参考答案】D

23 )下面程序的输出结果是

main()

{ int a [10]={1,2,3,4,5,6,7,8,9,10},*p=a;

printf ("%d、n",* (p+2)) ;}

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

【参考答案】A

( 24)有如下程序

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

int *p=&a [3],b;b=p[5];

则 b 的值是

A)5 B)6 C)9 D) 8

【参考答案】C

(25)设有int x=11 ;则表达式(x++*1/3 )的值是

A) 3 B) 4 C) 11 D) 12 【参考答案】A

26)请选出以下语句的输出结果

printf ("%d、n",strlen ("、t、"、065\xff、n"));

A ) 5

B ) 14 C) 8 D )输出项不合法,无正常输出【参考答案】A

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

main()

{ double d=3.2; int x,y; x=1.2; y= ( x+3.8 ) /5.0;

printf ("%d、n", d*y );

}

A ) 3 B) 3.2 C) 0 D ) 3.07 【参考答案】C

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

int b=2;

int func(int *a )

{ b += *a; return ( b);} main()

{ int a=2, res=2;

res += func ( &a) ; printf ("%d、n”,res);

}

A)4 B)6 C)8 D)10

参考答案】B

29)下面能正确进行字符串赋值操作的是

A)char s[5]={"ABCDE"};

B) char s : 5: ={ ' A , ' B' , ' C , ' D , ' E };

C) char *s;s="ABCDE";

D) char *s;char a; scanf("%s",&s ) ;

【参考答案】C

(30)执行以下程序后,a,b 的值分别为

main()

{ int a,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(*p1) /(*p2 ) +7;

printf ("a=%d、n",a);

printf ("b=%d、n",b);

}

A) -1,5 B) 1,6 C) 0,7 D) 4,10

【参考答案】C

31)设有数组定义: char array[] ="China"; 则数组array 所占的空间为

A) 4个字节B) 5个字节C) 6个字节D) 7个字节

【参考答案】C

( 32 )若已定义:

int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;

其中O w i w 9则对a数组元素不正确的引用是

A) a[p-a] B) *(&a[i])

C) p[i] D) a[1O]

【参考答案】D

( 33)以下不正确的定义语句是

A) double x[5]={2.O,4.O,6.O,8.O,1O.O};

B) int y [5]={O,1,3,5,7,9};

C) char cl :] ={' 1',‘ 2',‘ 3',‘ 4',‘ 5' };

D) char c2 □ ={ \x10'、'xa'\'x8' };

【参考答案】B

( 34)若有以下程序

#include

int a[]={2,4,6,8};

main()

{ int i;

int *p=a;

for(i=0;i<4;i++ ) a[i]=*p;

printf ("%d、n",a : 2]);

}

上面程序输出结果是

A) 6 B)8 C)4 D)2

【参考答案】D

35 )下面程序段的运行结果是

char *format="%s,a=%d,b=%d \ n";

int a=11,b=10;

a+=b;

printf( format,"a+=b",a,b );

A) for,"a+=b",ab B)format,"a+=b"

C) a+=b,a=21,b=10 D)以上结果都不对

【参考答案】C

( 36 ) C 语言允许函数类型缺省定义,此时函数值隐含的类型是

A ) float B) int C) long D) double

【参考答案】B

( 37)以下程序有语法错误,有关错误原因的正确说法是

main()

{ int G=5,k;

void prt_char ()

k=prt_char (G )

}

A) 语句void prt_char ();有错,它是函数调用语句,不能用

void 说明

B) 变量名不能使用大写字母

C) 函数说明和函数调用语句之间有矛盾

D )函数名不能使用下划线

【参考答案】C

38 )以下叙述中不正确的是

A) 在不同的函数中可以使用相同的名字的变量

B) 函数中的形式参数是局部变量

C) 在一个函数内定义的变量只在本函数范围内有效

D) 在一个函数内的复合语句中定义的变量在本函数范围内有效【参考答案】D

( 39)有以下程序:

#include

union pw

{ int i;

char ch[2];}a;

main()

{a.ch [0] =13;a.ch [ 1] =0;printf ("%d、n",a.i) ;}

程序的输出结果是

A) 13 B) 14 C) 208 D) 209 【参考答案】A

(40)在16位IBM-PC机上使用C语言,若有如下定义

struct data

{ int i;

char ch;

double f;

} b;

则结构变量 b 占用内存的字节数是

A)1 B)2 C)7 D) 11 【参考答案】D

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

#include main()

{ int a=1,b=10;

do

{b-=a;a++;}while ( b--<0 );

printf ("a=%d,b=%d、n",a,b);

}

A) a=3,b=11 B) a=2,b=8 C) a=1,b=-1 D) a=4,b=9 【参考答案】B

42 )以下程序的输出结果是

void reverse (int a[],int n)

{ int i,t;

for(i=0;i

{ t=a [i]; a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{ int b [10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse (b,8) ;

for(i=6;i<10;i++ ) s+=b[ i];

printf (" %d、n ”,s);

}

A ) 22 B) 10 C) 34 D ) 30

参考答案】A

(43)有如下程序:

long fib (int n )

{ if (n>2)return(fib(n-1)+fib ( n-2)) ;

else return( 2) ;

}

main()

{ printf ("%d、n",fib (3)) ;}

该程序的输出结果是

A)2 B)4 C)6 D)8

【参考答案】B

( 44)假定以下程序经编译和连接后生成可执行文件PROG.EXE ,如果在此可执行文件

所在目录的DOS 提示符下键入:

PROG ABCDEFGH IJKL< 回车>,则输出结果为

main( int argc, char *argv [])

{ while ( --argc>0 )

printf( " %s" , argv [ argc]) ;

printf ("、n");

}

A ) ABCDEFG

B ) IJHL

C ) ABCDEFGHIJKL

D ) IJKLABCDEFGH

【参考答案】D

( 45 )以下程序有错,错误原因是

main()

{ int *p,i;char *q,ch;

p=&i;

q=&ch;

*p=40;

*p=*q;

A) p和q的类型不一致,不能执行*p=*q;语句

B) *p 中存放的是地址值,因此不能执行*p=40; 语句

C) q 没有指向具体的存储单元,所以*q 没有实际意义

D ) q 虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行义,可

*p=*q; 没有意能会影响后面语句的执行结果

【参考答案】D

( 46 )函数rewind 的作用是

A )使文件位置指针重新返回文件的开始位置

B) 将文件位置指针指向文件中所要求的特定位置

相关主题
相关文档
最新文档