教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

C语言程序设计实验与习题答案(2)

来源:网络收集 时间:2026-08-03
导读: void main() { int i,j; int s; for(i=1;i=999; i++) { s=1; ★ //s=0; for(j=1;ji-1;j++)★ //for(j=1;j=i-1;j++) {if(i/j==0 ) s=s+j; } ★ //i%j if(s=i)printf(%5d,i); ★ //s==i } } 重庆大学出版社 4.设计性

void main()

{ int i,j;

int s;

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

{ s=1; ★ //s=0;

for(j=1;j<i-1;j++)★ //for(j=1;j<=i-1;j++)

{if(i/j==0 ) s=s+j; } ★ //i%j

if(s=i)printf("%5d",i); ★ //s==i

}

}

重庆大学出版社

4.设计性实验

main()

{ int i,j,k,n=0; /*i,j,k分别代表三位整数的百位,十位,个位.n代表个数*/ for(i=1;i<=9;i++)

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

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

if(i*i*i+j*j*j+k*k*k==1099) /*在所有组合中找出满足指定条件的*/ {

printf("%4d",100*i+10*j+k);

n++;

if(n%5==0) printf("\n"); /*表示每行输出5个数*/

}

}

#include<stdio.h>

#include<string.h>

main()

{

int i,j,k;

for(i=1;i<=4;i++) /*上三角形有4行,每循环1次输出1行*/

{

for(k=1;k<8-((2*i-1)/2);k++) /*该循环输出每行的空格.8用于调节偏离位置,可换成别的数(>=8)*/

printf(" ");

for(j=1;j<=2*i-1;j++) /*该循环输出每行的’*’字符*/

printf("*");

putchar(’\n’); /*换行*/

}

for(i=3;i>=1;i--) /*下面为倒三角形,有3行*/

{

for(k=1;k<8-((2*i-1)/2);k++)

printf(" ");

for(j=1;j<=2*i-1;j++)

printf("*");

putchar(’\n’);

}

}

重庆大学出版社

sy63.c

main( )

{ int n=1,score,t;

scanf("%d",&score);

while (score>=0&&n<=5)

{ n++;

t=0;

while(score!=0)

{

t=t+(score%10)*(score%10);

score=score/10;

}

if(t==108)

printf("%d",score);

scanf("%d",&score);

}

}

#include "math.h"

main()

{

float x0,x1,x2,fx0,fx1,fx2; /*x1,x2分别表示每次区间的左右端点,x0代表区间的中间点,fx0,fx1,fx2代表相应点的函数值*/

do

{printf("please input x1&x2:");

scanf("%f,%f",&x1,&x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}while(fx1*fx2>0); /*该循环指定有根的区间*/

do

{

x0=(x1+x2)/2;

重庆大学出版社

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fx1)<0) /*丢掉右区间*/

{

x2=x0;

fx2=fx0;

}

else /*丢掉左区间*/

{

x1=x0;

fx1=fx0;

}

}while(fabs(fx0)>1e-5); /*该循环实现二分法求根 */

printf("root x=%f",x0);

}

2)程序填空

(1)

#include <stdio.h>

void main()

{

int m,n,num1,num2,temp;

printf("Input two positive integer:\n");

scanf("%d,%d",&num1,__&num2_______);

if(num1<num2)

{temp=num1; num1=num2; num2=__temp_______;}

m=num1;

n=num2;

while(n!=0)

{ temp=__m%n__________;

m=n;

n=temp;

}

printf("The grestest common divisor is %d\n",m);

printf("The lowest common multiple is %d\n",num1*num2/__m____); }

重庆大学出版社

(2)下面程序是计算表达式1+(1+2)+(1+2+3)+

+(1+2+3+ +10)和。

#include<stdio.h>

void main()

{int sum,i,j,t;

sum= ① ;

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

{t=0;

for(j=1;j<= ②;j++)

t=t+j;

sum= ③ ;

}

printf("1+(1+2)+(1+2+3)+ +(1+2+3+ +10)=%d\n",sum);

}

①0 ②i ③ sum+t

3.程序改错

(1)下面的程序是求1~100之间的素数,并将所有素数按每行10个输出。

#include <stdio.h>

#define <math.h>★ //#include<stdio.h> void main()

{ int i,m,k,n; ★ //int i,m,k,n=0; for(m=1;m<=100;m=m+2)

{

if(n/10==0) ★ //if(n%10==0)

printf("\n");

k=1;

for(i=2;i<=sqrt(m);i++)

重庆大学出版社

if(m%i!=0) ★ //if(m%i==0)

{ k=0;break;}

if(k==1)

{printf("%3d ",m);n=n+1;}

}

printf("\n");

}

(2)下面程序是求表达式1-1/2+1/3-1/4+1/5- -1/100的值,结果保留小数后4位。

#include<stdio.h>

void main()

{int i;

float s;

i=0; ★ //i=1;

s=1; ★ //s=0;

while(i<100)

{ if(i%2==0)

s=s-1/i; ★ //s=s-1.0/i;

else

s=s+1/i; ★ //s=s+1.0/i

i=i+1;

}

printf("1-1/2+1/3-1/4+ -1/100=%10.3f\n",s);

}

4.设计性实验

(1)编程输出以下图形。

#include<stdio.h>

void main()

{

重庆大学出版社

int i,j,k;

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

{

for(k=1;k<=20-(2*i-1)/2;k++)

printf(" ");

for(j=1;j<=2*i-1;j++)

printf("%d",i);

printf("\n");

}

}

(2)编写一个程序输出所有5位数字的回文。

方法一:

#include <stdio.h>

void main()

{

long x,a,t; //x:原5位整数,a:用来暂存x,t:把a反序后的数

int i,num=0; //i:表示原5位数的某一位,num:回文数的个数

for(x=10000;x<=99999;x++) //每次取出1个5位整数

{

a=x; //把取出的5位整数保存到a

t=0; //t用来存放反序后的数

while(a>0)

{ i=a%10; //取出当前数的最后一位到i

t=t*10+i; //把取出的i组装到t

a=a/10;

}

重庆大学出版社

if(x==t) //原来的5位整数等于反序后的数t

{printf("%ld,",x); num++;}

if(num%10==0) printf("\n"); //每行输出10个数

}

}

方法二:

/*求5位整数中所有回文*/

#include <stdio.h>

void main()

{

long int n,m,t=0;

for(n=10000;n<=99999;n++)

{

if(hw(n)==1)

{ printf("%6l …… 此处隐藏:2138字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言程序设计实验与习题答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/128452.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)