9.7 练习题

一、 题目一:(25分)

  1. 题目描述:输入终值,输出所有能被7整除的数值及其和
    在这里插入图片描述
  2. 评分要求
    (1). 根据接收值准确定义变量类型(2分)
    (2). 提示并输入终值(2分)
    (3). 阅读题目确定循环要素:起始值、终值、步长(3分)
    (4). 循环判断指定范围内能被7整除的数值并输出(5分) 核心
    (5). 每5个换行输出(2分)
    (6). 累计全部符合条件的数值和并输出(3分)
    (7). 代码中添加不少于5行的关键注释描述实现思路(3分)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n,i=0,sum=0;
	printf("输入终值:");
	scanf("%d",&n);
	for(i=1;i<n;i++){
		if(i%7==0){
			printf("%-5d",i);
			sum=sum+i;
			if(i%5==0){
				printf("\n");
			}
		}
	}
	printf("\n%d以内能被7整除的数值和是:%d\n",n,sum);
	return 0;
}

二、 题目二: (20分)

  1. 题目描述: 注册账号时需输入6位密码,根据密码组成验证其安全等级
    在这里插入图片描述

  2. 评分要求
    (1). 根据接收用户值定义变量类型,命名遵守规范(2分)
    (2). 利用循环结构、getchar()函数 输入验证密码(3分)
    (3). 判断并统计输入的密码各组成部分个数(4分) 核心
    (4). 如长度不符合要求给出提示信息(1分)
    (5). 根据字母、数字、特殊字符、空格个数验证密码等级(3分) 核心
    (6). 代码中需要添加至少5行关键注释描述实现思路(3分)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char a[100]="";
	int i=0,j=0,x=0,y=0,z=0,w=0;
	printf("请输入6位密码:");
	while(1){
		a[i]=getchar();
		if(a[i]=='\n'){
			break;
		}
		i++;
	}
	while(a[j]!='\0'){
		if(a[j]>='a'&&a[j]<='z'){
			x=1;
		}
		if(a[j]>='0'&&a[j]<='9'){
			y=1;
		}
		if(a[j]>32&&a[j]<48){
			z=1;
		}
		if(a[j]==32){
			w=1;
		}
		j++;
	}
	int sum=0;
	sum=x+y+z+w;
	if(i!=6){
		printf("密码长度不符合要求\n");
	}else if(sum==4){
		printf("输入的六位密码中含有字母、数字、空格及其他字符 等级验证为:高\n");
	}else if(sum==3){
		printf("输入的六位密码中含有三种组合 等级验证为:中\n");
	}else if(sum==2){
		printf("输入的六位密码中含有两种组合 等级验证为:中\n");
	}else if(sum==1){
		printf("输入的六位密码中含有一种组合 等级验证为:低\n");
	}
	return 0;
}

三、 题目三 :(30分)

  1. 题目描述: 神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算
    在这里插入图片描述
    在这里插入图片描述

  2. 评分要求 :
    (1). 正确定义一维数组 (3分)
    (2). 循环输入6位顾客的满意度值(5分) 核心
    (3). 将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心
    (4). 统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心
    (5). 判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现
    有服务质量水平” (3分)
    (6). 代码关键处添加不少于5行的规范注释(5分)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int a[10];
	int i,j;
	for(i=0;i<6;i++){
		printf("请输入第%d位顾客的满意度:",i+1);
		scanf("%d",&a[i]);
	}
	for(i=1;i<6;i++){
		for(j=0;j<6-i;j++){
			if(a[j]>a[j+1]){
				int t=a[j];a[j]=a[j+1];a[j+1]=t;
			}
		}
	}
	printf("本次满意度调查由低到高的分数值是:");
	int sum=0;
	for(i=0;i<6;i++){
		printf("%5d",a[i]);
		if(a[i]>89){
			sum++;
		}
	}
	sum=sum*100;
	printf("\n     满意度为%.2f\n",(float)sum/6);
	if(sum/6==100.00){
		printf("保持现有服务质量水平\n");
	}else{
		printf("服务质量有待改进\n");
	}
	return 0;
}

四、 题目四 :(25分)

  1. 题目描述: 输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值
    在这里插入图片描述

  2. 评分要求
    (1). 正确定义一维数组(2分)
    (2). 提示并输入数组长度(2分)
    (3). 循环输入数组元素的值(5分) 核心
    (4). 循环判断并输出数组元素中是3倍数的元素(4分) 核心
    (5). 循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心
    (6). 代码中添加不少于5行的关键注释描述程序实现思路(4分)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n,i;
	printf("请输入数组长度:");
	scanf("%d",&n);
	int a[n],b[n];
	printf("请依次输入数组元素值:");
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
		}
	int min=0,max=0;
	printf("数组中是3倍数的元素包含:");
	for(i=0;i<n;i++){
		if(a[i]%3==0){
			printf("%-5d",a[i]);
			if(max<a[i]){
				max=a[i];	
			}
			if(min==0){
				min=a[i];
			}else if(min>a[i]){
				min=a[i];
			}
		}
	}
	printf("\n数组元素中3的最小倍数是%d     最大倍数是%d\n",min,max);
	return 0;
}

