printf("Hello World!");//原代码 printf("201883300010");//改动后的代码
第一道题不多赘述,只是简单的改动而已。
// 程序功能: // 要求用户从键盘输入一个整数,判断其是奇数还是偶数 #include <stdio.h> int main() { int x; printf("输入一个整数: \n"); scanf("%d",&x); // 使得当表达式成立时,判定x是奇数,否则是偶数 if(x%2!=0) printf("是奇数"); else printf("是偶数"); return 0; }
运行结果如图:
PS:注意运算符优先级%大于!=,所以此处不需要加括号。但是如果是其他情况,则不一定。
2.
/* 程序功能: 要求用户从键盘输入1~7之间的整数 如果输入的是1~5, 提示用户是工作日,要努力工作; 如果输入的是6或7,提示用户是休息日,放松休息; 否则,提示用户输入不在合法范围 */ #include <stdio.h> int main() { int days; printf("输入一个整数: \n"); scanf("%d",&days); // 补足×××处的表达式,使得满足程序功能描述 if(days>=1&&days<=5) // days在1到5之间 printf("workdays, fighting\n"); else if(days==6||days==7) // days是6或7 printf("weekend, relax~\n"); else printf("Ooops, not in 1~7\n"); return 0; }
运行结果如图:
这里为了能更多的练习逻辑运算符和比较运算符,所以在两处if语句中用了不同的表达,实际上你可以写成days==1||days==2这样,如果数量不多,完全没问题。而如果判断是在10~99这样的大数,甚至更大,就有些针尖对麦芒的感觉了。其中值得注意的是应该写成days==3而不是days=3,前者得出的结果是1或者0,而后者把3赋值给了变量days,区别很大。
另一方面,实际也可以用switch语句来完成该程序的,不过情况也仍然比较多,case1~7再加上default总共八种,不再赘述。
3.
// 功能: // 从键盘上输入单个字符 // 如果是小写字母,则转换成大写后输出 // 否则,什么也不做,原样输出 #include <stdio.h> int main() { char ch; printf("输入一个字符:\n"); scanf("%c",&ch); // 根据程序功能描述,补足程序 if(ch>=‘a‘&&ch<=‘z‘) // 如果ch是小写字母,补足判定ch是小写字母的表达式 ch-=32;// 补足把ch中的小字母转换成大写字母的表达式语句 // 说明:语句就是在表达式末尾加分号; printf("%c\n",ch); return 0; }
运行结果如图:
这里实际是运用了ASCII码中小写与大写间隔32这个知识,其余部分不多展开。
此题中要求将一个十进制转换成二进制,其中的难点在于取余之后是反过来书写的。在此给出两种不同的方法:
#include <stdio.h>
int main( ){ int n; int result=0,k=1,i,temp; printf("请输入一个整数:\n"); scanf("%d",&n); temp = n; while(temp){ i = temp%2; result = k * i + result; k = k*10; temp = temp/2; } printf("%d\n", result); return 0; }
此段代码参考了CSDN博主写的代码,其优势在于有多少位得多少位。
运行结果如图:
第二种方法如下:
#include <stdio.h> int main() { int x,a[8]={0},i=0; printf("请输入一个整数:\n"); scanf("%d",&x); while(x!=0) { a[8-i-1]=x%2; x/=2; i++; } printf("它的二进制表示是:\n"); for(i=0;i<8;i++) { printf("%d",a[i]); } return 0; }
其中的注意点,我已通过运行结果表示出来,就不多展开了~
脱离codeblocks,使用电脑机房打开devc6.0,vs2010,vs2012,在其中编译C程序遇到许多阻碍。其余方面遇到的困难则都自己debug出来了(applause~)
原文:https://www.cnblogs.com/radius1/p/10559627.html