1:有以下语句,则对a数组引用不正确的是(0<=i<=9) ( D )
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A) a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i))
2:有如下程序 B
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[3],b;
b=p[5];
则b的值是( )
A) 5 B) 6 C) 9 D) 8
3:执行一下程序后,a,b的值分别为( C )
main()
{
int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=&d\n",b);
}
A) -1,5 B) 1,6 C) 0,7 D) 4,10
4:程序中对fun函数有如下说明:
void *fun();
此说明的含义是( C )
A) fun函数无返回值
B) fun函数的返回值可以是任意的数据类型
C) fun函数的返回值是空类型(void)的指针
D) 指针fun指向一个函数,该函数无返回值
5:以下程序的输出结果是( B )
prt(int *m,int n) //没指定函数类型
{
int i;
for(i=0;i<n;i++) m[i]++;
}
main()
{
int a[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++) printf("%d,",a[i]);
}
A)1,2,3,4,5 B)2,3,4,5,6 C)3,4,5,6,7 D)2,3,4,5,1
6:有以下函数
fun(char *a,char *b) //没指定函数类型
{
while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{a++;b++;}
return(*a-*b);
}
该函数的功能是( 无 ) //比较两个字符串中,字符是否相等,返回一个整数(字符间的差值)
A)计算A和B所指字符串的长度之差。
B)将B所指字符串复制到A所指的字符串中。
C)将B所指字符串连接到A所指的字符串后面。
D)比较A和B所指字符串的大小。
7:以下程序输出的结果
void f(int *x,int *y)
{
int t;
t=*x;*x=*y;*y=t;
}
main()
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p<q)
{f(p,q);p++;q++;} //指针越界,答案不确定
for(i=0;i<8;i++)
printf("%d,",a[i]);
}
A)8,2,3,4,5,6,7,1 B)5,6,7,8,1,2,3,4 C)1,2,3,4,5,6,7,8 D)8,7,6,5,4,3,2,1
编程题
编制一个字符替换函数,实现已知字符串s中,所有属于s1中的字符都用s2中对应字符代替。 //没读懂题