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. 有以下程序
相关内容
相关标签