当前位置:问答库>考研试题

2017年上海海洋大学上海农科院(联合培养)919计算机基础综合[专业学位]之C程序设计考研冲刺密押题

  摘要

一、选择题

1. 有以下程序:

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

【答案】D

【解析】函数f 的功能是将重新定义的结构体b 整体赋给圯], 即数组a 的第二个元素,而数组a 的第一个元素不变。因此main 函数中调用函数f 时,即数组c 的第二个元素变成结构体b , 第一个元素不变。

2. 设有定义:

若变量均已正确赋初值,则以下语句中错误的是( )。

【答案】A

【解析】A 项错误,struct 中的mark 成员是数组,数组一旦定义,不能直接赋值。B 项正确,

numl 是int 变量,可以直接赋值。C 项正确,C 语言中struct 变量可以直接赋值,实际操作是内存拷贝;D 项正确,num2是int 变量,可以直接赋值;C 语言中,数组不能直接赋值,但是把数组包装在struct 中,就可以实现直接赋值。

3. 有以下程序:

$

程序的运行结果是。 A.7,6,5 B.5,5,5 C.7,5,5 D.5,6,5 【答案】B

【解析】条件表达式的优先级高于赋值表达式,“++”和“--”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,

再进行加一或减一操作。

中先执行a==b,为否,则执行--b ,此时b 为5,赋给i ,i 为5; j=a++,将

a=5先赋给j ,再进行a++,k=b=5,故最后输出的是5,5,5。

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

A. 只要是用户定义的标识符,都有一个有效的作用域

B. 只有全局变量才有自己的作用域,函数中的局部变量没有作用域 C. 只有在函数内部定义的变量才是局部变量 D. 局部变量不能被说明为static 【答案】A

【解析】A 项正确,标识符的“作用域”是指程序中的某一部分中,标识符是有定义的,可以被C 编译和 连接程序所识别。在C 语言中,由用户命名的标识符都有一个有效的作用域。B 项;C 项错误,在函数内部或复合语句内错误,局部变量的作用域是所 在的函数体(或复合语句)

部定义的变量,称为局部变量;D 项错误,在 函数体(或复合语句)内部用static 来说明一个变量时,变量为静态局部变量。

5. 有以下程序:

程序运行后的输出结果是( )。 A.2,6 B.0,0 C.2,4 D.1,2 【答案】B

【解析】程序执行过程为:定义数组

调用函数fun ,将数组地址传人

函数,指针pi 指向a ,s 指向b ,定义指针t 并使其指向开辟的两个整型内存,为第一个内存赋值为数组a 第一个元素的2倍,即2,然后指针pi 指向a 数组第二个元素,为第二个内存赋值为数组a 第二个元素的2倍,即4,最后使指针s 指向动态开辟的两个内存的首地址。整个过程中数组b 没有发生变化,依次输出b 中元素为0,0,故B 项正确。

6. 设有以下函数:

则下面对函数指针的定义和赋值均是正确的是( )。

A. B. C. D. 【答案】D

【解析】函数指针的一般定义形式为:数据类型(*指针变量名)( )。定义函数指针时,对应的类型名以及 返回值类型都要和对应函数的参数列表以及返回值类型一致。在给函数指针赋值时,可以直接将函数名赋值给对 应的函数指针,也可以将函数名取地址后在赋值给对应的函数指针。ABC 三项中函数指针的定义均是错误的, 参数列表和fun 函数的参数列表不一致。

7. 有以下程序