当前位置:首页 > C语言指针练习+答案+讲解
{ 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数组元素的正确引用形式是(C)。
A. ps+1 B. *(ps+3) C. ps[0][2] D. *(ps+1)+3 27.不合法的main函数命令行参数表示形式是:(B)。
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[]=\is a example.\*t=\is a example.\
则以下不正确的叙述(B)。
A. s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址 B. t指向另外的字符串时,字符串的长度不受限制 C. t变量中存放的地址值可以改变 D. s中只能存放16个字符
29.若已定义char s[10];则在下面表达式中不表示s[1]地址的是(B)。
A. s+1 B. s++ C. &s[0]+1 D. &s[1] 30.下面程序段的运行结果是(A)。(注:└┘代表空格)
#include \ main()
{ char s[6];
s=\
printf(\}
A. \. \└┘\. \\\. 编译出错 31.执行以下程序后,a的值为【1】, b的值为【2】。
#include
int a, b, k=4, m=6, *p=&k, *q=&m; a=p==&m;
b=(-*p)/(*q)+7; printf(\printf(\}
【1】 A. -1 B. 1 C. 0 D. 4 【2】 A. 5 B. 6 C. 7 D. 10 32.下面程序的功能是将字符串s的所有字符传送到字符串t中,要求每传递三
个字符后再存放一个空格,例如字符串s为\,则字符串t为\def g\请选择填空。C A #include \ #include \ main()
{
int j, k=0;
char s[60], t[100], *p; p=s;
gets(p); while(*p)
{ for (j=1; j<=3 && *p; 【1】) t[k]=*p;
if (【2】) { t[k]=' '; k++;} } t[k]='\\0'; puts(t); }
【1】 A. p++ B. p++,k++ C. p++, k++, j++ D. k++, j++
【2】 A. j==4 B. *p=='\\0' C. !*p D. j!=4
33.下面程序的功能是将八进制正整数字符串转换为十进制整数。请选择填空。错题 AB
#include \#include \main() {
char *t, s[8]; int n; t=s; gets(t); n=【1】;
while (【2】!= '\\0') n=n*8+*t-'0'; printf(\}
【1】A. 0 B. *t C. *t-'0' D. *t+'0'
【2】A. *t B. *t++ C. *(++t) D. t
34.下面程序的功能是在字符串s中找出最大的字符并放在第一个位置上,并将
该字符前的原字符往后顺序移动,如:boy&girl变成ybo&girl。请选择填空。BC
#include \#include \main() {
char s[80], *t, max, *w; t=s; gets(t); max=*(t++); while (*t!='\\0') {
if (max<*t)
{ max=*t; w=t; }
t++; } t=w;
while (【1】) {
*t=*(t-1);
【2】;} *t=max; puts(t); }
【1】A. t>s B. t>=s D. *t>=s[0]
【2】A. t++ B. s-- D. w--
C. *t>s[0] C. t--
共分享92篇相关文档