1.sizeof和strlen的区别:
2.switch语句中default可以在任意位置,当case没有要执行的就会执行,与顺序无关,
switch(){
case 1:
break;
。
。
。
default:
break;
}
3求最大公约数和最小公倍数
4.闰年
判断一个年份是闰年的方法:
①、能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)
②、能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
#include <stdio.h>
int is_leap_year(int n) {
if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) {
return 1;
}
else
return 0;
}
int main() {
int y = 0;
int count = 0;
for (y = 1000; y <= 2000; y++) {
if (is_leap_year(y) == 1) {
printf("%d\n", y);
count++;
}
}printf("count=%d\n", count);
return 0;
}
5.判断100-200的素数
#include<stdio.h>
int main()
{
int i = 0;
for (i = 100; i <= 200; i++) {
int j;
for (j = 2; j < i; j++){
if (i % j == 0)
break;
}
if (i == j) {
printf("%d ", i);
}
}
return 0;
}
标志法
#include<stdio.h>
int main()
{
int i = 0;
for (i = 100; i <= 200; i++) {
int j = 0;
int flag = 1;//假设为素数,注意flag的位置
for (j = 2; j < i; j++) {
if (i % j == 0){
flag = 0;
break;
}
}
if (flag == 1) {
printf("%d ", i);
}
}
return 0;
}
6.输出小数点后只有两位的
printf("%.2lf %.2lf", a, b);
7.多组数输入
while(scanf("%d %d", &a, &b) != EOF);
8.输入整数,正向输出
#include <stdio.h>
void print(int x) {
printf("%d", x % 10);
if (x > 9){
x /= 10;
print(x);
}
}
int main(){
int n = 0;
scanf("%d", &n);
if (1000 <= n <= 9999) {
print(n);
}
return 0;
}
9.输入整数,反向输出;
#include <stdio.h>
void print(int x) {
if (x > 9) {
print(x / 10);
}
printf("%d ", x % 10);
}
int main() {
int n = 0;
scanf_s("%d", &n);
if (1000 <= n <= 9999) {
print(n);
}
return 0;
}
10.写代码将三个整数数按从大到小输出。 例如: 输入:2 3 1 输出:3 2 1
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
//输入
scanf("%d %d %d", &a, &b, &c);
//计算
//printf("%d %d %d\n", a, b, c);//这样的输出顺序要保证最大值在a,最小值在c中
//把a和b的较大值放到a里边,再把a和c的较大值放到a里,即保证a,b,c中a最大。b和c比,把较大值放到b里,把较小值放到c里。c
//a和b的较大值放到a中:
if (a < b)
{
//两个变量交换需要第三个变量
int tmp = a;//把a先放到tmp中,
a = b;//这时就可以放b了。
b = tmp;//不是b=a
}//此时就把a和b的值交换了。需要临时变量tmp来交换a和b的值。
//把b和c的较大值放到c中
if (a < c)//若a>c就不用了
{
int tmp = a;//先把a的值赋给tmp,a就空了,c的值放到a里去,c就空了,tmp放到c里,这就交换了。
a = c;
c = tmp;
}
//以上的两个if完成的是a,b,c中的最大值。
// 把b和c的较大值放到b中
if (b < c)
{
int tmp = b;
b = c;
c = tmp;
}
//输出
printf("%d %d %d\n", a, b, c);
return 0;
}
11.99乘法口诀
#include <stdio.h>
int main(){
int i,j,n;
for(i=1;i<=9;i++){
// 将下面的for循环注释掉,就输出左下三角形
//for(n=1; n<=9-i; n++)
//printf(" ");
for(j=1;j<=i;j++){
printf("%d*%d=%2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
12.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
#include<stdio.h>
int main()
{
double sum = 0.0;
int flag = 1;
int i;
for (int i = 1; i <= 100; i++)
{
sum += (flag) * 1.0 / i;
flag = -flag;
}
printf("%f\n", sum);
return 0;
}
13.
14.