大连理工大学C语言题目(一)

152 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.从键盘输入多个整数,输入0结束(0不参加运算),打印他们的最大值,最小值以及平均值

#include <stdio.h>
int main(){
	int i,max,min,cnt=0,sum=0;
	double average=0;
	scanf("%d",&i);
	max=i;
	min=i;
while(i){
		cnt++;
		sum+=i;
		if(max<i)
		max=i;
		else if(min>i)
		min=i;
		scanf("%d",&i);
	}
	average=sum*1.0/cnt;           
	printf("max is %d,min is %d,average is %f",max,min,average);
	return 0;
} 

2.从键盘输入一个整数(int范围内,位数不定),求出其逆序表示的整数并输出。 样例输入: 12345 样例输出 54321

#include <stdio.h>
int main(){
	int a,cnt=0,i=0,sum=0;
	scanf("%d",&a);
	while(a){
		cnt++;
		i=a%10;
		sum=sum*10+i;
		a/=10;
	} printf("%d",sum);
	return 0;
} 

3.Write a program, input a letter in upper case, then print as follows: (input E): ABCDE in the middle is aligned as a column.

#include <stdio.h>
int main()
{
int i,j,k,l;
char a='A';
for(i=1;i<=5;i++){
	for(j=1;j<=5-i;j++)
	printf(" ");
	for(k=1;k<=i;k++)
		printf("%c",a++);
		a--;
	for(l=k-2;l>0;l--){
	a--;
	printf("%c",a);}
	printf("\n");
	}
	return 0;
	} 

4.编写程序验证歌德巴赫猜想: 一个不小于6的偶数可以表示成两个素数之和。如6=3+3,8=3+5,10=3+7,…… 在主函数中输入一个大于6的偶数n,例如34,输出如下形式:34=3+31。

#include <stdio.h>
#include <math.h>
void main(){
	int n,i,j,isp=1;
	do{scanf("%d",&n);}while(n%2==1||n<6);
	for(i=3;i<=n/2;i+=2){
		for(j=2;j<=sqrt(i);j++){
			if(i%j==0)
			isp=0;
		}
		if(isp==1){
			for(j=2;j<=sqrt(n-i);j++){
				if((n-i)%j==0)
				isp=0;
			}
		}
		if(isp==1)
	printf("%d=%d+%d",n,i,n-i);
	}
}

5.给定不超过6的正整数a,考虑从a开始的连续4个数字,请输出所有由它们组成的无重复数字的3位数,要求从小到大,整数间以空格分离。

#include <stdio.h>
void main(){
	int a,i,j,k;
	do{scanf("%d",&a);}while(a>6||a<1);
	for(i=a;i<=a+3;i++){
		for(j=a;j<=a+3;j++){
			if(i==j)
			continue;
			for(k=a;k<=a+3;k++){
				if(i==k||j==k)
				continue;
				printf("%d%d%d ",i,j,k);
			}
		}
	}
}