天津城建大学C语言程序改错Word文档下载推荐.docx
《天津城建大学C语言程序改错Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《天津城建大学C语言程序改错Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
='
A'
&
&
*s<
Z'
)
(*a)++;
a'
z'
(*b)++;
s++;
输入一个字符串,过滤此串,滤掉字母字符,并统计新生
成串中包含的字符个数。
输入的字符串为ab234$df4,则输出为:
Thenewstringis234$4
Thereare5charinthenewstring.。
inti,j;
for(i=0,j=0;
*(ptr+i)!
=0;
i++)
if(*(ptr+i)>
'
||*(ptr+i)<
*(ptr+i)>
)
/**********FOUND**********/
*(ptr+j)=*(ptr+i);
j++;
*(ptr+j)='
\0'
;
return(j);
阿【程序改错】
求1到20的阶乘的和。
答案:
1).t=1;
或t=1.0;
2).t=★t★*★j★;
或t*=j;
或t=j*t;
3).s=★s★+★t★;
或s+=t;
或s=t+s;
4).printf("
jiecheng=%f\n"
s);
计算正整数num的各位上的数字之积。
输入252,则输出应该是20。
1).longk=1;
2).num/=10;
或num=num/10;
3).scanf("
%ld"
n);
\n%ld\n"
fun(n));
求出两个非零正整数的最大公约数,并作为函数值返回。
若给num1和num2分别输入49和21,则输出的最大公约数为7。
1).a=b;
2).b=t;
3).r=a%b;
4).returnb;
或return(b);
或return(b);
从键盘输入十个学生的成绩,统计最高分,最低分和平均分。
max代表最高分,min代表最低分,avg代表平均分。
1).floata[10],min,max,avg;
2).scanf("
a[i]);
或scanf("
a+i);
3).max=min=avg=a[0];
4).if(min>
a[i])或if(a[i]<
min)
输入10个数,要求输出这10个数的平均值
1).for(i=1;
i<
10;
i++)或for(i=1;
=9;
2).floatscore[10],aver;
或floataver,score[10];
&
score[i]);
score+i);
4).aver=average(score);
判断整数x是否是同构数。
若是同购数,函数返回1;
否则返回0。
说明:
所谓“同构数”是指这个数出现在它的平方数的右边。
输入整数25,25的平方数是625,25是625中右侧的数,
所以25是同构数。
注意:
x的值由主函数从键盘读入,要求不大于1000。
1).intk;
2).k=x*x;
3).if((k%10==x)||(k%100==x)||(k%1000==x))
根据整型形参m,计算如下公式的值:
y=1+1/3+1/5+1/7+...+1/(2m-1)
1).doubley=1;
2).for(i=1;
i<
=m;
i++)
3).y+=1.0/(2*i-3);
找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
1).inti,k;
或inti;
intk;
或intk,i;
或intk;
inti;
2).if(i%k==0)或if(!
(i%k))
3).if(k==i)或if(i==k)
用选择法对数组中的n个元素按从小到大的顺序进行排序。
1).p=j;
2).if(a[i]<
a[p])或if(a[p]>
a[i])
3).p=i;
用插入排序法将n个字符进行排序(降序)。
提示:
插入法排序的思路是:
先对数组的头两个元素进行排序,
然后根据前两个元素的情况插入第三个元素,再插入第
四个元素…)。
1).inta,b,t;
2).while((b>
=0)&
(t>
aa[b]))
3).aa[b+1]=t;
读入一个整数k(2≤k≤10000),打印它的所有质因子(即
所有为素数的因子)。
若输入整数:
2310,则应输出:
2、3、5、7、11。
请改正程序中的语法错误,使程序能得出正确的结果。
1).IsPrime(intn)
2).if(!
(n%i))
3).return(m);
根据整型形参m,计算某一数据项的值。
y=1/(100*100)+1/(200*200)+1/(300*300)+……+1/(m*m)
若m=2000,则应输出:
0.000160。
1).doublefun(intm)
2).for(i=100;
i<
=m;
i+=100)
3).y+=1.0/d;
根据整型形参n,计算某一数据项的值。
A[1]=1,A[2]=1/(1+A[1]),A[3]=1/(1+A[2]),…,
A[n]=1/(1+A[n-1])
若n=10,则应输出:
a10=0.617977。
1).floatfun(intn)
2).for(i=2;
=n;
3).A=1.0/(1+A);
求广义菲玻那契级数的第n项。
广义菲玻那契级数的前n
项为:
1,1,1,3,5,9,17,31,……
项值通过函数值返回main()函数。
若n=15,则应输出:
Thevalueis:
2209。
1).for(k=4;
k<
k++)
2).a=b;
3).returnd;
求二分之一的圆面积,函数通过形参得到圆的半径,函数
返回二分之一的圆面积。
输入圆的半径值:
19.527输出为:
s=598.950017。
1).floatfun(floatr)
2).s=1.0/2*3.14159*r*r;
3).returns;
求出数组中最大数和次最大数,并把最大数和a[0]中的数
对调、次最大数和a[1]中的数对调。
1).m=i;
2).for(k=i;
k<
n;
k++)
3).if(a[k]>
a[m])m=k;
y=1/2+1/8+1/18+...+1/2m*m
1).doubley=0;
3).y+=1.0/(2*i*i);
统计出若干个学生的平均成绩,最低分以及得最低分的人数。
输入10名学生的成绩分别为92,87,68,56,92,84,67,
75,92,66,则输出平均成绩为77.9,最低高分为56,得最
低分的人数为1人。
1).sum+=array[i];
或sum=sum+array[i];
2).ave=sum/n;
3).if(array[i]==Min)J++;
将整型数组中所有小于0的元素放到所有大于0的元素的前
面(要求只能扫描数组一次)。
1).int★i=0★,★j=n-1★,★temp★;
2).j--;
3).if(i<
j)
输入两个实数,按代数值由小到大输出它们,并在fun()
函数中输出。
(输出的数据都保留2位小数)
1).floatt;
2).if(a>
b)
3).printf("
%5.2f,%5.2f\n"
a,b);
编写函数fun求20以内所有5的倍数之积。
1).int★s=1★,★i★;
2).if(i%m==0)
3).s=s*i或s=i*s或s*=i
1).ints=1,i;
3).s*=i;
编写函数fun计算下列分段函数的值:
x*x+xx<
0且x≠-3
f(x)=x*x+5x0≤x<
10且x≠2及x≠3
x*x+x-1其它
1).floaty;
2).if(x<
0&
x!
=-3.0)
3).returny;
有1、2、3、4个数字,能组成多少个互不相同且无重复数
字的三位数?
都是多少?
1).printf("
\n"
5;
=4;
3).if(i!
=k&
i!
=j&
j!
=k)
某个公司采用公用电话传递数据,数据是四位的整数,在
传递过程中是加密的,加密规则如下:
每位数字都加上5,
然后除以10的余数代替该位数字。
再将新生成数据的第一
位和第四位交换,第二位和第三位交换。
输入一个四位整数1234,则结果为:
9876。
1).scanf("
%d"
a);
2).aa[1]=a%100/10;
3).for(i=0;
=3;
i++)或for(i=0;
4;
i++)
一球从100米高度自由落下,每次落地后反跳回原高度的
一半;
再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
1).floatsn=100.0,hn=sn/2;
2).for(n=2;
n<
=10;
n++)或for(n=2;
11;
n++)
3).hn=hn/2;
读取7个数(1-50)的整数值,每读取一个值,程序打印
出该值个数的*。
1).while(n<
=7)或while(n<
8)
2).while(a<
1||a>
50);
或while(a>
50||a<
1);
3).for(i=1;
=a;
给一个不多于5位的正整数,要求:
一、求它是几位数,
二、逆序打印出各位数字。
1).longa,b,c,d,e,x;
2).b=x%10000/1000;
3).if(a!
=0)或if(!
a)
一个偶数总能表示为两个素数之和。
2).d=a-b;
3).if(d%c==0)
求0-7这8个数字所能组成的奇数个数。
1).longsum=4,s=4;
2).printf("
\n%ld"
sum);
3).if(j<
=2)或if(j<
3)
809*?
?
=800*?
+9*?
+1其中?
代表的两位数,8*?
的结果
为两位数,9*?
的结果为3位数。
求?
代表的两位数,及809*?
后的结果。
1).long★int★a★,★b★,★i★;
2).for(i=10;
100;
i++)或for(i=10;
=99;
3).b=★i*a★+★1★;
或b=★a*i★+★1★;
编写一个程序计算某年某月有几天。
(注意要区分闰年)
1).switch(mm)
2).break;
3).default:
以下程序能求出1*1+2*2+......+n*n<
=1000中满足条件的
最大的n。
1).s=n=0;
2).while(s<
=1000)
n=%d\n"
n-1);
输入n,计算s=1+1+2+1+2+3+1+2+3+4+...+1+2+3+4+...+n
1).inti,s,p,n;
2).scanf("
3).for(s=p=0,i=1;
实现,每次循环输入一笔交易金额并累计营业额。
1).floatsale,sigma;
3).sigma+=sale;
或sigma=sigma+sale;
编写函数fun,求两个整数的最小公倍数,然后用主
函数main()调用这个函数并输出结果,两个整数由
键盘输入。
1).q=fun(m,n);
2).if(m<
n)
3).if(i%n==0)
求100以内(包括100)的偶数之和.
1).inti,sum=0;
2).for(i=2;
=100;
i+=2)
Sum=%d\n"
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元
时,奖金可提10%;
利润高于10万元,低于20万元时,低于
10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万
到60万之间时高于40万元的部分,可提成3%;
60万到100万
之间时,高于60万元的部分,可提成1.5%,高于100万元时,
超过100万元的部分按1%提成,从键盘输入当月利润I,求
应发放奖金总数?
i);
2).if(i<
=100000)
bonus=%d"
bonus);
用起泡法对10个整数从小到大排序。
1).voidsort(int*x,intn)或voidsort(intx[],intn)
2).for(j=0;
j<
★n★-1★-i★;
j++)或for(j=0;
★n★-1★-i★>
j;
n-(★1★+★i★);
n-(★1★+★i★)>
=★n★-2★-i★;
j++)
3).if(x[j]>
x[★j★+★1★])或if(x[★j★+★1]★<
x[j])
4).sort(a,n);
求如下表达式:
111
S=1+——+———+......+———————
1+21+2+31+2+3+......+n
2).floatfun(intn)
n>
=i;
n+1;
n+1>
i;
4).s+=1.0/t;
或s=★s★+★1.0★/(float)t;
或s=★s★+★1.0★/t;
或s+=1.0/(float)t;
判断m是否为素数,若是返回1,否则返回0。
1).intfun(intm)或fun(intm)
m;
i++)或for(i=2;
m>
=m-1;
m-1=>
3).if(★m%i★==★0★)k=0;
4).returnk;
用下面的和式求圆周率的近似值。
直到最后一项的绝对值
小于等于0.0001。
π111
—=1-—+—-—+...
4357
1).#include"
math.h"
或#include<
math.h>
2).floats=0,t=1,p=1;
或floats=0,p=1,t=1;
或floatp=1,s=0,t=1;
或floatp=1,t=1,s=0;
或floatt=1,p=1,s=0;
或floatt=1,s=0,p=1;
3).while(fabs(t)>
1e-4)或while(0.0001<
fabs(t))或while(1e-4<
fabs(t))或while(fabs(t)>
0.0001)
pi=%f\n"
★s★*★4★);
求1到10的阶乘的和。
10>
11>
2).s=★s★+★fac(i)★;
或s+=fac(i);
或s=fac(i)+s;
3).floaty=1.0;
或floaty=1;
4).returny;
或return(y);
或return(y);
输出Fabonacci数列的前20项,要求变量类型定义成浮点型,
输出时只输出整数部分,输出项数不得多于或少于20。
%8.0f"
f1);
或printf("
%8f"
20;
20>
=20;
=19;
19>
3).f1=f2;
4).f2=f3;
根据整型形参m的值,计算如下公式的值。
t=1-——-——-...-——
2x23x3mxm
若m=5,则应输出:
0.536389
1).for(i=2;
m+1;
1+m;
m+1>
1+m>
2).y-=1.0/(i*i);
或y=y-1.0/(i*i);
或y-=1.0/(float)(i*i);
或y=y-1.0/(float)(i*i);
或y=y-1.0/i/i;
或y=y-1.0/(float)i/(float)i;
或y=y-1/(double)(i*i);
或y-=1/(doubl