2018年上海海洋大学上海农科院(联合培养)919计算机基础综合[专业学位]之C程序设计考研核心题库
● 摘要
一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。
A.1, 2
B.4, 1
C.3, 4
D.2, 3
【答案】D
【解析】题目中定义了一个包含两个整型元素的结构体数组,其
中
指针p 指向结构体数组的第1个元素,
那么
的值为2, 所以输出的结果为2, 3。
2. 以下使指针指向一个字符串的选项错误的是( )。
A.
B.
C. D.
【答案】A
【解析】A 项中定义了指针ps 后,
法将str 的首地
址赋给一个常量,语法错误。
3. 以下选项中正确的定义语句是( )。
第 2 页,共 58 页 的值为表示指针ps 指向地址的内容,而不是地址,无
【答案】C
【解析】定义同一类型的变量时,
不同变量之间需要用分隔。A 项错误,a 和b 之间缺少逗号而用分号,是不正确的,分号是语句结束标志;B 项错误,定义变量的同时为变量初始化赋值不能用连等;D 项错误,在double 和a 之间多了一个逗号,变量类型说明后面不应用逗号,应用空格分离。
4. 设有以下程序段:inty :
y=rand( )%30+1;
则变量y 的取值范围是( )。
A.0≤y ≤30
B.0 C.l D.l 【答案】B 【解析】本题考点为“%”求余符号。rand ( )产生随机整数,任何整数对30求余得到的整数范围为0〜29,则y 的取值范围为或者说故B 选项正确。 5. 表达式:(int )((double )9/2-(9)%2)的值是( )。 A.0 B.3 C.4 D.5 【答案】B 【解析】运算符“/”,“%”的优先级高于“-”故先进行除法和求余运算,再进行减法运算。强制类型转换表达式的形式为:(类型名)(表达式)。“9/2”转换成double 类型,再转换成int 类型,结果为4, 减号后面的结果为1,故结果为3。 6. 以下可以将任意一个两位整数n 的个位数与十位数对换的表达式为( )。 A. (n-n/10×10)×10+n/10 B.n-n/l0×l0+n/10 C.n/10+(n-n/10) D. (n-n/10)×10+(n/10) 【答案】A A 项n/10得到十位数字,n-n/10得到个位数字,【解析】将个位数乘以10加上十位数字,(n-n/10 ×10)×l0+n/10实现将任意一个两位整数个位数与十位数对换,A 项正确。B 项n-n/10×10得到个位数字,n/10为十位数字,n-n/10×l0+n/10实现两位整数个位数与十位数之和,B 项错误。C 项n/10+(n-n/10)=n, 不能实现题目中要求,C 项错误。D 项n/10是十位数字,n-n/10为原两位整数减去十位数字,不是个位数字,D 项错误。 第 3 页,共 58 页 7. 若有定义语句 A.2个字节 B.1个字节 C.3个字节 D.4个字节 【答案】B 【解析】char 类型变量,占用一个字节 , ‘65’=A,所以,c 表示的字符是A 。 8. 有以下函数: 该函数的功能是( )。 A. 计算字符串的长度 B. 实现字符串的赋值 C. 将字符串逆序存放 D. 计算字符串所占字节数 【答案】A 【解析】在fim ( )函数中定义了字符指针P , 首先把形参字符ps (相当于字符串的首地址)赋值给指针P , 再通过while 循环移动p 指针,当p 指针指向单元为0时,退出while 循环,返回此时p 地址和ps 地址差值,即 字符串的长度。 9. 有以下程序: 程序运行以后的输出结果是( )。 第 4 页,共 58 页 则变量C 在内存中占( )。 表示8进制数101,即10进制中的65, 而