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

2017年天津大学算法基础与面向对象程序设计复试仿真模拟三套题

  摘要

一、选择题

1. 有以下程序:

若文本文件filea.txt 中原有内容为:hello ,贝U 运行以上程序后,文件( )。

A.Helloabc B.abclo C.abc

D.abchello 【答案】C

【解析】

为写而打开文本文件。这时,如果指定的文件不存在,系统将用在fopen 调用

文件以写的形式打开

再利用fprintf 函

中指定的文件名建立一个新文件; 如果指定的文件已存在,则将从文件的起始位置开始写,文件中

原有的内容将全部消失数对文件进行操作,而故

中的内容是abc 。

2. 有以下程序

程序运行后的输出结果是( )。 A.6 B.9 C.11 D.7

【答案】A

【解析】首先定义了 3个字符数组p 、q 、r ,并分别被初始化。数组p 指定的大小为20, 初始化列表为

即只指定了前4个元素的内容,根据C 语言的规定,初始化列表不足时,其余

第 2 页,共 14 页

中的内容为

是先将文件清空,再写入,所以本题是将abc 写入

元素均自动初始化为0。然后通过

中的内容

为变成

函数,将字符串r 连接到字符串p 之后,即执行后p 表示求字符串q 的长度,得到3, 所以语

的作用就是:将字符串q 复制到数组p 的第4个元素位置处,数组p

所以字符串p 的长度是6。

则z 的值为。

3. 若有定义语句intx=12,y=8,z ;,

其后执行语句

A.1.9 B.1 C.2 D.2.4

【答案】B 由于z 定义为整型,故最终结果为1。

4. 若有定义语句则表达式

A.char B.int C.double D.float 【答案】c

【解析】根据优先级先计算x/y, 即12/8,由于是整型,故x/y的值为1,接着计算0.9+1=1.9,

值的类型是( )。

【解析】在多目运算符相关联的运算数中,如果类型不一致,系统将自动进行类型转换,使两边的类型达到一直后,再进行运算,转换的规则是由“低到高”。double 型,即选择答案C 。

5. 若有以下程序

则程序的输出结果是( )。 A.0, 18, 3 B.1, 14, 3 C.0, 14, 3 D.0, 14, 6 【答案】C

【解析】题目中的for 循环可以写成:

第一次循环,a=6,进入for 循环,b=0+6=6,c=l,a=6-l=5; 第二次循环,a=5,进入for 循环,b=6+5=ll,c=2,a=5-3=3;

第 3 页,共 14 页

是字符型,a 是整型,b

是double 型。字符型数据占1个字节,整型占2个字节,double 型占8个字节,故三者相加后为

第三次循环,a=3,进入for 循环,b=ll+3=14, c=3,a=3-3=0; 第四次循环,a=0, 跳出for 循环;输出结果是0, 14, 3。

6. 若变量已正确定义并赋值,则错误的赋值语句是。

【答案】D

【解析】赋值号的左边必须是一个代表某个存储单元的变量名,赋值号的右边必须是C 语言 中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值号左边的变量。

7. 若有以下定义:

则错误的语句是( )。

【答案】A 【解析】是一个变量而不是地址,A 选项应为

8. 有以下程序:

程序的运行结果是( )。 A.aa B.ma C.am D.mm

【答案】A

【解析】malloc 函数的原型为:malloc (size );,函数的作用是在内存的动态存储区分配一个长度为size 的连续空间。程序执行过程为:定义两个字符类型指针p1和p2,动态开辟10个字符类型的内存单元,并且使指针p1与P2均指向这10个内存单元的第一个单元。调用strcpy 函数,将字符串“malloc ”赋值给这10个内存单元的前7个单元,存储情况为:malloc\0,此时p1指向

第 4 页,共 14 页