资讯详情

简单的不能再简单2

C课后练习7语言程序设计教程(第三版).2

从小到大排序10个整数。

#include<stdio.h> int main() {  int i,j,t,a[10];  for(i=0;i<10;i  )  {   scanf("%d",&a[i]);  }  for(i=0;i<9;i  )  {   for(j=i 1;j<10;j  )   {    if(a[j]<a[i])    {     t=a[i];     a[i]=a[j];     a[j]=t;    }   }  }  for(i=0;i<10;i  )  {   printf("%d\n",a[i]);  }  return 0;  } 

P12. C课后练习7语言程序设计教程(第三版).3

求一个3×矩阵对角线元素之和。

#include<stdio.h> int main() {  int a[3][3];  int sum1=0,sum2=0;  int i,j;  for(i=0;i<3;i  ){   for(j=0;j<3;j  ){    scanf("%d", &a[i][j]);    if(i==j){     sum1 =a[i][j];    }   }  } j=2;  for(i=0;i<=2;i  ){    sum2 =a[i][j];    j--;   }  printf("%d %d", sum1, sum2);    return 0; }

P13. C课后练习7语言程序设计教程(第三版).5

输入10个数字,然后逆序输出。

#include<stdio.h> int main() {  int a[10];  int i,m,n;  for(i=0;i<10;i  ){   scanf("%d", &a[i]);  }  i--;  for(i;i>-1;i--){   printf("%d\n", a[i]);  }  return 0;  }  

P14. C课后习题8.1

写两个函数hcf和lcd,要求两个整数的最大公约数和最小公倍数,用主函数调用两个函数,输出结果由键盘输入两个整数。

#include <stdio.h> int hc(int a,int b) {   if(a==b)   {    return a;   }   else if(a>b)   {    return hc(a-b,b);    }   else   {    return hc(b-a,a);   }   }  int lcd(int a,int b) {  int i=1;  while((a*i)%b!=0)  {   i  ;   }  return i*a;  } int main() {  int a,b;  scanf("%d %d",&a,&b);  int i=hc(a,b);  int j=lcd(a,b);  printf("%d %d",i,j);  return 0;  }

P15. C课后习题8.2

求方程ax^2 bx c=0根,用三个函数gz,ez和sz分别求当b^2-4ac大于0,等于0和小于0,并输出结果。输入主函数a、b、c值。(输出保留3位小数)

#include<stdio.h> #include<math.h> float x1, x2, disc, p, q; void gz(float a, float b) {  float m = sqrt(disc);  x1 = (-b   sqrt(disc)) / (2 * a);  x2 = (-b - sqrt(disc)) / (2 * a); }  void ez(float a, float b) {  x1 = x2 = (-b) / (2 * a); }  void sz(float a, float b) {  p = -b / (2 * a);  q = sqrt(-disc) / (2 * a); }  int main() {  int a, b, c;  scanf("%d %d %d", &a, &b, &c);  disc = b*b - 4 * a*c;   if (disc > 0)  {   gz(a, b);   printf("x1=%.3f    x2=%.3f\n", x1, x2);  }  else if (disc == 0)  {   ez(a, b);   printf("x1=%.3f    x2=%.3f\n", x1, x2);  }  else  {   sz(a, b);   printf("x1=%.3f %.3fi x2=%.3f-%.3fi\n", p, q, p, q);  }  return 0; }

P16. C课后习题8.3

写一个判断素数的函数prim,在主函数中输入整数,输出是否为素数。

#include<stdio.h> int prime(int a); int main() {  int n,i;  scanf("%d",&n);  if(prime(n)==1)    printf("prime");  else   printf("not prime") ; } int prime(int a) {  int i;  for(i=2; i<a; i  )   if(a%i==0)    return 0;   else    return 1; }

P17. C语言程序设计教程(第三版)课后习题8.4

写一个函数convert,使给定的二维数组(3)×3)转移,即行列交换。

#include<stdio.h>  int main()  {      int a[3][3],i,j;      for(i=0; i<3; i  ){         for(j=0; j<3; j  ){              scanf("%d",&a[i][j]);          }      }    for(i=0; i<3; i  ){        for(j=0; j<3; j  ){           printf("%d ",a[j][i]);       }         printf("\n");     }    return 0; }

