逻辑运算符:
&& 逻辑与(二目运算符)
|| 逻辑或(二目运算符)
! 逻辑非(一目运算符)
关键字:
基本类型 char int double float enum
修饰类型 long short signal unsigned const volatile
存储类型 auto register static extern
选择结构 if else
分支结构 switch case default
循环 for do while
构造类型 struct union
类型定义 typedef
计算类型长度 sizeof
转向 continue break goto return
void
continue 循环作用域
break 循环作用域/分支作用域
goto 函数作用域
return 函数作用域
循环语句-for循环
for (循环初始值; 循环终止条件; 步进值/循环条件变化值) {
循环体;
}
/*死循环1*/
for (;;) {
执行体;
}
for (;;)
执行体;
循环语句-转向语句 continue, break, goto, return;
循环语句-for 循环的嵌套
作业:
/**
* 【程序1】
* 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
* 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
*/
#include<stdio.h>
int main() {
int i, j, k;
for (i = 1; i < 5; i++) { //以下为三重循环
for (j = 1; j < 5; j++) {
for (k = 1; k < 5; k++) {
if (i != k && i != j && j != k) { //确保i、j、k三位互不相同
printf("%d,%d,%d\n", i, j, k);
}
}
}
}
return 0;
}
/**
* 【程序13】
* 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
* 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
* 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
*/
#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");
return 0;
}
/**
* 【程序23】
* 题目:打印星号组成的菱形图案
* 分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重
* for循环,第一层控制行,第二层控制列。
*/
#include <stdio.h>
int main() {
int i, j, k;
for (i = 0; i <= 3; i++) {
for (j = 0; j <= 2 - i; j++) {
printf(" ");
}
for (k = 0; k <= 2 * i; k++) {
printf("*");
}
printf("\n");
}
for (i = 0; i <= 2; i++) {
for (j = 0; j <= i; j++) {
printf(" ");
}
for (k = 0; k <= 4 - 2 * i; k++) {
printf("*");
}
printf("\n");
}
return 0;
}
/**
* 【程序8】
* 题目:输出9*9口诀。
* 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
*/
#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"); // 每一行后换行
}
return 0;
}
/**
* 【程序12】
* 题目:判断101-200之间有多少个素数,并输出所有素数。
* 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
* 则表明此数不是素数,反之是素数。
*/
#include<stdio.h>
int main() {
int i, j;
for (i = 101; i <= 200; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) { //只要除到一个数让 i 能被整除就跳出该循环。
break;
} else {
if (j == i - 1) { //除完最后一个数后还不跳出循环,就可以判断该数为素数。
printf("%d ", i);
}
}
}
}
return 0;
}
/**
* 【程序2】
* 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
* 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
* 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
*/
#include<stdio.h>
int main() {
long f1,f2;
int i;
f1=f2=1;
for (i=1;i<=20;i++) {
printf("%12ld %12ld",f1,f2);
if (i%2==0) {
printf("\n"); //控制输出,每行四个
}
f1=f1+f2; //前两个月加起来赋值给第三个月
f2=f1+f2; //前两个月加起来赋值给第三个月
}
return 0;
}
第四课-逻辑运算, 关键字, 循环for, 转向语句
最新推荐文章于 2024-07-23 15:46:40 发布