C语言老师所给习题解答

2019-09-02 17:47

1

(本内容由洪文杰同学提供,在此表示感谢!) C语言上机题汇总

1.输入三角形两个边长及其夹角(角度值),求第三边边长和三角型面积。

#include #include float pi=3.141592; int main() {

float a,b,c,v,s;

scanf(\ c=sqrt(a*a+b*b-2*a*b*cos(v/180*pi));

s=a*b*sin(v/180*pi)/2; printf(\ return 0; }

2输入一个字符,若是小写字母,则转换成大写字母输出;若是大写字母,则转换成小写字母输出。

#include main() { char ch; printf(\scanf(\

}

if(ch>='a'&&ch<='z') printf(\else if(ch>='A'&&ch<='Z') printf(\else printf(\

扩展:编写已知三角形三边求面积的函数。 #include #include int main() {

float a,b,c,s,area;

printf(\依次输入a,b,c(空格识别一个数):\ scanf(\ if(a+b>c&&a-b

{p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(\三角形面积是:%f\\n\}

else printf(\这不是三角形\\n\}

3输入一个大写字母,输出字母表中它前面的字母和后面的字母。如果输入的字母为A或Z,则分别输出提示信息“没有前面的字母”或“没有后面的字母”。

#include void main() { char ch, c; bool flag= 1; while(flag) {

printf(\请输入一个大写字母:\\n\ scanf(\

if(ch > 'A' && ch < 'Z') printf(\ch-1, ch+1);

4编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息: 能同时被3、5、7整除。

能同时被3、5、7中的两个数整除,并输出这两个数。 只能被3、5、7中的一个数整除,输出该数。 不能被3、5、7中的任何一个数整除。

范例1 #include int main()

{ int m; }

else if(ch == 'A') printf(\没有前面的字母\\n\

else if(ch == 'Z') printf(\没有后面的字母\\n\

else if(ch == 'q') flag= 0; else

printf(\输入的为非法字符!\\n\ printf(\ }

2

scanf(\

if ((m/3=0)&&(m/5=0)&&(m/7=0)) printf(\能同时被3,5,7整除\

else if( (m/3=0)&&(m/5=0)&&(m/7!=0)) printf(\能被3和5整除,\

else if ((m/3=0)&&(m/7=0)&&(m/5!=0)) printf(\能被3和7整除,\

else if ((m/7=0)&&(m/5=0)&&(m/3!=0)) printf(\能被7和5整除,\

else if ((m/7=0)&&(m/5!=0)&&(m/3!=0)) 范例2

#include \main() { int x,y,z; scanf(\;

if (x%3==0 &&x%5==0&&x%7==0)printf(\能同时被3个数整除\; else if( (x%3==0&&x%5==0&&x%7!=0)printf(\

else if(x%7==0&&x%5==0&&x%3!=0) printf(\else if(x%7==0&&x%5==0&&x%5!=0))printf(\else if(x%3==0&&x%5!=0&&x%7!=0)printf(\else if(x%3!=0&&x%5==0&&x%7!=0)printf(\else if(x%3!=0&&x%5!=0&&x%7==0)printf(\

else if (x%3!=0&&x%5!=0&&x%7!=0)printf(\都不能被整除\}

printf(\能被7整除,\

else if ((m/7!=0)&&(m/5=0)&&(m/3!=0)) printf(\能被5整除,\

else if ((m/7!=0)&&(m/5!=0)&&(m/3=0)) printf(\能被3整除,\ else

printf(\不能被3,5,7任一个整除\ return 0; }

5已知正整数A>B>C且A+B+C<100,求满足

#include \main()

{int a,b,c,cout=0; for(c=1;c<100;c++)

for(b=c+1;b<100;b++) if(1.0/(a*a)+1.0/(b*b)==1.0/(c*c) )

111共有多少组,并输出满足条件的组合。 +=222ABC{

printf(\ &a,&b,&c ); cout++; }

printf(\}

6求1+111111++++++247111622的值,直到最后一项的值小于10。

-5-5扩展1:求1-1/2+1/4-1/7..... 的值,直到最后一项的值小于10。 #define PRECISION 0.00001 int main() {

float lastValue = 0.0f, totalValue=0.0f; int symbol=1, i = 1,j = 1; do{

lastValue = ((float)symbol) / i; i+=j; j++;

扩展2:输入一个数X,计算并输出下式S=X+X^2/2!+X^3/3!+X^4/4!........的值,直到最后一项的绝对值小于10的-5次方(保留两位小数)

#include #include//fabs() int main()

{ double x,s,a; int i;

scanf(\symbol *= -1; totalValue += lastValue; }

while(lastValue > PRECISION || -lastValue > PRECISION);

printf(\getch(); }

3

a=x; s=a; for(i=1;;i+=2) {

a*=x*x*(-1)/((i+1)*(i+2)); if(fabs(a)<1e-7) break;

7用迭代法求某数a的平方根,已知求平方根的迭代公式为:xn}

s+=a; }

printf(\ return 0;

1aa=(xn-1+)。取为迭代初值,2xn-12迭代的结束条件取

xn-xn-1£10-5。

x1=(x0+a/x0)/2; do {x0=x1; x1=(x0+a/x0)/2; }

while(fabs(x0-x1)>1e-6); printf(\,a,x1); } }

if(x%2!=1) so+=x; x++; }

printf(\ printf(\}

#include\#include\main() {float a,x0,x1;

printf(\ if(a<0)

printf(\ else {x0=a/2; #include main() {

int x=1,sj=0,so=0; while(x<=100) {

if(x%2==1) sj+=x;

8分别输出100以内(不包括100)所有偶数的和与所有奇数的和。

9利用嵌套循环输出以下图形(行与行之间无空行,列与列之间无空列):

# ## ### ####

#include int main() { int i,j,k;

for(j=1;j<=5-I;j++) printf(“”);

10使用循环找到并输出100以内的所有素数。

int i, j, n=100, m=1, temp=1; for(i=2;i

temp = 1; for(j=2;j=1;k--) printf(“#”); printf(“\\n”); } Return 0; }

4

if(i%j==0){ temp = 0; break; } }

if(temp==1){ printf(\

}

if(m>=5){ printf(\ m = 1; } m++; }

11利用循环找出并输出所有的“水仙花数”。“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。如153=13。 +53+33,所以153是“水仙花数”

C语言的\水仙花数\代码 main(){ int i,j,k; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) C语言的\水仙花数\代码 main(){

int ge,shi,bai,number;

for(number=100;number<1000;number++){ bai=number/100; shi=(number0)/10; ge=number; 范例三main(){ int i,x,y,z;

for(i=100;i<=999;i++){ x=i;/*个位*/ y=(i/10);/*十位*/

12输出斐波那契数列的前40项。斐波那契数列是个整数数列,其定义为:

z=(i/100);/*百位*/

if (x*x*x + y*y*y + z*z*z == i) printf(\} } e)

printf(\ getch();

if(number==bai*bai*bai+shi*shi*shi+ge*ge*gif( (i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k))) printf(\getch(); }

ì1fn=í?fn-1+fn-2范例一: #include int fun(int n) {

if(n == 1 || n == 2) return 1; else return fun(n-1) + fun(n-2); }

void main() 范例二: main() {

long fib[40] = {1,1};

}

n=1,n=2n>2{ int i;

for(i = 1; i <= 40; i++){ printf(\ }

int i;

for(i=2;i<40;i++) {

5

fib[i] = fib[i-1]+fib[i-2]; }

for(i=0;i<40;i++) {

}

printf(\ } return 0;

13输出100以内所有的“同构数”。所谓“同构数”一个正整数,它出现在其平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。

#include main() { int i; #include int main {

Int I,j,n,temp,a[10]; Scanf(“%d”,&n);

Printf(“ the original numbers:\\n”); For(i=0;i

15利用循环打印下列九九乘法表: 1*1= 1

2*1= 2 2*2= 4

3*1= 3 3*2= 6 3*3= 9

4*1= 4 4*2= 8 4*3=12 4*4=16

5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25

6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 #include int main() {

int i; int j;

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

16利用循环打印以下杨辉三角(要求打印7行):

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

printf(\ }

return 0; }

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

} }

If(a[j-1]>a[j]) {

Temp=a[j-1]>a[j];a[j-1]=a[j];a[j]=temp }

Printf(“\\n the sorted number is :\\n” ); For(i=0;j

Printf(“%d”,a[i]); Return 0;

for(i=1;i<=100;i++) if(i*i==i) printf(\

14指定一个正整数n,并输入n个整数,用冒泡法将它们由小到大顺序排列并输出。


C语言老师所给习题解答.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: