一、选择题
1. 有定义语句
A. B. C. D.
答:C 以下选项中与此语句等价的是( )。
【解析】定义指针数组的格式为
2. 有如下定义:
因为[]的优先级高于因此等价于而D
中定义的是数组指针变量,指针p 指向含有四个整型元素的数组。
以下对内嵌结构体成员的引用形式错误的是( )。
答:A
【解析】使用结构体指针对结构体成员进行访问时,形式为结构指针名->结构成员名,或者(*结构指针名). 结构成员名,题目中ps 为结构体指针,A 项错误。
3. 阅读以下程序:
该程序在编译时产生错误,其出错原因是( )。
A. 定义语句出错,case 是关键字,不能用作用户自定义标识符
B. 定义语句出错,printF 不能用作用户自定义标识符
C. 定义语句无错,scanf 不能作为输入函数使用
D. 定义语句无错,printf 不能输出case 的值
答:A
【解析】在C 语言中,关键字又称保留字,它是系统预先定义的,具有特定含义的标识符,
故不允许用户重新定义。case 为C 语言中的关键字,因此用户不能再定义标识符为case 的变量。
4. 设a , b ,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。
A.a=(b=3)=1;
B.a=(b=2)+c;
C.a=b=c+10;
D.a=l+(b=c=2):
答:A
【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。A 项中,赋值运算(b=3)=1, 左值为表达式,不是变量不能被赋值,A 项错误。B 项运算过程为,先赋值b=2, 再计算b+c,将结果赋给a ,是正确的赋值语句。C 项运算过程为,先计算c+10将结果赋给b , 再将b 赋给a ,是正确的赋值语句。D 项运算过程为,先将2赋给c , 再将c 赋给b , 然后计算1+b, 将结果赋给a , 是正确的赋值语句。
5. 有以下程序:
若运行时输入:35〈回车>,则输出结果是( )。
A.123
B.2
C.3
D.1
答:D
【解析】程序执行过程为:输入35, scanf 函数从键盘读人35赋值给x=35, 对if 条件进行判断,35>10, 条件成立,输出1,不再执行下面的elseif 语句,程序结束,输出结果为1, 故D 选项正确。
6. 有以下程序段,若变量已正确定义并赋值( )。
则与此程序段功能相同的选项是( )。
答:A
【解析】程序段执行过程为&#xff1a;如果a>b&#xff0c;输出x &#xff0c;否则输出y ; 如果a<&#61;b&#xff0c;i 加1&#xff0c;否则j 加1。A 项如果a>b&#xff0c;A 项正确。B 项如果a>b&#xff0c;输出x 且j 加1, 否则输出y 且i 加1, 与题目中功能相同&#xff0c;
输出x 且i 加1&#xff0c;否则输出y 且j 加1&#xff0c;与题目中功能不相同&#xff0c;B 项错误。C 项如果a<&#61;b&#xff0c;输出x
C 项错误。D 项判断条件为a>&#61;b&#xff0c;且i 加1&#xff0c;否则输出y 且j 加1&#xff0c;与题目中功能不相同&#xff0c;多了a&#61;b&#xff0c;
D 项错误。
7&#xff0e; 有以下程序&#xff1a;
程序运行后的输出结果是( )。
A. B. C. D.
答:D
while 函数判断p 指针指向地址的内容是否和a 指针指向地址的内容相等&#xff0c;【解析】如果不是&#xff0c;
则移动指针p&#43;1, 当p 指向*b字符串中的时&#xff0c;和首地址元素相等&#xff0c;退出while 语句后&#xff0c;p 再向
输出及剩余的字符串&#xff0c;D 项正确。 右移动a 字符串长度&#43;1个单位地址&#xff0c;此时p 指向
的表达式是( )。
8&#xff0e; 若在程序中变量均已定义成int 类型&#xff0c;且已赋大于1的值&#xff0c;则下列选项中能正确表示代数式