2017年上海市培养单位上海生命科学研究院864程序设计之C程序设计考研导师圈点必考题汇编
● 摘要
一、选择题
1. 有以下程序:
程序运行后输出的结果是( )。
【答案】A
【解析】C 语言中可以将多条语句放在同一行,用
右结合。首 先执行C ,使得C
的值也为5。然后执行下句逗号表达式中的把B 的值0赋给A ,此时A 的值为0, 然后执行使得B 的值为4, 最后打印输出。
2. 关于C 语言标识符,以下叙述错误的是( )。
A. 标识符可全部由数字组成
B. 标识符可全部由下划线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
【答案】A
【解析】标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。所以,B 、 C 、D 选项正确,答案为A 选项。
3. 以下叙述中正确的是( )。
A. 结构体数组名不能作为实参传给函数
B. 结构体变量的地址不能作为实参传给函数
C. 结构体中可以含有指向本结构体的指针成员
第 2 页,共 37 页 隔开。赋值运算和逗号运算都是从左到即将A 的值5赋给变量即得A 的值为5, 然后执行
D. 即使是同类型的结构体变量,也不能进行整体赋值
【答案】C
【解析】C 项正确,结构体中的成员可以是各种类型的指针变量。当一个结构体中有一个或多个成员的基类型就是本结构体类型时,通常把这种结构体称为可以“引用自身的结构体”。AB 两项错误,结构体的数组名和结构体变量的地址作为实参时,都是传引用形式调用函数;D 项错误,同类型的结构体变量之间可以直接赋值,
实际操作是内存空间拷贝。
4. 有以下程序
程序运行后的输出结果是( )。
A.a+b=0
B.a+b=30
C.a+b=10
D. 出错
【答案】A
【解析】注释/*和*/之间计算机不参与编译,所以a 、b 值仍为0。
5. 关于地址和指针,以下说法正确的是( )。
A. 通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量
B. 可以取一个常数的地址赋值给同类型的指针变量
C. 可以取一个表达式的地址赋值给同类型的指针变量
D. 可以取一个指针变量的地址赋值给基类型相同的指针变量
【答案】A
【解析】常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的 地址赋给指针变量没有任何意义,C 语言也不允许这样做,编译会出错,B 选项错误;表达式的值存储在临时变 量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C 语言不允许这样做,编译会出错,C 选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D 选项错误。故答案为A 选项。
6. 程序段:
A.123.141593
B.123.141493
第 3 页,共 37 页 的输出结果是( )。
C.12, 3.141593
D.123.1415930
【答案】A
【解析】输出的x 与y 之间没有空格,代表输出字符型数据,y 的格式应为小数点后保留6位。
7. 以下程序中函数f 的功能是:当flag 为1时,进行由小到大排序;当flag 为0时,进行由大到小排序。
程序运行后的输出结果是( )。
A.1,2,3,4,5,6,7, 8, 9,10,
B.3, 4, 5, 6, 7, 2, 1, 8, 9, 10,
C.5, 4, 3, 2, 1, 6, 7, 8, 9, 10,
D.10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
【答案】B
flag 为1时从小到大排序,flag 为0时从大到小排序,【解析】第一次排序结果为5, 4, 7, 6, 3, 2,
1,8, 9,10; 第二次排序结果为3, 4, 5, 6, 7, 2,1,8, 9,10。
8. 以下叙述中正确的是( )
A. 程序设计的任务就是编写程序代码并上机调试
B. 程序设计的任务就是确定所用数据结构
C. 程序设计的任务就是确定所用算法
D. 以上三种说法都不完整
【答案】D
【解析】程序设计是指设计、编程、调试程序的方法和过程。因为程序是软件的主体,软件的质量主要通过 程序的质量来体现,在软件研宄中,程序设计的工作非常重要,内容涉及相关的基本概念、工具、方法及方法学。
第 4 页,共 37 页