2020-12-16

本文介绍了五个C语言编程题目,包括将百分制成绩转换为字母等级、输出不超过五位正整数的每一位、统计字符串中英文字母、空格、数字和其他字符的个数、找出1000以内的所有完数以及计算3x3矩阵对角线元素之和。这些练习涵盖了基础的C语言编程技巧和逻辑思维能力。
摘要由CSDN通过智能技术生成

计算机专升本代码练习

第一题:给定一个百分制成绩A,B,C,D,E
90分以上的为A,80-89的为B,70-79的为C,60-69的为D,60分以下为E

#include <stdio.h>
int main(){
	float n;   //n表示成绩 
	scanf("%f",&n);   //键盘输入成绩
	switch((int)(n/10)){    //switch(表达式){}   表达式只能为 整数  
		case 10: 
		case 9:  printf("A"); break;
		case 8:  printf("B"); break;
		case 7:  printf("C"); break;
		case 6:  printf("D"); break;
		case 5:
		case 4:
		case 3:
		case 2:
		case 1:
		case 0:  printf("E"); break;
 	} 
	return 0;
} 

第二题:给出一个不多于5位的正整数,要求分别输出每一位的数字

#include <stdio.h>
int main(){
	int n;  
	int ge,shi,bai,qian,wan; 
	printf("请输入一个不大于100000的正整数:"); 
	scanf("%d",&n);   
	wan = n/10000;
	qian = n%10000/1000;
	bai = n%1000/100;
	shi = n%100/10;
	ge = n%10;
	printf("万位=%d,千位=%d,百位=%d,十位=%d,个位=%d,",wan,qian,bai,shi,ge);
	return 0;
} 

第三题:输入一行字符,分别统计英文字母,空格,数字和其他字符的个数

#include <stdio.h>
int main(){
//拿出第一个字符,判断,拿出第二个字符,判断。。。
//利用循环解决 
	int english=0,blank=0,figure=0,other=0;  //分别统计个数 
	char ch;     //对拿出来的单个字符进行存储 
	char a[]={"I come from China!!!123"};      
	for(int i=0;(ch=a[i])!='\0';i++){    
		if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'){
			english++;
		}else if(ch>='0'&&ch<='9'){
			figure++;
		}else if(ch==' '){
			blank++;
		}else{
			other++;
		}
	}
	printf("英文字母:%d,空格:%d,数字:%d,其他字符:%d",english,blank,figure,other);
	return 0;
} 

第四题:
如果一个数恰好等于它的因子之和,这个数就是“完数”,例如:6的因子为1,2,3 6=1+2+3,因此6就是“完数”,编程求1000之内的所有完数

#include <stdio.h>
int main(){
//对2求因子,对3求因子,对4求因子。。。
//2/1         3/1  3/2   4/1  4/2  4/3.。。。
//双层循环
//因子求和,和原数进行比较
	int sum;   //因子之和 
	for(int i=2;i<1000;i++){    //原数   
		sum=0;  //为什莫在里边设置sum=0?   每次内层循环进行相比较时,会改变sum的值,当重新进来一个数,sum重置  
		for(int j=1;j<i;j++){ 
			if(i%j==0){
				sum= sum+j;
			}
		}
		if(i==sum){
			printf("%d\n",i);
		}
	} 
	return 0;
} 

第五题:求一个3*3矩阵的对角线元素的和

#include <stdio.h>
int main(){
//	对角矩阵的元素行下标与列下标相等,并且每行只有一个 
	int sum=0;
	int a[3][3]={{12,34,45},
				 {32,44,99},
				 {10,30,12}}; 
	for(int i=0;i<=2;i++){
		sum = sum + a[i][i];
	}
	printf("%d",sum);
	return 0;
} 

以上是我的编程作业:只是问题的一种解法。
一起学习,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值