一、单选题
1、以下与库函数strcpy(char *p, char *q)功能不相等的程序段是()。
A.void strcpy1(char *p, char *q)
{
while ((*p++=*q++)!='\0');
}
B.void strcpy3(char *p, char *q) 
{
while (*p++=*q++);
C.void strcpy2( char *p, char *q) 
while((*p=*q)!='\0')
{p++;      q++;}
D.void strcpy4( char *p, char *q)
while(*p)
  *p++=*q++; 
}
正确答案:D
2、以下正确的程序段是()。
A.char *s="12345", *t="54321";
  strcat (s,t);
B.char s[20], *t="12345";
    strcat(s,t);
C.char s[]="12345", t[]="6543d21";
strcpy( s,t);
D.char s[20]=" ", *t="12345";
    strcat(s, t);
正确答案:D
3、下面程序段的运行结果是()。 
#include <stdio.h>
int main()
        char s[]="example!", *t;
        t=s;
        while( *t!='p')
          {
  printf("%c", *t-32);
t++;
      }
    return 0;
  }
A.EXAM
B.EXAMPLE!
C.example!
D.example!
正确答案:A
4、若有定义: char d[15],*p=d; , 则以下正确的赋值语句是(  )。
A.p="I love China!";
B.d[0]="I love China!";
C.d="I love China!";
D.*p="I love China!";
正确答案:A
5、如定义 int  *p[10];, 则标识符p是( )。
A.含有10个整型指针元素的数组名
B.整型指针变量
C.指向10个整型元素的一维数组的指针
D.指向二维数组的指针变量
正确答案:A
二、判断题
1、指向函数的指针变量的值是一个函数的入口地址。 (  )
正确答案:√
2、作为函数形式参数时,int x[ ][5]与int (*x)[5]两种写法等价。
正确答案:√
3、 二维M*N数组的名字是一个指向N元数组的指针常量。
正确答案:√
4、如果一个变量的值是一级指针变量的地址,则称这个变量为二级指针变量。
正确答案:√
5、 可以利用指针实现函数返回多个值。
正确答案:√
三、填空题
1、如有变量的定义int j, *q=&j; 则 表达式 q==&j的值是______
正确答案:1
2、如有变量的定义double a[2], *p=a,*q=p+1; 则表达式 q-p 的值是______
正确答案:1
3、下面程序的运行结果为:________。
指针与二维数组 #include<stdio.h>
int main( )
  {
      static char a[ ]=”Program”, *ptr;
      for(ptr=a;ptr<a+7; ptr+=2)
          putchar(*ptr);
      return 0;
  }
正确答案:Porm
4、如有定义char z[2][4]={"MAT", "LAB"};,则表达式*(*z+2)的值是______
正确答案:'T'
5、如有定义char y[4]="321",*py=&y[0],则表达式*(py+2) 的值是______
正确答案:1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。