C语言程序设计实训练习

上传人:ji****72 文档编号:35907631 上传时间:2018-03-22 格式:DOC 页数:4 大小:39KB
返回 下载 相关 举报
C语言程序设计实训练习_第1页
第1页 / 共4页
C语言程序设计实训练习_第2页
第2页 / 共4页
C语言程序设计实训练习_第3页
第3页 / 共4页
C语言程序设计实训练习_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言程序设计实训练习》由会员分享,可在线阅读,更多相关《C语言程序设计实训练习(4页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计实训练习:语言程序设计实训练习: 第一章第一章 1、使用公式、使用公式=(5/9) (-32)(-32),打印下列华氏温度与摄氏温度对照表:,打印下列华氏温度与摄氏温度对照表:0 0-17-17 2020-6-6 40404 4 60601515 80802626 1001003737 1201204848 1401406060 1601607171 300300 1481482 2、编写一个统计空格、制表符与换行符个数的程序。、编写一个统计空格、制表符与换行符个数的程序。 3 3、编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。、编写一个将输入复制到输出

2、的程序,并将其中连续的多个空格用一个空格代替。 4 4、编写一个程序,统计输入的行数、单词数与字符数。、编写一个程序,统计输入的行数、单词数与字符数。 5 5、编写一个程序,统计各个数字、空白符(包括空格符、制表符及换行符)以及所有其他、编写一个程序,统计各个数字、空白符(包括空格符、制表符及换行符)以及所有其他 字符出现的次数。字符出现的次数。 6 6、重写标准库中的求幂函数:、重写标准库中的求幂函数:intint pow(intpow(int x,x, intint y)y)。 7 7、编写一个程序,删除每个输入行末尾的空格。、编写一个程序,删除每个输入行末尾的空格。 8 8、编写函数、编

3、写函数 reverse()reverse(),将字符串,将字符串 s s 中的字符顺序颠倒过来。中的字符顺序颠倒过来。 (附加:尝试用递归的思想(附加:尝试用递归的思想 来实现来实现 reversereverse)9 9、编写一个删除编写一个删除 C C 语言程序中所有的注释语言程序中所有的注释 语句、要正确处理带引号的字符串与字符常量。语句、要正确处理带引号的字符串与字符常量。在在 C C 语言程序中,注释不允许嵌套。语言程序中,注释不允许嵌套。 (附加)(附加) 1010、编写一个程序,查找、编写一个程序,查找 C C 语言程序中的基本语法错误,如圆括号、方括号以及花括号不语言程序中的基本

4、语法错误,如圆括号、方括号以及花括号不 配对等。要正确处理引号(包括单引号、双引号)配对等。要正确处理引号(包括单引号、双引号) 、转义字符序列与注释。、转义字符序列与注释。 (附加)(附加)第二章第二章 类型、运算符与表达式类型、运算符与表达式 n);(2)(2) voidvoid clearbit(unsignedclearbit(unsigned x,x, intint n);n); (3)(3) intint getbit(unsignedgetbit(unsigned x,x, intint n);n); (4)(4) intint bitcount(unsignedbitcount

5、(unsigned x);/x);/ 统计统计 x x 中值为中值为 1 1 的二进制位数的二进制位数5 5、编写一个函数、编写一个函数 setbits(x,setbits(x, p,p, n,n, y)y),该函数返回对,该函数返回对 x x 执行下列操作后的结果值:将执行下列操作后的结果值:将 x x 中从第中从第 p p 位开始的位开始的 n n 个(二进制)位设置为个(二进制)位设置为 y y 中最右边中最右边 n n 位的值,位的值,x x 的其余各位保持不变。的其余各位保持不变。函数原型:函数原型:unsignedunsigned setbits(unsignedsetbits(u

6、nsigned x,x, intint p,p, intint n,n, unsignedunsigned y);y);6 6、编写一个函数、编写一个函数 invert(x,p,n),invert(x,p,n),该函数返回对该函数返回对 x x 执行下列操作后的结果值:将执行下列操作后的结果值:将 x x 中的第中的第 p p 位开始的位开始的 n n 个(二进制)位求反(即个(二进制)位求反(即 1 1 变成变成 0 0, 0 0 变成变成 1 1) ,x x 的其余各位保持不变。的其余各位保持不变。 函数原型:函数原型:unsignedunsigned invertinvert (unsi

7、gned(unsigned x,x, intint p,p, intint n);n); (选做!)(选做!)7 7、编写一个函数、编写一个函数 rightrot(x,n)rightrot(x,n),该函数返回将,该函数返回将 x x 循环右移(即从最右端移出的位将从最循环右移(即从最右端移出的位将从最 左端移入)左端移入)n(n(二进制)位后所得到的值。二进制)位后所得到的值。 函数原型:函数原型:unsignedunsigned rightrotrightrot (unsigned(unsigned x,x, intint n);n); (选做!)(选做!)8 8、实现折半查找函数实现折半

8、查找函数 intint binsearch(intbinsearch(int x,x, intint v,v, intint n),n),该函数用于判定已排序的该函数用于判定已排序的 数组数组 v v 中是否存在某个特定的值中是否存在某个特定的值 x x。数组。数组 v v 的元素必须以升序排序。如果的元素必须以升序排序。如果 v v 中包含中包含 x x,则该,则该 函数返回函数返回 x x 在在 v v 中的位置(介于中的位置(介于 0n-10n-1 之间的一个整数)之间的一个整数) ;否则,该函数返回;否则,该函数返回-1-1。9 9、编写一个函数编写一个函数 voidvoid esca

9、pe(charescape(char s,chars,char t)t),将字符串,将字符串 t t 复制到字符串复制到字符串 s s 中,并中,并 在复制过程中将换行符、制表符等不可见字符分别转换为在复制过程中将换行符、制表符等不可见字符分别转换为nn、tt 等相应的可见的转义字符等相应的可见的转义字符 序列。要求使用序列。要求使用 switchswitch 语句。再编写一个具有相反功能的函数语句。再编写一个具有相反功能的函数 voidvoid unescape(charunescape(char s,s, charchar t)t),在复制过程中将转义字符序列转换为实际字符。,在复制过程中

10、将转义字符序列转换为实际字符。1010、编写编写 voidvoid itoa(intitoa(int n,n, charchar s)s)函数:将数字函数:将数字 n n 转换为字符串并保持到转换为字符串并保持到 s s 中。中。1111、编写函数编写函数 voidvoid itob(intitob(int n,charn,char s,ints,int b)b),将整数,将整数 n n 转换为以转换为以 b b 为底的数,并将为底的数,并将 转换结果以字符的形式保存到字符串转换结果以字符的形式保存到字符串 s s 中。例如,中。例如,itob(n,b,16)itob(n,b,16)把整数把整

11、数 n n 格式化成十六进格式化成十六进制整数保存在制整数保存在 s s 中。中。1212、修改、修改 itoaitoa 函数,使得该函数可以接收三个参数。其中,第三个参数为最小字段宽度。函数,使得该函数可以接收三个参数。其中,第三个参数为最小字段宽度。 为了保证转换后所得的结果至少具有第三个参数指定的最小宽度,在必要时应在所得结果为了保证转换后所得的结果至少具有第三个参数指定的最小宽度,在必要时应在所得结果 的左边填充一定的空格。的左边填充一定的空格。 (选做!)(选做!) 函数原型:函数原型:voidvoid itoa(intitoa(int n,n, charchar s,s, inti

12、nt w)w)第四章:第四章: 函数与程序结构函数与程序结构 1、编写函数编写函数 strindex(s, t),该函数返回字符串,该函数返回字符串 t 在字符串在字符串 s 中出现的起始位置。如果中出现的起始位置。如果 s 中中 不包含不包含 t,则返回,则返回-1。 函数原型:函数原型: int strindex(char s, char t)2、编写函数编写函数 strrindex(s, t),该函数返回字符串,该函数返回字符串 t 在字符串在字符串 s 中最右边出现的位置。如果中最右边出现的位置。如果 s 中不包含中不包含 t,则返回,则返回-1。 函数原型:函数原型: int str

13、rindex(char s, char t)3、在逆波兰计算器的基础上,加入取模在逆波兰计算器的基础上,加入取模(%)运算符,并注意考虑负数的情况。运算符,并注意考虑负数的情况。 Eg: -10 3 % 结果为:结果为: -1 #include 取模取模(%)函数:函数:double fmod(double x, double y); 判断字符判断字符 c 是否为数字函数:是否为数字函数: int isdigit(int c);4、扩展逆波兰计算器程序,在栈操作中添加几个命令,分别用于在保证栈元素完整性的情扩展逆波兰计算器程序,在栈操作中添加几个命令,分别用于在保证栈元素完整性的情 况下打印栈

14、顶元素;复制栈顶元素;交换栈顶两个元素的值。另外增加一个命令用于清空况下打印栈顶元素;复制栈顶元素;交换栈顶两个元素的值。另外增加一个命令用于清空 栈。栈。5、扩展逆波兰计算器程序,给计算器程序增加访问、扩展逆波兰计算器程序,给计算器程序增加访问 sin、cos 与与 exp 库函数的操作。库函数的操作。6、编写一个递归版本的、编写一个递归版本的 itoa 函数,即通过递归调用把整数转换为字符串。函数,即通过递归调用把整数转换为字符串。7、定义一个宏,用于计算一年当中的秒数。、定义一个宏,用于计算一年当中的秒数。8、定义宏定义宏 swap(t, x, y)以交换以交换 t 类型的两个参数。类型

15、的两个参数。 Eg: 带参数的宏定义:带参数的宏定义: #define MAX(A,B) ((A) (B) ? (A) : (B))#define fun(x,y) (x)*(y)Fun(a+b,c) A+b*c第五章第五章 指针与数组指针与数组尝试至少用三种方法实现尝试至少用三种方法实现 void strcpy(char *s, char *t)函数。函数。 1、用指针方式实现用指针方式实现 strcat(s, t), 将将 t 指向的字符串复制到指向的字符串复制到 s 指向的字符串的尾部。指向的字符串的尾部。 函数原型:函数原型: void strcat(char *s, char *t)

16、2、编写函数编写函数 strend(s, t)。如果字符串。如果字符串 t 出现在字符串出现在字符串 s 的尾部,该函数返回的尾部,该函数返回 1;否则返回;否则返回 0。 函数原型:函数原型: int strend(char *s, char * )3、实现库函数实现库函数 strncpy、strncat 和和 strncmp 他们最多对参数字符串中的前他们最多对参数字符串中的前 n 个字符进行操个字符进行操 作。例如,函数作。例如,函数 strncpy(s, t, n)将将 t 中最多前中最多前 n 个字符复制到个字符复制到 s 中。中。 4、采用指针而非数组索引方式改写、采用指针而非数组索引方式改写 atoi 与与 itoa 函数;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号