C语言程序设计实训练习
C语言程序设计实训练习: 第一章
1、使用公式℃=(5/9) (℉-32),打印下列华氏温度与摄氏温度对照表: 0 -17 20 -6 40 4 60 15 80 26 100 37 120 48 140 60 160 71 …
300 148
#include
int c,f;
for(f=0;f<=300;f++)
{
c=(int)((1.0*5/9)*(f-32));
printf(\
f+=19;
}
return 0; }
2、编写一个统计空格、制表符与换行符个数的程序。 #include
int c,Num_space=0,Num_tab=0,Num_enter=0;
while ((c = getchar()) != EOF)
{
switch(c)
{
case ' ':
Num_space++;
break;
case '\\t':
Num_tab++;
break;
case '\\n':
Num_enter++;
break;
}
}
printf(\
printf(\
printf(\
return 0; }
3、编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。 4、编写一个程序,统计输入的行数、单词数与字符数。
5、编写一个程序,统计各个数字、空白符(包括空格符、制表符及换行符)以及所有其他字符出现的次数。
6、重写标准库中的求幂函数:int pow(int x, int y)。 7、编写一个程序,删除每个输入行末尾的空格。
8、编写函数reverse(),将字符串s中的字符顺序颠倒过来。(附加:尝试用递归的思想来实现reverse)
9、编写一个删除C语言程序中所有的注释 语句、要正确处理带引号的字符串与字符常量。在C语言程序中,注释不允许嵌套。(附加)
10、编写一个程序,查找C语言程序中的基本语法错误,如圆括号、方括号以及花括号不配对等。要正确处理引号(包括单引号、双引号)、转义字符序列与注释。(附加)
第二章 类型、运算符与表达式 && 第三章 控制流
1、编写atoi函数,将字符串s(eg:”123”)转换为相应的整型数(eg:123) 原型: int atoi(char s[])
2、编写函数htois(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f、A~F。
3、编写一个程序,将字符串s1中任何与字符串s2中字符匹配的字符都删除。 函数原型: void squeeze(char s1[], char s2[])
4、编写如下按位操作函数:
(1)void setbit(unsigned x, int n); (2) void clearbit(unsigned x, int n); (3) int getbit(unsigned x, int n);
(4) int bitcount(unsigned x);// 统计x中值为1的二进制位数
5、编写一个函数setbits(x, p, n, y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。 函数原型:unsigned setbits(unsigned x, int p, int n, unsigned y);
6、编写一个函数invert(x,p,n),该函数返回对x执行下列操作后的结果值:将x中的第p位开始的n个(二进制)位求反(即1变成0, 0变成1),x的其余各位保持不变。 函数原型:unsigned invert (unsigned x, int p, int n); (选做!)
7、编写一个函数rightrot(x,n),该函数返回将x循环右移(即从最右端移出的位将从最左端移入)n(二进制)位后所得到的值。
函数原型:unsigned rightrot (unsigned x, int n); (选做!)
8、实现折半查找函数int binsearch(int x, int v[], int n),该函数用于判定已排序的数组v中是否存在某个特定的值x。数组v的元素必须以升序排序。如果v中包含x,则该函数返回x在v中的位置(介于0~n-1之间的一个整数);否则,该函数返回-1。
9、编写一个函数void escape(char s[],char t[]),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\\n、\\t等相应的可见的转义字符序
列。要求使用switch语句。再编写一个具有相反功能的函数void unescape(char s[],char t[]),在复制过程中将转义字符序列转换为实际字符。
10、编写void itoa(int n, char s[])函数:将数字n转换为字符串并保持到s中。
11、编写函数void itob(int n,char s[],int b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中。例如,itob(n,b,16)把整数n格式化成十六进制整数保存在s中。
12、修改itoa函数,使得该函数可以接收三个参数。其中,第三个参数为最小字段宽度。为了保证转换后所得的结果至少具有第三个参数指定的最小宽度,在必要时应在所得结果的左边填充一定的空格。(选做!)
函数原型:void itoa(int n, char s[], int 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 strrindex(char s[], char t[])
3、在逆波兰计算器的基础上,加入取模(%)运算符,并注意考虑负数的情况。 Eg: -10 3 % 结果为: -1
#include
取模(%)函数:double fmod(double x, double y); 判断字符c是否为数字函数: int isdigit(int c);
4、扩展逆波兰计算器程序,在栈操作中添加几个命令,分别用于在保证栈元素完整性的情况下打印栈顶元素;复制栈顶元素;交换栈顶两个元素的值。另外增加一个命令用于清空栈。
5、扩展逆波兰计算器程序,给计算器程序增加访问sin、cos与exp库函数的操作。
6、编写一个递归版本的itoa函数,即通过递归调用把整数转换为字符串。
7、定义一个宏,用于计算一年当中的秒数。
8、定义宏swap(t, x, y)以交换t类型的两个参数。
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)
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函数; 函数原型为: int atoi(char *s) Void itoa(int n, char *s)
5、通过使用命令行参数传递给程序的方法,做下列练习: 1) 打印命令行参数;
2) 通过命令行传递字符串参数,并应用到strcat,strcpy, strend操作中。
int a[10];
sizeof(a) = 4*10
int len = sizeof(a)/sizeof(a[0]);
快速排序 P74
相关推荐:
- [行业资料]数值计算方法课后习题答案吕同富
- [行业资料]方波、三角波、正弦波函数信号发生器
- [行业资料]外建史考试复习自编
- [行业资料]架子工安全技术交底表
- [行业资料]星巴克员工激励策略探讨
- [行业资料]7.4欧姆定律和安全用电上课用
- [行业资料]NC集中财务管理系统价值简要分析
- [行业资料]第四章 第二篇 墙柱面工程量计算及示例
- [行业资料]佛教咒语精选(注音)
- [行业资料]某化工建筑拆除工程施工方案
- [行业资料]《苗木生产技术》试题库及答案
- [行业资料]地方政府公共政策执行力系统分析
- [行业资料]Analysis of Jane Eyre’s Personality-商务英语-毕业
- [行业资料]消防应急预案范本
- [行业资料]百货商场楼层主管的日常工作和职责
- [行业资料]《小学数学作业分层要求策略的有效性研究》结题报告下
- [行业资料]2014年商业物业行业薪酬调查报告
- [行业资料]201101综意险团险新保培训
- [行业资料]华为测试题+答案
- [行业资料]金融学简答题参考答案(第二版)
- 影响工程项目质量因素分析
- 机械制图与画法几何习题答案
- 2003 专八真题 附带答案解析
- 《新视野大学英语》unit7 sectionA
- 基于网络的教务教学管理系统的设计与实
- 湖南省省以上投资土地开发整理项目工程
- 工程建设项目管理绩效考核表
- [新]河南省商丘市2018届高考化学第二轮
- 2017年中国笔记本电脑市场供需分析与投
- 网安设备选型规范V1.0 - 图文
- 加油站建设工程施工承包合同
- 2018-2019-大学生团小组会议记录范本-
- 《艰难的国运与雄健的国民》精华版
- 中外建筑史单选题含大量真题
- 白云机场旅客过夜用房东翼扩建工程建设
- 公开选拔试题案例分析答题技巧及163题
- 后巴杀、罐装工段实习报告 - 图文
- 操作系统实验3进程同步报告
- 《餐饮娱乐空间设计》教学大纲
- 第四章 长期股权投资 练习题