c语言程序设计朱鸣华pdf(《C语言程序设计现代方法》 电子文本 或者称 非扫描版)

2026-04-21 17:30:02 0

c语言程序设计朱鸣华pdf(《C语言程序设计现代方法》 电子文本 或者称 非扫描版)

本篇文章给大家谈谈c语言程序设计朱鸣华pdf,以及《C语言程序设计现代方法》 电子文本 或者称 非扫描版对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

《C语言程序设计现代方法》 电子文本 或者称 非扫描版

首先不了解汇编语言就等于没学编程语言。得了解汇编语言,推荐王爽《汇编语言》前两章;如果想更进一步了解计算机,推荐《穿越计算机的迷雾》下本电子书,两天看完就行。这是历史性的东西。然后买本或者复印本国外的著名教材,比如《C语言程序设计现代方法》,看书的时候多写程序,思考怎么用计算机编程解决一些问题,然后具体去写一些程序。写程序的时候要思维活跃一些,不是说书上不让做的就一定不去做,越是书上不让做的,越要试一试,有着自由的精神。然后呢,如果你不满足于现状,可以去了解一些面向对象的知识,算法的知识,还有数理逻辑的一些玩意。国内C语言,做题仅仅是为了复习基本的语法知识,做一点就行,重要的是得多思考问题。

求助两个C语言的程序设计

