1. c语言函数嵌套
可以嵌套调用,但是问题是你写的这个根本不是嵌套调用,直接是语法错误,根本不可能通过编译
voidm1();
voidm2();
intmain()
{
...
m2();
...
return0;
}
voidm2()
{
...
m1();
...
}
voidm1()
{
...
}
2. c语言中的函数问题
float min(float z[10])
{int l;float u;
u=z[0];
for(l=0; l<9; l++)
{ if (u<z[l+1])
u=u/1.0;
else
u=z[l+1];}
return u;}
你求最小值时,越位了。
for(l=0; l<9; l++)这样就好了。
3. C语言大神来 m1为什么不可以定义为int
在上面的程序中是不可以的,因为1/m1 是两个整数的除法,其结果是一个整数,小数部分会被舍去。
如果一定要将m1 声明为整型,1/m1应该改成1.0/m1.
4. C语言常用的函数有哪些
C语言库函数,常用库函数有:
1、scanf格式输入函数
2、printf格式输出函数
3、systemdos命令函数
4、sort排序
5、main主函数
6、fgets文件读取字符串函数
7、fputs文件写入字符串函数
8、fscanf文件格式读取函数
9、fprintf文件格式写入函数
10、fopen打开文件函数
11、getchar输入字符函数
12、putchar输出字符函数
13、malloc动态申请内存函数
14、free释放内存函数
15、abs求绝对值数学函数
16、sqrt求平方根数学函数
(4)c语言有m1函数吗扩展阅读
语言组成:
1、数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
5. C语言下面问题
static让你的m1在出了函数的范围之后,还能继续留在内存中,而不是函数结束时被回收掉。
如果去掉这一句,你的max函数返回的就是一个无意义的地址,因为m1已经在函数返回时被销毁了。在main中使用时,mp接收到的地址已经是无效的了,mp成了dangling pointer,程序即使可以运行,得到的值也不知道是什么值了。
6. 求助c语言的函数问题
float min(float z[10])
{int i;float u;
u=z[0];
for(i=0; l<10; i++)
{ if (u>z[i])
u=z[i];}
return u;}
z[10]不存在;数组越界了
7. c语言中有哪些函数
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针。
对fread
来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址(均指起始地址)。
size:
要读写的字节数。
count:
要进行读写多少个size字节的数据项。
fp:
文件型指针。
8. c语言中是不是必须要有main函数
c++中为什么需要main函数的解释如下:
1、这个是由系统的C++运行时决定的,编译器生成目标系统上的可执行文件时,操作系统启动的入口就是C++运行时(C++ runtime system), 然后运行时完成初始化之后会调用main函数。
2、main函数定义了函数调用的入口,具体用法如下:
(1)main()函数及其参数
C++标准允许主函数main()有或没有参数列表。 您能在主函数main()中使用一个或更多的参数。 如下是一些惯例:
int main(int argc, char *argv[])
第一个参数argc,指明有多少个参数将被传递给主函数main(),真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。在这句法上面, 记住, argc代表参数的数量, main()函数本身是在索引0为的第一参数。
(2)所以, argc总是至少为1 。它的总数是从argv列阵的元素数目。 这意味着, argv[0]的值是至关重要的。 如果用户在控制台环境中程序名称后键入含参数的指令, 那么随后的参数将传递给argv[1] 。 例如, 如果程序名称为main,并且已经事先编译好了,这时如果用户键入:D:/MyPrograms/AConsoleApp/main 68
值68将会传递给argv[1]
当然取决于你怎么样来编写程序了,也许你的用户将可以输入如下指令:
D:/MyPrograms/AConsoleApp/main 68 1250.50
因为参数argv是一些字符串,将这些字符串转换为你需要的值就是我们程序员的任务了。
9. C语言 函数调用
--------------------Configuration: TEXT - Win32 Debug--------------------
Compiling...
TEXT.c
d:\非常用图标\text.c(26) : error C2143: syntax error : missing ';' before 'type'
d:\非常用图标\text.c(27) : error C2143: syntax error : missing ';' before 'type'
d:\非常用图标\text.c(30) : error C2065: 'u' : undeclared identifier
d:\非常用图标\text.c(30) : error C2065: 'a' : undeclared identifier
Error executing cl.exe.
TEXT.obj - 4 error(s), 0 warning(s)
这个叫没有语法错误?
/**********************************
int factor(int a,int b);
int u,a;
{
*******************************/这段里面就有,int u,a;变量的声明语句应放在函数的其他语句之前。你这么写貌似是要在这里定义int factor(int a,int b)函数,但是如果是这样的话这个后面就不应该有分号,如果u,a是函数内的变量的话别int u,a;前面要有{。否则就不应该放在这个地方。别的地方可能还有的,你写得太乱了,风格不好。看得费劲
10. C语言函数返回值问题
return 0; 返回0
returm1; 返回1
如果这两句连起来用的话,返回0,后面的不会执行
函数都会有返回值,这个份两大类,一个是主函数,一个是子函数
第一大类是主函数,也就是main函数的返回值,
main也会有返回值,但是很少不会用到,一般来说大家都会忽略掉,一般来说不讨论
但是在vc等编译器中,好像是要求写的return 0,对应main函数要加类型,也就是说写主函数的时候int main(),必须写上,要不然出错
但是void main()这个可以不用,我记得好像是这样
第二大类是子函数的返回值
这个一般是两种
一个是void型的子函数,这个子函数要求不需要返回值,也就是这个函数功能不需要返回值的子函数。
这个也是有个返回值的,好像是调用成功返回非零,不成功返回零
第二种是非void型的子函数,这个函数会返回一个定义子函数时类型的一个数值
如定义int f(int m)这个就是返回一个int型的数值
值得注意的是
1、子函数返回值只有一个,不可能返回多个值。
如果需要多个返回值,有两个解决方案。一是用指针或者数组,
一个是定义子函数参数的时候用指针地址,在子函数中改变主函数变量的内容
2、在子函数中遇到return调用一定会结束子函数的调用,不管下面有多少代码
其实还有一种返回值,也就是系统自带的功能函数。也就是头文件中包含的一些函数
这个是了解内容,其实和子函数的意义一样(他也是子函数,不过不是你编写的),可以打开头文件看功能函数的定义,就知道函数的返回值是什么或者什么类型
这里值得注意的是重要的经常用到的两个函数。scanf,printf。这个网络一下很清楚
gets和puts也要注意一下,因为经常用到