聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 安徽大学C语言实验平台作业答案汇总

安徽大学C语言实验平台作业答案汇总

时间:2019-01-29 01:59:43    下载该word文档

实验三 C基本数据类型及运算

1. 编程:根据需要定义相关变量,键盘输入10.020.65.0三个实数分别赋给相关三个变量,输出该3个变量的和s、乘积p和平均值a

     2. 编程:输入球的半径,计算球体表面积和球体积。

     3. 编程:定义6个变量,通过键盘将“10  10  40000  a  3.14  hello”这六个值分别赋给相应变量,然后在屏幕上输出变量的值(每行输出一个变量)。

     4. 编程:从键盘接收1个字符给变量s11个字符串(允许带有空格)给字符数组s2,输出字符变量s1ASCII码值及字符数组s2中的字符串。

     5. 编程:从键盘输入二个整数分别赋给整型变量ab,将它们按由小到大的顺序输出。

     6. 编程:调用标准库函数sinx)计算6800的正弦值(此题为选做)。

     7. 编程:键盘输入一个实数赋给变量x,计算 y=x*x*x+x*x+x 的值,分别输出y值、y值的整数部分和小数部分(此题为选做)。

     8. 编程:键盘输入四个整数分别赋给整型变量abcd,用三目运算方法将它们按由大到小的顺序输出(此题为选做)。

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=%d\n,b=%d\n,c=%d\n,d=%c\n,e=%f\n,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("a=%db=%d",a,b);

else

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("%f\n%d\n%f\n",y,a,b);

}

实验四 C分支结构程序设计

1. 编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则原样输出;其它字符输出“Not letter!”。

     2. 编程:判断输入的正整数是否既是3又是5的整数倍。若是,输出Yes,否则输出No

     3. 编程:从键盘输入三个整数,分别赋给变量abc,输出其中的最大值(要求不改变abc的值)。

     4. 编程:用scanf输入任意两个数分别赋给变量ab,若a大于等于b,则直接输出ab,否则将ab的值交换(即a的原值放入b中,b的原值放入a中)后再输出。

     5. 编程:输入整数ab,若a2+ b2大于100,则输出a2+ b2百位以上的数字,否则输出两数之和。

     6. 编程:从键盘输入三个整数,分别赋给变量abc,请按从小到大的顺序依次输出abc(要求不改变abc的值)。

     7. 编程:从键盘输入三个整数,分别赋给变量abc,请按从小到大的顺序依次将这三个数存放于abc中,最后输出abc

     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<='z')

printf("%c",x);

else if (x>='A'&&x<='Z')

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("Yes\n");

else printf("No\n");}

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

{a=a+b;

b=a-b;

a=a-b;};

printf("a=%f,b=%f\n",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)

min=c;

d=a+b+c-min-max;

printf("%d %d %d\n",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=%d\n",a,b);

if(a==b)

printf("OK!\n");

else printf("ERROR!\n");

}

实验五 C多分支结构程序设计*

1. 编程:计算奖学金ss的值,已知奖学金ss与成绩s的关系为:

                         

            具体要求:  
              1)用 if 语句实现分支结构的编程。
              2s为整型,ss要求精确到小数点后二位。
              3)用scanf函数给s赋值,且输入前有相应提示。
              4)结果输出时采用以下形式:
                   成绩s=具体值,奖学金ss=具体值

     2.  设函数f(x)如下,求函数函数法f(x)的值
                        

            具体要求:  
              1)用条件表达式编程。
              2)用if语句编程。
              3)用scanf函数给自变量赋值,且输入前有相应提示。
              4)结果输出时采用以下形式:
                   x=具体值,f(x)=具体值
              5)给出你所使用的测试用例。
            提示:
            C的语法规则,标识符由字母、数字、下划线组成,不能将f(x)作为变量名,本题中,函数名可起为 f y 等。但作为非格式控制字符,f(x)完全可以出现在printf函数的双引号内。

     3. 编程:输入一个整数,判断它能否被357整除,并输出以下信息之一:
              1)能同时被357整除。
              2)能被其中两数整除(指出是哪两个数)。
              3)能被其中一个数(指出是哪一个数)整除。
              4)不能被357任一个数整除。

     4. 编程:用switch 语句编写一个简单的计算器程序,输入格式为:data1 op data2。其中data1data2为参加运算的两个数;op为运算符,取值只能是+-*/

     5. 编程:计算你的出生日期是星期几。
              1)通过键盘输入你出生那一年的元旦是星期几
              2)通过键盘输入你的出生日期
              3)输出结果

