1、c语言的编译过程(第一个c程序)
#include <stdio.h> //这是预编译命令
int main() //定义主函数
{ //函数开始的标志
printf("Hello World"); //输出所指定的一行信息
return 0; //函数执行完毕时返回函数值0
} //函数结束的标志
2、输入某年某月某日,判断这一天是这一年的第几天?
#include "stdio.h""
int main() {
int day, month, year, sum, leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d", &year, &month, &day);
switch (month)/*先计算某月以前月份的总天数*/
{
case 1:
sum = 0;
break;
case 2:
sum = 31;
break;
case 3:
sum = 59;
break;
case 4:
sum = 90;
break;
case 5:
sum = 120;
break;
case 6:
sum = 151;
break;
case 7:
sum = 181;
break;
case 8:
sum = 212;
break;
case 9:
sum = 243;
break;
case 10:
sum = 273;
break;
case 11:
sum = 304;
break;
case 12:
sum = 334;
break;
default:
printf("data error");
break;
}
sum = sum + day; /*再加上某天的天数*/
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))/*判断是不是闰年*/
leap = 1;
else
leap = 0;
if (leap == 1 && month > 2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.", sum);
}
3、输入三个整数x,y,z,请把这三个数由小到大输出。
#include "stdio.h""
int main() {
int x, y, z, t;
printf("Please input the value of x,y and z: ");
scanf("%d%d%d", &x, &y, &z);
if (x > y) {
t = x;
x = y;
y = t;
} /*交换x,y的值*/
if (x > z) {
t = z;
z = x;
x = t;
}/*交换x,z的值*/
if (y > z) {
t = y;
y = z;
z = t;
}/*交换z,y的值*/
printf("small to big: %d %d %d\n", x, y, z);
}
4、输出图形*号
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k;
for(i=1;i<=8;i++) //行 1 2 3
{
for(j=8;j>=1;j--)//空 11111111 11111111 11111111
printf(" ");
for(k=1;k<=2*i-1;k++)//输出*号 1 3 5
printf("*");
printf("\n");
}
return 0;
}
5、把一个三位的数字,分别输出它的个位数,十位数、百位数。
#include<stdio.h>
#include<math.h>
main()
{ int a,b,c,m;
m=321;
a=m%10; //个位
b=(m/10)%10; //十位
c=m/100; //百位
printf("%d%d%d\n",a,b,c);//输出个、十、百
return 0;
}
6、求某某范围内的闰年
#include<stdio.h>
main()
{
int i;
for ( i = 0; i <= 5000; i++)
{
if ((i%4==0 && i%100!=0) || i%40==0)
printf("%d\n",i);
}
return 0;
}
* 如上代码是求 0—5000年范围内的闰年。
- 非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
- 整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
7、输入四个数,求最大、最小值
(1) 最小值代码
#include<stdio.h>
#include<math.h>
int main()
{
int i,x,min;
for(i=1;i<=4;i++)
{
scanf("%d",&x);
if(i==1)
{ min=x; }
if(x<min)
min=x;
}
printf("%d\n",min);
}
(2) 最大值代码
#include<stdio.h>
#include<math.h>
int main()
{
int i,x,max;
for(i=1;i<=4;i++)
{
scanf("%d",&x);
if(i==1) //注意:这里是 等于号
{ max=x; }
if(x>max)
max=x;
}
printf("%d\n",max);
}
8、在一维数组中:输入一个数,找到它的位置
#include<stdio.h>
#include<math.h>
int main()
{
int ft,i,x,n,a[15]={1,2,4,5,7,0,8,11,13,15,67,99,100,22,33};
scanf("%d",&x);
for(i=0;i<=14;i++)
{ if(a[i]==x)
{ft=1;
n=i;}
}
if(ft==1)
printf("%d找到了,在第%d位置",x,n);
else
printf("未找到");
}
9、判断一个数是否为素数(质数)
#include<stdio.h>
#include"math.h"
#include<stdlib.h>
int main()
{
int a,i,k,z;
scanf("%d",&a);
k=a/2;
for(i=2;i<=k;i++)
if(a%i==0) break;
if(i>k)
printf("%d是质数",a);
else
printf("%d不是质数",a);
}
10、小写字母变成大写字母
#include<stdio.h>
#include<math.h>
int main()
{
char c;
scanf(" %c",&c);
if(c>='a'&&c<='z')
c=c-32;
printf(" %c\n",c);
}
11、输入十个数,求最大最小,偶数、奇数个数
#include<stdio.h>
#include<math.h>
int main()
{
int i,x,odd=0,even=0,max,min;
for(i=1;i<=10;i++)
{
scanf("%d",&x);
if(i==1)
{ max=x; min=x; }
if(x%2==0)
even+=1;
if(x%2!=0)
odd+=1;
if(x>max)
max=x;
if(x<min)
min=x;
}
printf("%d\n",max);
printf("%d\n",min);
printf("%d\n",odd);
printf("%d\n",even);
}
12、输出9*9乘法表口诀。
#include "stdio.h"
int main() {
int i, j, result;
printf("\n");
for (i = 1; i < 10; i++) {
for (j = 1; j < 10; j++) {
result = i * j;
printf("%d*%d=%-3d", i, j, result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
13、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
#include "stdio.h"
int main() {
int i, j, k, n;
printf("'water flower'number is:");
for (
n = 100;
n < 1000; n++) {
i = n / 100;/*分解出百位*/
j = n / 10 % 10;/*分解出十位*/
k = n % 10;/*分解出个位*/
if (i * 100 + j * 10 + k ==
i * i
* i +
j * j
* j +
k * k
* k) {
printf("%-5d", n);
}
}
printf("\n");
}
分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
14、输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<stdio.h>
int main() {
int m, n, i, l, z;
printf("Please input two numbers: ");
scanf("%d %d", &m, &n);
if (m > n) {
i = n;
z = m;
} else {
i = m;
z = n;
}
for (; i > 0; i--) {
if (m % i == 0 && n % i == 0) {
l = i;
break;
}
}
printf("%d\n", l);
for (;; z++) {
if (z % m == 0 && z % n == 0) {
l = z;
break;
}
}
printf("%d\n", l);
return 0;
}
15、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#include <stdio.h>
int main() {
int day, x1, x2;
day = 9;
x2 = 1;
while (day > 0) {
x1 = (x2 + 1) * 2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2 = x1;
day--;
}
printf("the total is %d\n", x1);
}
16、利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
#include "stdio.h"
int main() {
int score;
char grade;
printf("please input a score\n");
scanf("%d", &score);
grade = score >= 90 ? 'A' : (score >= 60 ? 'B' : 'C');
printf("%d belongs to %c", score, grade);
}