P18. C课后习题8.5

写一函数inverse,按反序存储输入的字符串,在主函数中输入输出反序后的字符串。

#include<stdio.h> #include <string.h> void inverse(char a[]) {  for(int i=strlen(a)-1;i>=0;i--)  {      printf("%c",a[i]);  } } int main() {  char a[50];  scanf("%s",&a);  inverse(a);  return 0; }

P19. C课后习题8.6

写一函数concat,连接两个字符串

#include<stdio.h> #include<string.h> int main() {  char str1[100],str2[100];  gets(str1);  gets(str2);  strcat(str1,str2);  puts(str1);  return 0; }

P20. C课后习题8.7

写一函数cpy,将一个小字符串中的所有字母复制到另一个字符串中,然后按字典顺序输出。

P21. C课后习题8.8

写一函数insert,输入四位数字,需要输出这四个数字字符,但每两个数字之间的空间。如果输入1990,则应输出"1 9 9 0"。

#include<stdio.h> #include<string.h> int main() {  char a[10];  gets(a);  for(int i=0; i<strlen(a); i  ) printf("%c ",a[i]);  return 0; }

P22. C课后习题8.9

编写一函数count,将字符串中的数字、字母、空,统计字符串中数字、字母、空格等字符的数量,并在主函数中输入字符串并输出上述结果。 不要输出任何提示信息,只要结果。

P23. C语言程序设计教程(第三版)课后习题9.2

输入两个整数,要求他们相除的余数。用带参的宏编程。

#include<stdio.h> #define s(a,b) a%b  int main() {  int x,y;  scanf("%d%d",&x,&y);  printf("%d",s(x,y));  return 0; }

P24. C课后练习9.3

三角形面积=SQRT(S*(S-a)*(S-b)*(S-c)) 其中S=(a b c)/2,a、b、c三角形的三面。定义两个带参的宏,一个用来寻求area,另一个宏用来求S。 写程序,用带实参的名字在程序中求面积area。

#include <stdio.h> #include<math.h> #define s(a,b,c) (a b c)/2 #define area(a,b,c,s) sqrt(s*(-a)*(s-b)*(s-c))
int main() {
	float x,y,z;
	scanf("%f%f%f",&x,&y,&z);
	printf("%.3f",area(x,y,z,s(x,y,z)));//先算小括号,然后大括号;
	return 0;
}

P25. C语言程序设计教程(第三版)课后习题9.4

给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,即定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串)

#include<stdio.h>
 #define LEAP_YEAR(y) (y%4==0 && y%100!=0) || (y%400==0)?'L':'N'
int main()
{
	int y;
	scanf("%d",&y);
	int l=LEAP_YEAR(y);
	printf("%c",l);
	
	return 0;
}

P26. C语言程序设计教程(第三版)课后习题9.6

⑴第一行输出一个实数;⑵第二行内输出两个实数;⑶第n行输出n个实数。实数用".3f"格式输出

#include<stdio.h>
#define pr1(x) printf("%.3f\n",x)
#define pr2(x) printf("%.3f,%.3f\n",x,x)
#define pr3(x) printf("%.3f,%.3f,%.3f\n",x,x,x)
#define pr4(x) printf("%.3f,%.3f,%.3f,%.3f\n",x,x,x,x)
#define pr5(x) printf("%.3f,%.3f,%.3f,%.3f,%.3f\n",x,x,x,x,x)

int main()
{
	float x;
	int m;
	scanf("%f%d", &x,&m);
	if (m == 1) 
	{
	 pr1(x);
	}
	else  if (m == 2)
	{
		pr1(x);
		pr2(x);
	}
	else  if (m == 3)
	{
		pr1(x);
		pr2(x);
		pr3(x);

	}
	else  if (m == 4)
	{
		pr1(x);
		pr2(x);
		pr3(x);
		pr4(x);
	}
	else  if (m == 5)
	{
		pr1(x);
		pr2(x);
		pr3(x);
		pr4(x);
		pr5(x);
	}
	return 0;
}

P27. C语言程序设计教程(第三版)课后习题9.8

