程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx

上传人:b****1 文档编号:15358410 上传时间:2022-10-29 格式:DOCX 页数:14 大小:18.57KB
下载 相关 举报
程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx_第1页
第1页 / 共14页
程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx_第2页
第2页 / 共14页
程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx_第3页
第3页 / 共14页
程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx_第4页
第4页 / 共14页
程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx

《程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

程序设计基础人民邮电出版社答案第10章指针Word文档格式.docx

printf("

*(p+3));

A)67B)0C)随机值D)'

0'

二、阅读程序写结果

1.

#include<

stdio.h>

voidmain()

{

inta[]={2,4,6,8,10};

inty=1,x,*p;

p=&

a[1];

for(x=0;

x<

3;

x++)

y+=*(p+x);

y);

答案:

19

2.

{char*s="

121"

;

intk=0,a=0,b=0;

do

{k++;

if(k%2==0){a=a+s[k]-'

continue;

b=b+s[k]-'

a=a+s[k]-'

}while(s[k+1]);

k=%da=%db=%d\n"

k,a,b);

k=2a=4b=3

3.

intb=2;

intfunc(int*a)

{b+=*a;

return(b);

}

inta=2,res=2;

res+=func(&

b);

res);

6

4.

intsub(int*s);

{inti,k;

for(i=0;

i<

4;

i++)

{k=sub(&

i);

%2d"

k);

\n"

);

intsub(int*s)

{staticintt=0;

t=*s+t;

returnt;

}

0136

三、程序填空

1.以下程序先输入数据给数组a赋值,然后按照从a[0]到a[4]的顺序输出各元素的值,最后再按照从a[4]到a[0]的顺序输出各元素的值。

请填空。

{inta[5];

inti,*p;

p=a;

5;

scanf("

%d"

p++);

(1)

i++,p++)

%d"

(2)

for(i=4;

i>

=0;

i--,p--)

(1)p=a;

(2)p=a+4;

或p--

2.以下程序的功能是:

将无符号八进制数字构成的字符串转换为十进制整数。

例如,

输入的字符串为:

556,则输出十进制数366。

#include"

stdio.h"

{char*p,s[6];

intn;

gets(p);

n=*p-'

while(____

(2)___!

='

\0'

)n=n*8+*p-'

n);

}

(1)p=s;

(2)++p

3.以下程序调用findmax函数求数组中最大的元素在数组中的下标,请填空。

voidfindmax(int*s,intn,int*k)

{intp;

for(p=0,*k=p;

p<

n;

p++)

if(s[p]>

s[*k])

(1);

{inta[10],i,k;

10;

i++)scanf("

&

a[i]);

(2);

%d,%d\n"

k,a[k]);

(1)*k=p

(2)findmax(a,10,&

k)

4.下面程序的功能是将字符串b复制到字符串a中,请填空。

voids(char*s,char*t)

{while(

(1))

(2);

*s=’\0’;

voidmain()

{chara[20],b[10];

%s"

b);

s((3));

puts(a);

(1)*t!

或*t

(2)*(s++)=*(t++)或*s++=*t++

(3)a,b

5.下面程序是将p指向的常字符串中大写字母取出依次放到b数组中,小写字母取出依次放在a数组中。

{chara[80],b[80],*p="

lYoOvUe"

inti=0,j=0;

while(

(1))

{if(*p>

a'

&

*p<

z'

(2);

elseb[j++]=*p;

p++;

(3);

puts(b);

(1)*p!

或*p

(2)a[i++]=*p

(3)a[i]='

b[j]='

或a[i]=b[j]='

四、程序问答

#include 

<

#include<

string.h>

voidmain() 

char 

b1[8]="

abcdefg"

b2[8],*pb=b1+3;

while 

(--pb>

=b1) 

strcpy(b2,pb);

strlen(b2));

问题1:

该程序运行结果如何?

问题2:

当while循环结束时,pb指向了哪里?

(1)7

(2)首地址

voidswap(int*pt1,int*pt2)

{inttemp;

temp=*pt1;

*pt1=*pt2;

*pt2=temp;

voidexchange(int*q1,int*q2,int*q3)

{if(*q1<

*q2)swap(q1,q2);

if(*q1<

*q3)swap(q1,q3);

if(*q2<

*q3)swap(q2,q3);

{inta,b,c;

%d%d%d"

a,&

b,&

c);

exchange(&

%d,%d,%d\n"

a,b,c);

问题1:

程序运行时若输入了1296,会输出什么结果?

问题2:

程序的功能是什么?

问题3:

若把swap函数体中的所有*pt1改为pt1,*pt2改为pt2,结果会如何?

请分析原因。

(1)12,9,6

(2)从大到小排序(降序排列)

(3)结果仍是12,9,6,但此处输出结果不是排序后的结果,输出的是输入顺序的数字。

voidfun1(char*s,char*c)

{char*p,*q;

for(p=s;

*p!

if(*p==*c)

{for(q=p;

*q!

q++)

*q=*(q+1);

p--;

{charstr[20]="

attactet"

c1='

t'

fun1(str,&

c1);

puts(str);

程序运行结果?

函数fun1的功能是什么?

如果将函数fun1中的语句p--;

去掉,程序结果又怎样?

分析该语句的作用。

(1)aace

(2)把字符数组中的t删除掉

(3)atace

五、程序改错

1.输入5个字符串,输出其中最大的字符串。

{inti;

charstr[80],max[80];

**********found*************

str);

**********found*************

max=str;

for(i=1;

{scanf("

str);

if(max<

str)

max=str;

maxis%s\n"

max);

(1)scanf("

(2)strcpy(max,str);

(3)strcmp(max,str);

(4)strcpy(max,str);

 

2.下面程序将给定字符串循环左移1位,首字符移动到字符串的末尾。

如输入"

abcde"

,输出结果为bcdea。

voidmove1(char*s)

{char*p,t;

p=s+1;

*********found********

t=s;

while(*p)

*********found*********

{*p=*(p-1);

p++;

*******found********

*p=t;

{char*p,str[10]="

move1(str);

%s\n"

(1)t=*s;

(2)*(p-1)=*p;

(3)*(p-1)=t;

3.以下程序用来删除字符串s中所有空格字符,如输入"

thisisatest!

"

,输出结果为:

thisisatest!

{chars[80],*p,*q;

*********found*********

s);

for(p=q=s;

if(*p!

'

**********found**********

{q=p;

q++;

*********found************

*(q-1)='

puts

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1