C语言入门编程题目||适合小白以及各种考试前的预习

基础10题

1、判断三角形(是否是三角形,等边,等腰,直角)

//判断三角形 
#include<stdio.h>

int main(){
	double a,b,c;
	printf("请输入三角形的三边:\n");
	scanf("%lf%lf%lf",&a,&b,&c);
	
	if(a>0&&b>0&&c>0){

		if(a+b>c&&b+c>a&&a+c>b){
			
			if(a==b&&b==c){
				printf("该三角形为等边三角形"); 
			}
			else if (a==b||a==c||b==c){
				printf("该三角形是等腰三角形"); 
			}
			else if (a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b){
				printf("该三角形为直角三角形");
			}
			else printf("该三角形为普通三角形");
			
		}
		else printf("不能构成三角形");	
	}
	else printf("输入有误"); 
	
	return 0; 
}

2、计算1000以内的完数

计算1-1000内的完数 
#include <stdio.h>
int main()
{
    int num, sum, i;
    for(num = 1; num <= 1000; num ++)
    {
        sum = 0;      //每次判断一个数都要将 sum 初始化为 0
        //要记住因子不能为本身 (因子包括1不包括本身。) 
        for (i = 1; i < num; i++)
        {
            if (num % i == 0)   //num 能被 i 整除,说明 i 是 num 的因子
            {
                sum += i;    //累加因子
            }
        }
        if(sum == num)
        {
            printf("%d\n", num);
        }
    }
    return 0;
}

3、计算最小公倍数

计算最小公倍数 
#include <stdio.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int k=(a>b?a:b);
    while(1)
    {
        if(k%a==0&&k%b==0)
        {
            break;
        }
            k++;
    }
    printf("%d\n",k);
} 

4、调用函数fun,分别计算数组中的奇数成员和偶数成员的和,用指针实现值传递

#include<stdio.h>
#define N 5

void fun(int *p,int n);

int main(){
	int arr[N],*p1;
	int i;
	for(i=0;i<N;i++) scanf("%d",&arr[i]);
	p1=arr;
	fun(p1,N);
	return 0;
} 
void fun(int *p,int n){
	int i;
	int sum1=0,sum2=0;
	for(i=0;i<n;i++){
		//注意这里i要加1 
		if((i+1)%2!=0){
			sum1+=*(p+i);
		}
		else {
			sum2+=*(p+i);
		}
	}
	printf("奇数成员和:%d\n偶数成员和:%d",sum1,sum2);
}

5、用结构体实现录入学生信息(学号,姓名,三科目成绩)求平均分并输入平均分最高的学生信息

#include<stdio.h>
struct Student {
	int num;
	char name[20];
	float chinese;
	float math;
	float english;
	float averge;
};

int main() {
	int i;
	struct Student stu[3];
	float averg1,averg2,averg3;
	for(i=0; i<3; i++) {

		printf("请输入第%d个同学的信息:\n",i+1);
		scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
		stu[i].averge=(stu[i].chinese+stu[i].math+stu[i].english)/3;

	}
	int k=stu[0].averge,k2=0;
	
	for(i=1; i<3; i++) {
		
		if(stu[i].averge>k) {
			
			k2=i;
			k=stu[i].averge;
		}
	}
	printf("学号:%d\n姓名:%s\n语文:%f\n数学:%f\n英语:%f\n平均分:%f",stu[k2].num,stu[k2].name,stu[k2].chinese,stu[k2].math,stu[k2].english,stu[k2].averge);
	return 0;
}

6、冒泡排序

//冒泡排序 (小到大,大到小只需要把下面的if语句里面的大于改成小于)
#include<stdio.h>
int main() {
	int a[10];
	int i,j,t;
    printf("请输入10个数:\n"); 
	for(i=0; i<10; i++)
		scanf("%d",&a[i]);
	for(i=0; i<9; i++) {
		for(j=0; j<9-i; j++) {
			if(a[j]>a[j+1]) {
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
	printf("排序后:\n");
	for(i=0; i<10; i++)
		printf("%d ",a[i]);
}

7、选择排序

//选择排序
#include<stdio.h>
int main() {
	int arr[5],i,j,t,min;
	printf("请输入五个数:\n");
	for(i=0; i<5; i++)
	scanf("%d",&arr[i]);

	for(i=0; i<4; i++) {
		min=i;
		for(j=i+1; j<5; j++) {
			if(arr[j]<arr[min]) min=j;
		}
		t=arr[i];
		arr[i]=arr[min];
		arr[min]=t;
	}
	printf("排序后:\n");
	for(i=0; i<5; i++) {
		printf("%d ",arr[i]);
	}

	return 0;
}

8、用指针与数组 实现字符串反转

#include<stdio.h>
#include<string.h>

void fun(char *p1,char *p2);

int main() {
	int i;
	char arr[100],*p=arr;
	scanf("%s",arr);
	fun(p,p+strlen(arr)-1);
	for(p=arr; *p!='\0'; p++)
		printf("%c",*p);

	return 0;
}

void fun(char *p1,char *p2) {
	char t;
	for(; p1<p2; p1++,p2--) {
		t=*p1;
		*p1=*p2;
		*p2=t;
	}
}

9、有一个3X4 的矩阵,要求编程序求出其中值最大的那个元素值,以及其所在的行号和列号

#include<stdio.h>

int main() {
	int a[3][4];
	int i,j,max,row=0,colum=0;
	for(i=0; i<3; i++) {
		for(j=0; j<4; j++) {
			scanf("%d",&a[i][j]);
		}
	}
	max=a[0][0];
	for(i=0; i<3; i++) {
		for(j=0; j<4; j++) {
			if(a[i][j]>max) {
				max=a[i][j];
				row=i;
				colum=j;
			}
		}
	}
	printf("最大的值为:%d\n行号为:%d\n列号为:%d",max,row,colum);
	return 0;
}

 10、输入一个字符串,并输入一个需要删除的字符,得到删除字符后的字符串 

#include<stdio.h>
#define N 100
int main() {
	char arr[N],arr1[N];
	int i,j=0;
	int ch;
	printf("请输入一个字符串:\n");
	scanf("%s",arr);
	printf("请输入一个需要删除的字符:\n");
	//这里不放一个getchar()的话字符会被回车吃掉 
	getchar();
	scanf("%c",&ch);
	for(i=0; arr[i]!='\0'; i++) 
		if(arr[i]!=ch)
			arr1[j++]=arr[i];	
	//这里加不加无所谓,因为是重新定义的另外一个数组 
	arr1[j]='\0';
	printf("%s",arr1);

	return 0;
}

11、输入两个数,求最小公倍数和最大公约数

//求最小公倍数,最大公约数
#include<stdio.h>
int main() {
	int n,m,i,j;
	scanf("%d%d",&n,&m);
	i=n>m?n:m;
	for(i;; i++) {
		if(i%n==0&&i%m==0)break;
	}
	j=n>m?m:n;
	for(j; j>0; j--) {
		if(n%j==0&&m%j==0)break;
	}
	printf("最小公倍数为:%d\n最大公约数为:%d",i,j);
}

持续更新中。。。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hppyYJY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值