编程内容及要求:
编写程序,打印输出9种基本逻辑运算符(与、或、非、条件、双条件、异或、与非、或非、条件否定)的运算表到字符文件logic.txt中。
编程语言可选择C、C++、Java或Python。
逻辑运算表输出格式示例:
------------------
P Q 条件否定
------------------
T T F
T F T
F T F
F F F
------------------
输出的字符文件logic.txt内容(粘贴):
------------------
P Q 与运算
------------------
F F F
F T F
T F F
T T T
------------------
------------------
P Q 或运算
------------------
F F F
F T T
T F T
T T T
------------------
------------------
P 非运算
------------------
F T
T F
------------------
------------------
P Q 条件运算
------------------
F F T
F T T
T F F
T T T
------------------
------------------
P Q 双条件运算
------------------
F F T
F T F
T F F
T T T
------------------
------------------
P Q 异或运算
------------------
F F F
F T T
T F T
T T F
------------------
------------------
P Q 与非运算
------------------
F F T
F T T
T F T
T T F
------------------
------------------
P Q 或非运算
------------------
F F T
F T F
T F F
T T F
------------------
------------------
P Q 条件否定运算
------------------
F F F
F T F
T F T
T T F
------------------
源程序代码:
#include <stdio.h>
int main()
{FILE *fp;fp = fopen("logic.txt", "w"); // 打开文件if (fp == NULL) { // 文件打开失败printf("文件打开失败!\n");return 1;}// 输出与运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 与运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p && q;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出或运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 或运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p || q;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出非运算表fprintf(fp, "------------------\n");fprintf(fp, " P 非运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {int result = !p;char ch_1=p ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c\n", ch_1, ch_3);}fprintf(fp, "------------------\n\n");// 输出条件运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 条件运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p ? q : 1;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出双条件运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 双条件运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = (p && q) || (!p && !q);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出异或运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 异或运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = p ^ q;char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出与非运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 与非运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = !(p && q);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出或非运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 或非运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = !(p || q);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");// 输出条件否定运算表fprintf(fp, "------------------\n");fprintf(fp, " P Q 条件否定运算\n");fprintf(fp, "------------------\n");for (int p = 0; p <= 1; p++) {for (int q = 0; q <= 1; q++) {int result = !(p ? q : 1);char ch_1=p ?'T':'F';char ch_2=q ?'T':'F';char ch_3=result ?'T':'F';fprintf(fp, " %c %c %c\n", ch_1, ch_2, ch_3);}}fprintf(fp, "------------------\n\n");fclose(fp); // 关闭文件printf("逻辑运算表已输出到文件 logic.txt 中!\n");return 0;
}