第六章作业

1.语句int *p;printf("%d",*p);中的*p含义相同

F int *p; 这个是 定义一个指针变量 p,这里 星号 只是说明 变量 p 是一个指针
printf(“%d”, *p);
这里的 *p 是指 指针变量 p 所指向 内存地址的内容;

2.下列程序段的输出是____。

int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);

A.3

B.5

C.4

D.6

答案:B 注意k为指针变量,++k为c的第三个元素

3.以下程序的输出结果是( )。

int fun(char s[ ])
{    
    int n = 0;
        
    while ( *s <= '9' && *s >= '0'){
         n = 10 * n + *s - '0';  
         s++;
    }

    return(n);    
}

int main( )
{
       char s[10]={'6', '1', '*' , '4', '*', '9', '*', '0', '*'};
             
       printf("%d\n", fun(s));
             
       return 0;
}

A.61

B.61490

C.5

D.9

答案:A 当s=*时停止循环

4.如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。

A.m = *p;

B.m = &n;

C.m = **p;

D.*p = *&n;

答案:D      *p为m的值

5.下列语句定义px为指向int类型变量x的指针,正确的是()。

A.int x, *px = x;

B.int x, *px = &x;

C.int x, px = x;

D.int *px = &x, x;

答案:B。先定义x,再指向x

6.若有说明: int *p1, *p2, m=5, n; ,以下均是正确赋值语句的选项是

A.p1=&m; *p1=*p2;

B.p1=&m; *p2=*p1;

C.p1=&m; p2=&p1;

D.p1=&m; p2=p1;

答案:D 指针必须先指向地址,再修改内容,否则可能会使系统崩溃,D只使p2的地址改变了,而B使p2的内容变为了m。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有理想的上学人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值