五、 题目五:(30分)

  1. 题目描述:输入操作数及运算符完成数值的加、减、乘、除运算
    在这里插入图片描述
    在这里插入图片描述

  2. 评分要求
    (1) 定义接收操作数及运算符的变量,名称要符合规范(2分)
    (2) 提示并输入第一个操作数(2分)
    (3) 提示并输入运算符加减乘除用字母代表
    (4) 提示并输入第二个操作数(2分)
    (5) 采用多分支选择结构switch对输入的操作数进行判断,输入大小写字母都可以调用
    (6) 对应的运算(3分) 核心
    (7) 正常计算两数相加并输出结果(2分)核心
    (8) 正常计算两数相减并输出结果(2分)核心
    (9) 正常计算两数相乘并输出结果(2分)核心
    (10) 正常计算两数相除并输出结果(2分)核心
    (11) 如分母为0则输出提示信息“分母不能为零!”(2分)
    (12) 核心语句需添加不少于5行的规范注释描述实现思路(4分)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	float a,b;
	char c;
	printf("请输入第一个操作数:");
	scanf("%f",&a);
	printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]:");
	scanf(" %c",&c);
	printf("请输入s第二个操作数:");
	scanf("%f",&b);
	printf("运算结果\n");
	switch(c){
	case 'p':
	case 'P':
		printf("%.2f+%.2f=%.2fa\n",a,b,a+b);
		break;
	case 's':
	case 'S':
		printf("%.2f-%.2f=%.2f\n",a,b,a-b);
		break;
	case 'm':
	case 'M':
		printf("%.2f*%.2f=%.2f\n",a,b,a*b);
		break;
	case 'd':
	case 'D':
		if(b!=0){
			printf("%.2f/%.2f=%.2f\n",a,b,a/b);
		}else{
			printf("分母不能为零!\n");
		}
		break;
	default:
		printf("字符输入错误\n");
	}
	return 0;
}
  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
好的,我可以帮你解答这个问题。以下是用Java实现的新的Account类的代码: ```java import java.util.ArrayList; import java.util.Date; public class Account { private int id; private String name; private double balance; private double annualInterestRate; private Date dateCreated; private ArrayList<Transaction> transactions; public Account() { id = 0; name = ""; balance = 0; annualInterestRate = 0; dateCreated = new Date(); transactions = new ArrayList<Transaction>(); } public Account(int id, String name, double balance) { this.id = id; this.name = name; this.balance = balance; annualInterestRate = 0; dateCreated = new Date(); transactions = new ArrayList<Transaction>(); } public int getId() { return id; } public String getName() { return name; } public double getBalance() { return balance; } public double getAnnualInterestRate() { return annualInterestRate; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setBalance(double balance) { this.balance = balance; } public void setAnnualInterestRate(double annualInterestRate) { this.annualInterestRate = annualInterestRate; } public Date getDateCreated() { return dateCreated; } public double getMonthlyInterestRate() { return annualInterestRate / 12; } public double getMonthlyInterest() { return balance * getMonthlyInterestRate() / 100; } public void withdraw(double amount) { balance -= amount; transactions.add(new Transaction('W', amount, balance, "Withdrawal")); } public void deposit(double amount) { balance += amount; transactions.add(new Transaction('D', amount, balance, "Deposit")); } public ArrayList<Transaction> getTransactions() { return transactions; } } class Transaction { private Date date; private char type; private double amount; private double balance; private String description; public Transaction(char type, double amount, double balance, String description) { date = new Date(); this.type = type; this.amount = amount; this.balance = balance; this.description = description; } public Date getDate() { return date; } public char getType() { return type; } public double getAmount() { return amount; } public double getBalance() { return balance; } public String getDescription() { return description; } } ``` 接下来是测试程序: ```java public class TestAccount { public static void main(String[] args) { Account account = new Account(1122, "George", 1000); account.setAnnualInterestRate(1.5); account.deposit(30); account.deposit(40); account.deposit(50); account.withdraw(5); account.withdraw(4); account.withdraw(2); System.out.println("Account holder name: " + account.getName()); System.out.println("Annual interest rate: " + account.getAnnualInterestRate() + "%"); System.out.println("Balance: $" + account.getBalance()); System.out.println("Transactions:"); for (Transaction transaction : account.getTransactions()) { System.out.println("Date: " + transaction.getDate()); System.out.println("Type: " + transaction.getType()); System.out.println("Amount: $" + transaction.getAmount()); System.out.println("Balance: $" + transaction.getBalance()); System.out.println("Description: " + transaction.getDescription()); } } } ``` 这个程序会输出以下结果: ``` Account holder name: George Annual interest rate: 1.5% Balance: $109.0 Transactions: Date: Fri Apr 02 17:05:12 CST 2021 Type: D Amount: $30.0 Balance: $1030.0 Description: Deposit Date: Fri Apr 02 17:05:12 CST 2021 Type: D Amount: $40.0 Balance: $1070.0 Description: Deposit Date: Fri Apr 02 17:05:12 CST 2021 Type: D Amount: $50.0 Balance: $1120.0 Description: Deposit Date: Fri Apr 02 17:05:12 CST 2021 Type: W Amount: $5.0 Balance: $1115.0 Description: Withdrawal Date: Fri Apr 02 17:05:12 CST 2021 Type: W Amount: $4.0 Balance: $1111.0 Description: Withdrawal Date: Fri Apr 02 17:05:12 CST 2021 Type: W Amount: $2.0 Balance: $1109.0 Description: Withdrawal ``` 这个结果展示了账户的持有者名字、利率、收支额和所有的交易。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值