第七章 指 针 ·5·
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( " " " \n" , s);
}
A. " abcd" B. " abcd
└┘
" C. " " 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);
}
【1】 A. -1 B. 1 C. 0 D. 4
【2】 A. 5 B. 6 C. 7 D. 10
32.下面程序的功能是将字符串 s 的所有字符传送到字符串 t 中,要求每传递三个字符后再
存放一个空格,例如字符串 s 为" abcdefg" ,则字符串 t 为" abc def g" ,请选择填空。
#include " stdio.h"