c语言程序设计第五版第10章答案,C语言程序设计答案(黄保及编)第10章.doc

厦门大学本科生公共课 《C程序设计基础》 教材习题答案 第10章 指针

第 PAGE 1页/共 NUMPAGES 7页

选择题

设已定义“int a, * p”,下列赋值表达式中正确的是 :C)p=&a

设已定义“int x,*p=&x;”,则下列表达式中错误的是:B)&*x

若已定义“int a=1 ,*b=&a;”,则“printf(“%d \n”,*b);”的输出结果为:A)

a的值。

设已定义“int x,*p,*pl=&x,*p2=&x;”,则下列表达式中错误的是:C)p=p1+p2.

设有函数定义“void p(int *x){printf(“%d\n”,*x);}”和变量定义“int a=3;”,则正确的函数调用是:C)p(&a)

函数“int fun(char * x){char * y=x; while(*y)y++;return(y-x); }”的功能是A)求字符串的长度。

运行一下程序,输出结果为:B)5 6

int fun (int a,int *b)

{

a++;(*b)++;

return a+*b;

}

void main()

{int x=1,y=2;

Printf(“%d”,fun(x,&y));

Printf(“%d”,fun(x,&y));

}

运行以下程序,输出结果为:C)58

#include

Int * fun(int a ,int *b)

{a++;(*b)++;

*b=a+*b;

return b;

}

Void main()

{

Int x=1,y=2,*z;

Z=fun(x,&y);

Printf(“%d”,*z);

Z=fun(x,&y);

Printf(“%d”,*z);

}

若已定义“int a[]={1,2 ,3,4},*p=a;”,则下面表达式中值不等于2的是C)*(++a)

若已定义“int a[]={1,2 ,3,4},*p=a+1;”,则p[2]的值为C)4

设已定义“int x[4][10],*p=x[0];”,则下列表达式中的值为整形的是B)*(p+1)

设已定义“char s[]=”ABCD”;”,”printf(“%s”,s+1)”的值为C)BCD

设已定义“char str[]=”abcd”,*ptr=str;”,则*(prt+4)的值为B)0

下面对字符串变量的初始化或赋值操作中,错误的是C)char a[10];a=”OK”;

?设已定义“char *ps[2]={“abc”,”1234”};”,则以下叙述中错误的是A)ps为指针变量,它指向一个长度为2的字符串数组

设已定义“struct {int a,b;} s,*ps=&s;”,则错误的结构体成员引用是C)*ps.a

设已有以下定义,则表达式的值为2的是A)k=++p->data

struct st {

int data;

st *link;

} a[3]={1,a+1,3,a+2,5,0},*p=a;

编程题

输入3个字符串,输出其中最大的字符串(用字符指针)

#include

#include

#define str_count 3

#define str_length 100

int main(int argc, char *argv[])

{

char a[str_count][str_length],*p;

printf("请输入3个字符串:");

int i;

for(i=0;i

{

scanf("%s",a[i]);

}

p=a[0];

for(i=1;i

{

if(strcmp(p,a[i])<0)

{

p=a[i];

}

}

printf("最大的字符串为:%s",p);

system("PAUSE");

return 0;

}

定义一个函数,函数的功能是求已知半径的圆的周长和面积。要求把半径、周长和面积设置成函数参数。

#include

#include

#define pi 3.1415926

int main(int argc, char *argv[])

{

double r;

printf("请输入半径:");

scanf("%lf",&r);

double c,s;

void circle(double r, double *,double *);

circle(r,&c,&s);

printf("圆的周长和半径分别为:%lf,%lf",c,s);

system("PAUS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值