113题经典C程序设计
更新时间:2024-04-29 01:25:01 阅读量: 综合文库 文档下载
- c程序设计经典例题推荐度:
- 相关推荐
1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include void main() {
int hcf(int,int); int lcd(int,int,int); int u,v,h,l;
printf(\input two numbers:\\n\ scanf(\ h=hcf(u,v);
printf(\ l=lcd(u,v,h);
printf(\}
int hcf(int u,int v) {
int t,r; if(v>u)
{t=u;u=v;v=t;} while((r=u%v)!=0) {u=v;v=r;}
return(v); }
int lcd(int u,int v,int h) {
return(u*v/h); }
2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。 #include
int letter,digit,space,others; void main() {
void count(char[]); char text[80];
printf(\input string:\\n\ gets(text);
printf(\ puts(text); letter=0; digit=0; space=0;
others=0; count(text);
printf(\
}
void count(char str[]) {
int i;
for(i=0;str[i]!='\\0';i++)
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) letter++;
else if(str[i]>='0'&&str[i]<='9') digit++;
else if(str[i]==32) space++; else others++; }
3.输入一个正整数求出它是几位数;输出原数和位数。 #include int digit; void main() {
void count(char[]); char text[80];
printf(\input numbers:\\n\ gets(text);
printf(\ puts(text); digit=0;
count(text);
printf(\}
void count(char str[]) {
int i;
for(i=0;str[i]!='\\0';i++)
if(str[i]>='0'&&str[i]<='9') digit++; }
4.输入一个正整数,输出原数并逆序打印出各位数字。 #include
void invertLongInt(long); void main() {
unsigned long iNumber;
printf(\input a number:\\n\ scanf(\
printf(\input number is:%ld\\n\ printf(\ invertLongInt(iNumber); }
void invertLongInt(long x) {
if(x>=0&&x<=9) printf(\ else {
printf(\ invertLongInt(x/10); } }
5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。
6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。
7.求1!+2!+3!+??+20!,将结果输出。 #include
{
float s=0,t=1; int n;
for(n=1;n<=20;n++) {
t=t*n;
s=s+t; }
printf(\??+20!=%e\\n\}
8.打印以下图案: * *** ***** ******* #include
int i,j;
printf(\
static const int picture[4][7]={{' ',' ',' ','*'},
{' ',' ','*','*','*'},{' ',' *','*','*','*','*'},{'*','*','*','*','*','*','*'}}; for(i=0;i<=3;i++) {
for(j=0;j<=6;j++)
printf(\ printf(\ } }
9.打印以下图案: * ** *** ****
#include
int i,j;
printf(\
static const int picture[4][4]={{'*'}, {'*','*'},{' *','*','*'},{'*','*','*','*'}}; for(i=0;i<=3;i++) {
for(j=0;j<=3;j++)
printf(\
printf(\ } }
10.求下列试子的值:1-1/2+1/3-1/4+??+1/99-1/100,将结果输出。 #include
{
float sum=1.0,t,s=1; int i;
for(i=1;i<=100;i++) {
t=s/i;
sum=sum+t; s=-s; }
printf(\??+1/99-1/100=%5.4f\\n\}
11.打印出100~999之间的所有水仙花数。 #include void main()
{
int i,j,k,n;
printf(\~999之间的所有水仙花数 are:\\n\
for(n=100;n<1000;n++) {
i=n/100;
j=n/10-i*10; k=n;
if(n==i*i*i+j*j*j+k*k*k) printf(\ }
printf(\}
12.求Sn=a+aa+aaa+?+aa?a之值,n,a由键盘输入。 #include void main() {
int a,n,i=1,sn=0,tn=0; printf(\ scanf(\ while(i<=n) {
tn=tn+a; sn=sn+tn;
a=a*10; ++i; }
printf(\?+aa?a=%d\\n\}
13.打印以下图案: ******* ******* ******* ******* #include void main() {
char a[7]={'*','*','*','*','*','*','*'}; int i,j,k; char space=' ';
printf(\ for(i=0;i<4;i++) {
printf(\ printf(\ for(j=1;j<=i;j++) printf(\
for(k=0;k<7;k++) printf(\ }
printf(\}
14.打印以下图案: 1 121 12321 1234321
15. 打印以下图案: 1234321 12321 121
1
16.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。 #include #define N 4 struct student {
char num[3]; char name[4]; float score[2]; float avr; }
stu[N]; void main() {
int i,j;
float sum,average; for(i=0;i
{
printf(\input scores of student%d:\\n\ printf(\
scanf(\ for(j=0;j<2;j++)
{
printf(\ scanf(\ }
}
average=0; for(i=0;i
{
sum=0;
for(j=0;j<2;j++)
sum+=stu[i].score[j]; stu[i].avr=sum/2; average+=stu[i].avr; }
average/=N;
printf(\ for(i=0;i {
printf(\ for(j=0;j<2;j++)
printf(\ printf(\ }
printf(\}
17. 打印以下图案: ***** ***** ***** ***** ***** #include void main() {
char a[5]={'*','*','*','*','*'}; int i,j,k;
char space=' ';
printf(\ for(i=0;i<5;i++) {
printf(\ printf(\ for(j=1;j<=i;j++) printf(\ for(k=0;k<5;k++) printf(\ }
printf(\
}
18.给出年、月、日,计算该日是该年的第几天。 #include
void main()
{
int sum_day(int,int); int leap(int year);
int year,month,day,days;
printf(\input date(year,month,day):\ scanf(\ printf(\ days=sum_day(month,day); if(leap(year)&&month>=3) days=days+1;
printf(\}
int sum_day(int month,int day)
{
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for(i=1;i
day+=day_tab[i]; return(day); }
int leap(int year) {
int leap;
leap=year%4==0&&year0!=0||year@0==0; return(leap); }
19.求一个3*3的整型矩阵对角线元素之和。将原矩阵和求出的和输出。 #include
{
float a[3][3],sum=0; int i,j;
printf(\请输入元素:\\n\for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(\for(i=0;i<3;i++) sum=sum+a[i][i];
printf(\对角线之和是:%6.2f\\n\for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
printf(\
printf(\
} }
20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。 #include
int a[4][3],s[4],i,j,k; for(i=0;i<4;i++) for(j=0;j<3;j++) scanf(\
for(i=0;i<4;i++) {
k=0;
for(j=0;j<3;j++)
k+=a[i][j];
printf(\第%d行的平均值是%d\ printf(\ } }
21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。 #include
int a[4][3],s[4],i,j,k; for(i=0;i<4;i++) for(j=0;j<3;j++)
scanf(\
for(i=0;i<4;i++) {
k=0;
for(j=0;j<3;j++)
k+=a[i][j];
printf(\第%d行的平均值是%d\ printf(\ } }
22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。 #include
void main() {
int a[3][5],s[3],i,j,k;
for(i=0;i<3;i++) for(j=0;j<5;j++)
scanf(\
for(i=0;i<3;i++) { *(s+i)= *(*(a+j)); for(j=1;j<5;j++)
if(*(s+i) < *(*(a+i)+j)) *(s+i)= *(*(a+i)+j); }
for(i=0;i<3;i++)
{
printf(\ printf(\ }
}
23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。 #include void main() {
int a[4][3],s[4],i,j,k; for(i=0;i<4;i++) for(j=0;j<3;j++)
scanf(\
for(i=0;i<4;i++)
{ *(s+i)= *(*(a+i)); for(j=1;j<3;j++)
if(*(s+i) < *(*(a+i)+j)) *(s+i)= *(*(a+i)+j); }
for(i=0;i<4;i++)
{
printf(\ printf(\ } }
24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。 #define N 10 #define M 10 void main() {
int a[M][N],i,j,k[M],max,m,n; scanf(\ for(i=0;i for(j=0;j
scanf(\ for(i=0;i {
for(j=0;j {
if(a[i][j]<=a[i][j+1]) max=a[i][j+1]; else
max=a[i][j]; }
k[i]=max; }
for(i=0;i {
if(k[i]<=k[i+1]) max=k[i+1]; else
max=k[i]; }
printf(\}
25.判断一个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果输出。 #include #define N 10 void main() {
int a[N][N],i,j,k,n; scanf(\ for(i=0;i for(j=0;j
scanf(\ for(i=0;i {
for(j=i+1;j {
if(a[i][j]==a[j][i]) k=1; else k=0; }
}
if(k=0)
printf(\ else
printf(\ for(i=0;i for(j=0;j
printf(\}
26.有一篇文章,有三行文字,每行有80个字符。要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。 #include void main() {
int i,j,big=0,sma=0,num=0,spa=0,oth=0; char text[3][80];
for(i=0;i<3;i++) {
printf(\请输入行%d:\\n\ gets(text[i]);
for(j=0;j<80&&text[i][j]!='\\0';j++) {
if(text[i][j]>='A'&&text[i][j]<='Z') big++;
else if(text[i][j]>='a'&&text[i][j]<='z') sma++;
else if(text[i][j]>='0'&&text[i][j]<='9') num++;
else if(text[i][j]==' ') spa++; else oth++; } }
printf(\大写字母:%d\\n\ printf(\小写字母:%d\\n\ printf(\数字:%d\\n\ printf(\空格:%d\\n\ printf(\其它:%d\\n\
}
27.将20个整数放到一维数组中,输出该数组的最大值和最小值。 #include void main() {
int i,j,min,max,a[21]; printf(\请输入数据:\\n\ for(i=1;i<=20;i++) {
printf(\ scanf(\ }
for(i=1;i<=19;i++) { min=i;
for(j=2;j<=19;j++) if(a[min]>a[j]); a[min]=a[j]; }
for(i=1;i<=19;i++) {
max=i;
for(j=2;j<=19;j++) if(a[max] a[max]=a[j]; }
printf(\最大数为:%d\\n\ printf(\最小数为:%d\\n\}
28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。 #include
void main() {
int i,j,min,max,a[16],m,n; printf(\请输入数据:\\n\ for(i=1;i<=15;i++) {
printf(\ scanf(\ }
for(i=1;i<=14;i++) {
max=i;
for(j=2;j<=14;j++) if(a[max] a[max]=a[j];
m=I,n=j }
printf(\最大数下标为:%d,%d\\n\
}
29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。 #include #include #define N 10 void main() {
int i,n;
char str1[N],str2[N]; gets(str1); for(n=0;n {
i=2*n;
str2[n]=str1[i]; }
puts(str1); puts(str2); }
30.编写一个程序,将两个字符串连接起来,不要使用strcat函数。 #include
void main() {
char str1[20],str2[20]; int i=0,j=0;
printf(\请输入字符串1:\\n\ scanf(\
printf(\请输入字符串2:\\n\ scanf(\
while (str1[i]!='\\0') i++;
while (str2[j]!='\\0') str1[i++]=str2[j++]; str1[i]='\\0';
printf(\合并之后的字符串为:%s\\n\}
31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。 #include
char a[40],b[40]; int i;
printf(\请输入a:\\n\
scanf(\
for(i=0;i<=strlen(a);i++) b[i]=a[i];
printf(\}
32.编写一个程序,找出3个字符串中的最大者,将它输出。 #include
char string[20]; char str[3][20]; int i;
for(i=0;i<3;i++)
gets (str[i]);
if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else
strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]);
printf(\最大的字符串是:\\n%s\\n\}
33.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。例如:1转换成Monday,7转换成Sunday。 #include
{
int a;
printf(\输入一个整数:\\n\ scanf(\
if(a==1) printf(\
else if(a==2) printf(\ else if(a==3) printf(\ else if(a==4) printf(\ else if(a==5) printf(\ else if(a==6) printf(\ else if(a==7) printf(\ else printf(\错误\\n\
}
34.编写程序,输入两个整数,和+、-、*、/之中的任意一个运算符,输出计算结果。 #include
float a,b;
char c;
printf(\请输入一个运算符:\\n\ scanf(\
printf(\请输入两个整数:\\n\ scanf(\ switch(c)
{
case'+':printf(\ case'-':printf(\ case'*':printf(\ case'/':printf(\ default:printf(\错误\ }
}
35.输入年号,计算这一年的2月份的天数,将结果输出。 #include
int year,leap;
printf(\请输入年份:\\n\ scanf(\ if(year%4==0) {
if(year0==0) {
if(year@0==0) leap=1; else
leap=0; } else leap=1; } else
leap=0; if(leap)
printf(\年的2月有29天\ else
printf(\年的2月有28天\}
36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。 #include
void main()
{
float a,b,c,area; double s;
scanf(\
if(a+b=
{ s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(\} }
#include
float a,b,c,area; double s;
scanf(\ if(a+b>c&&b+c>a&&a+c>b)
{ s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(\}
else
printf(\}
#include
int i,j,k,m,n,flag1,flag2,a[N][M],max,maxj; printf(\输入行数n[n<10]:\ scanf(\
printf(\输入列数m[m<10]:\ scanf(\
for(i=0;i printf(\第%d行\\n\ for(j=0;j scanf(\ } 37. 输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,何种类型的三角形:等腰、等边、直角、等腰直角、一般。 #include float a,b,c; printf(\请输入三角形边长:\\n\ scanf(\ if((a-b>=c)||(b-c>=a)||(c-a>=b)) printf(\不能够成三角形\\n\ else if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b)) if ((a==b)||(b==c)||(c==a)) printf(\等腰直角三角形\\n\ else printf(\直角三角形\\n\ else if ((a==b)&&(b==c)) printf(\等边三角形\\n\ else if ((a==b)&&(b!=c)||(c==b)&&(b!=a)||(a==c)&&(c!=a)) printf(\等腰三角形\\n\ else printf(\一般三角形\\n\} 38.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用if语句编程) #include int a; float r,t,s; printf(\请输入奖金数:\\n\ scanf(\ if (a<500) r=0.00; else if (a<1000) r=0.05; else if (a<2000) r=0.08; else if (a<2000) r=0.10; else r=0.15; t=a*r; s=a-t; printf(\税率:%7.2f\\n\ printf(\税款:%7.2f\\n\ printf(\实得奖金:%7.2f\\n\ } 39.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用switch语句编程) #include int a,e; float r,t,s; printf(\请输入奖金数:\\n\ scanf(\ e=a/500; switch(e) {case 0:r=0.00;break; case 1:r=0.05;break; case 2: case 3:r=0.08;break; case 4: case 5: case 6: case 7: case 8: case 9:r=0.10;break; default:r=0.15;break; } t=a*r; s=a-t; printf(\税率:%7.2f\\n\ printf(\税款:%7.2f\\n\ printf(\实得奖金:%7.2f\\n\} 40.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出: 90~100:A级; 80~89:B级; 70~79:C级; 60~69:D级;#include float m; printf(\输入学生成绩:\\n\ scanf(\ if ((m>100)||(m<0)) printf(\数据有误\\n\ else if (m>=90) printf(\级\\n\ else if (m>=80) printf(\级\\n\ else if (m>=70) printf(\级\\n\ else if (m>=60) printf(\级\\n\ else printf(\级\\n\} 41.编程序,求方程aX2+bX+c=0的解;输入a,b,c. #include ~59:E级; 0 float a,b,c,t; double x1,x2; printf(\请由高次到低次顺序输入系数:\\n\ scanf(\ t=b*b-4*a*c; if (t<0) printf(\方程无实根\\n\ if (t==0) { x1=-(b/2/a); printf(\方程有两个相等实根,x1=x2=%5.2f\\n\ }; if (t>0) { x1=-(b+sqrt(t))/2/a; x2=-(b-sqrt(t))/2/a; printf(\方程有两个不等实根,x1=%5.2f,x2=%5.2f\\n\ } } 42.编程序,输入4个整数,按由小到大的顺序输出。 #include void main() { int a[N],t,i,j; printf(\输入四个整数:\\n\ for (i=0;i for (i=0;i for (j=0;j t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } printf(\排序后:\\n\ for (i=0;i printf(\ } 43.求满足1+2+3+?+n<500中最大的N,并求其和,编写程序实现。 #include void main() { int n=0,sum=0; while(sum<500) { ++n; sum+=n; } printf(\??:%d\\n\ printf(\} 44.把100~200之间的不能被3整除的数输出并统计出个数。 #include int a; for (a=100;a<=200;a++) if (a%3!=0) printf(\} 45.求Fibonacci数列前40个数,每行输出5个,将40个Fibonacci数输出。 #include int n,i=0; for (n=1;n<41;n++) { printf (\ i++; if (i%5==0) printf(\ } } long f(int m) { if (m==0) return 0; if (m==1) return 1; else return f(m-1)+f(m-2); } 46.按以下规律翻译密码: 将每一个字母变成它后面的字母,例如,将A变成B,B变成C,?,Z变成A,非字母字符不变,“!”作为电文结束标志。 #include char ch; printf(\输入字符串:\\n\ while ((ch=getchar())!='!') { if ((ch>='a' && ch<='z')||(ch>='A' && ch<='Z')) if (ch=='z') ch='a'; else if (ch=='Z') ch='A'; else ch=ch+1; printf(\ } printf(\ } 47.百元买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法。 #include int a,b,c,n=0; for (a=0;a<=20;a++) for (b=0;b<=33;b++) for (c=0;c<=100;c++) if (5*a+3*b+c==100) n++; printf(\一共有%d种\\n\} 48.使用数组编程,计算出前20项fibonacci数列,要求一行打印5个数。 #include int n,i=0; for (n=1;n<21;n++) { printf (\ i++; if (i%5==0) printf(\ } } long f(int m) { if (m==0) return 0; if (m==1) return 1; else return f(m-1)+f(m-2); } 49.编程序求出两个3*4矩阵的和并将原矩阵和求出的和矩阵按原矩阵的形式分别输出。 #include int a[3][4],b[3][4],s[3][4],n,m; printf(\输入数组A:\\n\ for (n=0;n<3;n++) { printf(\第%d行\\n\ for (m=0;m<4;m++) scanf (\ } printf(\输入数组B:\\n\ for (n=0;n<3;n++) { printf(\第%d行\\n\ for (m=0;m<4;m++) scanf (\ } for (n=0;n<3;n++) { for (m=0;m<4;m++) s[n][m]=a[n][m]+b[n][m]; } printf(\原数组A:\\n\ for (n=0;n<3;n++) { for (m=0;m<4;m++) printf(\ printf(\ } printf(\ printf(\原数组B:\\n\ for (n=0;n<3;n++) { for (m=0;m<4;m++) printf(\ printf(\ } printf(\ printf(\所得数组:\\n\ for (n=0;n<3;n++) { for (m=0;m<4;m++) printf(\ printf(\ } } 50.将一个4*3的矩阵转置,并将原矩阵和求出的转置矩阵按原矩阵的形式分别输出。 #include { int a[4][3],b[4][3],s[4][3],n,m; printf(\输入数组A:\\n\ for (n=0;n<4;n++) { printf(\第%d行\\n\ for (m=0;m<3;m++) scanf (\ } printf(\输入数组B:\\n\ for (n=0;n<4;n++) { printf(\第%d行\\n\ for (m=0;m<3;m++) scanf (\ } for (n=0;n<4;n++) { for (m=0;m<3;m++) s[n][m]=a[n][m]+b[n][m]; } printf(\原数组A:\\n\ for (n=0;n<4;n++) { for (m=0;m<3;m++) printf(\ printf(\ } printf(\ printf(\原数组B:\\n\ for (n=0;n<4;n++) { for (m=0;m<3;m++) printf(\ printf(\ } printf(\ printf(\所得数组:\\n\ for (n=0;n<4;n++) { for (m=0;m<3;m++) printf(\ printf(\ } } 51.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变,请编程。 #include char ch; ch=getchar(); if ((ch>=65)&&(ch<=90)) ch=ch+32; else if ((ch>=97)&&(ch<=122)) ch=ch-32; printf(\} 52.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。 y=x*(x+2),2 float x,y; printf(\输入X值:\ scanf(\ if (x<=-1) { y=x-1; printf (\ } else if (x<=2) { y=2*x; printf (\ } else if (x<=10) { y=x*(x+2); printf (\ } else printf(\取值范围出错\\n\} 53.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。 y=0,x=a||x=-a; y=sqrt(a*a-x*x), -a float x,y,a; printf(\输入A值[A>0]:\ scanf(\ printf(\输入X值:\ scanf(\ if ((x==a)||(x==-a)) y=0; else if ((x-a)) y=sqrt(a*a-x*x); else if ((x<-a)||(x>a)) y=x; printf (\} 54.编程判断对输入的任何一个年份是否是闰年,将结果输出。 #include int n; printf(\输入年份:\ scanf(\ if (n%4==0&&n0!=0||n@0==0) printf(\闰年\\n\ else printf (\不是闰年\\n\ } 55.请编制程序要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和。 #include int a,b,c,d; printf(\请输入两个整数:\\n\ scanf(\ printf(\你输入的两个数为:%d,%d\\n\ c=a*a+b*b; if(c>=100) { d=c/100; printf(\的百位以上的数为:%d\\n\ } else printf(\} 56.请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no. #include printf(\请输入要验证的数:\\n\ scanf(\ if(a%5==0&&a%7==0) printf(\ else printf(\} 57.编程实现:计算1到100之间的奇数之和及偶数之和。 #include { int n,even=0,odd=0; for(n=1;n<=50;n++) { even+=2*n; odd+=2*n-1; } printf(\到100间的偶数的和为%d:\\n\ printf(\到100间的奇数的和为%d:\\n\} 58.请编程实现:求100个任意整数的累加和。 59.请编程实现:求1到100之间所有能被3整除,但不能被5整除的数的和。 60.请编程实现:输入任意正整数n,计算n!并将结果输出,输出结果中没有小数部分 61.请编程实现:计算1至50中是7的倍数的数值之和。 62.请编程实现:对任意100个整数,统计0的个数及正数的累加和。 #include { int a,sum=0,i,frequency=0; int s[N]; printf(\请输入数据:\\n\ for(i=0;i scanf(\ printf(\原始数据为:\\n\ for(i=0;i printf(\ for(i=0;i if(s[i]==0) frequency+=1; if(s[i]>0) { a=s[i]; sum+=a; } } printf(\这些数中0的个数为%d\\n\ printf(\这些数中所有正数的和为%d\\n\ } 63.请编程实现:输入两个整数,判断它们之间的关系(=,<,>等),并清楚地将比较结果输出。 64.请编程实现:输入几个整数,判断其中偶数的个数,并输出结果(要求:数据的个数及原始数据由键盘输入)。 #include void enter (int a[], int n) { int i; printf(\请输入数据:\\n\ for (i=0;i printf(\原始数据为:\\n\ for (i=0;i void main() { void enter (int [], int ); int i; int a[N],n; printf(\输入你所要的数组元素个数:\\n\ scanf(\ enter (a,n); for(i=0;i if (a[i]%2==0) printf (\其中的偶数是%d\\n\ } } 65.请编程实现:输入几个整数,判断其中奇数的个数,并输出奇数的累加和。(要求:数据的个数及原始数据由键盘输入) #include void enter (int a[], int n) { int i; printf(\请输入数据:\\n\ for (i=0;i scanf(\ printf(\原始数据为:\\n\ for (i=0;i void main() { void enter (int [], int ); int i; int a[N],n,sum=0; printf(\输入你所要的数组元素个数:\\n\ scanf(\ enter (a,n); for(i=0;i if (a[i]%2==1) {printf (\其中的奇数是%d\\n\ sum=sum+a[i];} }printf (\奇数和是%d\\n\ } 66.有一个两位数XY,X是十位,Y是个位;给出X+Y的值和X*Y的值;编程实现让用户猜测这个两位数十多少?根据猜测给出不同的提示。 #include printf (\ printf(\ printf(\请输入你所猜得数字\\n\ int a; scanf(\ for (;a!=11;) {printf(\ scanf(\ printf (\} 67.键盘输入的一个两位数XY,X是十位,Y是个位;请编程计算X+Y的值和X*Y的值。 #include printf (\请输入一个两位数\\n\ int a,x,y; scanf (\ x=a/10; y=a; printf (\ printf(\ } 68.用for循环语句计算1到20的和,并将结果输出。 #include int i=1,sum=0; for (;i<=20;) { sum=sum+i; i++; } printf(\到20的和是%d\\n\} 69.从键盘输入一行字符,统计出输入的字符个数(注:不要使用strlun函数编程)。 #include { int alphabet=0,i=0; char str[100]; printf (\请输入一个字符串\\n\ gets(str); for (i=0;str[i]!='\\0';i++) ++alphabet; printf (\有%d个字母\\n\ } 70.编程实现:任意输入10个数,计算所有正数的和,负数的和以及10个数的和。 #include float a[10]; printf(\请输入任意十个数\\n\for (i=0;i<10;i++) { printf(\ scanf(\} printf(\ printf(\原始数据为:\\n\for (i=0;i<10;i++) printf(\ float sum1=0, sum2=0, sum3=0; for (i=0;i<10;i++) {if (a[i]>0) sum1=sum1+a[i]; else sum2=sum2+a[i]; sum3=sum1+sum2;} printf(\正数的和是%f\printf(\负数的和是%f\printf(\总和是%f\} 71.编程实现:求任意20个数中的正数之和及正数的个数,并将结果输出。 #include printf(\请输入任意二十个数\\n\for (i=0;i<20;i++) { printf(\ scanf(\} int m=0; float sum=0; for (i=0;i<20;i++) { if (a[i]>0) m++; } for (i=0;i<20;i++) sum=sum+a[i]; printf(\正数的个数是%d\printf(\所有数的和是%f\ } 72.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。 如:2345 则:计算2*2+3*3+4*4+5*5 #include printf (\请输入一个四位数\\n\ int x,a,b,c,d,s; scanf (\ a=x/1000; b=x/100-10*a; c=x/10-100*a-10*b; d=x; printf (\ printf(\ printf (\ printf (\ s=a*a+b*b+c*c+d*d; printf(\各位数字的平方和是%d\\n\ } 73.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。 #include int a=1020,c=0; do {a=a/2-2; c++;} while (a!=0); printf(\} 74.编程实现:打印100以内个位数为6且能被3整除的所有数。 #include {int i; for (i=0;i<100;i++) {if (i==6&&i%3==0) printf(\} } 75.编程实现:从键盘输入若干个整数(数据个数应不少于50),其值在0至4的范围内,用-1作为输入结束的标志,统计每个整数的个数。 76.编写一个函数sort,将放到一维数组中的若干个数按从大到小的顺序排序;在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出。 77.输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=2×2×3。 78.输入一个正整数,求出它的质因子的和,并输出结果,格式为:12的质因子和=2+2+3=7。 79.编写一个函数,判断一个正整数是否为完数:如果一个数的除它本身以外的所有因数之和等于它本身,则它就是完数。主函数中找出1000以内的所有完数。 80.编写函数GCD,求两个正整数的最大公约数,主函数中输入任意5个正整数,调用函数GCD,求出这5个数的最大公约数和最小公倍数。 81.编函数isprime判断正整m是否为素数;如果是素数,返回正整数1,否则返回0;主函数中调用isprime,找出2到1000之间的所有素数。 #include int m; for(m=2;m<=1000;m++) if(isprime(m)) printf(\} int isprime(int a) { int i; for(i=2;i<=sqrt(a);i++) if(a%i==0) return 0; return 1; } 82.一维数组a中的若干个数已按从小到大的顺序有序;在主函数中输入一个数,将其插入到该数组中,使得原数组依然按原序有序,分别输入原数组和插入新元素之后的数组。 #include int a[21],i,j,n,p,temp; printf(\请输入数组元素的个数:\ scanf(\ printf(\请输入%d个整数:\\n\ for(i=0;i for(j=0;j<=n-1-i;j++) if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } printf(\原数组为:\\n\ for(i=0;i<=n-1;i++) printf(\ printf(\请输入插入的数:\ scanf(\ for(i=0;i<=n-1;i++) if(p temp=a[i]; a[i]=p; p=temp; } a[n]=p; printf(\插入元素后的数组为:\\n\ for(i=0;i<=n;i++) printf(\} 83.有5个国家名,编程实现按字母先后顺序排序,然后分别输出原数组和排序之后的数组。 #include { char name[5][15],temp[15]; int i,j; printf(\请输入国家名:\\n\ for(i=0;i<5;i++) gets(name[i]); for(i=0;i<5;i++) for(j=0;j<4-i;j++) if(strcmp(name[i],name[j+1])>0) { strcpy(temp,name[j]); strcpy(name[j],name[j+1]); strcpy(name[j+1],temp); } printf(\国家名排序后为:\\n\ for(i=0;i<5;i++) printf(\} 84.有一行文字,要求删去其中的某个字符,此行文字和要删的字符均由键盘输入,分别输出原文字和删除之后的文字(注:原文字中的所有和要删除字符相同的字符完全删除)。 #include int i,j; char a[10],N='n'; printf(\请输入一行9个的文字:\\n\ gets(a); printf(\原文字为:\\n\ puts(a); for(i=0;i<=9;i++) if(a[i]==N) for(j=i;j<=9;j++) a[j]=a[j+1]; printf(\删除后文字为:\\n\ puts(a); } 85.打印如图所示的杨辉三角,要求打印出n行,n由键盘输入。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ??? #include int i,j,N,a[21][21]; printf(\请输入打印的行数:\\n\ scanf(\ for(i=1;i a[i][1]=1; a[i][i]=1; } for(i=3;i a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i for(j=1;j<=i;j++) printf(\ printf(\ } printf(\} 86.编一个函数实现将一个整型的一维数组中的数逆序存放,不使用辅助数组。主函数输入一个整型的一维数组,调用上述函数,将该数组逆置,将结果输出。 #include { int a[N],i,temp; printf(\ for(i=0;i printf(\ for(i=0;i temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf(\ for(i=0;i } 87.编写一个函数convert,求一个方阵的转置矩阵;主函数中输入方阵的阶数和方阵,在主函数中将原矩阵和转置矩阵按原格式输出。 #include { void convert(int [10][10]); int a[10][10],p,q,i,j; printf(\请输入矩阵的行和列:\\n\ scanf(\ scanf(\ printf(\请输入矩阵的元素值:\\n\ for(i=0;i for(j=0;j } convert(a); printf(\转置矩阵为:\\n\ for(i=0;i for(j=0;j printf(\ printf(\ } } void convert(int a[10][10]) { int i,j,t; for(i=0;i<10;i++) for(j=i+1;j<10;j++) { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } } 88.求∏值,精度为10-5:∏/4≈1-1/3+1/5-1/7+?? #include float a=1.0,b; int i; for(i=1;1.0/(2*i+1)>0.00001;i++) { if(i%2!=0) a-=1.0/(2*i+1); else a+=1.0/(2*i+1); } b=4.0*a; printf(\的值为:%f\\n\ } 89.用公式计算:e≈1+1/1!+1/2! ?+1/n!,精度为10-6。 #include int i; float e=1.0; for(i=1;fun(i)>0.00000001;i++) e+=fun(i); printf(\ } float fun(int n) { int i; float term=1.0; for(i=1;i<=n;i++) term/=i; return term; } 90.有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13 求该序列的前20项之和。 #include int i; float a[22], b[20],p=0.0; a[0]=1.0; a[1]=1.0; for(i=2;i<22;i++) a[i]=a[i-1]+a[i-2]; for(i=0;i<20;i++) b[i]=a[i+2]/a[i+1]; for(i=0;i<20;i++) p+=b[i]; printf(\ } 91.编一个子函数GCD,求两个正整数的最大公约数,主程序输入n个自然数,调GCD,求出这n个数的最大公约数。 #include int GCD(int,int); void main() { int a[100],i,n,k; printf(\请输入数组元素的个数:\\n\ scanf(\ printf(\请输入%d个正整数:\\n\ for(i=0;i scanf(\ k=GCD(a[0],a[1]); for(i=2;i k=GCD(k,a[i]); printf(\输入的%d个正整数的最大公约数是:%d\\n\} int GCD(int x,int y) { int i,min,p,q,gcd; if(x<=y) min=x; else min=y; for(i=1;i<=min;i++) { p=x%i; q=y%i; if(p==0&&q==0) gcd=i; } return gcd; } 92.写函数求sin(x)的值。计算公式为:Sin(x)=X-X3/3!+X5/5!-X7/7!+ ?+(-1)n-1X2n-1/(2n-1)!。 #include float fun(float,int); float sin(int,float); float term(int); void main() { int n; float x; printf(\请输入n,x值:\\n\ scanf(\ scanf(\ printf(\} float sin(int n,float x) { int i; float s=0.0; for(i=1;i<=n;i++) s+=fun(-1.0,i-1)*fun(x,2*i-1)*term(2*i-1); return s; } float fun(float x,int n) { int i; float p=1.0; for(i=0;i p=p*x; return p; } float term(int n) { int i; float q=1.0; for(i=1;i<=n;i++) q/=i; return q; } 93.编一函数使用冒泡法对若干个整数按从小到大的顺序排序,主函数中输入若干个整数到一个一维数组中,调用排序函数,将其排序,最后将原数组和排好序的数组输出。 #include #define N 10 void main() { int a[N],i,j,temp;
正在阅读:
113题经典C程序设计04-29
绣球花小学作文06-15
一起瓦斯爆炸事故分析及防治措施06-06
堵水调剖工艺技术05-03
2012高考数学(文)精英备考专题讲座第四节 数列与不等式的综合应用12-21
NBU备份vmwarevsphere虚机04-09
洪洞恒兴锅炉房土方施工组织设计04-20
作弊风波作文1000字06-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 经典
- 113