1.

#include

main()

{int s; float ss;

printf("Please input s\n");

scanf("%d",&s);

if(s<0||s>100)

printf("ERROR!\n");

else {if(s>=0&&s<80)

ss=0;

else if(s>=80&&s<90)

ss=100+s;

else if(s>=90&&s<=100)

ss=200+s*3/2;

printf("成绩s=%d,奖学金ss=%0.2f\n",s,ss);

}

}

2.

#include

main()

{float x;int f;

printf("Please input x\n");

scanf("%f",&x);

if(x==0)

f=0;

else f=(x>0)?1:-1;

printf("x=%f,f(x)=%d\n",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);

else if(b==0 && c==0) printf("%d能被57整除\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);

}

4.

#include

main()

{char op;

float d1,d2;

printf("请输入算式");

scanf("%f%c%f",&d1,&op,&d2);

switch(op)

{case '+': printf("%g+%g=%g\n",d1,d2,d1+d2);break;

case '-': printf("%g-%g=%g\n",d1,d2,d1-d2);break;

case '*': printf("%g*%g=%g\n",d1,d2,d1*d2);break;

case '/': printf("%g/%g=%g\n",d1,d2,d1/d2);break;

}

}

5.

#include

main()

{

int x,m,d;

printf("请输入你出生那年元旦的星期(17):\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
          要求:若干个数由键盘输入,每次输入一个赋给变量xx为零时,结束输入。

       4. 编程:求两个正整数mn之间所有奇数之和x与偶数之和y
          要求:  
              1mn的值由键盘输入。
              2)输入时,允许用户随意先输入大的或小的整数。

       5. 编程:计算函数y的值。要求键盘接收自变量x的值,若x的值不为零,计算函数y的值并输出,再从键盘接收下一个x的值,……,直到x的值为零,显示“Thank YouBye!”,尔后结束程序,已知函数y与自变量x的关系为:

                         

       6. 编程:计算π的近似值,π的计算公式为

                          

          要求:  
              1n值由键盘输入。
              2)分别输出当n 101001000时的计算结果。
              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<=200;i++)

{if(i%7!=0) continue;

printf("%d ",i);

}

}

2.

#include

main()

