2021级C语言第一次过程考核

1.字符转换

从键盘输入一个小写字母,把它转换成相应的大写字母,最后输出转换之后的字符及其十进制ASCII码。
在这里插入图片描述

#include<stdio.h>
int main()
{
	char c;
	scanf("%c",&c);
	printf("%c %d",c-32,c-32);
	
	return 0;
}

2.两个数交换

试编写一个程序,从键盘输入变量x和y的值,将它们打印(显示到屏幕)出来;然后将二者的值进行交换,并打印交换后的x、y值。例如,x和y的输入值分别是1和2,交换后,x的值为2而y的值为1。 提示:要将变量x和y的值交换,应定义并使用临时变量temp:先将x的值存放到临时变量temp中,然后将y的值存放到x中,最后将temp中的值存放到y中。
在这里插入图片描述

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

3.整数的按权展开

本题目要求读入一个三位整数,然后写成按权展开的形式。
在这里插入图片描述

#include<stdio.h>
int main()
{
	int n,a,b,c;
	scanf("%d",&n);
	a=n/100;
	n%=100;
	b=n/10;
	c=n%10;
	printf("%d=%d+%d+%d",a*100+b*10+c,a*100,b*10,c);
	return 0;
}

4.判断输入字符类型

题目要求读入一个英文字母,然后判断其如果是大写字母则转换为对应的小写字母,如果是小写字母则无需转换;最后输出结果。 如果输入的是非英文字符则输出“Non-English Characters”提示。
在这里插入图片描述

#include<stdio.h>
int main()
{
	char c;
	scanf("%c",&c);
	if(c<='z'&&c>='a'){
		printf("%c",c);
	}else if(c>='A'&&c<='Z'){
			printf("%c",c+32);
	}else{
		printf("Non-English Characters");
	}
	return 0;
}

5.判断闰年

已知能被 4 整除但不能被 100 整除或者能被 400 整除的年份是闰年。请编程判断一个年份是否是闰年。
在这里插入图片描述

#include<stdio.h>
int main()
{
	int year;
	scanf("%d",&year);
	int n=0;
	if(year%100==0){
		if(year%400==0){
			n=1;
		}
	}else if(year%4==0){
		n=1;
	}
	if(n==1){
		printf("%d is a leap year.",year);
	}else{
		printf("%d is not a leap year.",year);
	}
	return 0;
}

6.计算加油费

在这里插入图片描述

#include<stdio.h>
int main()
{
	int N;
	double L,price;
	scanf("%d %lf",&N,&L);
	switch(N){
		case 92:price=L*6.86;
		printf("%.2lf",price);
		break;
		case 95:price=L*7.45;
		printf("%.2lf",price);
		break;
		case 98:price=L*8.16;
		printf("%.2lf",price);
		break;
		default:printf("Not available!");
	}
	return 0;
}

7.输入两个整数a和b,编程求a到b的所有数字之和?

在这里插入图片描述

#include<stdio.h>
int main()
{
	int a,b,min,max,sum;
	scanf("%d %d",&a,&b);
	if(a<b){
		min=a;
		max=b;
	}else{
		min=b;
		max=a;
	}
	
	for(sum=0;min<=max;min++){
		sum+=min;
	}
	printf("%d",sum);
	return 0;
}

8.编程求1到n中的所有能同时被3和5整除的数之和?

在这里插入图片描述

#include<stdio.h>
int main()
{
	int n,sum;
	scanf("%d",&n);
	for(sum=0;n>=15;n--){
		if(n%15==0){
			sum+=n;
		}
	}
	printf("%d",sum);
	return 0;
}

9.整数的位数

在这里插入图片描述

#include<stdio.h>
int main()
{
	int n,cnt;
	scanf("%d",&n);
	for(cnt=1;n>=10;cnt++){
		n/=10;
	}
	printf("%d",cnt);
	return 0;
}

还有一种方法:

#include <stdio.h>
#include <math.h>
int main()
{
      int n,cnt;
      scanf("%d",&n);
      cnt=log10(n)+1;
      printf("%d",cnt);
        return 0;
}

10.输出图形

输入一个正整数n,输出一个按以下规律变化的n行的直角三角形,每个数据都采用6个域宽左对齐的方式显示。
在这里插入图片描述

#include<stdio.h>
int main()
{
	int n,m,x,y,cnt;
	scanf("%d",&n);
	m=n;
	for(y=1;y<=n;y++){
		for(x=1;x<=y;x++){
			printf("%-6d",x*y);
		}
		printf("\n");
	}
	return 0;
}

版权声明:本文为MX_1122原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。