1、指针的含义是(  )。
A.名
B.一个标志
C.地址
D.值
正确答案:C
2、若已定义a为int型变量,则下面的语句中正确的是(  )。
A.int *p=*a;
B.int *p=&a;
C.int *p=a;
D.int p=&a;
正确答案:B
3、若有定义:int x,*p; 则以下正确的赋值表达式是(  )。
A.*p=&x
B.p=&x
C.p=x
D.*p=*x
正确答案:B
4、下面的语句段中,char *s="\ta\018bc"; for(; *s!=’\0’;s++)  printf("*");
for循环的执行次数是(  )。
A.9
B.5
C.7
D.6
正确答案:D
5、假设int  *p[3]; 则以下叙述中正确的是(  )。
A.p是一个指针,它可以指向一个一维数组中的任一元素
B.(*p)[3]与*p[3]等价
C.p是一个指针,它只能指向一个每行包含3个int类型元素的二维数组
D.p是一个指针数组
正确答案:D
6、若有以下定义,int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是(  )。
A.p1=x+2, *(p1++)
B.p1=x+2, *++p1
C.p1=x+3, *p1++
D.x[3]
正确答案:A
7、若有以下说明语句,static int i, a[2][3]={1, 3, 5, 7, 9,11};int m, n;且0≤m≤1,0≤n≤2,则下述对数组元素的引用,正确的是(  )。
A.*(a+5)
B.a[m]+n
C.*(*(a+m)+n)
D.(a+m)+n
正确答案:C
8、下面程序的运行结果是(  )。
#include<stdio.h>
void main()
{
  int x[5]={2,4,6,8,10},*p,**pp;
    p=x;
    pp=&p;
    printf("%d  ",*(p++));
  printf("%d",**pp);
}
A.4 6
B.2 2
C.2 4
D.4 4
正确答案:C
9、以下程序运行的结果是(  )。
#include<stdio.h>
#include<string.h>
void main()
{
    char *p1,*p2,str[50]="abc",st[50]="abc";
    p1=st;
    p2="abc";
      strcpy(str+1, strcat(p1,p2));
      printf("%s\n",str);
}
A.cabcabc
B.bcabcabc
C.aabcabc
D.abcabcabc
正确答案:C
10、下面程序的运行结果是(  )。
#include<stdio.h>
sub( int x, int y, int *z)
{    *z=y-x;
}
void main()
{
      int a,b,c;
      sub(10,5,&a);
    sub(7,a,&b);
    sub(a,b,&c);
    printf("%4d,%4d,%4d\n",a,b,c);
}
A.5, -2, -7
B.5, 2, 3
C.-5, -12, 7
D.-5, -12, -7
正确答案:D
11、以下程序运行的结果是(  )。
#include<stdio.h>
void main()
{
      int b,a=28;
      char s[10],*p;
      p=s;
printf函数返回值    do{
          b=a%16;
          if(b<10)
              *p=b+48;
          else
              *p=b+55;
          p++;
          a=a/5;
    }while(a>0);
      *p='\0';
    puts(s);
}
A.C51
B.10
C.2
D.\0
正确答案:A
12、下面程序的运行结果是(  )。
#include<stdio.h>
void main()
{
    static char a[ ]="Language",b[ ] ="programe";

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