1、求数列:s=+99
#include<stdio.h>
main()
{ int i,sign=1,s=0;
for(i=1;i<100;i++)
{
s+=i*sign; //sign变号。
sign=-sign;
}
printf("s=%d\n",s);
}
2、求数列:s=1!+2!+3!+...+10!
#include<stdio.h>
main()
{ int i,p=1,s=0;
for(i=1;i<=10;i++)
{
p=p*i; //i每取一个值,p=i!
s=s+p;
}
printf("s=%d\n",s);
}
3、从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+…(共n项)的和。例a=2,n=4,则sum=2+22+222+2222.
#include<stdio.h>
main()
{int a,n,i=0,t=0;
double s=0;
scanf("%d%d",&n,&a);
while(i<n)
{ t=t+a;
s=s+t;
a=a*10;
++i;}
printf("\ns=%lf\n",s);
}
4、输出如下图形:
*
***
*****
*******
*****
***
*
#include<stdio.h>
main()
{int i,j,k;
for(i=1;i<=4;i++) //上半部图形
{for(j=1;j<=4-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
for(i=1;i<=3;i++) //下半部图形
{
for(j=1;j<=i;j++)printf(" ");
for(k=1;k<=7-2*i;k++)printf("*");
printf("\n");
}
}
5、求出100至1000之内能同时被2、3、7整除的整数,并输出。
#include <stdio.h>
void main()
{ int i;
int sum = 0;
for (i = 100; i <= 1000; i++)
{ if (i%2==0 && i%3==0 && i%7==0)
{ printf("%d\n",i); sum += i;}
}
printf("和为:%d\n", sum);
}
6、求100--200间的所有素数
#include<stdio.h>
main()
{ int i,k;
for(k=100;k<=200;k+=2)
{
for(i=2;i<=k-1;i++)
if(k%i==0) break;
if(i>=k) printf("%5d",k);
}
}
7、求水仙花数:是指一个3位数,其各位数字的立方和等于该数本身。如:153=13+53+33
#include<stdio.h>
main()
{ int i,g,s,b;
for(i=101;i<1000;i++)
{
g=i%10; //g、s、b分别表示个位、十位、百位数字。
s=i/10%10;
b=i/100;
if(i==g*g*g+s*s*s+b*b*b)
printf("%5d ",i);
}
}
8、输入一行字符,统计其中字母、数字、空格及其他字符的个数。
#include <stdio.h>
int main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\n') // 输入一行字符。
{
if (c>='a' && c<='z' || c>='A' && c<='Z')
letters++;
else if (c==' ')
space++;
else if (c>='0' && c<='9')
digit++;
else
other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n",letters,space,digit,other);
return 0;
}
9、给数组赋值0~9的随机数,输出该数组中的最大值及位置。
#include<stdio.h>
#include<stdlib.h>
main()
{
int i,max,k,a[10];
printf("input a[10]:\n");
for(i=0;i<10;i++)
a[i]=rand()%10; //产生10个随机数-->数组。
for(i=0;i<10;i++)
printf("%6d",a[i]); //输出验证。
max=a[0];
for(i=0;i<10;i++)
if(a[i]>max) { max=a[i]; k=i;}
printf("\nmax=%d,k=%d\n",max,k);
}
10、将一个数组元素逆序排放。
#include <stdio.h>
main()
{ int a[10],i,t;
printf("enter array a:\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]); //输入10个数-->数组,以空格做分隔符。
printf("array a:\n");
for (i=0;i<10;i++)
printf("%4d",a[i]); //输出验证。
for (i=0;i<10/2;i++) //逆序排放。
printf输出格式lf{ t=a[i];
a[i]=a[10-i-1];
a[10-i-1]=t;
}
printf("\nNow,array a:\n");
for (i=0;i<10;i++) //输出验证。
printf("%4d",a[i]);
printf("\n");
}
11、选择法排序
#include <stdio.h>
main()
{int i,j,t,a[10];
printf("enter data:\n");
for (i=0;i<=9;i++)
scanf("%d",&a[i]); //输入10个数-->数组,以空格做分隔符。
printf("\n");
printf("原始数组:\n"); //输出验证。
for (i=0;i<=9;i++)
printf("%5d",a[i]);
printf("\n");
for (i=0;i<=9;i++) // 选择法排序
for (j=i+1;j<=9;j++)
if (a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
printf("\n排序后数组:\n"); //输出验证。
for (i=0;i<=9;i++)
printf("%5d",a[i]);
printf("\n");
}
12、10个元素数组,删除其中一个元素。
#include <stdio.h>
main()
{int i,k,a[10];
printf("enter data:\n");
for (i=0;i<=9;i++)
scanf("%d",&a[i]); //输入10个数-->数组,以空格做分隔符。
printf("\n");
printf("原始数组:\n"); //输出验证。
for (i=0;i<=9;i++)
printf("%5d",a[i]);
printf("\n");
printf("删除第几个元素:\n");
scanf("%d",&k);
for (i=k;i<=9;i++) // 删除第K个元素。
a[i]=a[i+1];
printf("\n删除后数组:\n"); //输出验证。
for (i=0;i<=8;i++) // 删除后数组剩余9个元素。
printf("%5d",a[i]);
printf("\n");
}
13、将一个排好序的数组,插入一个数后,保持数组原排序顺序。
#include <stdio.h>
main()
{ int a[11]={1,4,6,9,13,16,19,28,36,39};
int t1,t2,num,i,j;
printf("原始数组为:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("请输入要插入的数据: ");
scanf("%d",&num);
if (num>a[9])
a[10]=num;
else
{
for (i=0;i<11;i++)
{
if (a[i]>num)
{
t1=a[i];a[i]=num; // 插入新数据,同时保存原数据
for (j=i+1;j<11;j++)
{t2=a[j];a[j]=t1;t1=t2;} // 从该位置开始,其后数据依次后移一位。
break;
}
}
}
printf("处理后数组为:\n");
for (i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
}
14、求一个3×3矩阵对角线元素之和(元素为1~100的随机整数)。
#include <stdio.h>
main()
{
int i,j,s1=0,s2=0,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%5d",a[i][
j]);
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j) s1=s1+a[i][j];
if(i+j==2) s2=s2+a[i][j];
}
printf("s1=%d,s2=%d\n",s1,s2);
}
15、有一头母牛,它每年年初生一头小母牛,每头小母牛从第四个年头起,每年年初也生一头小母牛,编写程序,求第20年时,共有多少头牛。
#include <stdio.h>
int main(void)
{
int age[4] = {1};
int count = 1, i, temp, year;
scanf("%d", &year);
for(i = 0; i <= year; i++)
{
temp = age[3];
age[3] += age[2];
age[2] = age[1];
age[1] = age[0];
age[0] = age[3];
count += age[3];
}
printf("count = %d\n", count);
return 0;
}
16、请编写一个函数fun,它的功能是:计算n门课程的最高分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90,92,80,61,55,则函数的值为92。
注意:部分源程序给出如下。请在函数fun的花括号中填入所编写的若干语句。
#include<stdio.h>
double fun(int a[ ],int n)
{ int i,max = a[0];
for(i=1;i<n;i++)
if(max < a[i]) max = a[i];
return max;
}
void main()
{
int c[5],i;double aver;
for(i=0;i<5;i++)
scanf("%d",&c[i]);
aver=fun(c,5);
printf("%0.0f\n",aver);
}
17、请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=4251。
函数fun原型:int fun(int a,int b);
#include<stdio.h>
int fun(int a,int b)
{int x,y,m,n;
x=a/10;
y=a%10;
m=b/10;
n=b%10;
return x*1000+n*100+y*10+m;
}
void main()
{int c;
c=fun(45,12);
printf("n=%d\n",c);
}
18、请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12,调用该函数后,c=1524。
函数fun原型:int fun(int a,int b);
注意:部分源程序给出如下。请在函数fun的花括号中填入所编写的若干语句。
int fun(int a,int b)
{
}
void main()
{
int c;
c=fun(45,12);
printf("%d",c);//cout<<c;
}
程序如下:
#include<stdio.h>
int fun(int a,int b)
{int x,y,m,n;
x=a/10;
y=a%10;
m=b/10;
n=b%10;
return m*1000+y*100+n*10+x;
}
void main()
{int c;
c=fun(45,12);
printf("n=%d\n",c);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论