完善程序填空数组指针 供练习讲课讲稿.docx

上传人:b****8 文档编号:28235785 上传时间:2023-07-09 格式:DOCX 页数:15 大小:17.98KB
下载 相关 举报
完善程序填空数组指针 供练习讲课讲稿.docx_第1页
第1页 / 共15页
完善程序填空数组指针 供练习讲课讲稿.docx_第2页
第2页 / 共15页
完善程序填空数组指针 供练习讲课讲稿.docx_第3页
第3页 / 共15页
完善程序填空数组指针 供练习讲课讲稿.docx_第4页
第4页 / 共15页
完善程序填空数组指针 供练习讲课讲稿.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

完善程序填空数组指针 供练习讲课讲稿.docx

《完善程序填空数组指针 供练习讲课讲稿.docx》由会员分享,可在线阅读,更多相关《完善程序填空数组指针 供练习讲课讲稿.docx(15页珍藏版)》请在冰豆网上搜索。

完善程序填空数组指针 供练习讲课讲稿.docx

完善程序填空数组指针供练习讲课讲稿

 

完善程序填空2015(数组,指针供练习)

完善程序填空。

《实践P110》4

下面程序(段)的功能是删除字符串s中的空格。

完整程序:

voidmain()

{

chars[]="Beijingligongdaxue";

inti,j;

for(i=j=0;s[i]!

='\0';i++)//’\0’可直接用0表示,

if(s[i]!

='')s[j++]=s[i];

s[j]='\0';

cout<

}

1.下面程序(段)的功能是删除字符串s中的空格。

voidmain()

{

chars[]="Beijingligongdaxue";

inti,j;

for(i=j=①;s[i]!

='\0';i++)//’\0’可直接用0表示

if(s[i]!

='')s[j++]=②;

s[j]='\0';

cout<

}

①0②s[i]

 

2.下面程序(段)的功能是删除字符串s中的空格。

#include

usingnamespacestd;

intmain()

{

chars[]="Changshaligongdaxue";

inti,j;

for(i=j=0;s[i]!

=①;i++)

if(s[i]!

=''){s[j]=s[i];②;}

s[j]='\0';

cout<

return0;

}

①0或‘\0’(串结尾符)②j++或++j或j=j+1

3.下面程序(段)的功能是删除字符串s中的空格。

#include

usingnamespacestd;

intmain()

{

chars[]="Beijingligongdaxue";

inti,j;

for(i=j=0;s[i];i++)

if(s[i]!

=''){s[j]=①;j++;}

s[j]=②;

cout<

return0;

}

①s[i]或*(s+i)②0或‘\0’(串结尾符)

4.下面程序(段)的功能是删除字符串s中的空格。

#include

usingnamespacestd;

intmain()

{

chars[]="Beijingligongdaxue";

inti,j;

i=j=0;

while(s[i])

{if(s[i]①''){s[j]=s[i];j++;}

②;

}

s[j]='\0';

cout<

return0;

}

①!

=②i++或++i或i=i+1

5.下面程序中f函数用来判断s指向的字符串是否为“回文串”,即从前向后读或从后向前读是一样的(默认长度为0、1的字符串是“回文串”),如“abcba”。

#include

#include

usingnamespacestd;

intf(char*s)

