几个C语言题目。。真难
- 提问者网友:我的未来我做主
- 2021-04-12 08:45
2. 以下符号中不能用作标识符的是 。
A. _256 B. scanf C. void D. Struct
4. 若有声明 "double t ;",则表达式 t=1 , t+5 , t++ 的值是 。
A. 0 B. 1.0 C. 2.0 D. 6.0
5. 以下关于变量的叙述中错误的是 。
A. 所有变量在使用前都必须声明 B. 变量声明可放在函数体中任何位置 C. 全局变量和局部变量可以同名 D.声明变量时必须给出变量的数据类型但可以缺 省存储类型
7. 执行以下程序段后输出结果为 。main( ) { int x , y , z ; x = y = z = 1 ; if(++x || ++y && ++z ) printf("%d ,%d ,%d" , x , y , z) ; }
A. 1 , 1 , 1 B. 2 , 2 , 2 C. 2 , 1 , 1 D. 1 , 2 , 2
13. 以下关于函数定义的叙述中错误的是 。
A.函数体中可以声明与函数名同名的局部变量 B.在函数体中可以定义另一个函数 C. 在函数体中可以调用函数自身 ? D. 在函数体中可以没有return语句
27.若已声明:
float a=1.0 ,b=2.0 ,r;
则执行: r = ++a+++a*b;语句后,变量r中的
值为: 。
A. 3 B. 4 C. 9 D. 7
要详细解释哦。我是菜鸟。
- 五星知识达人网友:七十二街
- 2021-04-12 09:39
我觉得就第5题有点争议, 如果考的是C语言,我会选B, 如果考的是JAVA,我会选C, 如果考JavaScript,我会选A,呵呵.
解释一下第5题:
A答案,这没得说,可以理解为正确. 不过在JavaScript中,可以直接不使用var去声明而直接使用变量,虽然这种做法不推荐,不过确实可以通过.
B答案,变量声明可放在函数体中任何位置,C语言的变量声明只能放在上面,不能放在语句下面,比如说for语句, for(int i=0; i<5; i++) 在C语言是编译不通过的,而在C++或者JAVA中,这种做法是允许的
C答案,全局变量和局部变量可以同名. 在C或C++中是允许的,如果同名的话,在局部变量的生命周期中使用的都是局部变量,有种就近原则的类似概念. 而在JAVA中,这种做法是不允许的,也就是说全局变量和局部变量不可以同名. 类变量和局部变量倒是可以,用的时候可以使用this区分
D答案,声明变量时必须给出变量的数据类型但可以缺省存储类型, 这是对的, 缺省存储类型就会自动编译为auto存储类型
- 1楼网友:白昼之月
- 2021-04-12 17:35
2题是C
scanf如果没有stdio.h,系统就不认识它
- 2楼网友:归鹤鸣
- 2021-04-12 16:34
第5题选B,不用问为什么,这是规定
- 3楼网友:北城痞子
- 2021-04-12 15:42
- 4楼网友:山君与见山
- 2021-04-12 14:10
- 5楼网友:北城痞子
- 2021-04-12 12:57
- 6楼网友:从此江山别
- 2021-04-12 11:19
2.c void是C语言关键字,不能用作标示符
4.c 2.0 double双字节数绝t+5实际上没意义的语句,t++表示t执行自加1,结果为2,由于t是double型数据所以t为2.0
5.D ,不可以缺省存储类型,否则输入数据计算机不识别,会出错
7.B,语句说明:依此把1赋值给A.B.C,然后判断IF语句IF(逻辑数据为真,只要非0都是真)则执行IF下的条件语句输出ABC的值,由于在IF语句中ABC执行了自加1.所以全部变为2.
13.B,函数的要求:函数不可以嵌套,不允许在函数中再定义别的函数。每个函数只能单独定义,可以再某个函数中声明或调用其他函数
27.D可以这样解释R=++[A+(++A)]*B=++[1+2]*2=++6=7