1、编写一个程序,完成两个数的四则运算
#include 《stdio.h》
#include 《malloc.h》
#include 《math.h》
#include 《string.h》
#include 《ctype.h》
#define M 40
/*定义堆栈*/
typedef struct{
double data;
int top;
}Stack;
/*初始化堆栈*/
InitStack(Stack *s)
{
s-》top=0;
}
/*判断栈是否为空*/
int StEmpty(Stack *s)
{
if(s-》top==0)
{
return 1;
}
else
{
return 0;
}
}
/*入栈操作*/
StPush(Stack *s,double x)
{
if(s-》top==M)
{
printf("The stack is overflow!");
}
else
{
s-》top=s-》top+1;
s-》data=x;
}
}
/*出栈操作*/
double StPop(Stack *s)
{
double t;
if(!StEmpty(s))
{
t=s-》data;
s-》top=s-》top-1;
}
else
{
printf("StPop:The stack is empty!");
t=NULL;
}
return t;
}
/*获取栈顶元素*/
double StGetTop(Stack *s)
{
double t;
if(!StEmpty(s))
{
t=s-》data;
}
else
{
printf("StGeTop:The stack is empty!");
t=NULL;
}
return t;
}
/*将数字字符转换成整形*/
int ChrTransferint(char c)
{
int n;
switch(c)
{
case ’0’: n=0;break;
case ’1’: n=1;break;
case ’2’: n=2;break;
case ’3’: n=3;break;
case ’4’: n=4;break;
case ’5’: n=5;break;
case ’6’: n=6;break;
case ’7’: n=7;break;
case ’8’: n=8;break;
case ’9’: n=9;break;
}
return n;
}
/*获取两个操作符之间数字字符的个数,返回的是最后一个数字字符的位置*/
int GetNumsize(char str,int n1)
{
int n2=n1;
while(isdigit(str)==46)/*isdigit()判断是否数字字符*/
{
n2=n2+1;
}
return n2;
}
/*判断上个函数中获得的数字字符串中是否包含小数点,并返回它的位置,不包含,返回-1*/
int IsIncludepoint(char str,int n1,int n2)
{
int n3=-1;
int i;
for(i=n1;i《=n2;i++)
{
if(str==’.’)
{
n3=i;
break;
}
}
return n3;
}
/*将数字字符转换成数值*/
double Transfer(char str,int n1,int n2,int n3)
{
double data=0;
int i,ct;
if(n3《0)
{
for(i=n2;i》=n1;i--)
{
ct=ChrTransferint(str);
data=data+ct*pow(10,n2-i);/*pow(x,y)计算x的y次方的值*/
}
}
else
{
for(i=n3-1;i》=n1;i--)
{
ct=ChrTransferint(str);
data=data+ct*pow(10,n3-1-i);/*pow(x,y)计算x的y次方的值*/
}
for(i=n3+1;i《=n2;i++)
{
ct=ChrTransferint(str);
data=data+ct*pow(0.1,i-n3);/*pow(x,y)计算x的y次方的值*/
}
}
return data;
}
/*主程序*/
main()
{
char str,c;
char a;
int n,p1,p2,p3; /*n为字符串长度,p1,p2,p3分别为数字字符起始位置,结束位置,和小数点位置*/
double data; /*存放转换后的数值*/
int i=0;
Stack *so=(Stack *)malloc(sizeof(Stack)); /*存储操作符 ’(’:1,’+’:2,’-’:3, ’*’:4,’/’:5 字符’),=’不压栈*/
Stack *sd=(Stack *)malloc(sizeof(Stack)); /*存储操作数*/
InitStack(so);
InitStack(sd);
printf("Please input formula(format:(1+2)*1.2/4=):\n");
n=0;
while((a=getchar())!=’\n’)
{
str=a;
n++;
}
while(i《n)
{
char c;
c=str;
if(c==’(’)
{ /*c若是’(’直接入栈so,i++*/
StPush(so,1);
i++;
}
else if(isdigit(c))
{
p1=i; /*c若是数字字符,一并将后面的连续数字字符转换为数值并压栈到sd,并把i设为后面的*/
p2=GetNumsize(str,p1);
p3=IsIncludepoint(str,p1,p2-1); /*第一个非数字字符的位置*/
data=Transfer(str,p1,p2-1,p3);
StPush(sd,data);
i=p2;
}
else if(c==’+’)
{
StPush(so,2); /*c若是’+’直接入栈so,i++*/
i++;
}
else if(c==’-’)
{
StPush(so,3); /*c若是’-’直接入栈so,i++*/
i++;
}
else if(c==’*’)
{
if(str==’(’) /*c若是‘*’它后面的字符是否为’(’,若是直接将’*’压栈so,*/
{
StPush(so,4);
i++;
}
else
{
double t1,t2,t3; /*若不是,为数字字符,将后面的连续数字字符一并转换成数值t2,sd出栈给t1,将t3=t2*t1压栈到sd*/
t1=StPop(sd); /*操作符’*’不压栈so*/
p1=i+1;
p2=GetNumsize(str,p1);
p3=IsIncludepoint(str,p1,p2-1);
t2=Transfer(str,p1,p2-1,p3);
t3=t1*t2;
StPush(sd,t3);
i=p2;
}
}
else if(c==’/’)
{
if(str==’(’)
{
StPush(so,5);
i++;
}
else
{
double t1,t2,t3;
t1=StPop(sd); /*c是’/’同’*’*/
p1=i+1;
p2=GetNumsize(str,p1);
p3=IsIncludepoint(str,p1,p2-1);
t2=Transfer(str,p1,p2-1,p3);
t3=t1/t2;
StPush(sd,t3);
i=p2;
}
}
else if(c==’)’)
{
double t1,t2,t3;
int p;
while((p=StPop(so))!=1&&!StEmpty(so)) /*c若是’)’,出栈so,判断是’+’或’-’,出栈sd两个操作数,进行加减运算*/
{ /*直到StPop==’(’*/
t1=StPop(sd);
t2=StPop(sd);
if(p==2)
{
t3=t2+t1;
StPush(sd,t3);
}
else if(p==3)
{
t3=t2-t1;
StPush(sd,t3);
}
}
if(StGetTop(so)==4) /*然后判断so栈顶是否为’*’或者’/’*/
{
StPop(so);
t1=StPop(sd); /*为’*’出栈so,出栈 sd 获得2个操作数,进行乘法操作*/
t2=StPop(sd);
t3=t2*t1;
StPush(sd,t3);
}
else if(StGetTop(so)==5)
{
StPop(so);
t1=StPop(sd); /*为’/’出栈so,出栈 sd 获得2个操作数,进行除法操作*/
t2=StPop(sd);
t3=t2/t1;
StPush(sd,t3);
}
i++;
}
else if(c==’=’)
{
double t1,t2,t3; /*c若是’=’,这是so内只有加减号,出栈so到p ,sd到t1,t2*/
int p;
while(!StEmpty(so))
{
t1=StPop(sd);
t2=StPop(sd);
p=StPop(so);
if(p==2)
{
t3=t2+t1; /*p==’+’,加法运算,并将结果t3压栈sd*/
StPush(sd,t3);
}
else if(p==3)
{
t3=t2-t1;
StPush(sd,t3); /*p==’-’,减法运算,并将结果t3压栈sd*/
}
}
i++;
}
}
if(!StEmpty(so)||StEmpty(sd))
{
printf("Input error,Back!\n"); /*若so不为空,或者sd为空,且sd中只有一个元素,则输入的式子不对*/
}
else
{
double end;
int i; /*否则,sd中的那个数据就是最后计算结果,打印输出*/
end=StGetTop(sd);
printf("The value of this formula:\n");
for(i=0;i《n;i++)
{
printf("%c",str);
}
printf("%f\n",end);
}
}
2、编写一个程序,输入一行字符,分别统计出其中英文字母、空格、数字及其他字符的个数
#include《stdio.h》
#include《string.h》
main()
{
int i,j,k,n;
char *s;
s = (char *)malloc(100);
printf("please input a string:");
gets(s);
i=j=k=n=0;
while(*s!=’\0’)
{
if(*s == ’ ’)i++;
else if(*s》’0’&&*s《’9’)j++;
else if((*s》’a’&&*s《’z’)||(*s》’A’&&*s《’Z’))k++;
else n++;
s++;
}
printf("kong ge:\n",i,k,j,n);
}

C语言程序设计教程 第3版课后答案 朱鸣华版 大恩大德

可以看看中国铁道出版的《C语言程序设计》,可以用Visual C++ 6.0、turbo C一类的。学习语言一定要多多练习,把书上的例子不停的往电脑里敲,然后看看自己能不能用别的算法来解决这些例题,一定要举一反三,把基础融会贯通。

关于c语言程序设计朱鸣华pdf,《C语言程序设计现代方法》 电子文本 或者称 非扫描版的介绍到此结束,希望对大家有所帮助。

c语言程序设计朱鸣华pdf(《C语言程序设计现代方法》 电子文本 或者称 非扫描版)

本文编辑:admin

更多文章:


京东方array制造部干什么(苏州京东方制造一部是干啥的啊)

京东方array制造部干什么(苏州京东方制造一部是干啥的啊)

大家好,京东方array制造部干什么相信很多的网友都不是很明白,包括苏州京东方制造一部是干啥的啊也是一样,不过没有关系,接下来就来为大家分享关于京东方array制造部干什么和苏州京东方制造一部是干啥的啊的一些知识点,大家可以关注收藏,免得下

2026年2月22日 18:15

arguments是函数的属性吗(javascript函数的length属性和arguments的length属性区别)

arguments是函数的属性吗(javascript函数的length属性和arguments的length属性区别)

大家好,关于arguments是函数的属性吗很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于javascript函数的length属性和arguments的length属性区别的知识点,相信应该可以解决大家的一些困惑和问题,

2026年6月3日 16:15

java接口不能被实例化(java 接口)

java接口不能被实例化(java 接口)

本篇文章给大家谈谈java接口不能被实例化,以及java 接口对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录java 接口JAVA中接口不

2026年9月11日 14:00

论坛社区模板(DISCUZ 论坛模板怎么用DISCUZ 模板安装导入使用说明)

论坛社区模板(DISCUZ 论坛模板怎么用DISCUZ 模板安装导入使用说明)

“论坛社区模板”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看论坛社区模板(DISCUZ 论坛模板怎么用DISCUZ 模板安装导入使用说明)!本文目录DISCUZ 论坛模板怎么用DISCUZ 模板安装导入使用说明如何创建一个

2025年9月1日 06:45

gnumath最小二乘法(最小二乘原理)

gnumath最小二乘法(最小二乘原理)

大家好,如果您还对gnumath最小二乘法不太了解,没有关系,今天就由本站为大家分享gnumath最小二乘法的知识,包括最小二乘原理的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录最小二乘原理线性方程组的最小二乘解

2026年7月2日 22:15

squads(squad是什么意思)

squads(squad是什么意思)

今天给各位分享squad是什么意思的知识,其中也会对squad是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录squad是什么意思riding squads什么意思squad是什么意思“squad”意

2025年6月8日 22:15

linux常用命令保存退出(Linux shell tail -f如何自动终止)

linux常用命令保存退出(Linux shell tail -f如何自动终止)

这篇文章给大家聊聊关于linux常用命令保存退出,以及Linux shell tail -f如何自动终止对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录Linux shell tail -f如何自动终止linux保存并退出的命

2025年7月23日 00:45

销售分析表单模板(如何用excel制作服装进销存统计表格)

销售分析表单模板(如何用excel制作服装进销存统计表格)

大家好,如果您还对销售分析表单模板不太了解,没有关系,今天就由本站为大家分享销售分析表单模板的知识,包括如何用excel制作服装进销存统计表格的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何用excel制作服装

2025年10月28日 05:00

html电子邮件链接(电子邮件的链接格式是什么)

html电子邮件链接(电子邮件的链接格式是什么)

今天给各位分享电子邮件的链接格式是什么的知识,其中也会对电子邮件的链接格式是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录电子邮件的链接格式是什么如何制作电子邮件链接如何在电子邮件中添加链接如何在HTML

2026年5月7日 00:30

小程序框架有哪些(个人小程序开发(从零开始学习))

小程序框架有哪些(个人小程序开发(从零开始学习))

今天给各位分享个人小程序开发(从零开始学习)的知识,其中也会对个人小程序开发(从零开始学习)进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录个人小程序开发(从零开始学习)学小程序开发需要什么基础个人小程序开发(

2026年8月13日 09:30

servlet类的三个方法(jsp servlet 中doget dopost service这三个方法的区别是什么都什么时候用)

servlet类的三个方法(jsp servlet 中doget dopost service这三个方法的区别是什么都什么时候用)

本篇文章给大家谈谈servlet类的三个方法,以及jsp servlet 中doget dopost service这三个方法的区别是什么都什么时候用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录jsp servlet 中d

2026年3月15日 21:15

index函数为什么从一开始(excel函数index的用法)

index函数为什么从一开始(excel函数index的用法)

大家好,index函数为什么从一开始相信很多的网友都不是很明白,包括excel函数index的用法也是一样,不过没有关系,接下来就来为大家分享关于index函数为什么从一开始和excel函数index的用法的一些知识点,大家可以关注收藏,免

2025年9月25日 01:45

cancal翻译(cancel什么意思及同义词 翻译cancel的意思)

cancal翻译(cancel什么意思及同义词 翻译cancel的意思)

今天给各位分享cancel什么意思及同义词 翻译cancel的意思的知识,其中也会对cancel什么意思及同义词 翻译cancel的意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录cancel什么意思及同义

2026年4月15日 09:15

jquery是什么有什么作用(JQuery主要是做什么用的)

jquery是什么有什么作用(JQuery主要是做什么用的)

其实jquery是什么有什么作用的问题并不复杂,但是又很多的朋友都不太了解JQuery主要是做什么用的,因此呢,今天小编就来为大家分享jquery是什么有什么作用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录J

2025年7月18日 08:30

分两种情况定义数组(C++编程,n”: 未声明的标识符 是哪的问题)

分两种情况定义数组(C++编程,n”: 未声明的标识符 是哪的问题)

大家好,如果您还对分两种情况定义数组不太了解,没有关系,今天就由本站为大家分享分两种情况定义数组的知识,包括C++编程,n”: 未声明的标识符 是哪的问题的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录C++编程,

2026年8月25日 17:30

网站在线咨询系统(网上客服软件)

网站在线咨询系统(网上客服软件)

大家好,关于网站在线咨询系统很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于网上客服软件的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录网上客服软件在线

2025年6月20日 16:00

consequence单词(consequence怎么记忆)

consequence单词(consequence怎么记忆)

大家好,关于consequence单词很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于consequence怎么记忆的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮

2025年12月6日 11:30

学好c语言对java有什么用(学习c语言对学习java有用吗)

学好c语言对java有什么用(学习c语言对学习java有用吗)

今天给各位分享学习c语言对学习java有用吗的知识,其中也会对学习c语言对学习java有用吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录学习c语言对学习java有用吗学习c语言对学习java有用么学完C语言

2025年9月3日 09:45

connectionstring属性尚未初始化怎么解决sql(急,高分!!ConnectionString 属性尚未初始化)

connectionstring属性尚未初始化怎么解决sql(急,高分!!ConnectionString 属性尚未初始化)

这篇文章给大家聊聊关于connectionstring属性尚未初始化怎么解决sql,以及急,高分!!ConnectionString 属性尚未初始化对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录急,高分!!Connectio

2025年6月3日 08:30

在线转换器花体字(英文花体字转换器)

在线转换器花体字(英文花体字转换器)

大家好,关于在线转换器花体字很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于英文花体字转换器的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录英文花体字转

2026年3月27日 12:45

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索