安徽大学C语言实验平台作业答案_c语言实验册完整答案
安徽大学C语言实验平台作业答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言实验册完整答案”。
实验三 C基本数据类型及运算
1.编程:根据需要定义相关变量,键盘输入10.0、20.6、5.0三个实数分别赋给相关三个变量,输出该3个变量的和s、乘积p和平均值a。
2.编程:输入球的半径,计算球体表面积和球体积。
3.编程:定义6个变量,通过键盘将“10,-10,40000,a,3.14,hello”这六个值分别赋给相应变量,然后在屏幕上输出变量的值(每行输出一个变量)。
4.编程:从键盘接收1个字符给变量s1,1个字符串(允许带有空格)给字符数组s2,输出字符变量s1的ASCII码值及字符数组s2中的字符串。
5.编程:从键盘输入二个整数分别赋给整型变量a、b,将它们按由小到大的顺序输出。6.编程:调用标准库函数sin(x)计算6800的正弦值(此题为选做)。
7.编程:键盘输入一个实数赋给变量x,计算 y=x*x*x+x*x+x 的值,分别输出y值、y值的整数部分和小数部分(此题为选做)。
8.编程:键盘输入四个整数分别赋给整型变量a、b、c、d,用三目运算方法将它们按由大到小的顺序输出(此题为选做)。
1.#include main(){float x,y,z,s,p,a;scanf(“x=%fy=%fz=%f”,&x,&y,&z);s=x+y+z;p=x*y*z;a=s/3;printf(“s=%f,p=%f,a=%f”,s,p,a);}
2.#include
main(){float r,s,v;printf(“input r”);scanf(“%f”,&r);s=4*3.14*r*r;v=4/3*3.14*r*r*r;printf(“s=%f,v=%f”,s,v);}
3.#include main(){int a,b;long c;char d,st[6];float e;scanf(“%d%d%ld%c%f%s”,&a,&b,&c,&d,&e,st);printf(“a=%dn,b=%dn,c=%dn,d=%cn,e=%fn,ch=%s”,a,b,c,d,e,st);}
4.#include main(){ char s1,s2[6];scanf(“%c%s”,&s1,s2);printf(“s1=%d,s2=%s”,s1,s2);}
5.#include main(){ int a,b;scanf(“a=%db=%d”,&a,&b);if(a
printf(“b=%da=%d”,b,a);}
6.#include #include main(){float a,b;scanf(“%f”,&a);b=sin(a);printf(“%f”,b);}
7.#include main()
{float x,y,b;int a;scanf(“%f”,&x);y=x*x*x+x*x+x;a=(int)y;b=y-a;printf(“%fn%dn%fn”,y,a,b);}
实验四 C分支结构程序设计
1.编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则原样输出;其它字符输出“Not letter!”。
2.编程:判断输入的正整数是否既是3又是5的整数倍。若是,输出Yes,否则输出No。3.编程:从键盘输入三个整数,分别赋给变量a,b,c,输出其中的最大值(要求不改变a、b、c的值)。
4.编程:用scanf输入任意两个数分别赋给变量a、b,若a大于等于b,则直接输出a、b,否则将a、b的值交换(即a的原值放入b中,b的原值放入a中)后再输出。
5.编程:输入整数a和b,若a+ b大于100,则输出a+ b百位以上的数字,否则输出两数之和。6.编程:从键盘输入三个整数,分别赋给变量a,b,c,请按从小到大的顺序依次输出a、b、c(要求不改变a、b、c的值)。
7.编程:从键盘输入三个整数,分别赋给变量a,b,c,请按从小到大的顺序依次将这三个数存放于a、b、c中,最后输出a、b、c。
8.编程:由系统生成一个10以内的随机整数,用户从键盘上输入一个10以内的整数,如果两者相等输出“OK”,否则输出“ERROR”。
注:随机数的生成必须包含头文件#include、#include,必须用初始化语句srand((unsigned)time(NULL));,表达式rand()%a+1的值为1~a内的随机整数 1.#include main()
{char x;scanf(“%c”,&x);if(x>='a'&&x
printf(“%c”,x);else if(x>='A'&&x
printf(“%c”,x+32);
else printf(“Not letter!”);}
2.#include main(){int x;scanf(“%d”,&x);if(x>0){ if(x%3==0&&x%5==0)
printf(“Yesn”);
else printf(“Non”);} else printf(“Error!”);}
3.#include main(){int a,b,c,max;scanf(“%d%d%d”,&a,&b,&c);max=a>b?a:b;max=max>c?max:c;printf(“a=%d,b=%d,c=%d,max=%d”,a,b,c,max);}
4.#include main(){float a,b;scanf(“%f%f”,&a,&b);if(a
b=a-b;
a=a-b;};printf(“a=%f,b=%fn”,a,b);} 5.#include main(){int a,b,t,r,s;scanf(“%d%d”,&a,&b);
s=a+b;r=a*a+b*b;t=r/100;if(r>100)printf(“%d”,t);else printf(“%d”,s);} 6.#include int main(){int a,b,c,d,max,min;scanf(“%d%d%d”,&a,&b,&c);if(a>=b){max=a;min=b;}
else {max=b;min=a;} if(c>=max)max=c;if(c
min=c;d=a+b+c-min-max;printf(“%d %d %dn”,min,d,max);} 7.#include main(){ int a, b, c, d;scanf(“%d%d%d”,&a,&b,&c);
if(a>=b){d = a;
a = b;
b = d;}
else if(b>=c){
d = b;
b = c;
c = d;} printf(“a=%d b=%d c=%d”,a,b,c);} 8.#include #include #include
main(){int a,b;srand((unsigned)time(NULL));b=rand()%10+1;scanf(“%d”,&a);printf(“a=%d,随机数b=%dn”,a,b);if(a==b)printf(“OK!n”);else printf(“ERROR!n”);} 实验五 C多分支结构程序设计* 1.编程:计算奖学金的值,已知奖学金与成绩s的关系为:
具体要求:
(1)用 if 语句实现分支结构的编程。
(2)s为整型,要求精确到小数点后二位。
(3)用scanf函数给s赋值,且输入前有相应提示。
(4)结果输出时采用以下形式:
成绩s=具体值,奖学金=具体值 2.设函数f(x)如下,求函数函数法f(x)的值。
具体要求:
(1)用条件表达式编程。
(2)用if语句编程。
(3)用scanf函数给自变量赋值,且输入前有相应提示。
(4)结果输出时采用以下形式:
x=具体值,f(x)=具体值
(5)给出你所使用的测试用例。
提示:
按C的语法规则,标识符由字母、数字、下划线组成,不能将f(x)作为变量名,本题中,函数名可起为 f 或 y 等。但作为非格式控制字符,f(x)完全可以出现在printf函数的双引号内。
3.编程:输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除。
(2)能被其中两数整除(指出是哪两个数)。
(3)能被其中一个数(指出是哪一个数)整除。
(4)不能被3,5,7任一个数整除。
4.编程:用switch 语句编写一个简单的计算器程序,输入格式为:data1 op data2。其中data1和data2为参加运算的两个数;op为运算符,取值只能是+、-、*、/。5.编程:计算你的出生日期是星期几。
(1)通过键盘输入你出生那一年的元旦是星期几
(2)通过键盘输入你的出生日期
(3)输出结果
1.#include main(){int s;float;printf(“Please input sn”);scanf(“%d”,&s);if(s100)printf(“ERROR!n”);else {if(s>=0&&s
=0;
else if(s>=80&&s
=100+s;
else if(s>=90&&s
=200+s*3/2;printf(“成绩s=%d,奖学金=%0.2fn”,s,);
} } 2.#include main(){float x;int f;printf(“Please input xn”);scanf(“%f”,&x);if(x==0)
f=0;else f=(x>0)?1:-1;printf(“x=%f,f(x)=%dn”,x,f);} 3.#include main(){int x,a,b,c;printf(“请输入一个整数x”);scanf(“%d”,&x);a=x%3;b=x%5;c=x%7;
if(a==0&&b==0&&c==0)
printf(“%d能同时被3,5,7整除n”,x);else if(a==0 && b==0)printf(“%d能被3,5整除n”,x);
else if(a==0 && c==0)printf(“%d能被3,7整除n”,x);
} 4.#include main(){char op;float d1,d2;printf(“请输入算式”);scanf(“%f%c%f”,&d1,&op,&d2);switch(op)
{case '+': printf(“%g+%g=%gn”,d1,d2,d1+d2);break;
case '-': printf(“%g-%g=%gn”,d1,d2,d1-d2);break;
case '*': printf(“%g*%g=%gn”,d1,d2,d1*d2);break;
case '/': printf(“%g/%g=%gn”,d1,d2,d1/d2);break;
else if(b==0 && c==0)printf(“%d能被5,7整除n”,x);
else if(a==0)printf(“%d能被3整除n”,x);
else if(b==0)printf(“%d能被5整除n”,x);
else if(c==0)printf(“%d能被7整除n”,x);
else printf(“%d不能被3,5,7任意一个数整除n”,x);
} } 5.#include main(){ int x,m,d;printf(“请输入你出生那年元旦的星期(1至7):n”);printf(“请输入你的出生日期(mm/dd): n”);scanf(“%d,%d,%d”,&x,&m,&d);switch((m*30+d)/7){case 0:printf(“你出生那天为星期%d”,x);break;case 1:printf(“你出生那天为星期%d”,x+1);break;case 2:printf(“你出生那天为星期%d”,x+2);break;case 3:printf(“你出生那天为星期%d”,x+3);break;case 4:printf(“你出生那天为星期%d”,x+4);break;case 5:printf(“你出生那天为星期%d”,x+5);break;case 6:printf(“你出生那天为星期%d”,x+6);break;} }
实验六 C循环结构程序设计
1.编程:输出200以内所有能被7整除的数。
2.编程:求出1 ~ 1000之间能被13整除的最大的那个数。3.编程:找出若干个非零数中的最小值m以及它们的平均值a。
要求:若干个数由键盘输入,每次输入一个赋给变量x,x为零时,结束输入。4.编程:求两个正整数m、n之间所有奇数之和x与偶数之和y。
要求:
(1)m、n的值由键盘输入。
(2)输入时,允许用户随意先输入大的或小的整数。
5.编程:计算函数y的值。要求键盘接收自变量x的值,若x的值不为零,计算函数y的值并输出,再从键盘接收下一个x的值,„„,直到x的值为零,显示“Thank You,Bye!”,尔后结束程序,已知函数y与自变量x的关系为:
6.编程:计算π的近似值,π的计算公式为:
要求:
(1)n值由键盘输入。
(2)分别输出当n 为10、100、1000时的计算结果。
(3)输出时要求每行显示一组n、π的值,每行形式如下: n=具体值,π = 具体值
7.我国现有人口13亿,设年增长率为1%,编写程序,计算多少年后增加到20亿。
8.求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯最少共有多少阶? 9.每个苹果0.8 元,第一天买2 个苹果,第二天开始,每天买前一天的2 倍,直至购买的苹果个数达到不超过100 的最大值。编程:求每天平均花多少钱?(此题为选做)
1.#include main()
{int i;for(i=1;i main(){int i,max=0;for(i=0;i
max=i;} printf(“max=%dn”,max);} 3.#include main(){int i;float x,m,s,a;scanf(“%f”,&x);
if(x!=0){m=x;s=x;} for(i=1;;i++){scanf(“%f”,&x);if(x==0)break;s=s+x;if(m>x)m=x;} a=s/i;printf(“最小值m=%f,平均值a=%f”,m,a);} 4.#include void main(){int i,m,n,t,x=0,y=0;scanf(“%d%d”,&m,&n);if(m>n){t=m;m=n;n=t;} for(i=m;i
x+=i;else
y+=i;
printf(“x=%dn”,x);printf(“y=%dn”,y);} 5.#include main(){ float x,y;printf(“input x:”);scanf(“%f”,&x);for(;x>=0;){ if(x>0&&x=100){ y=x*x-1;printf(“%f”,y);}
else {printf(“thank you bey!”);break;} scanf(“%f”,&x);} } 6.#include main(){ int n,i;double t,sum;printf(“请输入n的值n”);scanf(“%d”,&n);sum=2;i=1;t=2;while(i
t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1);
i=i+1;
} printf(“n=%d,π=%fn”,n,t);
} 7.#include main(){ double t=13,s=0;while(t main(){ int x=7;while(!(x%2==1&&x%3==2&&x%5==4&&x%6==5)){ x=x+7;}
printf(“%dn”,x);} 9.#include main(){float s=0;int n=1,p=0,d=0;do
{ d++;
n=n*2;
p=p+n;
} while(p+n*2
1.编程:输出100以内个位数为6且能被3整除的所有数。
2.编程:键盘输入6 位学生的5门课成绩,分别统计出每个学生的平均成绩。
3.编程:输入一个正整数,统计该数的各位数字中零的个数,并求各位数字中的最大者。4.编程:分别用do while、while、for三种循环结构求: 1!+2!+3!+...+n!,要求n的值由键盘输入。
5.编程:计算100至1000之间有多少个数其各位数字之和是5。
6.编程:从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,输出此数后退出;若未找到,输出“not exist”。
7.编程:输出1至100之间满足如下条件的数:各位数的乘积大于各位数的和。8.编程:将整数316表示为两个加数的和,使这两个加数分别能被13和11整除。
9.编程:打印出所有的“水仙花数”。所谓的“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为有153=1*1*1+5*5*5+3*3*3。10.编程:一条有10个车站的铁路线,共需要准备多少种车票?
1.#include main(){int i;for(i=1;i main(){int i,j,a[6][5];float s;for(i=0;i
{printf(“请输入第%d个学生的第%d门成绩”,i+1,j+1);scanf(“%d”,&a[i][j]);s=s+a[i][j];} s=s/5;printf(“第%d个学生平均成绩为%fn”,i+1,s);} } 3.#include main(){int x,i,max,t;i=0;max=0;scanf(“%d”,&x);do {t=x%10;if(t==0)++i;else if(max
printf(“i=%d,max=%d”,i,max);} 4.#include main(){int n,i,a,s=0;printf(“请输入n:”);scanf(“%d”,&n);a=1;for(i=1;i main(){int n,i=1,a=1,s=0;printf(“请输入n:”);scanf(“%d”,&n);while(i
s=s+a;i++;} print(“s=%d”,s);} #include main(){int n,i=1,a=1,s=0;printf(“请输入n:”);scanf(“%d”,&n);do {a=a*i;s=s+a;i++;} while(i
for(i=100;i main(){int x,i;printf(“请输入10个整数:”);for(i=1;i
{scanf(“%d”,&x);if(x%7==0)
{printf(“first number is %d”,x);break;} } if(i>10)printf(“not exist!”);} 7.#include main(){int n,k=1,s=0,m;
for(n=1;n
while(m>=1){k*=m%10;s+=m%10;
m=m/10;} if(k>s)
} printf(“%dn”,n);
} 8.#include main(){int i=0,j,k;do {i++;k=316-13*i;} while(k%11);j=k/11;printf(“316=13*%d+11*%dn”,i,j);} 9.#include main(){int i,j,k,n;
for(n=100;n
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)
printf(“%dn”,n);
} } 实验八 C程序控制结构综合应用
1.编程计算:
s=1+12+123+1234+12345+123456+1234567。
2.编程: 找出1至99之间的全部同构数。所谓同构数是这样一组数:它出现在其平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。
3.若用0至9之间不同的三个数构成一个三位数,编程统计共有多少种方法。4.编程:键盘输入一个不多于5位的正整数,要求:(此题为选做)(1)求它是几位数
(2)逆序打印出各位数字。如原数为123,输出则为321。5.编程:找出以下疑案的作案人(此题为选做)已知该案涉及6个嫌疑人A、B、C、D、E、F,并且:(1)A、B至少有一人作案。
(2)A、E、F这3人中至少有2人参与作案。(3)A、D不可能是同案犯。
(4)B、C或同时作案,或与本案无关。(5)C、D中有且仅有一人作案。
(6)如果D没有作案,则E也不可能参与作案。
6.编程:输出下列形式的杨辉三角形的前10行(此题为选做)1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 „„
1.#include main(){int s=0,i=1,t=0;
while(i main(){int i;for(i=1;i
if(i*i%10==i||i*i%100==i)
printf(“%dn”,i);} 3.#include main(){int i,j,k,count=0;
for(i=1;i
if(i==j)continue;else for(k=0;k
}
printf(“%dn”,count);
实验九 C的数组
1.编程实现:输入一个正整数n(1
例如:输入5,再输入三个数8、23、1、7、19,则输出为:19、7、1、23、8。
2.编程实现:输入10个正整数,将它们中的最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的10个数。
3.编程实现:已知二次等差数列的前4项为2,5,10,17,请定义一维整型数组存储该数列的前20项,并每5个数为一行输出该数列的前20项。
4.已知一组整型数据已按从小到大排列好,现任意输入一个整数,请按原来排序的规律将它插入到数组中(例如:原来的一组整数为1,3,5,8,9,若输入的整数是7,则最终的结果为: 1,3,5,7,8,9),请编程实现。
5.编程:将一个4×4的整型矩阵元素按副对角线(右上到左下)互换。
要求:
(1)键盘输入矩阵各元素的值。
(2)互换前,按矩阵形式输出矩阵。
(3)互换后,按矩阵形式输出矩阵。
6.求一个4×4的整数矩阵的副对角线(右上到左下)上所有奇数的和sum及偶数的平均值ave。
要求:结果保留2位小数
7.通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半角元素的值和它们之和。
8.定义一个实数型数组,将10个实数输入到数组中,编程实现任一块区间所有元素的平均值,即输入两整数m,n,计算出数组中第m个元素开始的后n个元素的平均值,包括第m个元素(若n值过大,即个数太多,超过数组的最后一个元素,则统计到最后一个元素)。
例如:数组元素为1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,输入3,5,则输出5.0。9.一个整型数组有10个元素,编写程序删除所有值为n的元素。如:数组中为1,3,2,4,2,7,9,0,2,5,n的值为2,删除后输出数组元素应该为1,3,4,7,9,0,5。(此题为选做)
10.定义两个N行N列的二维数组a、b,编写程序,将a数组最后一行放到b数组的第0列中,把a数组中的第0行放到b数组的最后一列中,b所指二维数组中其他元素的数据不变。(此题为选做)
11.试编程实现如下功能:先定义一个4行5列的数组(矩阵),调用库函数rand()随机产生20-50之间的整数给数组元素赋值,再将矩阵中第二列与第四列的元素互换。要求先输出原数组,再输出交换后的数组(rand函数的使用请参阅教材259页)。(此题为选做)
1.#include main(){ int a[10],n,i;scanf(“%d”,&n);for(i=n-1;i>=0;i--)scanf(“%d”,&a[i]);for(i=0;i main(){ int n,i,a[10],max,min,t,r,p;scanf(“%d”,&n);for(i=1;i
{ if(a[i]a[n]){ max=a[i];p=i;} } t=a[n],a[n]=max,a[p]=t;for(i=1;i
#include void main(){int a[21],i;for(i=1;i
{a[i]=i*i+1;
printf(“%d ”,a[i]);
if(i%5==0)
} } 4.#include main(){int a[10]={1,3,5,7,9,11,13,15,17},i,j,n;printf(“请输入1个整数”);scanf(“%d”,&n);for(i=0;in)
{for(j=9;j>i;j--)a[j]=a[j-1];
a[i]=n;
break;
} printf(“n”);
if(n>=a[8])a[9]=n;for(i=0;i main(){int a[4][4],i,j,t=0;float s1=0 ,s2=0,ave;for(i=0;i
{ for(j=0;j
{printf(“input 16 ints:”);scanf(“%d”,&a[i][j]);} } for(i=0;i=0;j--){ if(i+j==3){if(a[i][j]%2!=0){s1=s1+a[i][j];
} else {
t++;s2=s2+a[i][j];ave=s2/t;} } } } printf(“s=%0.2fnave=%0.2fn”,s1,ave);} 7.#include main(){ int i,j,k=1,s=0;int a[5][5];for(i=0;i
for(j=0;j
{
a[i][j]=k;
k++;
} } putchar(10);for(i=0;i
for(j=0;j
printf(“%dt”,a[i][j]);
printf(“n”);} putchar(10);for(i=0;i
for(j=0;j
printf(“%dt”,a[i][j]);
printf(“n”);
s=s+a[i][j];} printf(“s=%d”,s);} 实验十 C字符数组和字符串函数*
1.编写字符串拷贝程序,并要求拷贝过程中将字符串中的小写字母转换成大写字母。
2.从键盘输入两个字符串a和b,要求不使用库函数strcat,把串b的前5个字符连接到串a中;如果b中的长度小于5,则把b的所有元素都连接到a中。
3.输入一个以回车结束的字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数,然后输出该字符串。
4.编程: 输入一个字符串,输出该字符串中出现次数最多的字符以及出现的次数。5.编程: 键盘接收一个字符串(只含大、小写英文字母),将该字符串加密后输出。
加密规则为:若为小写字母则不变,若为大写字母则将其转换为小写后再后移一个字母,例如“A”应转换为“b”,“B”应转换为“c”,“Y”应转换为“z”,而“Z”应转换为“a”。
6.编程:输入一个以回车结束的字符串a(少于80个字符),再输入一个字符串b,统计并输出b在a中出现的次数,然后再输出这两个字符串。
7.编程:输入一个以回车结束的字符串(少于80个字符),将该字符串倒序存放后按顺序输出。
例如:如数组中开始时元素为“abcd”,程序执行后数组中为“dcba”,并输出“dcba” 8.编程: 实现对字符串的加密,要求从键盘输入一个字符串,输出加密之后的字符串。(此题为选做)
加密规则为:
对于串中第奇数个字符,若是字母,则把该字母变为它后面的字母(若为Z则变为A),不是字母则不变;
对于串中第偶数个字符,若是字母,则把该字母变为它前面的字母(若为A则变为Z),不是字母则不变;
大小写字母都遵循此规则。
例如:
若原字符串是:AbbaZG Ha-MnnK Yzx 加密字符串为:BaczAF Gb-Nmoj Xaw 9.编程:输入一行英文字符串,统计单词的个数(单词和单词以空格分隔)。(此题为选做)
1.#include #include main(){ char str1[40],str2[20];
int i,k;printf(“请输入第一个字符串n”);scanf(“%s”,str1);printf(“请输入第二个字符串n”);scanf(“%s”,str2);for(i=0;str1[i]!=' ';i++);for(k=0;str2[k]!=' ';k++){ str1[i]=str2[k];i++;} str1[i]=' ';for(i=0;str1[i]!=' ';i++){ if(str1[i]>='a' && str1[i]
#include “stdio.h” main(){char a[80],b[40],*q=a,*p=b;int i=0;printf(“字符串a:”);gets(a);printf(“字符串b:”);gets(b);while(*q++);q--;while(*p++)i++;p=b;if(i main(){char c[80],ch;int i,num=0;
printf(“请输入字符串及字符:”);gets(c);ch=getchar();for(i=0;c[i]!=' ';i++)if(c[i]==ch)num++;printf(“num(%c)=%dn”,ch,num);puts(c);} 4.#include#include #include main(){
char str[100],str_sort[100],c;
int i,j,len,m;
printf(“请输入字符串:”);gets(str);
strcpy(str_sort,str);
len=strlen(str_sort);
for(i=0;i
for(j=0;j
if(str_sort[j]>str_sort[j+1]){c=str_sort[j];
str_sort[j]=str_sort[j+1];
str_sort[j+1]=c;
} for(i=1,j=1,m=0;i
if(str_sort[i]!=str_sort[i-1])
{ if(j>m)
{
m=j;
c=str_sort[i-1];
}
j=1;
}
else
j++;
printf(“出现最多的是:%c %dn”,c,m);
getch();
} 5.#include main(){ char i;int c=0;int a=0,sum;scanf(“%c”,&i);while(i!='n')
}
7.{
}
{ if('a'
printf(“n”);} #include #include main(){char c[80],ch;int i,l;gets(c);l=strlen(c);for(i=0;i
{ch=c[i];c[i]=c[l-i-1];c[l-i-1]=ch;
} puts(c);}
实验十一 C排序算法* 1.编程实现:输入n(n
3.编程实现:键盘输入同寝室n位同学的姓名(用汉语拼音表示),将这n位同学的姓名按字母顺序排序后输出。(此题为选做)
1.#include void main(){ int n,c=1,i,j;int a[10];while(c){
}
printf(“请输入这%d个数:”,n);for(i=0;i1&&n
else printf(“ERROE!n”);
{
} for(i=0;i
}
} }
for(i=0;i
for(j=0;j
{
if(a[j]
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
scanf(“%d”,&a[i]);printf(“n”);} 2.#include #include int main(void)
{ char str1[500]={0},str2[256]={0};int i;gets(str1);for(i=0;str1[i];i++){ str2[str1[i]]=1;} for(i=0;i!=256;i++)if(str2[i]==1)printf(“%c”,i);putchar('n');return 0;}
实验十二 C函数的基本操作
1.编写函数:计算三角形的面积。已知三角形三条边长,公式为:
其中x、y、z为边长,c=(x+y+z)/2。
2.编写函数:用来判断一个整数是否满足“用4除余1,用5除余3,用7除余4”,满足则返回1,不满足返回0,然后编写main函数,通过调用该函数显示出200~500之间满足该条件的数。
3.编写函数isprime(),用来判断一个整数a是否为素数。再编写main函数,通过调用该函数打印出100~300之间所有的素数,要求一行打印10个。
4.编写函数:判断一个整数是否为水仙花数,并编写主程序调用该函数求出所有的水仙花数。
5.用迭代法求
。迭代公式为:
迭代到为止,为方程的近似解。
6.所谓完数就是它所有因子的和等于其自身自然数,如6=1+2+3,6就是一个完数。编写两个函数:函数factor(n)用来判断n是否是完数,函数PriFac(n)用来显示完数n的所有因子,在主函数中调用这两个函数,显示1~30000间的所有完数。
7.以下函数p的功能是用递归方法计算x的n阶勒让德多项式的值。已有调用语句p(n,x);请编写p函数。递归公式如下:(此题为选做)
float p(int n, int x){ }
1.#include #include int main(void){ double a, b, c, p, s;printf(“请输入a, b和c:”);scanf(“%lf%lf%lf”, &a, &b, &c);p =(a + b + c)/ 2;
s = sqrt(p *(pb)*(p-c));
printf(“此三角形的面积为:%lfn”, s);return 0;} 2.#include void fun(int m,int n){ while(m int isprime(int x){int y;
for(y=x-1;y>=1;y--){ if(x%y==0)
{return y;break;} } } main(){int i,j=0,m;for(i=100;i fun(int x)
{int a,b,c;
for(x=100;x
{ a=(x/100)%10;b=(x/10)%10;
c=x%10;
if(x==a*a*a+b*b*b+c*c*c)
printf(“%dn”,x);
} } main()
{int y;fun(y);} 5.#include #include void main(void)
{ double a, b, c, d, e;
printf(“Enter a number: ”);
scanf(“%lf”, &a);b = a;
e = pow(a, 1.0/3);
do
{
c = b * 2/3 + a /(3 * b * b);
d = c-b;
while((d = 0.00001));
printf(“The result is %lf.n”, e);} 6.b = c;
}
#include int factor(int n);void prifac(int n);int w[10],k;main(){
int m,n;
for(n=2;n
} int factor(int n){int s,i;k=-1;s=n;for(i=1;i
} if(s==0)return 1;else return 0;} void prifac(int n){int i;printf(“%d是完数n”,n);} 实验十三 C函数调用中的数据传递
1.编程实现:在主程序main()中输入2个整数,通过调用函数将两者的值互换(要求分别用地址传递方式、全局外部变量传递方式编程)。
2.编写函数:功能是删除字符串s中的所有数字字符。
3.编写函数:功能是返回字符串s中的指定字符c的出现次数。
4.在main函数中,定义一个含N个元素的数组,其中N是符号常量,然后编写下列各子函数完成相应的功能:
(1)编写函数sr:为该数组各元素赋值(要求调用随机函数为各数组元素赋值)。
(2)编写函数sc:打印该数组各元素,要求每行打印m个数,其中m作为形参传递。
(3)编写函数js:求该数组元素的最大值和最小值,最大值和最小值通过参数传递返回主调函数。
(4)编写函数px:实现对数组的排序。
各个函数编写完成后,请编写main函数,并在main中分别调用以上四个函数,以验证各子函数的功能。
1.#include
void swap(int *,int *);main(){ int a,b;printf(“input 2 number:a,bn”);scanf(“%d,%d”,&a,&b);swap(&a,&b);printf(“交换后:a=%d,b=%dn”,a,b);} void swap(int *p1,int *p2){ int t;t=*p1,*p1=*p2,*p2=t;} 2.#include int x,y;void Swap();void main(){ printf(“Input x and y:”);scanf(“%d,%d”, &x, &y);Swap(x,y);printf(“main:x =%d,y =%dn”,x,y);