首页 > 其他 > 详细

实验1

时间:2019-03-19 16:56:28      阅读:142      评论:0      收藏:0      [点我收藏+]

实验结论

 

  •  Part1:
  1. printf("Hello World!");//原代码
    printf("201883300010");//改动后的代码

    第一道题不多赘述,只是简单的改动而已。

  2. 例1.2引用函数product实现函数相乘,其中对函数的定义int和返回值return mul是值得注意的。显然如果做一些尝试,比如改成void product,那么就又需要去做更多的措施来实现这个乘法。
  3. 也是简单的练习,不再多讲。
  • Part2:
// 程序功能:
// 要求用户从键盘输入一个整数,判断其是奇数还是偶数
#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这个知识,其余部分不多展开。

  • Part3

此题中要求将一个十进制转换成二进制,其中的难点在于取余之后是反过来书写的。在此给出两种不同的方法:

#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~)

实验1

原文:https://www.cnblogs.com/radius1/p/10559627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!