计算1至1000间的合数c语言,C语言第1次上机.pdf

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;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值