admin 管理员组

文章数量: 1184232


2024年3月21日发(作者:formation volume factors翻译)

计算机二级

c

语言题库百度云

一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,

按照题目上的内容进行答题。作答选择题时键盘被封锁,使用键盘无效,考生须

使用鼠标答题。选择题部分只能进入一次,退出后不能再次进入。选择题部分不

单独计时。)

1

、有以下程序

#include

int k=5;

void f(int *s)

{

 

s=&k;

 

*s=7;

}

main()

{

 

int m=3;

 

f(&m);

 

printf("%d,%dn", m,k);

}

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

A

3,7

B

7,7

C

5,7

D

3,5

【答案】

A

【解析】

函数

f

的功能是定义一个整型的指针变量

s

,指向全局变量

k

,然后修改

s

指向地址中的值为

7

,因此

f

函数只是修改全局变量

k

值为

7

,与

main

函数中临时变量

m

无关,因此最后输出为

3,7

。答案选择

A

选项。

2

、有以下程序

#include

int m1(int x,int y)

{

 

return x<=y ? x :y;

}

int m2(int x,int y)

{

 

return x<=y ? y :x;

}

int fun(int a,int b)

{

 

return a+b;

}

main()

{

 

int x=2,y=3,z=1;

 

printf("%dn", fun(m1(x,y),m2(y,z)));

}

程序的运行结果是(  )。

A

5

B

6

C

4

D

3

【答案】

A

【解析】

函数

m1()

返回两个参数中较小的数值,函数

m2()

返回两个参数中较大的数值,函数

fun()

返回两个参数之和,所以

fun(m1(x,y), m2(y,z)) = fun(m1(2,3), m2(3,1)) = fun(2,3) = 5

,答案选择

A

选项。

3

、在以下给出的表达式中,与

while(E)

中的

(E)

不等价的表达式是(  )。

A

(E==0)

B

(E>0ǁE<0)

C

(!E==0)

D

(E!=0)

【答案】

A

【解析】

BCD

三项都是

E

不等于零时执行

while

循环,

A

项是

E

等于零时执行

while

循环。答案选择

A

选项。

4

、有以下程序

#include

main()

{

 

int a=-1, b=-1;

 

for(; ++a;)++b;

 

printf("%d,%dn", a, b);

}

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

A

0,-1

B

0,0

C

-1,-1

D

结果不确定

【答案】

A

【解析】

这是对

for

循环的基本考查,

C

语言中

for

循环的形式:

for(

表达式

1;

表达式

2;

表达式

3)

,本题中表达式

1

和表达式

3

为空语句。

程序执行过程为:定义整型变量

a

b

并赋初值,执行

for

循环,执行控制语句

++a

a

先自增变为

0

再使用,不满足控制条件,

跳出循环。因此

b

并未改变,最后输出

0,-1

。答案选择

A

选项。

5

、以下数组定义中错误的是(  )。

A

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

B

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

C

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

D

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

【答案】

D

【解析】

A

项正确,在给二维数组赋初值时可以不用行花括号对;

B

项正确,对于二维数组,第一维的大小可以省略,计算规则是元素

的个数除以第二维的大小向上取整,定义

1

3

列的数组,里面的元素全部是零;

C

项正确,第一维的大小由所赋初值的行数

来决定,定义

2

3

列的数组;

D

项错误,应该是

x[3][2]

。答案选择

D

选项。

6

、有以下程序

#include

main()


本文标签: 选择题 定义 结果 循环 表达式