解释以下声明语句,并判断是否合法,为什么?const inti=0,*p=i。[br][/br]
解答:合法。定义了constint型对象i和指向const int型对象的指针p,i初始化为0,p初始化为0。[br][/br]
举一反三
- 如有定义const int i=5; const int j=3; const int *p=&i; 则执行语句p=&j; 是合法的。
- 下面代码段执行后,输出结果是( )。 inti = 0;[br][/br]if(i == 0){[br][/br] inti = 3;[br][/br]}[br][/br]printf("%d\n",i); A: 0 B: 2 C: 4 D: 1
- 若有以下程序[br][/br]inta[]={2,4,6,8};[br][/br]main()[br][/br]{inti;[br][/br]int*p=a;[br][/br]for(i=0;i[4;i++)a[i]=*p;<br]printf("%d\n",a[2]);[br][/br]}[br][/br]上面程序输出结果是().[/i] A: 6 B: 8 C: 4 D: 2
- 有如下定义:[br][/br]int a=5;[br][/br]const int *p=&a;[br][/br]语句:[br][/br]*p=10; (请填写正确或者错误)。
- 设有以下定义:[br][/br]struct student[br][/br]{[br][/br]int age;[br][/br]int num;[br][/br]}stu[5],*p=stu;[br][/br]int i;[br][/br]stu[0].num=10;[br][/br]则以下语句不正确的是()。 A: i=p->num B: i=stu[0].num C: i=(*p).num D: p=&student.num;
内容
- 0
执行以下语句,输出结果是() [br][/br]i = -2 [br][/br]while i[0: <br] i*=i [br][/br]print(i) A: 报错 B: 0 C: -1 D: 4
- 1
若有定义:double<br/>a=22; inti =0,<br/>k=18;,则不符合C语言规定的赋值语句是( <br/>)。 A: i=(a+k) B: i=a%11; C: a=a++,i++; D: i=!a;
- 2
若有定义语句:int<br/>a[4],*p; 且0≤i A: p=a; B: p=&a[i]; C: p=&a[0]; D: *p=a[i];
- 3
若有定义语句:[br][/br]int[2][3],*p[3];[br][/br]则以下语句中正确的是 A: p=a; B: p[0]=a; C: p[0]=&a[1][2]; D: p[1]=&a;
- 4
以下循环执行次数为______。[br][/br]for(inti=2;i!=0;)[br][/br] cout<<i--; A: 死循环 B: 0次 C: 1次 D: 2次