1. c语言重新运行程序,文件读取不了,怎么解决
可能是因为文件打开着呢,你需要做的就是关闭这个文件,然后在重新启动程序,应该就可以了
2. 计算机是如何识别C语言的
计算机是不能直接识别C语言的,它需要经过特殊的编译器,编译之后的二进制才能被计算机识别,计算机只能识别二进制代码。
整个程序的编译过程中有三个角色:程序员——编译器——计算机。
程序员和编译器之间的交流是C语言,同时编译器也能把C语言经过翻译成二进制指令。编译器相当于程序员和计算机之间的翻译官。
一个C语言程序的过程有以下步骤:
一、程序员使用C语言编写代码;
二、编译把代码翻译成二进制指令;这里也有四个步骤:
a.预处理,这里主要处理头文件,和程序中的一些宏代码;
b.编译,主要是把每个C语言文件编译成二进制目标代码;
c.链接,把上一步生成的目标代码和库文件进行链接,最终生成可执行程序。
以上就是C语言到计算机可识别代码的转换过程。
3. C语言头文件里定义过的东西为什么编译时提示不能识别
一定提示你:AT89X51.H:No such file......
把头文件保存到安装根目录下的include文件夹
4. 为什么C语言无法识别返回值
//已为你改好
/*
输入输出样例:
请输入10个数字:
88 88 88 25 25 50 100 25 99 1001
25 25 25 50 88 88 88 99 100 1001
25 50 88 99 100 1001
*/
#include<iostream>
using namespace std;
void Sort_array(int* p) ;
int remove_repeat(int *a, int l) ;
int main()
{
int i,a[10],len;
cout<<"请输入10个数字:"<<endl;
for(int i=0;i<10;i++)
{
cin>>a[i];
}
Sort_array(a);
for(i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
len=remove_repeat(a, 10) ;
for(i=0;i<len;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
//排序
void Sort_array(int* p)
{
int i,j,val;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(p[i]>p[j])
{
val=p[i];
p[i]=p[j];
p[j]=val;
}
}
}
}
//删除重复
int remove_repeat(int *a, int l)
{
int i,j,k;
for(i = 0; i < l; i ++)
{
for(j = i+1; j <l; )
{
if(a[j] == a[i])
{
for(k = j+1; k<l; k ++)
a[k-1] = a[k];
l--;
}
else
j++;
}
}
return l;
}
5. 为什么c语言明明打了英文;就是识别不出来
两个问题:
1) C语言规定变量定义必须出现在可执行代码前面,所以不能在printf之后再定义变量
2)你要确保没有中文全角字符,虽然看起来像英文,但是是完全不同字符,例如printf后面的(看起来就是中文字符
而且很多早期软件对中文支持不好,尽量避免用中文文件名
6. C语言中system函数括号中有了两个“”就无法识别请问应该怎么办
不是很明白你的意思。()也是一种运算符。就像数学里面的()是一个道理。比如:3*(1+2);就是一样道理。(3,5)是没有意义的。在有宏定义或函数的情况下才有意义。比如:define
sum(x,y)
(
x+y)程序中仅仅进行x,y的简单替换。如果硬要对(x,y)取值,那么应该去y的值。
7. 用c语言编写的程序不能被计算机直接识别
是的。c语言程序需要经过编译成机器语言程序,才能被计算机直接运行。