1.
#include "stdafx.h" #include "stdio.h" main() { int i, j, n, m; /*定义变量i,j,n,m*/ int a[16] = { 0 }; /*定义数组a,元素初始值为0*/ printf("please input the decimalism number(0~32767):\n"); /*输出双引号内普通字符*/ scanf("%d", &n); /*输入n的值*/ for (m = 0; m < 15; m++) /*for循环从0到14,最高为符号位,本题始终为0*/ { i = n % 2; /*取2的余数*/ j = n / 2; /*取被2整除的结果*/ n = j; /*将余数每次的余数存入数组a中*/ a[m] = i; } for (m = 15; m >= 0; m--) { printf("%d", a[m]); /*for循环,将数组中的16个元素从后往前输出*/ if (m % 4 == 0) printf(" "); /*每输出4个元素,输出一个空格*/ } }
2.
#include "stdafx.h" #include "stdio.h" int main() { printf("* * * * *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* * * * *\n"); }
3.
#include "stdafx.h" #include "stdio.h" main() { int a, b, sum; /*声明变量*/ a=123; /*为变量赋初值*/ b=789; /*为变量赋初值*/ sum=a+b; /*求和运算*/ printf("sum is %d\n",sum); /*输出结果*/ }
4.
#include "stdafx.h" #include "stdio.h" main() { int a, b, c, t; /*定义四个基本整型变量a,b,c,t*/ printf("please input a,b,c:\n"); /*双引号内普通字符原样输出并换行*/ scanf("%d%d%d", &a, &b, &c); /*输入任意三个数*/ if (a > b) /*如果a大于b,借助中间变量t实现a,b值互换*/ { t = a; a = b; b = t; } if (a > c) /*如果a大于c,借助中间变量t实现a,c值互换*/ { t = a; a = c; c = t; } if (b > c) /*如果b大于c,借助中间变量t实现b,c值互换*/ { t = b; b = c; c = t; } printf("the order of the number is:\n"); printf("%d,%d,%d", a, b, c); /*输出函数将a,b,c的值顺序输出*/ }
5.
#include "stdafx.h" #include "stdio.h" main() { int day,x1,x2; /*定义day,x1,x2三个变量为基本整型*/ day=9; x2=1; while(day>0) { x1=(x2+1)*2; /*第一天的桃子数是第二天桃子数加1后的2倍*/ x2=x1; day--; /*因为从后向前推天数递减*/ } printf("the total is %d\n",x1); /*输出桃子的总数*/ }
6.
#include "stdafx.h" #include "stdio.h" int leap(int a) /*自定义函数leap用来指定年份是否为闰年*/ { if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) /*闰年判定条件*/ return 1; /*是闰年返回1*/ else return 0; /*不是闰年返回0*/ } int number(int year, int m, int d) /*自定义函数number计算输入日期为该年第几天*/ { int sum = 0, i, a[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*数组a存放平年每月的天数*/ int b[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*数组b存放闰年每月的天数*/ if (leap(year) == 1) /*判断是否为闰年*/ for (i = 0; i < m - 1; i++) sum += b[i]; /*是闰年,累加数组b前m-1个月份天数*/ else for (i = 0; i < m - 1; i++) sum += a[i]; /*不是闰年,累加数组a钱m-1个月份天数*/ sum += d; /*将前面累加的结果加上日期,求出总天数*/ return sum; /*将计算的天数返回*/ } void main() { int year, month, day, n; /*定义变量为基本整型*/ printf("请输入年月日\n"); scanf("%d%d%d", &year, &month, &day); /*输入年月日*/ n = number(year, month, day); /*调用函数number*/ printf("第%d天\n", n); }
7.
#include "stdafx.h" #include "stdio.h" void main() { int a, b, c; for (a = 1; a <= 3; a++) /*穷举a的所有可能*/ for (b = 1; b <= 3; b++) /*穷举b的所有可能*/ for (c = 1; c <= 3; c++) /*穷举c的所有可能*/ if (a != 1 && c != 1 && c != 3 && a != b && a != c && b != c) /*如果表达式为真,则输出结果,否则继续下次循环*/ { printf("%c 将嫁给 A\n", 'X' + a - 1); printf("%c 将嫁给 B\n", 'X' + b - 1); printf("%c 将嫁给 C\n", 'X' + c - 1); } }
8.
#include "stdafx.h" #include "stdio.h" void main() { int cock, hen, chick; /*定义变量为基本整型*/ for (cock = 0; cock <= 20; cock++) /*公鸡范围在0到20之间*/ for (hen = 0; hen <= 33; hen++) /*母鸡范围在0到33之间*/ for (chick = 3; chick <= 99; chick++) /*小鸡范围在3到99之间*/ if (5 *cock + 3 * hen + chick / 3 == 100) /*判断钱数是否等于100*/ if (cock + hen + chick == 100) /*判断购买的鸡数是否等于100*/ if (chick % 3 == 0) /*判断小鸡数是否能被3整除*/ printf("公鸡:%d 母鸡:%d 小鸡:%d\n", cock, hen,chick); }
9.
#include "stdafx.h" #include "stdio.h" int leap(int a) /*自定义函数leap用来指定年份是否为闰年*/ { if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) /*闰年判定条件*/ return 1; /*不是闰年返回1*/ else return 0; /*不是闰年返回0*/ } int number(int year, int m, int d) /*自定义函数number计算输入日期距2011年1月1日共有多少天*/ { int sum = 0, i, j, k, a[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*数组a存放平年每月的天数*/ int b[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*数组b存放闰年每月的天数*/ if (leap(year) == 1) /*判断是否为闰年*/ for (i = 0; i < m - 1; i++) sum += b[i]; /*是闰年,累加数组b前m-1个月份天数*/ else for (i = 0; i < m - 1; i++) sum += a[i]; /*不是闰年,累加数组a钱m-1个月份天数*/ for (j = 2011; j < year; j++) if (leap(j) == 1) sum += 366; /*2011年到输入的年份是闰年的加366*/ else sum += 365; /*2011年到输入的年份不是闰年的加365*/ sum += d; /*将前面累加的结果加上日期,求出总天数*/ return sum; /*将计算的天数返回*/ } void main() { int year, month, day, n; printf("请输入年月日\n"); scanf("%d%d%d", &year, &month, &day); /*输入年月日*/ n = number(year, month, day); /*调用函数number*/ if ((n % 5) < 4 && (n % 5) > 0) /*当余数是1或2或3时说明在打渔否则在晒网*/ printf("%d:%d:%d 打渔\n", year, month, day); else printf("%d:%d:%d 晒网\n", year, month, day); }
10.
#include "stdafx.h" #include "stdio.h" void main() { float i,h=100,s=100; /*定义变量i,h,s分别为单精度型并为h和s赋初值100*/ for(i=1;i<=9;i++) /*for语句,i的范围从1到9表示小球从第二次落地到第十次落地*/ { h=h/2; /*每落地一次弹起高度变为原来一半*/ s+=h*2; /*累积的高度和加上下一次落地后弹起与下落 的高度*/ } printf("总长度是:%f\n",s); /*将高度和输出*/ printf("第十次落地后弹起的高度是:%f",h/2); /*输出第十次落地后弹起的高度*/ printf("\n"); }
11.
#include "stdafx.h" #include "stdio.h" void main() { int x[7], y[7], s, i; s = 2520 / 6; /*求出平均每个人要分多少个苹果*/ for (i = 2; i <= 6; i++) /*求从老二到老六得到哥哥分来的苹果却未分给弟弟时的苹果数*/ y[i] = s *(9-i) / (8-i); y[1] = x[1] = (s - y[6] / 3) *8 / 7; /*老大得到老六分来的苹果却未分给弟弟时的苹果数*/ for (i = 2; i <= 6; i++) x[i] = y[i] - y[i - 1] / (10-i); /*求原来每人得到的苹果数*/ for (i = 1; i <= 6; i++) printf("x[%d]=%d\n", i, x[i]); /*将最终结果输出*/ }
12.
#include "stdafx.h" #include "stdio.h" void main() { int n; float sum1,sum2; /*sum1和sum2应为单精度型,否则结果将不准确*/ for(n=11;;n++) { sum1=(n+9)/10.0; sum2=(9*n+171)/100.0; if(sum1!=(int)sum1)continue; /*sum1和sum2应为整数,否则结束本次循环继续下次判断*/ if(sum2!=(int)sum2)continue; if(sum1==sum2) break; /*当sum1等于sum2时,跳出循环*/ } printf("共有%d个学生\n将糖果分成了%d份",(int)(n/sum1),n); /*输出学生数及分成的份数*/ printf("\n"); }
13.
#include "stdafx.h" #include "stdio.h" void main() { int year; /*定义基本整型变量year*/ printf("请输入年份:\n"); scanf("%d", &year); /*从键盘输入表示年份的整数*/ if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) /*判断闰年条件*/ printf("%d 是闰年\n", year); /*满足条件的输出是闰年*/ else printf("%d 不是闰年\n", year); /*否则输出不是闰年*/ }
14.
#include "stdafx.h" #include "stdio.h" void main() { int a, b, c, d, e; for (a = 0; a <= 1; a++) /*对a、b、c、d、e穷举贴黑纸和白纸的所有可能*/ for (b = 0; b <= 1; b++) for (c = 0; c <= 1; c++) for (d = 0; d <= 1; d++) for (e = 0; e <= 1; e++) if ((a && b + c + d + e == 3 || !a && b + c + d + e != 3) && (b && a + c + d + e == 0 || !b && a + c + d + e != 0) && (c && a + b + d + e == 1 || !c && a + b + d + e != 1) && (d && a + b + c + e == 4 || !d && a + b + c + e != 4)) /*根据体列出相应条件*/ { printf("0-黑纸,1-白纸\n"); printf("a is %d\nb is %d\nc is %d\nd is %d\ne is %d\n", a, b, c, d, e); /*将最终结果输出*/ } }
15.
#include "stdafx.h" #include "stdio.h" void main() { int i, j, k, n; /*定义变量为基本整型*/ for (i = 100; i < 1000; i++) /*对100~1000内的数进行穷举*/ { j = i % 10; /*分离出个位上的数*/ k = i / 10 % 10; /*分离出十位上的数*/ n = i / 100; /*分离出百位上的数*/ if (j *j * j + k * k * k + n * n * n == i) /*判断各位上的立方和是否等于其本身*/ printf("%5d", i); /*将水仙花数输出*/ } printf("\n"); }
16.
#include "stdafx.h" #include "stdio.h" void main() { float a1 = 3, b1 = 1, c1 = 4, d1 = 5; /*定义变量为单精度型*/ float day; /*定义天数为单精度型*/ day = 1 / (1 / a1 + 1 / b1 + 1 / c1 + 1 / d1); /*计算四渠同时注水多久可以注满*/ printf("需要 %f 天!\n", day); /*将计算出的天数输出*/ }
17.
#include "stdafx.h" #include "stdio.h" void main() { int a,b,c,sum; /*定义变量*/ float ave; printf("请输入三个学生的分数:\n"); /*输出提示信息*/ scanf("%d%d%d",&a,&b,&c); /*输入三个学生的成绩*/ sum=a+b+c; /*求总成绩*/ ave=sum/3.0; /*求平均成绩*/ printf("总成绩=%4d\t, 平均成绩=%5.2f\n",sum,ave); /*输出总成绩和平均成绩*/ }
18.
#include "stdafx.h" #include "stdio.h" int main() { char c; /*定义变量*/ printf("请输入一个字符:\n"); /*显示提示信息*/ scanf("%c",&c); /*要求输入一个字符*/ if(c>=65&&c<=90) /*表达式1的取值范围*/ { printf("输入的字符是大写字母\n"); } else if(c>=97&&c<=122) /*表达式2的取值范围*/ { printf("输入的字符是小写字母\n"); } else if(c>=48&&c<=57) /*表达式3的取值范围*/ { printf("输入的是数字\n"); } else /*输入其他范围*/ { printf("输入的是特殊符号\n"); } return 0; }
19.
#include "stdafx.h" #include "stdio.h" #include<stdlib.h> int main() { int button; /*定义变量*/ system("cls"); /*清屏*/ printf("**********************\n"); /*输出普通字符*/ printf("* 可选择的按键: *\n"); printf("* 1. 巧克力 *\n"); printf("* 2. 蛋糕 *\n"); printf("* 3. 可口可乐 *\n"); printf("**********************\n"); printf("从1~3中选择按键:\n"); /*输出提示信息*/ scanf("%d",&button); /*输入数据*/ switch(button) /*根据button决定输出结果*/ { case 1: printf("你选择了巧克力"); break; case 2: printf("你选择了蛋糕"); break; case 3: printf("你选择了可口可乐"); break; default: printf("\n 输入错误 !\n"); /*其它情况*/ break; } printf("\n"); return 0; }
20.
#include "stdafx.h" #include "stdio.h" void main() { float x, m1, m2, m; char y, z; scanf("%f,%c,%c", &x, &y, &z); /*输入选择油的千克数、种类及服务*/ switch (y) /*选择汽油种类*/ { case 'a': m1 = 5.75; break; case 'b': m1 = 6.00; break; case 'c': m1 = 7.15; break; } switch (z) /*选择服务种类*/ { case 'a': /*不需要提供服务*/ m2 = 0; break; case 'm': m2 = 0.05; break; case 'e': m2 = 0.1; break; } m = x * m1 - x * m1 * m2; /*计算应付的钱数*/ printf("汽油种类是:%c\n", y); printf("服务等级是:%c\n", z); printf("用户应付金额是:%.3f\n", m); }
21.
#include "stdafx.h" #include "stdio.h" void main() { float a,b; char c; printf("请输入运算格式:a+(-,*,/)b \n"); scanf("%f%c%f",&a,&c,&b); switch(c) { case '+':printf("%f\n",a+b);break; case '-':printf("%f\n",a-b);break; case '*':printf("%f\n",a*b);break; case '/': if(!b) printf("除数不能是零\n"); else printf("%f\n",a/b); break; default:printf("输入有误!\n"); } }
22.
#include "stdafx.h" #include "stdio.h" main() { int i,j,k; /*定义i,j,k为基本整型*/ for(i=0;i<=10;i++) /*i是一角钱兑换个数,所以范围从1到10*/ for(j=0;j<=5;j++) /*j是两角钱兑换个数,所以范围从0到5*/ for(k=0;k<=2;k++) /*k是五角钱兑换个数,所以范围从0到2*/ if(i+j*2+k*5==10) /*三种钱数相加是否等于十*/ printf("yi jiao%d,liang jiao%d,wu jiao%d\n",i,j,k);/*将每次可兑换的方案输出*/ return 0; }
23.
#include "stdafx.h" #include "stdio.h" main() { int i, j; /*定义i,j两个变量为基本整型*/ for (i = 1; i <= 9; i++) /*for循环i为乘法口诀表中的行数*/ { for (j = 1; j <= i; j++) /*乘法口诀表中的另一个因子,取值范围受一个因子i的影响*/ printf("%d*%d=%d ", i, j, i *j); /*输出i,j及i*j的值*/ printf("\n"); /*打完每行值后换行*/ } }
24.
#include "stdafx.h" #include "stdio.h" #include<math.h> int main() { double y; int x, m; for (y = 1; y >= - 1; y -= 0.1) /*0到π,π到2π分别绘制21个点*/ { m = acos(y) *10; /*求出对应的横坐标位置*/ for (x = 1; x < m; x++) printf(" "); /*画*前画空格数*/ printf("*"); /*画**/ for (; x < 62-m; x++) /*画出对称面的**/ printf(" "); printf("*\n"); } getchar(); return 0; }