{intresult=1;

char*p=s;

while(*p!

=0)p++;

①;

while(s

{if(*s!

=*p){result=0;break;}

s++;

p--;

}

returnresult;

}

intmain()

{charstr[80];

cin>>str;

if(f(②))cout<

elsecout<

return0;

}

①p--或--p或p=p-1②str或&str[0]

《教材》P131

6.下面的函数del_ch删除P所指串中的ch字符

voiddel_ch(char*p,charch)

{char*q=p;

for(;*p!

='\0';p++)//不能正常显示则可直接用0表示

if(*p!

=①)

{*q=*p;②;}

*q='\0';//不能正常显示则可直接用0表示

}

①ch②q++或++q或q=q+1

7.下面的函数voiddel_num(char*p)删除p所指字符串中的数字字符。

voiddel_num(char*p)

{char*q=p;

for(;*p!

='\0';p++)//不能正常显示则可直接用0表示

if(!

(*p>=①&&*p<='9'))

{*q=*p;q++;}

*q=②;

}

①'0'(字符0)②0或'\0'(串结尾符)

《实践》P24,4

8.下面程序运行时等待用户从键盘输入一个字符串,然后将其中的所有非数字字符剔除后再输出,如输入:

ab12c,则输出:

12。

#include

usingnamespacestd;

intmain()

{chara[80];

inti,j;

cout<<"输入串:

";

cin>>a;

for(i=j=0;a[i];i++)

if(a[i]>='0'&&a[i]<='9'){a[j]=a[i];①;}

a[j]=②;

cout<<"结果串:

";

cout<

return0;

}

①j++或++j或j=j+1②0或'\0'(串结尾符)

P106例4.2

完整排序程序:

将n个数按从小到大顺序排列后输出。

采用选择排序法。

#defineN10

#include

#include

usingnamespacestd;

intmain()

{inti,j,t,k,x[N];

cout<<"Pleaseinput10numbers:

\n";

for(i=0;i

cin>>x[i];

for(i=0;i

{k=i;

for(j=i+1;j

if(x[k]>x[j])k=j;

if(k!

=i)//若k已不等于其初值,

{t=x[i];x[i]=x[k];x[k]=t;}//交换x[i]、x[k]

}

cout<<"Thesortednumbers:

\n";

for(i=0;i

cout<

cout<

return0;

}

9.下面程序输入N(10)个数,然后采用选择排序法将它们按从大到小顺序排列后再输出。

#defineN10

#include

#include

usingnamespacestd;

intmain()

{inti,j,t,k,x[N];

cout<<"请输入10个数:

\n";

for(i=0;i>x[i];

for(i=0;i

{k=i;

for(j=i+1;j

if(x[k]①x[j])k=j;

if(②)

{t=x[i];x[i]=x[k];x[k]=t;}

}

cout<<"从大到小依次为:

\n";

for(i=0;i

cout<

cout<

return0;

}

①<或<=②k!

=i

10.下面程序输入N(10)个数,然后采用选择排序法将它们按从大到小顺序排列后再输出。

#defineN10

#include

#include

usingnamespacestd;

intmain()

{inti,j,t,k,x[N];

cout<<"请输入10个数:

\n";

for(i=0;i>x[i];

for(i=0;i

{①;

for(j=i+1;j

if(x[k]

if(k!

=i)

{t=x[i];x[i]=x[k];②;}

}

cout<<"从大到小依次为:

\n";

for(i=0;i

cout<

cout<

return0;

}

①k=i②x[k]=t

11.下面程序输入N(10)个数,然后将它们按从大到小顺序排列后再输出。

程序中的函数sort采用选择排序法对数组x中的n个元素值进行排序。

#defineN10

#include

#include

usingnamespacestd;

voidsort(intx[],intn)

{inti,j,t,k;

for(i=0;i

{k=i;

for(j=i+1;j

if(x[k]

if(k!

=i)

{①;x[i]=x[k];x[k]=t;}

}

}

intmain()

{inti,x[N];

cout<<"请输入10个数:

\n";

for(i=0;i

cin>>x[i];

sort(②,N);

cout<<"从大到小依次为:

\n";

for(i=0;i

cout<

cout<

return0;

}

①t=x[i]②x或&x[0]

12.函数transpose求存于形参二维数组a[N][N]中的方阵AN×N的转置矩阵A’,且将结果仍然存于a中(即将a[i][j]与a[j][i]的值互换)。

voidtranspose(inta[][N])

{inti,j,t;

for(i=0;i

for(j=0;j<①;j++)

{t=a[j][i];②;a[i][j]=t;}

}

①i或i+1②a[j][i]=a[i][j]

13.函数transpose求存于形参二维数组a[N][N]中的方阵AN×N的转置矩阵A’,且将结果仍然存于a中(即将a[i][j]与a[j][i]的值互换)。

voidtranspose(inta[][N])

{inti,j,t;

for(i=0;i

for(j=i+1;j<①;j++)

{t=a[j][i];a[j][i]=a[i][j];a[i][j]=②;}

}

①N②t

14.《实验教材P21》

已知下面程序输出如下二维数表:

123456

112345

121234

233123

246412

25101051

请完善其空缺部分。

#include

#include

usingnamespacestd;

voidmain()

{inta[6][6],i,j;

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

{for(j=0;j<6;j++)

{if(j==0||i==j)①;

elseif(②)a[i][j]=a[i][j-1]+1;

elsea[i][j]=a[i-1][j-1]+a[i-1][j];

cout<

}

cout<

}

}

①a[i][j]=1②i

15.《实验教材P21》

已知下面程序输出如下二维数表:

123456

112345

121234

233123

246412

25101051

请完善其空缺部分。

#include

#include

usingnamespacestd;

voidmain()

{inta[6][6],i,j;

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

{for(j=0;j<6;j++)

{if(j==0||i==j)a[i][j]=1;

elseif(①)a[i][j]=a[i-1][j-1]+a[i-1][j];

elsea[i][j]=②;

cout<

}

cout<

}

}

①j

16.下面的程序求用户输入数据的整数部分和小数部分,如输入9.45,则输出:

整数部分:

9,小数部分:

0.45。

voidf(floaty,int*a,float*z)

{*a=(int)y;*z=①-*a;}

voidmain()

{intb;

floatx,w;

cin>>x;

f(x,&b,②);

cout<<"整数部分:

"<

"<

}

①y②&w

17.下面的程序求用户输入数据的整数部分和小数部分,如输入2.35,则输出:

整数部分:

2,小数部分:

0.35。

voidf(floaty,int*a,float*z)

{*a=(int)y;*z=y-①;}

voidmain()

{intb;

floatx,w;

cin>>x;

f(x,②,&w);

cout<<"整数部分:

"<

"<

}

①*a②&b

18.《实验教材P21》

已知下面程序先计算出杨辉三角数表存于二维数组a的对应位置各元素中,然后输出数组a主对角元素及以下的元素便得到如下杨辉三角数表的前5行,

1

11

121

1331

14641

请完善其空缺部分。

#include

usingnamespacestd;

#include

intmain()

{inti,j,a[5][5];

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

{①;a[i][i]=1;

for(j=1;j

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

{cout<

for(j=0;②;j++)cout<

cout<

return0;

}

①a[i][0]=1②j<=i

19.《实验教材P21》

已知下面程序先计算出杨辉三角数表存于二维数组a的对应位置各元素中,然后输出数组a主对角元素及以下的元素便得到如下杨辉三角数表的前5行,

1

11

121

1331

14641

请完善其空缺部分。

#include

usingnamespacestd;

#include

intmain()

{inti,j,a[5][5];

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

{a[i][0]=1;a[i][i]=1;

for(j=①;j

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

{cout<

for(j=0;j<=i;j++)cout<

}

cout<

return0;

}

①1②a[i][j]

20.下面函数的功能是从数组x(有n>0个元素)中找出最大元素,请将函数补充完整。

intfindmax(intx[],intn)

{intmax=①;

for(inti=1;i

if(x[i]>max)

②;

returnmax;

}

①x[0]②max=x[i]

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

当前位置:首页 > 自然科学 > 物理

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

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