c语言能编什么样的程序?
发布网友
发布时间:2022-03-23 16:31
我来回答
共13个回答
懂视网
时间:2022-03-23 20:53
1、开发多平台通用软件,比如HTTP服务器就是用C语言开发的,它是一个可以运行于很多平台的服务器,比如Windows、Linux和UNIX。
2、开发操作系统,由于C语言可以很自然地与汇编语言结合,又比汇编语言好用,能够很灵活地控制计算机硬件,因此很适合开发操作系统,Linux和UNIX系列的操作系统内核是用C语言写的,而且很多运行在板子上的嵌入式操作系统基本都是用C语言结合汇编写的。
3、开发复杂运算软件,C语言是一种接近底层语言的高级语言,所以写出来的程序在计算机上的运行效率很高,完全可以实现复杂计算功能。
总结
C语言可以用来开发多平台通用软件、操作系统和复杂运算软件。
热心网友
时间:2022-03-23 18:01
这个问题有点像,学习英文有什么用?回答是,英文没有任何用途,但是用英文写的书籍、资料确实相当的有用,甚至是不可缺少的。
同样,仅仅孤立的学习c,除了能通过考试,也没有任何用,但是问题就是目前大多数的公司的项目,以及开源项目,都是用c来描述的,他们很有用。
c无所不能,仅仅懂得语法却是一无是处。
如果你精通了windows下的api,那么你可以用c开发任何的windows应用程序,当然也可以不用c,用任何一门你喜欢的语言,只要你有相应的编译器。
如果你想开发其他os的应用程序,也只要学习相应os平台的api即可。
如果你想开发一个驱动程序,你应该学习你所对应操作系统的驱动框架以及硬件的知识,最后再用c来实现,最后的实现也许用的最多的就是赋值语句,例如向地址为0x7F000000地方写一个数0x1234,至于为什么是这个地址以及为什么要写这个数,你可能研究了一周的datasheet才得出结论。
如果你的强项是算法,假如你能把一张8G的dvd能压缩成8M并且画质还可被大众接受,那么你只需要把论文发表,论文上用数学的原理把这个事情解释清楚就可以了,到时候会有无数的小弟帮你编程实现。如果你没有达到这个高度,你想要看看其他人的算法,这个算法的实现虽然说和具体语言没有任何关系,可大部分的还是c描述的,所以学了c也不吃亏。
热心网友
时间:2022-03-23 19:19
理论上,C可以编写所有类型的程序,这得益于C的高移植性。
你之所以觉得C只能够编写一些小程序,源于你目前仅仅是初学者,只是在编写一些简单的console程序。
等到你C的基础比较扎实了,你可以尝试使用WIN32 SDK在VC环境下编写纯粹的win32程序,这个时候你就可以知道C可以做什么了。
不过老实话,在现代,C所使用的范畴都是比较底层的环境,所要求的并不仅仅是你目前所见到的“C语法”,而是硬件、接口等。
或者说,对于初学者来说,C是一个不错的入门语言,而对于高手来说,C又是在一个神秘大门后面。
热心网友
时间:2022-03-23 20:53
可以写一些没有图像层的小游戏
/* 这是彭搏同学的推箱子游戏,大家试试玩,谁有更好的Idea? */
#include"stdio.h"
#include"bios.h"
#define LEFT 75
#define RIGHT 77
#define UPPER 72
#define DOWN 80
#define ESC 27
struct Boxss /*定义箱子结构体,其中包含坐标属性*/
{
int x,y;
};
union keyboard /*定义读取键盘码的共用体类型*/
{
unsigned int iKeyInfo;
char chKeyBit[2];
};
int fnGetKey(void) /*定义读取键盘码的函数*/
{
union keyboard uniKey1; /*定义读取键盘码的共用体变量*/
while(bioskey(1)==0); /*检测用户是否按键*/
uniKey1.iKeyInfo=bioskey(0); /*读取按键信息*/
return(uniKey1.chKeyBit[0]==0?uniKey1.chKeyBit[1]:uniKey1.chKeyBit[0]); /*返回ASCII码或扩充码*/
}
void main()
{
int iKey,x=11,y=6,tx=11,ty=6; /*x,y为人物移动后坐标,tx,ty为人物移动前坐标*/
struct Boxss Box[4]; /*定义箱子数量*/
int chMap[10][10]={ /*用二维数组定义地图*/
{0,0,0,0,0,0,0,0,0,0}, /*0表示墙1表示路2表示目标*/
{0,1,0,0,0,0,1,1,1,0},
{0,1,0,2,0,0,1,0,1,0},
{0,1,0,1,0,0,1,0,1,0},
{0,1,1,1,0,0,1,0,1,0},
{0,1,0,0,0,0,1,0,1,0},
{0,1,1,1,1,1,1,0,1,0},
{0,1,0,1,0,0,0,0,2,0},
{0,2,0,1,1,1,1,2,0,0},
{0,0,0,0,0,0,0,0,0,0},
};
int i,j;
Box[0].x=13; /*定义箱子的坐标属性*/
Box[1].x=11;
Box[2].x=14;
Box[3].x=18;
Box[0].y=8;
Box[1].y=7;
Box[2].y=13;
Box[3].y=7;
while(1) /*反复进行求移动的坐标运算*/
{
for(i=0;i<10;i++) /*输出新地图(刷新地图)*/
{
gotoxy(10,5+i);
for(j=0;j<10;j++)
{
if(chMap[i][j]==0)
printf("#");
if(chMap[i][j]==1)
printf(" ");
if(chMap[i][j]==2)
printf("X");
}
}
j=0; /*判断是否所有箱子都在目标坐标上*/
for(i=0;i<4;i++)
if(chMap[Box[i].y-5][Box[i].x-10]==2)
j++;
if(j==4) /*如果所有箱子都就位输出"YOU WIN!"退出*/
{
clrscr();
printf("You Win!");
break;
}
for(i=0;i<4;i++) /*在起始(或移动后)的坐标输出箱子*/
{
gotoxy(Box[i].x,Box[i].y);
printf("0");
}
gotoxy(x,y); /*在起始(或移动后)的坐标输出人*/
printf("*\b");
tx=x; /*记录本次移动前的坐标*/
ty=y;
iKey=fnGetKey();
if(iKey==LEFT&&chMap[y-5][x-1-10]!=0) /*按读取的按键信息改变坐标如果改变的坐标和墙(0)重合则不改变*/
x--;
if(iKey==RIGHT&&chMap[y-5][x+1-10]!=0)
x++;
if(iKey==UPPER&&chMap[y-1-5][x-10]!=0)
y--;
if(iKey==DOWN&&chMap[y+1-5][x-10]!=0)
y++; /*输入ESC退出并输出"YOU LOST"*/
if(iKey==ESC)
{
clrscr();
printf("You Lost");
break;
}
for(i=0;i<4;i++) /*如果移动后的人的坐标与箱子坐标重合,则改变箱子坐标向前一格*/
if(Box[i].x==x&&Box[i].y==y)
{
Box[i].x+=(x-tx);
Box[i].y+=(y-ty);
if(chMap[Box[i].y-5][Box[i].x-10]==0) /*如果移动后的箱子坐标会出现在墙上,则使箱子坐标和人坐标都返回移动前的值*/
{
Box[i].x-=(x-tx);
Box[i].y-=(y-ty);
x=tx;
y=ty;
}
break;
}
clrscr();
}
getch();
}
热心网友
时间:2022-03-24 00:53
每种语言都有自己的优点和缺点,C语言一样。
C语言是一种中高级语言,可以完成别的语言能做到的任何事,从实现功能上来说C语言要比java之类的高级语言强大。但是,某些时候C语言要实现一个功能肯定比某些高级语言要复杂,因为高级语言已经为你封装了很多,隐藏了技术上的一些难点,这是C的缺点。
你要完成什么样的软件,就该选什么样的语言,要是做网址什么的,C语言肯定不是好选择,要是你做系统软件,C语言就很不错了。
答案满意不?
热心网友
时间:2022-03-24 03:17
呵呵,每个刚接触计算机 学C的人都有这样的疑惑,很正常
C基本上都是去做系统底层的,很多都是跟硬件打交道当然还有很多通信方面的。
所以你需要了解操作系统原理,以及通信原理等等计算机相关的知识,没有一点专业的知识,学C的确是很无聊或者对你自己来说没有多大的意义
总之,到时候用到,你才能体会,现在说再多也没用
热心网友
时间:2022-03-24 05:59
编程关键不在语言,而在思想
你觉得c语言做不了大事
但人家用c却可以写出个操作系统来(linux)
如果专心要学软件的话
可以看下《IT学生解惑真经》这本书
对于新手很有指导作用
别像我现在大四了
很多事都来不及了
热心网友
时间:2022-03-24 08:57
完成一个软件的开发 对于我们初学的人来是不可能的
只有学到C中很多的东西,才能写出个软件
我们会转到C++上去开发,这样才会写出个软件出来
热心网友
时间:2022-03-24 12:11
c是基础,编程的基础,至于用来做什么,那多了去了,做驱动、做应用,甚至IC设计,verilog也是类c的。以后c++或者其它语言,编程都是相通的。
就好比你学了英语,至于用英语来做什么,完全取决与以后的方向。
热心网友
时间:2022-03-24 15:43
操作系统都是用c语言写的,你说他的潜力能有多大。没有c语言搭出的框架,一切应用程序都没法使用。
热心网友
时间:2022-03-24 19:47
c语言可以编一些比如计数器之类的小程序,也可以编写系统等。它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。
C语言是一种成功的系统描述语言,用C语言开发的UNIX操作系统就是一个成功的范例;同时C语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不同版本的C语言,很多优秀的应用程序也都使用C语言开发的,它是一种很有发展前途的高级程序设计语言。
热心网友
时间:2022-03-25 00:09
C语言博大精深,才学多少就对C语言下结论了?linux操作系统这么大的一个工程都是用C语言写成的,你说C语言只会算数学题??
热心网友
时间:2022-03-25 04:47
C语言什么都能编啊~连操作系统都是。。。可以看看Linux源码。。。