列举一些数据结构的简单题目,也当复习一下将近一年没打的代码
1.输入3个整数给a, b 、c,然后交换它们中的数﹐把a中的值给b,b中的值给c,c中的值给a,然后输出a.b .c。
java:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] arrs = new int[3];
int num ;
for (int i = 0; i < 3; i++) {
System.out.println("请输入第"+(i+1)+"个数");
arrs[i]=input.nextInt();
}
num=arrs[2];
for (int j=2;0<=j;j--){
if (j==0){
arrs[j]=num;
}else{
arrs[j]=arrs[j-1];
}
}
System.out.print(arrs[0] +" "+arrs[1] +" "+arrs[2]);
}
C:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b,c,num;
printf("输入整数a,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("a,b,c原来的值:%d %d %d",a,b,c);
num=c;
c=b;
b=a;
a=num;
printf("a,b,c交换后的值:%d %d %d",a,b,c);
}
2.输入两个整数1200和370,求出它们的商和余数﹐然后输出
java:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int a = input.nextInt();
System.out.println("请输入第二个整数:");
int b = input.nextInt();
System.out.println("他们的商为:"+a/b+"余数为:"+a%b);
}
C:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b;
printf("输入整数a,b:");
scanf("%d%d",&a,&b);
printf("他们的商为:%d,他们的余数为:%d",a/b,a%b);
}
3.输入一个实数1.245678 ,将该数进行四舍五人运算后,保留两位小数﹐输出1.25
java:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个实数:");
float a = input.nextFloat();
System.out.printf("保留两位小数输出:%.2f",a);
}
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
float a;
printf("输入实数a:");
scanf("%f",&a);
printf("保留两位小数为:%.2f",a);
}
4.输入一个整数,判断它是奇数还是偶数﹐并输出结果
java:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = input.nextInt();
if (a%2 == 0){
System.out.println("输入的数是偶数");
}else{
System.out.println("输入的数是奇数");
}
}
C:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a;
printf("输入整数a:");
scanf("%d",&a);
if (a%2==0)
{
/* code */
printf("输入的数是偶数");
}else{
printf("输入的数是奇数");
}
}
5.输入3个整数到a,b , c 中,输出其中的最大值.
java:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] arr = new int[3];
for (int i=0;i<3;i++){
System.out.println("请输入第"+(i+1)+"个整数:");
arr[i]=input.nextInt();
}
Arrays.sort(arr);
System.out.println("最大值为:"+arr[arr.length-1]);
}
C:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a,b,c,max,min;
printf("输入整数a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if (a>b)
{
/* code */
max=a;
min=b;
}else{
max =b;
min =a;
}
if (c>max)
{
/* code */
max=c;
}
if (c<min)
{
min=c;
}
printf("最大值为%d,最小值为%d",max,min);
}
6.输出公元2000年至公元3000年之间所有的闰年,每输出10个年号换一行。
java:
public static void main(String[] args) {
int begin = 2000;
int end = 3000;
int count = 0;
for (int i =begin;i<=end;i++){
if (i%400==0||(i%4==0 && i%100!=0)){
System.out.print("润年为:"+i+"\t");
count++;
if (count==10){
System.out.println();
count=0;
}
}
}
}
C:
#include <stdio.h>
int main(){
int begin = 2000;
int end = 3000;
int count = 0;
for (int i =begin;i<=end;i++){
if (i%400==0||(i%4==0 && i%100!=0)){
printf("润年为%d",i);
count++;
}
if (count==10)
{
/* code */
printf("\n");
count=0;
}
}
}
7.输入10个学生的分数,统计并输出最高分和最低分。
java:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] arr = new int[11];
for (int i =1;i<=10;i++){
System.out.println("请输入第"+i+"个同学的分数:");
arr[i]=input.nextInt();
}
Arrays.sort(arr);
System.out.println("最高分为:"+ arr[arr.length-1]+"最低分为:"+arr[0]);
}
C:
#include <stdio.h>
int main(){
int n,min=100,max=0;
int num[10];
for (int i = 0; i<10; i++)
{
printf("请输入第%d位学生的分数:",i+1);
/* code */
scanf("%d",&n);
num[i]=n;
if (num[i]<min)
{
min=num[i];
}
if (num[i]>max)
{
max=num[i];
}
}
printf("min=%d max=%d\n",min,max);
}
8.编程求斐波那契数列的前20项, 已知该数列的第一、二项为0、1,该数列的前几项为0,1,1,2,3,5.8,13,21,34,…
java:
public static int math(int n){
if (n== 1 || n == 2){
return 1;
}
if (n>2) {
return math(n-1)+math(n-2);
}
return -1;
}
public static void main(String[] args) {
int math = math(20);
System.out.println(math);
}
C:
#include<stdio.h>
int fib(int n)
{
if(n==1||n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fib(n));
return 0;
}
两种语言在某些api上存在不同,但是写法和思路大同小异