C语言练习题库40题版答案1.将所有的水仙花数保存到维数组a中。
(所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:153=1*1*1+5*5*5+3*3*3)
#include
int main()
{
int s[100]={0};
int i;
int k=0;//表示水仙花数的个数。
int a,b,c;
for(i=100;i
int main()
{
int i;
int k=1;
int sum=0;
for(i=1;i
int main()
{
void sort(int a[],int m);
int a[100]=...
1.将所有的水仙花数保存到维数组a中。
(所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:153=1*1*1+5*5*5+3*3*3)
#include
int main()
{
int s[100]={0};
int i;
int k=0;//示水仙花数的个数。
int a,b,c;
for(i=100;i<1000;i++)
{
a=i%10;
b=(i%100)/10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
{
s[k]=i;
printf("%d\n",s[k]);
k++;
}
}
}
2. 按下面的公式求sum的值。
sum = 1 - 2 + 3 - 4 + 5 - 6 + …… + 99 – 100
#include
int main()
{
int i;
int k=1;
int sum=0;
for(i=1;i<=100;i++)
{
sum=sum+k*i;
k=-1*k;
}
printf("%d\n",sum);
}
3.编写代码,实现冒泡排序,并要求:
(1)在有序的数组中,接着插入一个元素,新数组仍然有序
(2)在数组中删除一个元素,新数组仍然有序
(3)对该数组进行逆序存放
#include
int main()
{
void sort(int a[],int m);
int a[100]={1,22,55,8,9,29,3,5,244,24};
int i;
int x;
sort(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
/*插入一个数后,仍然按序输出*/
printf("\n");
printf("请输入要插入的数字:");
scanf("%d",&x);
insert(x,a,11);
for(i=0;i<11;i++)
{
printf("%d ",a[i]);
}
/*逆序输出序输出*/
printf("\n");
for(i=10;i>=0;i--)
{
printf("%d ",a[i]);
}
}
void insert(int x,int a[],int m)
{
void sort(int a[],int m) ;
a[m-1]=x;
sort(a,m);
}
/* 冒泡排序*/
void sort(int a[],int m) //m 表示数组的个数
{
int i,j,t;
for(i=0;ia[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
4. 编写程序实现以下功能,能够将下面所示的6*6的二维矩阵读入并存储到二维数组中,并求其对角线之和,以及最大数,并输出最大数所在的行列下标。
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
#include
int main()
{
int i,j;
int a[6][6]={{35, 1, 6, 26, 19, 24},
{ 3 , 32 , 7 ,21, 23 , 25} ,
{ 31 , 9 , 2 , 22 , 27 , 20} ,
{ 8 , 28 , 33 ,17 , 10 , 15 } ,
{ 30 , 5 , 34 , 12 , 14 , 16} ,
{ 4 , 36 , 29, 13 , 18 , 11}
};
int max=a[0][0];
int col,row;
int sum=0;
for(i=0;i<6;i++)
for(j=0;j<6;j++)
{
if(i==j||i+j==5)sum=sum+a[i][j];
}
printf("%d\n",sum);
for(i=0;i<6;i++)
for(j=0;j<6;j++)
{
if(a[i][j]>=max)
{
max=a[i][j];
col=j;
row=i;
}
}
printf("max=%d,row=%d,col=%d\n",max,row,col);
}
5. 对任意输入的5个字符数组进行排序
比如:输入
abc def fdc ccc efg
得到
abc ccc def efg fdc
6. 求2个数组的交集
输入
{5,6,7,9,10}
{2,3,4,5,6}
得到
{5,6}
#include
int main()
{
int a[5]={5,6,7,9,10};
int b[5]={2,3,4,5,6};
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(a[i]==b[j]) printf("%d ",a[i]);
}
}
}
7. 求[m,n]之间既不能被7整除也不能被5整除的整数之和,m和n的值由键盘输入。
例如,如果m和n的值分别为10和20,则计算结果为:106。
#include
int main()
{
int m,n;
int i,sum=0;
printf("请输入m和n:");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
if(i%7!=0 && i%5!=0) sum=sum+i;
}
printf("%d",sum);
}
8. 求字符串的长度并输出。
例如,当字符串1为"This Is a c Program"
则应输出:Result is: 19
#include
int main()
{
char str[100]="";
int i=0; //str的下标
gets(str);
while(str[i]!='\0')
{
i++;
str[i]=str[i]+1;
}
printf("字符串长度为:%d",i);
}
9. 将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数)。
例如,当字符串为"This Is a c Program"
输出:"this is a c program"
#include
int main()
{
char str[100]="";
int i=0;
printf("请输入要转换的字符串:");
gets(str);
while(str[i]!='\0')
{
if(str[i]>='A' && str[i]<='Z') str[i]=str[i]+32;
i++;
}
printf("%s",str);
}
10. 给学生评定成绩,若学生成绩在60-69则输出“及格”,70-89分为“良好”;90-100分为“”优秀,60分一下为“不及格”,分别用if-else语句和switch语句编程实现。
#include
int main()
{
int score;
printf("请输入分数:");
scanf("%d",&score);
if(score<60)
printf("不及格\n");
else if(score<70)
printf("及格\n");
else if(score<90)
printf("良好\n");
else
本文档为【C语言练习题库40题版答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。