2018年北京航空航天大学交通科学与工程院991数据结构与C语言程序设计之C程序设计考研核心题库
● 摘要
一、选择题
1. 有以下程序:
程序的运行结果是( )。 A.0 B.9 C.6 D.8
【答案】C
【解析】函数f 是递归函数,递归的终止条件是X 为1或2。返回值为3,即
2. 若有以下定义和语句:
所以
当
时
则值为6的表达式是(提示:
【答案】D
的优先级高于
( )。
【解析】定义指向结构体变量的指针P ,并将结构体数组首地址赋给加一指向数组第二个元素,其成员ri=6, D 项正确员
指向结构体数组第一个元素,其成员n=5,由于
第 2 页,共 62 页
指针自
指向结构体数组第一个元素,其成
是后缀,先取值,所以表达
式为5, 之后再自加一5。
为结构体数组第一个元素,其成员n=5, 先取值,表达式为
3. 若函数中有定义语句intk ;,则( )。
A. 系统将自动给k 赋初值0 B. 这时k 中的值无定义 C. 系统将自动给k 赋初值-1 D. 这时k 中无任何值 【答案】B
【解析】intk ;这条语句是定义一个整型变量k ,这是动态定义,编译程序仅为k 开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值时无意义的。若是静态定义,则会自动初始化,其默认值为0。
4. 有以下程序:
程序的运行结果是( )。 A.5 B.2 C.6 D.3
【答案】A
【解析】malloc (size )函数的返回值是新分配的存储区的首地址,将该地址赋值给p 指针,然后取p 指针 的地址,调用fun 函数。fun 函数中对指向指针的指针s 指向的内存单元赋值,其中
表示二维数组x 的第二行的行地址,与
等价,A 项正确。
表示二维数组X 的第二行第二列的地址,所以
赋值给
为p ,所以
代表
fun 函数的功能是将二维数组X 的第二行第二列的值,即
5. 有以下程序:
第 3 页,共 62 页
程序运行后的输出结果是( )。 A.10,9 B.11,10 C.010,9 D.9,10 【答案】D
【解析】整型常量有3种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法,八进制整常量以0作为前缀。自増和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。x=010=8,y=10,++x先自加后取值,输出9,y--先取值输出10,再自减y=9,故D 选项正确。
6. 有以下程序:
程序运行的结果是( )。 A.4 B.34 C.31 D.32
【答案】C
【解析】函数fun 的形参有三个,第一个是指针,它指向长度为4的int 数组;后两项都是int 型变量;返回值为int 类型。fun 函数调用发生在a 的第i 行,
与
s 中,第k 列、第
7. 有以下程序段:
指针s 初始时指向a 的第一行,
指向
作用相同,都表示a 中第i 行第k 列元素。函数fun 的作用是找出数组疔中的最大值; 即找出二维数组a 的第0列中最大值,返回31。
若要给
分别输
入字母A 、B 、C , 则以下对输入形式的描述正确的是( )。
A. 字母A 、B 、C 之问可以用空格分隔 B. 字母A 、B 、C 之间不能有分隔符
第 4 页,共 62 页