2018年北京工业大学城市交通院894C语言与数据结构之C程序设计考研强化五套模拟题
● 摘要
一、选择题
1. 以下选项中合法的C 语言赋值语句是( )。
A.++i; B.a=b=34 C.a=3,b=9
D.k=int(a+b); 【答案】A
【解析】B 项和C 项缺少分号,不合法。D 项类型转换不合法,应为k=(int )(a+b)。
2. 有以下程序
程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车>
则输出结果是( )。 A.1245 B.1256 C.1278 D.1267 【答案】A
【解析】scanf ( )是格式化输入函数;getehar ( )函数从键盘缓冲区读入下一个字符;putehar ( )输出一个字符;printf ( )函数是格式化输出函数。在题目中,程序执行到scanf ( )函数时,会暂停等待用户输入4个字符,按题意输入123〈回车〉后,字符1〜3被分别赋值到cl 〜c3中,而c4会得到一个换行符
然后执行第1个getchar ( )函
数,由于前面的scanf ( )函数读完了缓冲区中的所有字符,所以此时程序又会暂停等待用
户输入,按题意输入45678〈回车〉后,缓冲区第一个字符4赋值c5, 第二个字符5赋值给c6。
3. 有以下程序
{
程序执行后的输出结果是( )。 A.Prohsbn B.Prphsbn C.Progsbn D.Program 【答案】B
【解析】函数funl 功能是将字符串中元素加1,main 函数将数组第4个元素的指针传进funl 函数中,结果为Prohsbn 。
4. 假定已建立以下数据链表结构,且指针p 和q 已指向如下图所示的结点:
则以下选项中可将q 所指结点从链表中删除并释放该结点的语句是( )。
【答案】D
【解析】。要删除结点q ,首先要将q 的上一个结点P 的指针域指向q 的指针域所指向的结 点,防止删除q 结点后丢失q 结点后的链表然后释放结点q ,即
5. 设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是( )。
【答案】D 【解析】
和
运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以
表示先将x 值加1后再用,的值。
表示先
后缀形式出现时,则先取值,再进行加一或减一操作。使用x 值,用后再加1,所以本题中ABC 选项都会输出
6. 有以下程序:
程序运行后的输出结果是( )。
【答案】D
【解析】程序执行过程为:定义STU 类型数组,长度为2, 并为其初始
化
调
用函数
strcpy
使次输出
7. 有以下程序
将变量值传入函数,
则
结果为:
调用函数
故D 项正确。
函数调用结束。其中结构体数组中元素并没有发生改变,依