2017年江西师范大学软件学院869C语言程序设计与数据结构考研强化模拟题
● 摘要
一、选择题
1. 若有说明和语句:
A. B. C. 的地址
D. 不确定的值 【答案】A
【解析】定义字符数组并为其初始化,str 数组前5个元素为Hello ,
第六个元素自动赋值为
定义指针使等于字符串首地址,
2. 有以下程序
程序的运行结果是( ) A.CDEF B.ABEF C.ABCD D.CDAB 【答案】A
【解析】调用funl 函数将全局变量a 和b 赋值为‘C’和‘D’,然后输出全局变量a 和b ,最后调用fun2 输出局部变量a 和b 的值‘E’和‘F’。
3. 以下选项中的编译预处理命令行,正确的是( )。
A.#definePI3.14 B.##defineeps0.001
则此时中的值为( )。
指向字符串第六个元素。
C.#DEFINETRUE D.#defineintINT 【答案】A
【解析】A 项正确。不带参数的宏定义是用一个指定的标识符来代表一个字符串,其一般形式如下:#define宏名替换文本。需要注意:①在#define、宏名和替换文本之间用空格隔开;②在C 程序中,宏定义的定义位置一般写在程序的开头;③宏名一般用大写字母表示,便于与变量名区别;④宏定义是用宏名来表示一个字符串,在宏展开时以该字符串取代宏名,这只是一种简单的代换,预处理程序对它不做任何检查;⑤宏定义不是语句,在行末不加分号,如加上分号则连分号也一起替换。B 项define 前多了一个#。C 项缺少“替换文本”。D 项不能将一个自定义标识符宏定义为关键字。
4. 有以下程序:
程序运行后的输出结果是( )。 A.20045537 B.20044550 C.20042580 D.20041703 【答案】D
【解析】把结构体变量作为一个参数传递给函数时,传递的是实参结构体变量的值,系统给结构体类型的形参开辟相应的内存空间,并把实参中各成员的值赋给对应的形参成员。所以改变形参变量的内容对实参不会有任何影响。因此本题的函数f ( )对结构体s[0]没做改动,结果还是20041703。
5. 下列叙述中正确的是( )。
A. 每个C 程序文件中都必须要有一个main 函数 B. 在C 程序中main 函数的位置是固定的 C.C 程序中所有函数之间都可以相互调用 D. 在C 程序的函数中不能定义另一个函数 【答案】D
【解析】D 项正确,C 语言语法规定,在函数中不能定义其他函数。A 项错误,C 程序必须要有一个main 函数,但并不是每个文件中都要有;B 项错误,main 函数的位置没有特殊要求;C 项错误,从其他函数中不能调用main 函数。
6. 有以下程序
执行程序时,给变量x 输入10, 程序的输出结果是( )。 A.55 B.54 C.65 D.45
【答案】A
【解析】一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的fun ( )函数在n 等于1时返回1,而在其余情况下返回
所以本题的递归算法可以这样来表示:
此时不难看出,该递归算法实现的是计算
而且n 必须大于0, 否则会陷入死循环。
故题目输出的结果是
7. 下列语句中,正确的是( )。
【答案】A
【解析】A 项,将存放字符串常量的无名存储区的首地址赋给指针变量;BD 两项错误,C 语言中不可以用赋值语句给字符数组整体赋一字符串,可以逐个给数组元素赋字符值,并在最后加入字符串结束标志;C 项,赋 值格式错误。
相关内容
相关标签