除答案外,希望解释一下,C语言,我都不懂
1、设int*p,I;以下正确合理的语句是()。A、*p=10;B、i=p;C、i=*p;D、i=2*p+1;2、设chars[10];intI;以下引用数组s中元素正确...
1、设 int *p , I ;以下正确合理的语句是( )。
A、*p=10;
B、i=p;
C、i=*p;
D、i=2*p+1;
2、设 char s[10] ; int I ; 以下引用数组 s 中元素正确的表达式是( )。
A、S(i+2);
B、*(s+i)
C、*(&s+i)
D、*((s++)+i)
3、若有定义和语句
int **pp, *p, a=10, b=20;
pp=&p;
p=&a;
p=&b;
printf("%d,%d\n",*p,**pp);
则输出结果是( )。
A、10,20
B、10,10
C、20,10
D、20,20
4、若定义 char s[20]="programming",*ps=s ;则不能代表字符 o 的表达式是( )。
A、ps+2
B、s[2]
C、ps[2]
D、ps+=2,*ps
5、若有定义和语句
char *s1="12345" , *s2="1234";
printf("%d\n" ,strlen(strcpy(s1,s2)));
则输出结果是( )。
A、4
B、5
C、9
D、10
6、若定义 int a[ ] ={1, 2, 3, 4, 5 , 6, 7 , 8 , 9 , 10}, *p=a ;
则值为 3 的表达式是 ( )。
A、p+=2,*(p++)
B、p+=2,*++p
C、p+=3,*p++
D、++*p
7、设有以下一段程序
char s[ ]="Hello";
char *p=s ;
执行完上面程序段后,*(p+5) 的值为 ( ) 。
A、'o'
B、'\0'
C、'o' 的地址
D、不确定的值
8、已知:int *p,a;则语句“p=&a;”中的运算符“&”的含义是。
A、位与运算
B、逻辑与运算
C、取指针内容
D、取变量地址
9、已知:int *p;使用如下语句动态申请一个int型的存储单元,应当使用。
p=________malloc(sizeof(int));
A、int
B、int *
C、(* int)
D、(int *)
10、已知:char s1[4]="12";char *ptr;则执行以下语句后的输出为。
ptr=s1;
printf("%c\n",*(ptr+1));
A、字符'2'
B、字符'1'
C、字符'2'的地址
D、不确定
11、已知:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示数组a中元素的表达式是。
A、*p
B、a[10]
C、*a
D、a[p-a] 展开
A、*p=10;
B、i=p;
C、i=*p;
D、i=2*p+1;
2、设 char s[10] ; int I ; 以下引用数组 s 中元素正确的表达式是( )。
A、S(i+2);
B、*(s+i)
C、*(&s+i)
D、*((s++)+i)
3、若有定义和语句
int **pp, *p, a=10, b=20;
pp=&p;
p=&a;
p=&b;
printf("%d,%d\n",*p,**pp);
则输出结果是( )。
A、10,20
B、10,10
C、20,10
D、20,20
4、若定义 char s[20]="programming",*ps=s ;则不能代表字符 o 的表达式是( )。
A、ps+2
B、s[2]
C、ps[2]
D、ps+=2,*ps
5、若有定义和语句
char *s1="12345" , *s2="1234";
printf("%d\n" ,strlen(strcpy(s1,s2)));
则输出结果是( )。
A、4
B、5
C、9
D、10
6、若定义 int a[ ] ={1, 2, 3, 4, 5 , 6, 7 , 8 , 9 , 10}, *p=a ;
则值为 3 的表达式是 ( )。
A、p+=2,*(p++)
B、p+=2,*++p
C、p+=3,*p++
D、++*p
7、设有以下一段程序
char s[ ]="Hello";
char *p=s ;
执行完上面程序段后,*(p+5) 的值为 ( ) 。
A、'o'
B、'\0'
C、'o' 的地址
D、不确定的值
8、已知:int *p,a;则语句“p=&a;”中的运算符“&”的含义是。
A、位与运算
B、逻辑与运算
C、取指针内容
D、取变量地址
9、已知:int *p;使用如下语句动态申请一个int型的存储单元,应当使用。
p=________malloc(sizeof(int));
A、int
B、int *
C、(* int)
D、(int *)
10、已知:char s1[4]="12";char *ptr;则执行以下语句后的输出为。
ptr=s1;
printf("%c\n",*(ptr+1));
A、字符'2'
B、字符'1'
C、字符'2'的地址
D、不确定
11、已知:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示数组a中元素的表达式是。
A、*p
B、a[10]
C、*a
D、a[p-a] 展开
展开全部
1. B.int *p p是一个野指针,没有地址,所以不能赋值
2.B *(s+i)就是指的是s[i]
3.D **p=&p;所以说**p==*p;
4.A ps指的是首地址,ps+2指的是s[2]的地址
5.A strcpy(s1,s2)是把s2赋值给s1,strlen(s2)=4;所以结果是4;
6.A p+2=a[2]; *(p++) 是指先输出*p,p再自加;
7.B *(p+5)=s[5];s[5]='\0';
8.D
9.D
10A *(ptr+1)=S1[2]='2';
11b int a[10];数组元素有a[0],a[1].....a[9],没有a[10]项
还有什么不明白的可以问
2.B *(s+i)就是指的是s[i]
3.D **p=&p;所以说**p==*p;
4.A ps指的是首地址,ps+2指的是s[2]的地址
5.A strcpy(s1,s2)是把s2赋值给s1,strlen(s2)=4;所以结果是4;
6.A p+2=a[2]; *(p++) 是指先输出*p,p再自加;
7.B *(p+5)=s[5];s[5]='\0';
8.D
9.D
10A *(ptr+1)=S1[2]='2';
11b int a[10];数组元素有a[0],a[1].....a[9],没有a[10]项
还有什么不明白的可以问
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询