考研高级程序设计在线题库每日一练(二十八)
以下是希赛网给大家分享考研高级程序设计在线题库每日一练,希望通过刷题可以帮助大家巩固重要知识点,对知识点查漏补缺,祝愿大家能顺利通过考试!
本文提供考研高级程序设计在线题库每日一练,以下为具体内容
1、若有语句int a[4][4],*p,*q[4];,且0<=i<4,则错误的赋值是()。
A、p=a
B、q[i]=a[i]
C、p=q[i]
D、p=&a[2][1]
2、若a=1,b=2,则执行w=(a<b)?a++:b--;语句后的b的值是()。
A、0
B、1
C、2
D、3
3、设有如下定义struct sk{int a;float b;}data,*p;若要使p指向data中的a域,则正确的赋值语句是()。
A、p=(struct sk*)&data.a
B、p=(struct sk*)data.a
C、p=&data.a
D、*p=data.a
4、下面的变量声明中,正确的是()。
A、char ch="A";
B、int i=j+1;
C、int a[5]={3};
D、char *p=1024;
5、若有typedef int *POINTER[3];想定义了一个含有3个指向int型指针的一维指针数组的正确形式是()。
A、POINTER *P;
B、POINTER *P[3];
C、POINTER P[3];
D、POINTER P;
1、试题答案:A
试题解析:
【考点】本题考查指针指向二维数组。
【解析】由题中定义inta[4][4],*p,*q[4];,则a是二维数组,p是指向int型的指针,q是一个数组,且每个元素皆指向一个int型。A选项中a代表数组首地址,赋值给p,以行计算二维(错误);B选项中q[i]是一个指针变量,a[i]表示第i行首元素地址(正确);C选项中q[i]是个指向int型指针与p相同(正确);D选项中&a[2][1]是元素的地址(正确)。综上本题选A。
2、试题答案:C
试题解析:
【考点】本题考查条件表达式。
【解析】语句中a<b成立,则执行表达式a++,故a的值为2;不再执行后面的表达式。故a=2,b=2,本题选C。
条件表达式的一般形式为:表达式1?表达式2:表达式3。它的执行顺序:先求解表达式1;若为真(非0)则求解表达式2,此时表达式2的值就是整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,此时表达式3的值就是整个条件表达式的值。
3、试题答案:A
试题解析:
【考点】本题考查数据类型的强制转换。
【解析】*p是指向结构体类型的,若要让其指向int型,需将a域的地址强制转换为结构体类型的指针,即p=(struct sk*)&data.a。故本题选A。
4、试题答案:C
试题解析:
【考点】本题考查变量的初始化。
【解析】选项A,其中"A"使用双撇号表示A是一个字符串,将其赋值给字符变量ch错误,类型不匹配。选项B中,j是一个变量,未对其初始化,不能将j+1赋值给i,故错误。选项C中,只对数组a中的第一个元素赋值为3,则系统会将其他元素默认赋值为0,故正确。选项D中,p是指针变量,不能将整数1024直接赋值给指针变量,故错误。综上本题选C。
5、试题答案:D
试题解析:
【考点】本题考查关键字typedef。
【解析】关键字typedef用以给数据类型取别名。题中定义中,用别名POINTER取代int *[3],故想要达到题中要求,定义应为POINTER P;。故本题选D。
用typedef声明新类型名,例:
typedef int Integer; //指定用Integer为类型名,作用与int相同
typedef struct //声明一个新类型名Data,代表上面的一个结构体类型
{ int data;
int num;
}Data;
typedef int Num[100]; //声明Num为整数数组类型名

