第七章 指 针 ·5·
{ if (!*t) return 0;
t++;
s++;}
return (*s-*t);
}
D. strcmp4( char *s, char *t)
{ for( ;*s==*t;s++,t++)
if (!*s) return 0;
return (*t-*s);
}
26.若有以下定义和语句:
int s[4][5], (*ps)[5];
ps=s;
则对 s 数组元素的正确引用形式是()。
A. ps+1 B. *(ps+3) C. ps[0][2] D. *(ps+1)+3
27.不合法的 main 函数命令行参数表示形式是:()。
A. main( int a, char *c[]) B. main(int argc, char *argv)
C. main( int arc, char **arv) D. main( int argv, char*argc[])
28.若有说明语句:char s[]="it is a example.", *t="it is a example.";则以下不正确的叙述
()。
A. s 表示的是第一个字符 i 的地址,s+1 表示的是第二个字符 t 的地址
B. t 指向另外的字符串时,字符串的长度不受限制
C. t 变量中存放的地址值可以改变
D. s 中只能存放 16 个字符
29.若已定义 char s[10];则在下面表达式中不表示 s[1]地址的是()。
A. s+1 B. s++ C. &s[0]+1 D. &s[1]
30.下面程序段的运行结果是()。(注:
└┘
代表空格)
#include "stdio.h"
main()
{ char s[6];
s="abcd";
printf("\"%s\"\n", s);
}
A. "abcd" B. "abcd
└┘
" C. \"abcd\" D. 编译出错
31.执行以下程序后,a 的值为【1】, b 的值为【2】。
#include <stdio.h>
main()
{
int a, b, k=4, m=6, *p=&k, *q=&m;
a=p==&m;
b=(-*p)/(*q)+7;
printf("a=%d\n", a);
printf("b=%d\n", b);
}