计算机二级C语言模拟题及答案

Python011

计算机二级C语言模拟题及答案,第1张

2017年计算机二级C语言模拟题及答案

1.1 单选题

1.下列变量名中,非法的是( C )。

A.A25 B.My_car

C.My-str D.abc

2.下列常量中,十六进制int型常量是( A )。

A.0x5f B.x2a

C.046 D.7a

3.下列常量中,不是字符常量的是( B )。

A.'\n' B."y"

C.'x' D.'\7'

4.在函数体内定义了下述变量a,a的存储类为( D )。

int a

A.寄存器类 B.外部类

C.静态类 D.自动类

5.下列关于变量存储类的描述中,错误的是( C )。

A.任何变量定义后都具有一个确定的存储类

B.变量的存储类确定了变量的作用域和寿命

C.定义变量时没有存储类说明符者一律为自动类

D.内部静态类变量和外部静态类变量的存储类说明符都是static

6.下列关于变量数据类型的描述中,错误的是( A )。

A.定义变量时int型数据类型可以省略

B.变量的数据类型可以决定该变量占内存的字节数

C.变量的数据类型是可以被强制的

D.变量的数据类型是有高低之分的

7.长双精度浮点型常量的后缀是( C )。

A.U B.F

C.L D.无

8.下列运算符中,不能用于浮点数操作的是( D )。

A.++ B.+

C.*= D.&(双目)

9.下列运算符中,优先级最高的是( A )。

A.*(双目) B.||

C.>>D.%=

10.下列运算符中,优先级最低的是( B )。

A.== B.?:

C.| D.&&

11.已知:int a(3)下列表达式中,错误的是( C )。

A.a%2==0 B.a--+2

C.(a2)++ D.a>>=2

12.已知:int b(5),下列表达式中,正确的是( D )。

A.b="a" B.++(b1)

C.b%2.5 D.b=3,b+1,b+2

6

13.下列关于类型转换的'描述中,错误的是( C )。

A.类型转换运算符是(<类型>)

B.类型转换运算符是单目运算符

C.类型转换运算符通常用于保值转换中

D.类型转换运算符作用于表达式左边

1.1 判断题

×1.C++语言和C语言都是面向对象的程序设计语言。

√2.面向对象方法具有封装性、继承性和多态性。

√3.C语言是C++语言的一个子集。C++语言继承了C语言。

×4.C++语言程序与C语言程序一样都是函数串。

×5.C++语言支持封装性和继承性,不支持多态性。

√6.C++语言比C语言对数据类型要求更加严格了。

√7.C++语言对C语言进行了一次改进,使得编程更加方便了。

×8.C++源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。

√9.编译C++源程序时,出现了警告错(Warning)也可以生成可执行文件。

√10.C++语言程序的实现也要经过编辑、编译连接和运行3个步骤。

通过对1.5题中3个程序的修改,回答下列问题

从1.5题中第1题程序的修改中,总结出编程应该注意哪些问题。

答:C++程序要包含iostraem.h,main()函数前应加类型说明符void。

C++程序中所出现的变量是否必须先说明后使用?在函数体内说明变量时是否都要放在函数体的开头?

答:C++程序中所出现的变量必须先说明后使用。在函数体内说明变量时不一定要放在函数体的开头。

使用cout和插入符(<<)输出字符串常量时应注意什么?

答:可输出一个字符串常量,也可输出多个字符串常量。每输出一个字符串常量要使用一次插入符(<<)。

程序中定义过的变量,但没有赋值,也没有默认值,这时能否使用?

答:不能使用。因为它的值不确定。

5.一个程序编译通过并已生成执行文件,运行后并获得输出结果,这一结果是否一定正确?

答:不一定正确。可能还有算法错。

{ char x=0xFFFFprintf("%d\n",x--)}

A.-32767

B.FFFE

C.1

D.32768

22.下面的函数调用语句中func函数的实参个数是( )。

func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

A.3

B.4

C.5

D.8

23.语句“printf("akbre"\’hi\’y\\\bou\n")”的输出结果是( )。

A.akbre\’hi\’y ’\\\bou

B.a\bre\’hi\\y\bou

C.re ’hi’you

D.abre’hi’y\bou

24.下面程序输出的是( )。

main()

{ int t=lfun(fun(t))}

fun(int h)

{ static int a[3]={1.2.3}

int k

for(k=0k<3k++)a[k]+=a[k]-h

for(k=0k<3k++)printf("%d",a[k])

printf("\n")

return(a[h])}

A.1,2,3,

1,5,9,

B.1,3,5,

1,3,j,

C.1,3,5,

0,4,8,

D.1,3。5,

-1,3,7,

25.以下叙述中正确的是( )。

A.预处理命令行必须位于C源程序的起始位置

B.在C语言中,预处理命令行都以“#”开头

c.每个C程序必须在开头包含预处理命令行:#include

D.C语言的预处理不能实现宏定义和条件编译的功能

26.为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。

A.缩排位置相同if

B.其前面最近的if

C.其后面最近的if

D.同一行上的if

27.设有下列程序段:

char str[]="HelloWorld":

char* plr

ptr=str:

执行上面的程序段后,*(ptr+10)的'值为( )。

A.’\0 ’

B.’0’

C.不确定的值

D.’0’的地址

28.有以下程序:

void swap(char*x,char*y)

{ char t

t=*x*x=*y*y=t

}

main()

{ char*s1="abe",*s2="123":

swap(s1,s2)

printf("%s,%s\n",s1,s2)

}

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

A.123,abe

B.abc.123

C.1bc,a23

D.321,cba

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

#include

main()

{ static char a[]="Languagef",b[]="programe":

char*p1,*p2int k

p1=ap2=b

for(k=0k<=8k++)

if(*(p1+k)==*(p2+k))

printf("%c",*(p1+k)):

}

A.gae

B.ang

C.program

D.有语法错

30.下列程序的运行结果为( )。

#define MAX(x,y)(x)>(y)?(x):(y)

main()

{ int a=2,b=3,C=1,d=3,t:

printf("%d\n",(MAX(a+h,c+d))*100):

}

A.500

B.5

C.4

D.400

31.设int x=7,则~x的值是()。

A.-8

B.7

C.-1

D.1

32.有以下程序:

void fun(char*a,char*b)

{a=b(*a)++}

main()

{char c1=’A ’,c2=’a’,*p1,*p2

p1=&c1p2=*c2fun(p1,p2)

printf("%C%c\n",c1,c2)

}

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

A.Ab

B.aa

C.Aa

D.Bb

33.有以下程序:

int fun(int n)

{if(n==l)return l

else return(n+fun(n一1)):

}

main()

{int x

scanf("%d",&x)x=fun(x)printf("%d\n",

x):

}

执行程序时,给变量X输入10,程序的输出结果是()。

A.55

B.54

C.65

D.45

34.有以下程序:

void f(int x,int y)

{int t

if(x}

main()

{int a=4,b=3,c=5

f(a,b)f(a,c)f(b,c)

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

}

执行后输出结果是()。

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5

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

main()

{char*s="12134211"

int v[4]=(0,0,0,0),k,i

for(k=0s[k]k++)

{switch(s[k])

{case’1’:i=0

case’2’:i=1

case’3’:i=2

计算机二级C语言题型和评分标准:1、选择题:40题,每题1分。按标答给分

2、程序填空:3处空,每空6分。共18分,按标答给分,如果和标答的写法不一样,就算对的也没有分。每一空有每一空的分数。做对一空就给6分

3、程序改错:2处错误,每处9分,共18分。都是/*found*/下面的一行有错误,按标答给分,如果和标答的写法不一样,就算对的也没有分。

4、程序编制题:共24分。按程序结果给分。编程完成后,存盘,编译,连接,执行,按题目要求输入,得到要求的结果就有24分,否则就是0分。

上机考试填空和改错题是按空给分的,它是按行找到那个空,然后对比打分,这也就是为什么不让你增加或减少行数的原因了.对于最后一个编程题,也是差不多按这个方法来的,它把你把你编好的程序的运行结果保存在.dat文件内,然后对比,再给出你的分数.这个文件你可以在考生文件夹内看到,所以考完一定要检查一下这个文件,以免出现什么问题影响考试成绩.

对于编程题,评分程序先是读取考生文件夹下的扩展名为.DAT的文件,再其中的数据与评分程序中的提供的数据进行对比,因此,考生在编程后,一定要运行程序,以生成扩展名为.DAT的输出文件!!