1、能被2整除的数称为偶数,不能被2整除的数称为奇数,请编写程序输出300至500之间可以被3和7整除的偶数。
#include<stdio.h>
void main()
{
for(int i=300;i<500;i++)
if(i%3==0&&i%7==0&&i%2==0)
printf("%d\n",i);
}
2、编程从键盘输入一个不超过8位的十六进制整数,将他转换为正的10进制数后输出。
#include<stdio.h>
#include<math.h>
#include<string.h>
void main()
{
char str[20];
int num=0,len;
gets(str);
len=strlen(str)-1;
for(int i=0;len>=0;i++,len--)
{
if(str[len]>='0'&&str[len]<='9')
num+=(str[len]-'0')*pow(16,i);
else
num+=(10+str[len]-'a')*pow(16,i);
}
printf("%d",num);
}
3、编程实现对键盘输入的俩个字符串str1和str2的字符序列比较 (字符串都不含空格且长度在100以内),若s1和s2相同,输出0,若他们不相等,则指出其第一个不同字符的ASCII码的差值,如果str1>str2,则差值为正,如果str1 4、一个整数的“反置数”指的是该整数的每一位数字的顺序颠倒过来所得到的另一个整数。比如说1245的反置数是5421,而1200的反置数是21,请编写一个程序,输入俩个整数然后计算这俩个数的反置数之和sum,然后再求sum的反置数然后打印。 5、打印螺旋矩阵 6、矩阵的n次幂,输入两个数,一个代表矩阵的阶数一个代表幂数,然后输入矩阵,输出矩阵的n次幂。 7、字符串ASCII 求和 给定一个字符串,求这个字符串的ASCII 和。 8、输入不定个日期(MMDDYYYY)找出其中距离今天最远的三个日期(输入日期个数大于3)。 9、文件流读取文件内的数字(数字之间以空格和回车分割),n次操作,每次输出第k个大小的数。 1、给定n个节点求层数和最少有多少个节点。#include<stdio.h>
#include<string.h>
void main()
{
char str1[100],str2[100];
unsigned int i=0;
gets(str1);
gets(str2);
while(i<=strlen(str1)&&i<=strlen(str2))
{
if(str1[i]=='\0'&&str2[i]=='\0')
{
printf("0");
break;
}
else if(str1[i]-str2[i]==0)
i++;
else
{
printf("%d",str1[i]-str2[i]);
break;
}
}
}
#include <stdio.h>
int reverse(int a)
{
int num=0;
while(a!=0)
{
num=num*10+a%10;
a/=10;
}
return num;
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",reverse(reverse(a)+reverse(b)));
}
#include<stdio.h>
void Arr(int arr[][3],int r,int c)
{
int up=0,down=r-1,left=0,right=c-1; //定义矩阵边界
while(1)
{
for(int i=left;i<=right;i++)
printf("%d ",arr[up][i]);
if(++up>down)
break;
for(int i=up;i<=down;i++)
printf("%d ",arr[i][right]);
if(--right<left)
break;
for(int i=right;i>=left;i--)
printf("%d ",arr[down][i]);
if(--down<up)
break;
for(int i=down;i>=up;i--)
printf("%d ",arr[i][left]);
if(++left>right)
break;
}
}
void main()
{
int arr[3][3]={1,2,3,8,9,4,7,6,5};
Arr(arr,3,3);
}
#include <stdio.h>
#define N 20
void main()
{
int a[N][N],b[N][N],t[N][N];
int i,j,c,count,n,m;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
b[i][j]=a[i][j];
}
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
t[i][j]=0;
while(m!=1)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
count=0;
for(c=0;c<n;c++)
count=count+a[i][c]*b[c][j];
t[i][j]=count;
}
for(i=0;i<n;i++)
for (j = 0; j < n; j++)
a[i][j] = t[i][j];
m--;
}
for(i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
#include<stdio.h>
void main()
{
char str[10];
int sum=0;
gets(str);
for(int i=0;str[i]!='\0';i++)
sum+=(int)str[i];
printf("%d",sum);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
int date;
int diff;
}Date;
int compare(const void* a, const void* b)
{
return ((Date*)b)->diff-((Date*)a)->diff;
}
void main()
{
Date dates[100];
int n;
scanf("%d",&n);
for(int i=0; i<n;i++)
{
int month,day,year;
scanf("%2d%2d%4d",&month,&day,&year);
dates[i].date=year*10000+month*100+day;
dates[i].diff=abs(dates[i].date-20201225);
}
qsort(dates,n,sizeof(Date),compare);
for (int i = 0; i < 3; i++)
{
int year=dates[i].date/10000;
int month=dates[i].date/100%100;
int day=dates[i].date%100;
printf("%02d%02d%04d\n",month,day,year);
}
}
二、数据结构 (本大题6小题,每小题10分,共60分)
2、堆排序调整子树。
3、拓扑排序求所有路径。
4、平衡二叉树调整。
5、归并排序给出每轮排序的结果。
6、设计算法实现二叉树交换左右子树。