字符和字符串
1. 请问字符串 “I love sunyu!” 在内存中总共占用多少个字节?
答:一共有13个字节,还有一个 ‘\0’ 字符表示结束。
2. 如有变量 char name[10] = “SunYu”,请写出变量 name 在内存中的存储形式?
答:由于 name 变量是声明了 10 个字节的字符串,而 “SunYu” 只需 6 个字节的空间来存放,因此多余的空间用 ‘\0’ 进行填充。所以 name 变量在内存中的存储形式应该是:‘S’,‘u’,‘n’,‘Y’,‘u’,’\0’,’\0’,’\0’,’\0’,’\0’。
3. 在 Linux 系统上如何快速查看 ASCII 字符表?
答:输入命令 man ascii,按下字母 ‘q’ 可退出。
dym@ubuntu:~$ man ascii
4. 问题:写一个华氏度到摄氏度的转换程序,用户输入华氏度,程序计算并输出对应的摄氏度。摄氏度 =(1华氏度 – 32) 5 / 9*
答:代码如下:
#include <stdio.h>
int main()
{
float fahrenheit;
float centigrade;
printf("please input Fahrenheit:");
scanf("%f",&fahrenheit);
centigrade = (fahrenheit - 32) * 5 / 9;
printf("the centigrade is %f\n",centigrade);
return 0;
}
运行结果:
dym@ubuntu:~/project/c_proj/FishC/test$ gcc test.c -o test && ./test
please input Fahrenheit:150
the centigrade is 65.555557
- 要求输出结果为:
代码如下:
#include <stdio.h>
int main()
{
char name[100];
float height;
float weight;
printf("please input your name:");
scanf("%s",name);
printf("please input your height(cm):");
scanf("%f",&height);
printf("please input your weight(kg):");
scanf("%f",&weight);
printf("------change------\n");
height = height / 2.54;
weight = weight / 0.453;
printf("%s's height is %f(in) and weight is %f(lb)\n",name,height,weight);
return 0;
}
运行结果如下:
dym@ubuntu:~/project/c_proj/FishC/test$ gcc test.c -o test && ./test
please input your name:SunYu
please input your height(cm):180
please input your weight(kg):65
------change------
SunYu's height is 70.866142(in) and weight is 143.487854(lb)