1. (单选题, 4分) 若有程序
void main()
{
    int a[10]={1,2,3,4,5,5,6,7,8,1},*pa;

       pa=a;   

       printf('%d ',*pa);

       pa++;

       printf('%d ',*pa);

      pa--;

      printf('%d ',*pa);

    }

则输出结果正确的是( )。

A 1 2 3

B 1 1 2

C 1 2 1

D 1 2 2

  1. (单选题, 4分)

设有定义:int i=10,j=100,*p1,*p2; p1=&i;p2=&j; p1=p2;则printf('%d %d ',*p1,*p2)结果是( )。

A 10 10

B 100 100

C 100 10

D 10 100

  1. (单选题, 4分) 设已有定义:float a; 则以下对指针变量p进行定义且赋初值的语句中正确的是( )。 A float *p=2023;

B float *p=&a;

C *p=&a;

D int *p=int a;

  1. (单选题, 4分) 若有以下定义和语句,则对x数组元素地址的正确引用是( )。
int x[2][3], (*p)[3];

p=x;

A p[2]

B p[0]+1

C *(p+2)

D (p+1)+2

  1. (单选题, 4分) 若有说明语句'int i,j =7,*p=&i;',则与i=j等价的语句是( )。 A j=*p;

B p=&j;

C i=&j;

D i=**p ;

  1. (单选题, 4分) 语句int (*pa)(int );的含义是( )。

A pa是指向一维数组的指针变量

B pa是指向int 型数据的指针变量

C pa是指向函数的指针,该函数返回一个int型数据,且有一个int型参数

D pa是一个函数名,该函数的返回值是指向int 型数据的指针

  1. (单选题, 4分) 执行语句char ss[20]= '#hello!*';printf('%d %d',sizeof(ss),strlen(ss));后输出( )。

A 20 8

B 20 9

C 8 20

D 9 21

  1. (单选题, 4分) 若有定义int *p[4]; 则标识符p()。

A 是一个指向整型变量的指针

B 是一个指针数组名

C 是一个指针,它指向一个含有四个元素的一维数组

D 函数指针

  1. (单选题, 4分) 以下能正确进行字符串赋值操作的是( )。 A char s[5]={'ABCDE'};

B char *s; *s='ABCDE';

C char *s='ABCDE';

D char s[5]={'A', 'B', 'C', 'D', 'E'};

  1. (单选题, 4分) 以下对指针变量的操作中,不正确的是( )。 A int a,*p, *q; p=q=&a;

B int a, *p, *q; q=&a; p=*q;

C int a=6, b,*p; p=&a; b=*p;

D int a=6, *p, *q=&a; p=q;

内容:1. D 2. C 3. B 4. B 5. A 6. C 7. B 8. B 9. C 10. B

C语言指针和数组练习题及答案

原文地址: https://www.cveoy.top/t/topic/orke 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录