指针测试:
(1)设有定义:inta=1,*p=&a;floatb=2.0;charc='A';,以下不合法的运算是()。
A、p++;B、a--;C、b++;D、c--;
(2)以下对指针变量的操作中,不正确的是()。
A、intp,*q;q=&p;
B、int*p,*q;q=p=NULL;
C、inta=5,*p;*p=a;
D、inta=5,*p,*q=&a;*p=*q;
(3)若有语句:inta=4,*p=&a;,下面均代表地址的一组选项是()。
A、a,p,&*aB、*&a,&a,*p
C、&a,p,&*pD、*&p,*p,&a
(4)若有说明语句:charc='9',*sp1,*sp2;,以下均正确的一组赋值语句是()。
A、sp1=&c;sp2=sp1;B、sp1=&c;sp2=&sp1;
C、sp1=&c;sp2=*sp1;D、sp1=&c;*sp2=*sp1;
(5)下面程序段的运行结果是()。
char*s="abcde";
s+=1;
printf("%d",s;)
A、bcdeB、字符'b'的地址
C、字符'c'的地址D、字符'b'的ASCII值
(6)以下运算正确的程序段是()。
A、charstr1[]="12345",str2[]="abcdef";
strcpy(str1,str2);
B、charstr[10],*st="abcde";strcat(str,st);
C、char*st1="12345",*st2="abcde";
strcat(st1,st2);
D、charstr[10]="",*st="abcde";strcat(str,st);
(7)下面程序段的运行结果是()。
charstr[]="xyz",*p=str;
printf("%dn",*(p+3));
A、字符'z'的地址B、0
C、字符'z'的ASCII码D、字符'z'
(8)以下与库函数strcpy(char*s1,char*s2)功能不相等的程序段是()。
A、strcpy1(char*s1,char*s2)
{while((*s1++=*s2++)!='0');
}
B、strcpy2(char*s1,char*s2)
{while(*s2)
*s1++=*s2++;
}
C、strcpy3(char*s1,char*s2)
{while(*s1++=*s2++);
}
D、strcpy4(char*s1,char*s2)
{while((*s1=*s2)!='0')
{s1++;s2++;
}
}
(9)以下程序段的输出结果是()。
chara[]="language",*ptr=a;
while(*ptr)
{printf("%c",*ptr-32);
ptr++;
}
A、LANGUAGEB、陷入死循环
C、有语法错D、language
(10)若有定义:inta[2][3];,则以下对a数组元素地址的正确表示为()。
A、*(a+1)B、*(a[1]+2)
C、a[1]+3D、a[0][0]
(11)设用以下程序段建立了sp与str的关系,则以下对字符串的引用不正确的是()。
charstr[4][8]={"str1","str2","str3","str4"},*sp[4];
intn;
for(n=0;n<4;n++)
sp[n]=str[n];
A、spB、*spC、sp[0]D、*(sp+1)
(12)执行以下程序段后,m的值是()。
inta[2][3]={{1,2,3},{4,5,6}};
intm,*ptr;
ptr=&a[0][0];
m=(*ptr)*(*ptr+2)*(*ptr+4);
A、15B、48C、24D、无定值
(13)若有说明:char*pc[]={"aaa","bbb","ccc","ddd"};,则以下叙述正确的是()。
A、*pc[0]代表的是字符串"aaa"
B、*pc[0]代表的是字符'a'
C、pc[0]代表的是字符串"aaa"
D、pc[0]代表的是字符'a'
(14)以下程序的运行结果是()。
voidsub(intx,inty,int*z)
{*z=y-x;
}
main()
{inta,b,c;
sub(10,15,&a);
sub(6,a,&b);
sub(a,b,&c);
printf("%d,%d,%dn",a,b,c);
}
A、5,1,6B、-5,-11,-6
C、-5,11,6D、5,-1,-6
(15*)下面程序的功能是将八进制正整数组成的字符串转换为十进制整数。请选择正确内容填空。
#include
main()
{char*p,s[6];intn;
p=s;
gets(p);
n=__①__;
while(__②__!='0')
n=n*8+*p–'0';
printf("%dn",n);
}
①A、0B、*pC、*p-‘0’D、*p+'0'
②A、*pB、*p++C、*(++p)D、p
(16*)函数DelSpace的功能是删除指针p所指向的字符串中的所有空格(包括TAB符,回车符,换行符),
请选择填空。
DelSpace(char*p)
{inti,t;charc[80];
for(i=0,t=0;__①__;i++)
if(!isspace(__②__))
c[t++]=p[i];
c[t]='0';
strcpy(p,c);
}
①A、p[i]B、!p[i]C、p[i]='0'D、p[i]=='0'
②A、p+iB、*c[i]C、*(p+i)D、*(c+i)
(17**)下面程序的功能是用递归法将一个整数转换成字符形式输出。例如输入386,应输出字符串“386”。
请选择填空。
#include
voidconvert(intn)
{inti;
if((__①__)!=0)
convert(i);
putchar(__②__+'0');
}
main()
{intnumber;
scanf("%d",&number);
if(number<0)
{putchar('-');
number=-number;
}
convert(number);
}
①A、i=n/10B、i=n%10C、i=n--D、i=--n
②A、nB、n/10C、n%10D、i%10
本文发布于:2022-11-22 17:37:07,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/564.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |