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 页
相关内容
相关标签