{int i,max=0;

for(i=0;i<=1000;i++)

{if(i%13!=0) continue;

if (max

max=i;

}

printf("max=%d\n",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<=n;i++)

if(i%2)

x+=i;

else

y+=i;

printf("x=%d\n",x);

printf("y=%d\n",y);

}

5.

#include

main()

{

float x,y;

printf("input x:");

scanf("%f",&x);

for (;x>=0;)

{

if(x>0&&x<100)

{

y=3*x+1;

printf("%f",y);

}

else if(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,π=%f\n",n,t);

}

7.

#include

main()

{

double t=13,s=0;

while(t<=20)

{

t=t*(1+0.01);

s++;

}

printf("需要经过%lf ",s);

}

8.

#include

main()

{

int x=7;

while( !(x%2==1&&x%3==2&&x%5==4&&x%6==5))

{

x=x+7;

}

printf("%d\n",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<=100);

s=p*0.8/d;

printf("每天平均花%g元钱!\n",s);

}

实验七 C多重循环结构程序设计

1. 编程:输出100以内个位数为6且能被3整除的所有数。

     2. 编程:键盘输入6 位学生的5门课成绩,分别统计出每个学生的平均成绩。

     3. 编程:输入一个正整数,统计该数的各位数字中零的个数,并求各位数字中的最大者。

     4. 编程:分别用do whilewhilefor三种循环结构求: 1!+2!+3!+...+n! ,要求n的值由键盘输入。

     5. 编程:计算1001000之间有多少个数其各位数字之和是5

     6. 编程:从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,输出此数后退出;若未找到,输出“not exist”。

     7. 编程:输出1100之间满足如下条件的数:各位数的乘积大于各位数的和。

     8. 编程:将整数316表示为两个加数的和,使这两个加数分别能被1311整除。

     9. 编程:打印出所有的"水仙花数"。所谓的"水仙花数"是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个"水仙花数",因为有153=1*1*1+5*5*5+3*3*3

    10. 编程:一条有10个车站的铁路线,共需要准备多少种车票?

1.

#include

main()

{int i;

for(i=1;i<=100;i++)

{if(i%10==6&&i%3==0)

printf("%d ",i);

}

}

2.

#include

main()

{int i,j,a[6][5];float s;

for(i=0;i<6;i++)

{s=0;

for(j=0;j<5;j++)

{printf("请输入第%d个学生的第%d门成绩",i+1,j+1);

scanf("%d",&a[i][j]);

s=s+a[i][j];

}

s=s/5;

printf("%d个学生平均成绩为%f\n",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

x=x/10;

}

while(x);

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<=n;i++)

{a=a*i;

s=s+a;

}

printf("s=%d\n",s);

}

#include

main()

{int n,i=1,a=1,s=0;

printf("请输入n:");

scanf("%d",&n);

while(i<=n)

{a=a*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<=n);

printf("s=%d",s);

}

5.

void main()

{

int i,s,k,count=0;

for(i=100;i<1000;i++)

{

s=0;

k=i;

while(k)

{

s=s+k%10;

k=k/10;

}

if(s!=5)

continue;

else

count++;

}

printf("%d\n",count);

}

6.

#include

main()

{int x,i;

printf("请输入10个整数:");

for(i=1;i<=10;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<=100;n++)

{k=1;s=0;m=n;

while (m>=1)

{k*=m%10;

s+=m%10;

m=m/10 ;

}

if(k>s)

printf("%d\n",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*%d\n",i,j);

}

9.

#include

main()

{int i,j,k,n;

for(n=100;n<1000;n++)

{ i=n/100;

j=(n-i*100)/10;

k=n%10;

if(i*i*i+j*j*j+k*k*k==n)

printf("%d\n",n);

}

}

实验八 C程序控制结构综合应用

1. 编程计算:
        s=1+12+123+1234+12345+123456+1234567

     2. 编程: 找出199之间的全部同构数。所谓同构数是这样一组数:它出现在其平方数的右边。例如:525右边的数,25625右边的数,525都是同构数。

     3. 若用09之间不同的三个数构成一个三位数,编程统计共有多少种方法。

     4. 编程:键盘输入一个不多于5位的正整数,要求:(此题为选做)
         (1) 求它是几位数
         (2) 逆序打印出各位数字。如原数为123,输出则为321

     5. 编程:找出以下疑案的作案人(此题为选做)
        已知该案涉及6个嫌疑人ABCDEF,并且:
         (1) AB至少有一人作案。
         (2) AEF3人中至少有2人参与作案。
         (3) AD不可能是同案犯。
         (4) BC或同时作案,或与本案无关。
         (5) CD中有且仅有一人作案。
         (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<10)

{t=t*10+i;s+=t;i++;

}

printf("s=%d\n",s);

}

2.

#include

main()

{int i;

for(i=1;i<=99;i++)

if(i*i%10==i||i*i%100==i)

printf("%d\n",i);

}

3.

#include

main()

{int i,j,k,count=0;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

if(i==j) continue;

else for(k=0;k<=9;k++)

if(k!=i&&k!=j) count++;

printf("%d\n",count);

}

实验九 C的数组

1. 编程实现:输入一个正整数n110),再输入n个整数,把这些数逆序存放到数组中再按顺序输出。
          例如:输入5,再输入三个数8231719,则输出为:1971238

       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的二维数组a125的自然数,然后输出该数组的左下半角元素的值和它们之和。

       8. 定义一个实数型数组,将10个实数输入到数组中,编程实现任一块区间所有元素的平均值,即输入两整数mn,计算出数组中第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,90,2,5n的值为2,删除后输出数组元素应该为1,3,4,7,9,0,5(此题为选做)

      10. 定义两个NN列的二维数组ab,编写程序,将a数组最后一行放到b数组的第0列中,把a数组中的第0行放到b数组的最后一列中,b所指二维数组中其他元素的数据不变。(此题为选做)

      11. 试编程实现如下功能:先定义一个45列的数组(矩阵),调用库函数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

printf("\n");

}

2.

#include

main()

{

int n,i,a[10],max,min,t,r,p;

scanf("%d",&n);

for (i=1;i<=n;i++)

scanf("%d",&a[i]);

min=a[1];

for (i=1;i<=n;i++)

{

if (a[i]

{

min=a[i];

r=i;

}

}

t=a[1],a[1]=min,a[r]=t;

max=a[n];

for (i=1;i<=n;i++)

{

if (a[i]>a[n])

{

max=a[i];

p=i;

}

}

t=a[n],a[n]=max,a[p]=t;

for (i=1;i<=n;i++)

printf("%d",&a[i]);

}

3.

#include

void main()

{int a[21],i;

for(i=1;i<=20;i++)

{a[i]=i*i+1;

printf("%d ",a[i]);

if(i%5==0)

printf("\n");

}

}

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;i<9;i++)

if(a[i]>n)

{for(j=9;j>i;j--)a[j]=a[j-1];

a[i]=n;

break;

}

if(n>=a[8])a[9]=n;

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n ");

}

6.

#include

main()

{int a[4][4],i,j,t=0;

float s1=0 ,s2=0,ave;

for(i=0;i<=3;i++)

{ for(j=0;j<=3;j++)

{printf("input 16 ints:");

scanf("%d",&a[i][j]);

}

}

for(i=0;i<=3;i++)

{

for(j=3;j>=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.2f\nave=%0.2f\n",s1,ave);

}

7.

#include

main()

{

int i,j,k=1,s=0;

int a[5][5];

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

{

a[i][j]=k;

k++;

}

}

putchar(10);

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%d\t",a[i][j]);

printf("\n");

}

putchar(10);

for(i=0;i<5;i++)

{

for(j=0;j<=i;j++)

printf("%d\t",a[i][j]);

printf("\n");

s=s+a[i][j];

}

printf("s=%d",s);

}

实验十 C字符数组和字符串函数*

1. 编写字符串拷贝程序,并要求拷贝过程中将字符串中的小写字母转换成大写字母。

       2. 从键盘输入两个字符串ab,要求不使用库函数strcat,把串b的前5个字符连接到串a中;如果b中的长度小于5,则把b的所有元素都连接到a中。

       3. 输入一个以回车结束的字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数,然后输出该字符串。

       4. 编程: 输入一个字符串,输出该字符串中出现次数最多的字符以及出现的次数。

       5. 编程: 键盘接收一个字符串(只含大、小写英文字母),将该字符串加密后输出。
          加密规则为:若为小写字母则不变,若为大写字母则将其转换为小写后再后移一个字母,例如“A”应转换为“b”,“B”应转换为“c”,“Y”应转换为“z”,而“Z”应转换为“a”。

       6. 编程:输入一个以回车结束的字符串a(少于80个字符),再输入一个字符串b,统计并输出ba中出现的次数,然后再输出这两个字符串。  

       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]!='\0';i++);

