若有以下定义,则*(p+5)表示( )。
int a[10], *p=a;
A)元素a[5]的地址 B)元素a[5]的值
C)元素a[6]的地址 D)元素a[6]的值
若有以下定义和语句,则对a数组元素地址的正确引用为( )。
int a[2][3], (*p)[3];
p=a;
A) *(p+2) B) p[2] C) p[1]+1 D) (p+1)+2
若有定义:int a[5]; 则a数组中首元素的地址可以表示为( )。
A) &a B) a+1 C) a D) &a[1]
下面程序段的运行结果是( )。
char *s="abcde";
s+=2; printf("%d", s);
A)cde B)字符c C)字符c的地址 D)无确定的输出结果
设有以下程序段:
char str[4][10]={"first","second","third","fourth"}, *strp[4];
int n;
for (n=0; n < 4; n++) strp[n] = str[n];
若k为int型变量且0<=k<4,则对字符串的不正确引用是( )。
A)strp B)str[k] C)strp[k] D)*strp
设有下面的程序段:
char s[ ]="china"; char *p; p=s;
则下列叙述正确的是( )。
A)s和p完全相同
B)数组s中的内容和指针变量p中的内容相等
C)s数组长度和p所指向的字符串长度相等
D)*p与s[0]值相等
若有以下定义,则数值不为3的表达式是( )。
int x[10]={0,1,2,3,4,5,6,7,8,9}, *p1;
A)x[3] B)p1=x+3, *p1++ C)p1=x+2,*(p1++) D)p1=x+2,*++p1
若有以下定义和语句,则对a数组元素的正确引用为( )。
int a[2][3], (*p)[3]
A) (p+1)[0] B) *(*(p+2)+1) C) *(p[1]+1) D) p[1]+2
下面程序段中,输出的“*”个数是( )。
char *s="\ta\018bc";
for ( ; *s != '\0'; s++) printf("*");
A)9 B)5 C)6 D)7
设char *s="\ta\017bc"; 则strlen(s)表达式的值是( )。
以下正确的程序段是( )。
A)char str1[ ]="12345", str2[ ]="abcdef"; strcpy(str1, str2);
B)char str[10], *st="abcde"; strcat(str, st);
C)char str[10]=" ", *st="abcde"; strcat(str,st);
D)char *st1="12345", *st2="abcde"; strcat(st1, st2);
char a[ ]="language", *p;
while(*p!='u') { printf("%c", *p-32); p++; }
A)LANGUAGE B)language C)LANG D)langUAGE
char a[ ]="abcdefgh", *p=a;
p+=3;
printf("%d\n", strlen(strcpy(p, "ABCD")));
A)8 B)12 C)4 D)7
下面说明不正确的是( )。
A)char a[10]="china"; B)char a[10], *p=a; p="china";
C)char *a; a="china"; D)char a[10], *p; p=a="china";
若有定义char s[10]; 则下面表达s[1]地址的表达式中不正确的是( )。
A)s+1 B)s++ C)&s[0]+1 D)&s[1]
若有定义:int a[2][3]; 则对a数组的第i行第j列(假设i, j已正确说明并赋值)元素值的正确引用为( )。
A) *(*(a+i)+j) B) (a+i)[j] C) *(a+i+j) B) *(a+i)+j
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )。
A)c=*p1+*p2; B)p2=c; C)p1=p2; D)c=*p1*(*p2);
若有定义:int (*p)[4]; 则标识符p ( )。
A)是一个指向整型变量的指针
B)是一个指针数组名
C)是一个指针,它指向一个含有四个整型元素的一维数组
D)说明不合法
char str[ ]="ABC", *p=str;
printf("%d\n", *(p+3));
A)67 B)0 C)字符C的地址 D)字符C
下面判断正确的是( )。
A)char *a="china"; 等价于char *a; *a="china";
B)char str[10]={"china"}; 等价于char str[10]; str[ ]={"china"};
C)char *s="china"; 等价于char *s; s="china";
D)char c[4]="abc", d[4]="abc"; 等价于char c[4]=d[4]="abc";
若有定义:int a[2][3]; 则对a数组的第i行第j列(假设i, j已正确说明并赋值)元素地址的正确引用为( )。
A) *(a[i]+j) B) (a+i) C) *(a+j) D) a[i]+j
若有以下定义,则对a数组元素的正确引用是( )。
int a[5], *p=a;
A)*&a[5] B)a+2 C)*(p+5) D)*(a+2)
char s[6]; s="abcd"; printf("\"%s\"\n", s);
A)"abcd" B)abcd C)\"abcd\" D)编译出错
A)char str[20]; scanf("%s", &str);
B)char *p; scanf("%s", p);
C)char str[20]; scanf("%s", &str[2]);
D)char str[20], *p=str; scanf("%s", p[2]);
若有以下定义,则对a数组元素地址的正确引用是( )。
A)p+5 B)*a+1 C)&a+1 D)&a[0]
下面能正确进行字符串赋值操作的是( )。
A)char s[5]={"ABCDE"}; B)char s[5]={'A','B','C','D','E'};
C)char *s; s="ABCDE"; D)char *s; scanf("%s", s);
若有语句:char s1[ ]="string", s2[8], *s3, *s4="string"; 则正确的语句是( )。
A)strcpy(s1, "string2"); B)strcpy(s4, "string1"); C)strcpy(s3, "string1"); D)strcpy(s2, s1);
若有以下定义,则p+5表示( )。?xml:namespace>
两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。
假设有一个数组a,整型,有5个元素,通过键盘输入数组各元素,要输出数组各元素的值。
注意:只允许在/******start******/和/******end******/之间添加代码。
程序运行界面
要求:采用指针法,如*(a+i)形式输出数组各元素,其中a为数组名
程序运行结果如下:
要求:采用数组下标法,如a[i]形式输出数组各元素
程序运行界面如下: