行;+(cp+3)是数组c的第三行的第0列的地址值;+(cp+1)+3是数组c的第一行第三列的地址值。 (40)下列选项中不能正确定义结构体的是_________。
a)typede fstruct b)struct color c1
{ int red; { int red;
int green; int green;
int blue; int blue;
}color; };
color cl;
c)struct color d)struct
{ int red; { int red;
int green; int green;
int blue; int blue;
}cl; }cl;
答案:b
评析:将一个变量定义为标准类型与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如,struct color),不能只指定结构体名。其中可以不出现结构体名,答案d就是缺省结构体名的情况。而变量名列表必须放在成员列表后面,所以b答案不能正确将c1定义为结构体变量。
(41)设有以下语句
char a=3,b=6,c;
c=a^b<<2:
则c的二进制值是_________。
a)00011011 b)00010100
c)00011100 d)00011000
答案:a
评析:"<<"是c语言中规定的左移运算符,n是异或运算符,所以,c的二进制值应为0001 1011。
(42)设有如下定义
struct ss
{ char name[10];
int age;
char sex;
}std[3],*p=std;
下列各输入语句中错误的是__________.
a)scanf("%d",&(*p).age);
b)scanf("%s",&std.name);
c)scanf("%c",&std[o].sex);
d)scanf("%c",&(p->sex));
答案:b
评析:在c语言中,结构体变量的引用有三种等价方式:
1、结构体变量.成员名;2、(*p).成员名;3、p->成员名。
因为std.name是字符数组名,-本身代表地址,其前面不应该使用"&"符号,所以选项b错误。
(43)设有
static char str[]="beijing";
则执行
printf(%d\n",strlen(strcpy(str,"china")));
后的输出结果为__________。
a)5 b)7
c)12 d)14
答案:a
评析:在执行printf()函数前,数组str的长度是7,但是当使用strcpy()函数将新的值赋给str后,strlenr)函数返回的应当是现在的str字符串的字符个数,即是5。
(44)下列程序段中,不是死循环的是__________。
a)int i=100; b)unsigned k=0;
while(1) do
{ {
i=i%100+l: ++k;
if(i>=100)break; }
} while(k>=0);
c)for(;;); d)int s=3379;
while(s++%2+s%2)s++;
答案:a
评析:当表达式为非0值时,执行while语句中的内嵌语句,可用break语句跳出循环,用contin
上一页 [1] [2] [3] [4] [5] [6] 下一页
责任编辑:小草