for(k=0;str2[k]!='\0';k++)

{

str1[i]=str2[k];

i++;

}

str1[i]='\0';

for(i=0;str1[i]!='\0';i++)

{

if(str1[i]>='a' && str1[i]<='z')

{

str1[i]=str1[i]-32;

}

}

printf("%s\n",str1);

}

2.

#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<5)

while(i--) *q++=*p++;

else

for(i=0;i<5;i++) *q++=b[i];

*q='\0';

puts(a);

}

3.

#include

main()

{char c[80],ch;

int i,num=0;

printf("请输入字符串及字符:");

gets(c);

ch=getchar();

for(i=0;c[i]!='\0';i++)

if(c[i]==ch) num++;

printf("num(%c)=%d\n",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 %d\n",c,m);

getch();

}

5.

#include

main()

{ char i; int c=0; int a=0,sum;

scanf("%c",&i);

while(i!='\n')

{

{

if('a'<=i&&i<='z')printf("%c ",i);

if('A'<=i&&i<='Y')i=i+33,printf("%c ",i);

}

if(i=='Z')i=i+32-25,printf("%c ",i);

scanf("%c",&i);

}

printf("\n");

}

7.

#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. 编程实现:输入nn<10)个整数,按从大到小的顺序对其排序并输出。

       2. 编程实现:输入一个字符串,按字符从小到大的顺序对其排序输出。

       3. 编程实现:键盘输入同寝室n位同学的姓名(用汉语拼音表示),将这n位同学的姓名按字母顺序排序后输出。(此题为选做)

1.

#include

void main ()

{ int n,c=1,i,j;

int a[10];

while(c)

{

printf("请输入n\n");

scanf("%d",&n);

if(n>1&&n<=10)c=0;

else printf("ERROE!\n");

}

printf("请输入这%d个数:",n);

for( i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i

{

for( j=0;j

{

if(a[j]

{ c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

for(i=0;i

printf("%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. 编写函数:计算三角形的面积。已知三角形三条边长,公式为:
                
          其中xyz为边长,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. 编写函数:判断一个整数是否为水仙花数,并编写主程序调用该函数求出所有的水仙花数。

       6. 所谓完数就是它所有因子的和等于其自身自然数,如6=1+2+36就是一个完数。编写两个函数:函数factor(n)用来判断n是否是完数,函数PriFac(n)用来显示完数n的所有因子,在主函数中调用这两个函数,显示130000间的所有完数。

       7. 以下函数p的功能是用递归方法计算xn阶勒让德多项式的值。已有调用语句pnx);请编写p函数。递归公式如下:(此题为选做)

                 

                 float p(int n, int x)
                 {

                 }

      

1.

#include

#include

int main(void)

{ double a, b, c, p, s;

printf("请输入a, bc");

scanf("%lf%lf%lf", &a, &b, &c);

p = (a + b + c) / 2;

s = sqrt(p * (p - a) * (p - b) * (p -c));

printf("此三角形的面积为:%lf\n", s);

return 0;

}

2.

#include

void fun(int m,int n)

{

while(m<=n)

{

if(m%4==1&&m%5==3&&m%7==4)

{printf("%4d ",m);

m++;

}

}

void main()

{

fun(200,500);

}

3.

#include

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<=300;i++)

{m=isprime(i);

if(m==1)

{printf("%5d ",i);

j++;

if(j%10==0)

printf("\n");

}

}

}

4.

#include

fun(int x)

{int a,b,c;

for(x=100;x<1000;x++)

{ a=(x/100)%10;

b=(x/10)%10;

c=x%10;

if( x==a*a*a+b*b*b+c*c*c)

printf("%d\n",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; b = c; }

while((d <= -0.00001) || (d >= 0.00001));

printf("The result is %lf.\n", e); }

6.

#include

int factor(int n);

void prifac(int n);

int w[10],k;

main()

{

int m,n;

for(n=2;n<=3000;n++)

{m=factor(n);

if(m==1)prifac(n);

}

}

int factor(int n)

{int s,i;

k=-1;

s=n;

for(i=1;i

{if(n%i==0)

{k++;

s=s-i;

w[k]=1;

}

}

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,b\n");

scanf("%d,%d",&a,&b);

swap(&a,&b);

printf("交换后:a=%d,b=%d\n",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 =%d\n",x,y);

}

void Swap()

{

int temp;

temp=x;

x=y;

y=temp;

return;

}

3.

#include

void fun(char c[80], char x[1])

{int i = 0; int bit = 0;

for(i = 0; c[i]; i++)

{ if(c[i] !=x[0] )

{ c[bit] = c[i];

bit++;

}

}

c[bit]='\0';

}

void main()

{char c[80];char a[1];

printf("请输入一串字符:");

scanf("%s",&c);

printf("请输入要删除的数:");

scanf("%s",&a);

fun(c,a);

printf("%s\n",&c);

}

实验十五 C的指针

1. 用指针方法,编写一个函数,求矩阵主对角线所有偶数元素之和Sum

       2. 编程:用字符指针实现函数strcat(s,t),将字符串t复制到字符串s的未端,并且返回字符串s的首地址。

       3. 用指针编程:输入一个字符串,计算该字符串的长度,并统计该串中所含小写字母、大写字母和其他字符的个数。

       4. 用指针编程: 将字符串a赋给一个字符数组,然后从第一个字母开始间隔地输出该串。例如,输入的是abcdefghijkl,则输出为acegik

       5. 用指针编程:有一个数列,含有20个整数,编写函数,要求能够对从指定位置开始的n个数按相反顺序重新排列,并在main中输出新的数列。
          例如,原数列为:
                    12345678910
          若要求对从3个数开始的5个数进行逆序处理,则处理后的新数列为:
                    12765438910

       6. 用指针编程:输入一个4×5的二维整型数组,输出其中最大值、最小值以及它们所在行和列的下标。

       7. 用指针编程:从键盘输入15个整数存入一维数组,按逆序存放后再输出。

1.

#include

main()

{int a[4][4]={1,2,3,4,2,3,4,5,3,4,6,6,4,5,6,8},*p[4],i,j,sum=0;

for(i=0;i<4;i++)

p[i]=&a[i];

for(i=0;i<4;i++)

{if (*(p[i]+i)%2==0)

sum+=*(p[i]+i);

}

printf("%d\n",sum);

}

2.

#include

#include

int main()

{ char stra[20];

char strb[20];

char *str1=stra;

char *str2=strb;

gets(str1);

gets(str2);

strcat(str1,str2);

puts(str1);

return 0;

}

3.

#include

main()

{char a[100],*p=a;

int x=0,y=0,z=0,n=0;

gets(a);

while(*p!='\0')

{

if(*p>='a'&&*p<='z')

x++;

else if(*p>='A'&&*p<='Z')

y++;

else

z++;

p++;

n++;}

printf("小写=%d,大写=%d,其他=%d,长度=%d\n",x,y,z,n);

}

4.

#include

#include

main()

{char a[100],b[100],*p=a,*q=b; int i=0;

gets(a);

i=strlen(a);

while(p

{*q=*p;

p=p+2;

q++;

}

*q='\0';

puts(b);

}

5.

#include

void invert(int *A, int pos, int n)

{ int i; int *p,t;

p=A+pos;

for(i=0;i

{ t=*(p+i);

*(p+i)=*(p+n-1-i);

*(p+n-1-i)=t;

}

}

void main()

{ int i,x,y; int a[20];

printf("请输入20个数:\n");

for(i=0;i<20;i++)

{

scanf("%d",(a+i));

}

printf("从第x个数开始,对后面的y个数进行从小到大排序,输入xy:\n");

scanf("%d,%d",&x,&y);

printf("原始数列是:\n");

for(i=0;i<20;i++)

{

printf("%d ",*(a+i));

}

invert(a,x,y);

printf("排序后的数列为:\n");

for(i=0;i<20;i++)

{ printf("%d ",*(a+i));

}

}

6.

#include

main()

{int i,j,a[4][5],*p=*a,min,max,e,b,c,d;

for(i=0;i<4;i++)

for(j=0;j<5;j++)

{scanf("%d",p);

if(i==0&&j==0)

{max=*p;

min=*p;

e=0;

b=0;

c=0;

d=0;

}

if(max<*p)

{ max=*p;

c=i;

d=j;

}

if(min>*p)

{ min=*p;

e=i;

b=j;

}

p++;

}

printf("最大值为:%d,行标:%d,列标:%d\n",max,c,d);

printf("最小值为:%d,行标:%d,列标:%d\n",min,e,b);

}

7.

#include

main()

{int a[15],*p[15],t,i;

for(i=0;i<15;i++)

scanf("%d",&a[i]);

for (i=0;i<15;i++)

p[i]=&a[i];

for (i=0;i<15/2;i++)

{t=*p[i];*p[i]=*p[14-i];*p[14-i]=t;}

for(i=0;i<15;i++)

printf("%d,",a[i]);

}

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服