程序设计基础c语言第四章数组教材答案科学出版社文档格式.docx
《程序设计基础c语言第四章数组教材答案科学出版社文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计基础c语言第四章数组教材答案科学出版社文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
i_data[7],&
i_data[8],&
i_data[9]);
for(m=1;
m<
=10/2;
m++)//有意写成10/2已解决任意一维数组的逆序问题,为什么此处用m=1;
=10/2,而不能m=0;
10/2
{i_temp=i_data[m-1];
//下面三条语句是典型的两数交换的方法
i_data[m-1]=i_data[10-m];
i_data[10-m]=i_temp;
}
for(m=0;
10;
m++)
{printf("
%d"
i_data[m]);
\n"
}
2.0编程求Fibonacci数列的前二十项。
FIBONACCI数列的定义F0=0,F1=1,Fn=Fn-1+Fn-2
intF[20];
intm,n,i_blanknum;
20;
{switch(m)
{case0:
F[0]=0;
break;
case1:
F[1]=1;
default:
F[m]=F[m-1]+F[m-2];
}
Fibonacci数列的前20项是:
F[m]);
//下面输出项,这是我加的效果
%d"
m+1);
//输出项的编号
//计算该项数据占几位
i_blanknum=1;
//每个数据间占一个空格
n=F[m];
do
{i_blanknum=i_blanknum+1;
n=n/10;
}while(n!
=0);
//减去该项编号数据占的位数
n=m+1;
{i_blanknum=i_blanknum-1;
//输出空格
while(i_blanknum>
0)
{printf("
"
i_blanknum--;
2.0在一个从小到大排列的数组中查找X,若x存在就将其测出,若不存在将其添加。
使修改后的数组仍然有序,并输出到屏幕上啊
#defineYes1//Yes说明x在数组中
#defineNo0//No说明x不在数组中
inti_data[10]={10,20,30,40,50,60,70,80,90};
intx,i,j;
intYN;
//记录x是否在数组中
intTotal=9;
//数组元素实际个数
请输入一个数:
x);
YN=No;
//假定不在数组中
//第1种情况:
进行x在数组中查找和删除操作,要考虑数组中有多个x的值
i=0;
while(i<
Total)
{if(x==i_data[i])
{YN=Yes;
for(j=i;
j<
Total-1;
j++)
{i_data[j]=i_data[j+1];
}
Total--;
else
{i++;
//第1中情况操作完成
if(YN==No)//说明第1种情况不存在,应进行第2种情况操作,即增加
{for(i=0;
i<
Total;
i++)
{if(x<
i_data[i])
{for(j=Total;
j>
i;
j--)
{i_data[j]=i_data[j-1];
}
i_data[i]=x;
Total++;
//下面输出
for(i=0;
i_data[i]);
4.0将一个3*4二维数组的行和列的元素互换,存放到4*3的二维数组中,并输出元素
#include"
stdio.h"
{inta[3][4],b[4][3];
inti,j;
\n输入数组a[3][4],输入一个数据请按Enter键\n"
3;
i++)
{for(j=0;
4;
{scanf("
a[i][j]);
}//输入完毕
//开始转换和输出[3][4]
\na[4][3]\n"
{b[j][i]=a[i][j];
printf("
%6d"
a[i][j]);
printf("
}//转换完毕
//开始输出
\nb[4][3]\n"
b[i][j]);
}//输出完毕
5.0
第五题利用循环,使得10*10的二维数组元素具有以下值,并把内容输出到屏幕数
1
2
3
4
5
6
7
8
9
ints[10][10];
intm,n;
m++)
{for(n=0;
n<
n++)
{s[m][n]=(m+n)%10;
%5d"
s[m][n]);
6.0输入一个字符串,判断它是否回文,所谓回文是值字符串字符串正序和逆序一样的,如abcdcba就是回文。
#include"
string.h>
charstr[101];
intstr_len,i,comparetimes;
intisSame;
//记录是否是回文字符串,其值=0,则不是,=0则是
//输入字符串,要控制不能100个字符,所以用getchar
请输入一个字符串(最多100个字符),按Enter结束输入\n"
for(i=0;
100;
{str[i]=getchar();
if(str[i]=='
\n'
)
break;
str[i]='
\0'
;
//将最后的回车符\n改成'
其目的是形成字符串数组,以便用字符串函数对字符串操作,方便!
//判断是否是回文字符串的算法是把第1个字符和最后1个字符比较,第2个字符和倒数第2个字符比较,如此,
//都相同则是回文字符串,只要有一对字符不同就不是
isSame=1;
//假定当前字符串是回文字符串
str_len=strlen(str);
comparetimes=str_len/2;
//只需比较一半即可,
comparetimes;
{if(str[i]!
=str[str_len-1-i])
{isSame=0;
//有一对字符不同,则不用检查剩余的
if(isSame==1)
该字符串是回文字符串!
else
该字符串不是回文字符串!
7.0统计一个字符串中的单词个数,字符串中二个空格之间的非空格字符可看做单词。
{chars[100],s1[100];
intwordnum=0;
//统计的单词个数
inti,j,str_len;
puts("
请输入一个字符串:
gets(s);
str_len=strlen(s);
j=0;
=str_len-1;
{
if(s[i]!
='
'
)
{s1[j]=s[i];
j++;
if((s[i]=='
||i==str_len-1)&
&
j>
0)//说明此时识别了一个单词
{wordnum++;
s1[j]='
第%d个单词:
%s\n"
wordnum,s1);
j=0;
共有%d个单词"
wordnum);
8.0将字符串s中所有长度为5的子字符串输出到屏幕上。
所谓子串是指在字符串中连续截取若干的字符串所组成的字符串,被截取的原始字符串称为母串。
{chars[100],s5[6];
请输入字符串:
共有%d个长度为5的字符串,具体如下:
str_len-4);
str_len-4;
5;
{s5[j]=s[i+j];
s5[j]='
puts(s5);