关于c语言的书关于

C语言关于scope的一道题_百度知道
C语言关于scope的一道题
一道题:Which of the following statements is true about scope?(A)If a variable is in file scope, it is visible in the entire file containing its definition(B)If a variable is in block scope, it is visible from the point it is defined to the end of the block containing its definition(C)If a variable is in function-prototype scope, it is visible in the entire function definition(D)None of the above这些概念题太纠结了,
提问者采纳
这是关于变量作用域的论述。(D) 对,也就是 其它论述都错。---(A) 只要是程序里出现的,就作用全程序。错(B) 一个块里出现的,本块里从定义到块尾都有效。不完全对,如果块里有块,而那个块里有重新声明了同名变量,它就不全程有效。(C) 函数原型声明里出现的变量,在全函数里都有效。错,原型声明只是形参。例如,原型声明:int f(int b);
// f 函数原型void main(){ ...}int f(int a){ int b=1; return a+b;} // f 函数定义
其他类似问题
为您推荐:
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁关于c语言的问题?_百度知道
关于c语言的问题?
作为初学者碰到一点问题,还望大师请教!!就是自己输入一个n,决定一个数组中元素的个数如int i,n; double a[n],b[n],c[n],d[n]; for(i=0;i&n;i++) {
scanf(&%lf %lf %lf %lf&,&a[i],&b[i],&c[i],&d[i]);
printf(&\n&); } for(i=0;i&n;i++)...........但是第二行出来error C2057: expected constant expression的错误请指教
提问者采纳
如果是要在程序中定义数组的大小,C语言是不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。如果是将数值输入数组 ,把你程序中那个n改成一个大于0 的整数就行了。
提问者评价
其他类似问题
为您推荐:
c语言的相关知识
其他3条回答
数组的长度在定义时必须指定具体的值!!!
哦,这样啊,那要怎么写才能输入自己想要的几组数据
double a[n],b[n],c[n],d[n];n要提前赋值
下楼说的对
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁关于C语言的问题。_百度知道
关于C语言的问题。
从键盘输入10个浮点数,以二进数形式存入文件中。再从文件中读出数据显示在屏幕上。求具体程序过程。
提问者采纳
#include &stdio.h&#define BUFFERLEN 10#define FILENAME &foo.tmp&static inline void func(FILE *instream, FILE *outstream);int main(void) { FILE *outstream = fopen(FILENAME, &wb&); func(stdin, outstream); fclose(outstream);
FILE *instream = fopen(FILENAME, &rb&); func(instream, stdout); fclose(instream);
return 0;}static inline void func(FILE *instream, FILE *outstream){ double buffer[BUFFERLEN];
for (i = 0; i & BUFFERLEN; i++)
fscanf(instream, &%lf&, &buffer[i]); for (i = 0; i & BUFFERLEN; i++)
fprintf(outstream, &%lf\n&, buffer[i]);}给分吧
提问者评价
其他类似问题
为您推荐:
其他2条回答
#include&&stdio.h&int&main(){&&&&float&x;&&&&int&i;&&&&FILE&*f&=&fopen(&file&,&&rwb&);&&&&//以读写方式打开二进制文件&&&&&&&&for&(i&=&0;&i&&&10;&i++)&&&&{&&&&&&&&fflush(stdin);&&&&&&&&scanf(&%f&,&&x);&&&&&&&&//将浮点数以二进制形式存储&&&&&&&&fwrite((void*)&x,&sizeof(float),&1,&f);&&&&}&&&&&&&&fflush(f);&&&&rewind(f);&//将文件指针移动到开头&&&&&&&&for&(i&=&0;&i&&&10;&i++)&&&&{&&&&&&&&//依次读出各个浮点数&&&&&&&&fread((void*)&x,&sizeof(float),&1,&f);&&&&&&&&printf(&%f\n&,&x);&&&&}&&&&&&&&fclose(f);&&&&&&&&return&0;}&&&&&&&&& &&
tank.h这个头文件没有,你要下载一个tank.h文件,放在你的安装目录下面。希望对你能有所帮助。
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言关于a++和++a的问题_百度知道
C语言关于a++和++a的问题
int a=2“printf(&%d,%d\n&,a,++a);”为什么是3,3而不是2,3呢“printf(&%d,%d\n&,++a,a);”为什么是3,2而不是3,3呢“printf(&%d,%d\n&,a,a++);”为什么是2,2,而不是2,3“printf(&%d,%d\n&,a++,a);”为社么是2,2,而不是3,3每一个printf都是独立而不是在同一个程序的
提问者采纳
首先++a是在用a前就被加了,a++则是在整个语句结束之后之后加的int a=2“printf(&%d,%d\n&,a,++a);”为什么是3,3而不是2,3呢
printf是从后往前看参数的,++a,a=3,再执行输出。“printf(&%d,%d\n&,++a,a);”为什么是3,2而不是3,3呢
同理,先看到a,则a=2,然后看到++a,a=3,输入。“printf(&%d,%d\n&,a,a++);”为什么是2,2,而不是2,3 先看到a++,但++要再整个语句结束之后++,所以a 都输出2“printf(&%d,%d\n&,a++,a);”为社么是2,2,而不是3,3 先看到a,再看到a++,但是要在语句结束之后加明白了吗?
提问者评价
原来printf是右到左,我明白了
其他类似问题
为您推荐:
其他2条回答
是逗号运算符构成的表达式,它是一个整体,最后一个表达式++a的值是整个a,++a表达式的结果,所以只输出一个。++a,a也是同理,先算第一个++a的值是3,然后输出第二个表达式a的值。a++是自增后置,a的值先参与其他运算或输出,然后再自增。
VS2010. 是不是不同编译器的运算顺序不同呢?
我用的是vc++
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言 的文章

 

随机推荐