C语言练习题(5)
来源:互联网 发布:淘宝客佣金5元怎么设置 编辑:程序博客网 时间:2024/06/08 07:11
1、
int intvert(unsigned int x,int p,int n)实现对x的进行转换,p为起始转化位, n为需要转换的长度,假设起始点在右边.
如x=0b0001 0001,p=4,n=3转换后x=0b0110 0001。
int intvert(unsigned int x, int p, int n){ unsigned int m = 0; unsigned int a = 1; int i = 0; for (i = 0; i < n; i++)//生成n个1 { m |= a; a = a << 1; } m = m << p;//位移p位 x ^= m; printf("x=0x%x\n", x); return 0;}
2、已知WAV文件格式如下表,打开一个WAV文件,以适当的数据结构组织WAV文件头并解析怎样获取WAV格式的各项信息。
思路:使用fopen函数打开wav文件,编写struct,其中定义头文件各类型参数及大小,使用fread函数按struct大小读取文件内容。
//伪代码struct WAVHead{ char RIFF; ...}MyStruct;FILE *p = fopen("xxx.wav", "r");int n = fread(&MyStruct, sizeof(WAVHead), 1, p);
3、
下面这段代码是把中英文混合字符串(汉字用两个字节表示,特点是第一个字节的最高位是1)中的大写字母转化为小写字母,找出其中的bug。
for (char *piterator=sz_word; *piterator!=0; piterator++)
{
if (*piterator & 0x80 != 0)
{
piterator++;
}
else if (*piterator>=’A’ && *piterator<=’Z’)
piterator +=32;
}
for (char *piterator=sz_word; *piterator!=0; piterator++){ if ((*piterator) & 0x80 != 0)//*和&相同优先级,应加括号 { piterator++; } else if(*piterator >='A' && *piterator<='Z') *piterator += 32;//更改指针的内容,而不是指针本身}
阅读全文
0 0
- C语言练习题(5)
- c语言练习题 3-5 回文数
- c语言练习题 2-5 反弹
- C 语言练习题
- c语言循环练习题
- C语言程序练习题
- c语言练习题
- c语言练习题2
- c语言练习题1
- c语言练习题3
- c语言练习题
- c语言练习题
- c语言练习题
- c语言练习题
- c语言小练习题
- c语言练习题(二)
- C语言练习题 1
- C 语言练习题总结
- 重磅推荐:物联网行业深度研究报告(三)
- angularjs路由菜单如何强制刷新?
- ReentrantLock实现原理详解
- 发布web项目到linux服务器下
- 红粉NBA:那些在联盟中的跨国恋情
- C语言练习题(5)
- HDUOJ1421(DP)
- 【示例教程】LEADTOOLS中如何通过OCR识别获取每一行文本
- 2016China Final 二分 UVALive7900(D)
- java 打印
- oracle数据库使用时间作为查询条件时的写法
- Linex新手常用命令
- MySQL高可用在网易的最佳应用与实践
- 关于网站扫描到的几种漏洞及处理办法