C语言第1次上机
C 语言程序设计 实验报告
班级 日期
学生姓名 学号
第 1 次上机
实验 1 表达式与标准输入输出
1.1 实验目的
(1)熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中
的类型转换,重点是 C 语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;
熟记运算符的优先级和结核性。
(2 )掌握 getchar,putchar,scanf 和 printf 函数的用法。
(3)掌握简单 C 程序(顺序结构程序)的编写方法。
1.2 实验任务
编写并上机调试运行能实现以下功能的程序。
(1)编写一个程序,输入字符c,如果c是大写字母,则将c转换成对应的小写,否
则c的值不变,最后输出c。
(2 )编写一个程序, 输入无符号短整数 x ,m, n (0 ≤m≤ 15, 1 ≤ n≤ 16- m),
取出 x 从第m位开始向左的n位(m从右至左编号为 0~ 15),并使其向左端(第 15 位)靠
齐。
(3)IP 地址通常是 4 个用句点分隔的小整数(即点分十进制) ,如 32.55.1.102 。这些
地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个互联网 IP
地址,对其译码,然后用常见的句点分隔的 4 部分的形式输出。例如,
整形 676879571 二进制表示就是: 0101100011010011 ,按照 8 位一组
可表示为: 40 88 92 211,由于 CPU处理数据的差异,它的顺序是颠倒的,所有最终格式为
211.92.88.40 。
1.3 实验步骤及结果
(要求给出源程序和程序运行结果。另外,根据实验内容,记录编辑、编译、链接、调试程
序的操作过程和实验中出现的问题)
(1)分析:输入字符,判断是否为大写字母,转换时只需对字符 C 作 C- ‘A’+ ’a ’处理。
#include
void main(void)
{
char c;
printf("Input c:\n");
scanf("%c",&c);
if(c>'A'&&c
c=c-'A'+'a';
printf("%c",c);
}
else
printf("%c",c);
}
问题:当 if 句后面缺 { } 时
(2 )分析:欲使其向左端靠齐,需要使无关项为零,可以先向左移再引入逻辑尺,也可以
先移到最右端再移到最左端。这里用后者,对 X 作 X》》M 《《(15— N+1)处理。
#include
void main()
{
unsigned short int x,m,n;
printf("Input x,m,n:\n");
scanf("%hu %hu %hu",&x,&m,&n);
x=x>>m<
printf("%hu\n",x);
}
问题:当缺少分号时
(3 )分析:把长整型数 8 位一组表示出来,需要先分别把这 8 位数移到最右端,再分别转
换成十进制数字。这里还需注意四组数的顺序。
#include
main()
{
unsigned long x,a,b,c,d;
printf("Input x:\n");
scanf("%ul",&x);
a=(x&0xff000000)>>24;
b=(x&0x00ff0000)>>16;