C语言基础及答案 9

本文主要介绍了指针的基础概念及编程应用,包括选择题、填空题和编程题等内容,帮助读者深入理解指针的工作原理及其在实际编程中的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第九章 指针

一、 选择题

1、 指针是一种____

A、 标识符

B、 变量

C、 内存地址

D、 运算符

2、 显示指针变量P中的值,可以使用命令_____

A、 Printf(%d,p);

B、 Printf(%d,*p);

C、 Printf(%d,*p);

D、 Printf(%d,p);

3、 为指针变量P输入整型变量i的地址,可以使用命令____

A、 Scanf(%p,&p);

B、 *p=i;

C、 P=&I;

D、 *p=&I;

4、 若有定义void *p;int *q;float *r,下面操作不对的是____

A、 p=q;

B、 q=r;

C、 p=r;

D、 r=p;

5、 若有说明#define 20 int n=10;下面定义不正确的是______

A、 Float s[m];

B、 Float s[m*10];

C、 Float s[m+n];

D、 Float s[m+10];

6、 若有定义int a[]={1,2,0};请问a[a[a[0]]]=______

A、      B      C       D3

7、 若有char s[10],*p=s;则下面表达式正确的是_____

A、 s=p+s;

B、 p=s+10;

C、 s[2]=p[4];

D、 p=s[0];

8、 定义整型指针变量pq,下面操作不正确的是_______

A、 Int *p,q=null;

B、 Int *p,q=null,null;

C、 Int *p,*q=null,null;

D、 Int *p,*q=null;

9、 若有定义int a[]={1,2,3},b[3]={1,2,3};,请问a==b_______

A、 不能比较

B、 结果为真

C、 结果为假

D、 结果不确定

 

二  、填空题

1、 二级指针是存放一级指针的__________

2、 指针变量虽然都是存放指针,但____不同

3、 空指针名称是_______,表示没有指针的一种状态

4、 函数名和_______名可以作为指针常量

5、 不同类型的指针变量的赋值必须________

 

一、 编程

1、 输入3个整数,按由小到大的顺序输出。

2、 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

3、 写一个函数,将一个3*3的矩阵转置。

4、 n个数按输入顺序的逆序排列,用函数实现。

 

 

参考答案

一、 选择题

1   2  3    4   5   6   7   8    9D

二、填空题

1、 单元地址

2、 基类型

3、 Null

4、 数组

5、 显式类型变换

二、 编程题

1、 Main()

     {int n1,n2,n3;

      Int *p1,*p2,*p3;

      Printf(input three integers n1,n2,n3:);

     Scanf(%d,%d,%d,&n1,&n2,&n3);

     p1=&n1;

     p2=&n2;

     p3=&n3;

     if(n1>n2) swap(p1,p2);

     if(n1>n3) swap(p1,p3);

     if(n1>n3) swap(p2,p3);

     printf(now,the order is:%d,%d,%d\n,n1,n2,n3);

     }

     Swap(int *p1,int *p2)

     {int p;

      p=*p1;*p1=*p2;*p2=p;

      }

1、 main()

{int len;

 Char *str[20];

 Printf(input string:);

 Scanf(%s,str);

 Len=length(str);

 Printf(The length of string is %d.,len);

 }

 Length(char *p)

 {int n;

  N=0;

  While(*p!=\0)

   {n++;

P++;

}

      Return(n);

      }

2、 main()

{int a[3][3],*p,i;

 Printf(input matrix:\n);

 For(i=0;i<3;i++)

  Scanf(%d %d %d,&a[i][0],&a[i][1],&a[i][2]);

p=&a[0][0];

move(p);

printf(now,matrix:\n);

for(i=0;i<3;i++)

printf(%d %d %d\n,a[i][0],a[i][1],a[i][2]);

}

Move(int *pointer)

   {int i,j;

For(i=0;i<3;i++)

      For(j=i;j<3;j++)

      {t=*(pointer+3*i+j);

       *(pointer+3*i+j)=*(pointer+3*j+i);

       *(pointer+3*j+i)=t;

       }

             

3、 main()

{int i,n;

 Char *p,num[20];

 Printf(input n:);

 Scanf(%d,&n);

 Printf(please input these numbers:\n);

 For(i=0;i

 Scanf(%d,&num[i]);

 P=&num[0];

 Sort(p,n);

 Printf(now,the sequence is:\n);

 For(i=0;i

  Printf(%d,num[i]);

  }

Sort(char p,int m)

 {int i;

  Char temp,*p1,*p2;

  For(i=0;i

   {p1=p+i;

p2=p+(m-1-i);

temp=*p1;

*p1=*p2;

*p2=temp;

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值