分别用函数和带参的宏,从三个数中找出最大的数。

#include<stdio.h>
#define max(a,b,c) a>=(b>=c?b:c)?a:(b>=c?b:c)
int main() {
	float m(float a,float b,float c);
	float t1,t2,a,b,c;
	scanf("%f %f %f",&a,&b,&c);
	t1=max(a,b,c);
	printf("%.3f\n",t1);
	t2=m(a,b,c);
	printf("%.3f",t2);
	return 0;
}
float m(float a,float b,float c) {
	float x;
	x=(a>=(b>=c?b:c)?a:(b>=c?b:c));
	return (x);
}

P28. C语言程序设计教程(第三版)课后习题9.10

输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。

#include<stdio.h>
#include<string.h>
int main() {
	char a[50];
	gets(a);
	for(int i=0; i<strlen(a); i++) {
		if(a[i]>='a'&&a[i]<'z'||a[i]>='A'&&a[i]<'Z') {
			a[i]=a[i]+1;
		} else if(a[i]=='z'||a[i]=='Z') {
			a[i]+=1;
		} else a[i]=a[i];
	}
	puts(a);
	return 0;
}

P29. C语言程序设计教程(第三版)课后习题10.1

输入三个整数,按由小到大的顺序输出。使用指针

#include<stdio.h>
int main() {
	int a,b,c,t=0;
	scanf("%d%d%d",&a,&b,&c);
	if(a>b) {
		t=a;
		a=b;
		b=t;
	}

	if(a>c) {
		t=a;
		a=c;
		c=t;
	}

	if(b>c) {
		t=b;
		b=c;
		c=t;
	}

	printf("%d %d %d ",a,b,c);
	return 0;
}

P30. C语言程序设计教程(第三版)课后习题10.2

输入三个字符串,按由小到大的顺序输出

# include<stdio.h>
# include<string.h>
int main()
{
	char ch1[1000],ch2[1000],ch3[1000],ch4[1000];
	int m,n,i,j,k;
	gets(ch1);gets(ch2);gets(ch3);
	if(strcmp(ch1,ch2)>0)
	{
		strcpy(ch4,ch2); 
		strcpy(ch2,ch1);
		strcpy(ch1,ch4);
	}
	if(strcmp(ch1,ch3)>0)
	{
		strcpy(ch4,ch3);
		strcpy(ch3,ch1);
		strcpy(ch1,ch4);
	}
	if(strcmp(ch2,ch3)>0)
	{
		strcpy(ch4,ch3);
		strcpy(ch3,ch2);
		strcpy(ch2,ch4);
	}
	puts(ch1);
	puts(ch2);
	puts(ch3);
	return 0;
 }

P31. C语言程序设计教程(第三版)课后习题10.3

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。使用指针

#include <stdio.h>
int main() {
	void change(int *x);
	int a[10],i,j;
	for(i=0; i<10; i++) scanf("%d",&a[i]);
	change(a);
	for(i=0; i<10; i++) printf("%d ",a[i]);
}
void change(int *a) {
	int *min,*max,*p,t;
	max=min=a;
	for(p=a+1; p<a+10; p++) if(*p>*max)	max=p;
	t=a[9];
	a[9]=*max;
	*max=t;
	for(p=a+1; p<a+10; p++) if(*p<*min) min=p;
	t=a[0];
	a[0]=*min;
	*min=t;
}

P32. C语言程序设计教程(第三版)课后习题10.4

有10个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数move:实现以上功能,在主函数中输入10个数和输出调整后的10个数。

P33. C语言程序设计教程(第三版)课后习题10.5

有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。使用指针

#include <stdio.h>
int main() {
	int a[50], i, n, count, flag=0;
	scanf("%d", &n);
	count=n;
	for (i=1; i<=n; i++)
		a[i]=1;
	for (i=1; ; i++) {
		if (i==n+1)
			i=1;

		if (a[i]!=0)	flag++;
		else	continue;

		if (flag%3==0) {
			a[i]=0;
			count--;
		}

		if (count==1)
			break;
	}
	for (i=1; i<=n; i++)
		if (a[i]!=0)
			printf("%d", i);
	return 0;
}

标签: p28j2mqjg密封连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台