实验一

Part 1:验证性内容

本部分属于对书本内容的验证,要求我们熟悉一下c语言的基本结构,难度不大。

几个程序虽然简单,却也有值得注意的地方:

1、必须在英文半角状态下进行编写;

2、语句结束后必须有“;”;

3、关系运算和逻辑运算中,要熟记各个逻辑运算符表达的意思以及它们的优先级,避免程序出现逻辑错误(后面填写part 2 ex2.c中第二个空时就曾因为没有弄清“||”和“==”的优先级而犯了错);

Part 2: 按要求写出符合要求的表达式,补全程序

1、判断奇偶:ex1.c

源代码:

#include <stdio.h>
int main(){
    int x;
    printf("输入一个整数:\n");
    scanf("%d",&x);
    if(x%2==1)
    printf("是奇数");
    else
    printf("是偶数");     
    return 0;
}

运行结果:

2、根据不同的输入,显示不同提示信息:ex2.c

源代码:

#include <stdio.h>
int main(){
    int days;
    printf("输入一个整数:\n");
    scanf("%d",&days);
    if(1<=days&&days<=5)
       printf("workdays,fighting\n");
    else if(days==6||days==7)
       printf("weekend,relax~\n");
    else
       printf("Ooops, not in 1~7\n");
    return 0;   
}

运行结果:

3、根据用户输入字符,判断如果是小写字母,则转换成大写;否则保持原样: ex3.c

源代码:

#include <stdio.h>
int main(){
  char ch;
  printf("输入一个字符:\n");
  scanf("%c",&ch);
  if(ch>='a'&&ch<='z')
    ch=ch-32;
  printf("%c\n",ch);
  return 0; 
}

运行结果:

Part 3:编程练习

编写程序,实现把一个十进制整数转换成二进制。十进制整数由键盘输入,转换后的二进制数据输出到显示
器上。

源代码:

#include <stdio.h>
int main(){
int a,b=1,c=0,d;
printf("输入一个整数:");
scanf("%d",&d);
while (d!=0){
a=d%2;
c=a*b+c;
b=b*10;
d=d/2;
}
printf("%d",c);
return 0;
}

运行结果:

然而,这样的程序其实是不完善的。实际上,由于int的位数有限,当输入值大于1023时(从1024起),就无法得出正确答案了。即使改为long,甚至long long,仍然有位数的限制。

使用数组的知识,我得出以下一个改进方案:

源代码:

#include<stdio.h>
int main(){
int b,i,c=0,a[30]={0};
printf("输入一个整数:");
scanf("%d",&b);
if(b == 0){
printf("0");
return 0;
} while(b!=0){
i=b%2;
a[c]=i;
c++;
b=b/2;
}
c--;
for(;c>=0;c--){
printf("%d",a[c]);
} return 0;
}

这里的数组长度可以根据用户的不同需求做出改变,相比之前的方案,区间更大。

运行结果:

 

实验总结与体会

 在上机实验之前,自己虽然已经进行了一定的预习,但也仅仅是停留在“了解”的层面上,距离“理解”和“应用”其实还有很长的距离。因此真正在电脑上编写程序(特别是最后一个完全由自己编写的程序)时,仍然感觉到举步维艰。对很多语法结构还很陌生,需要更多的练习一遍遍巩固。

c语言是一件有力的工具,然而,要真正让它为我所用发挥力量,还有很长的路要走。

评论地址

https://www.cnblogs.com/Anna0708/p/10574553.html

https://www.cnblogs.com/Zhangxw999/p/10562888.html

https://www.cnblogs.com/1346si/p/10568270.html

posted on 2019-03-24 19:36  纪源  阅读(147)  评论(3编辑  收藏  举报

导航