实验1

实验结论

 

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

转载于:https://www.cnblogs.com/radius1/p/10559627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值