找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1947|回复: 15

[面筋] 几个笔试题求解(C/C++类)

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑
1 F- x; g1 y, y7 Y2 m7 a9 N! g+ V0 y0 p& h
86、已知一函数中有下列变量定义,其中属于自动变量的有()/ Y, z* ^2 B* z& K- I- ^: s
A、double k;
6 j" A" I: t- o2 h5 [( i, JB、register int i;
1 c' s- D! `* r7 B' f0 GC、static char c;
) R% I8 k3 B( ^9 |0 e7 a! JD、auto long m;
0 b5 B1 D2 O  C# f# P. c* X: j0 h0 o' D
——我选了AD【D肯定是,A不知道对不对】
$ @& z' b2 l& y2 y3 K9 k8 T& F4 v0 n9 b

2 S' |7 j/ P0 Q3 {7 ~87、下面的说明中,正确的函数定义有()
) S+ Y4 Z* y# N+ z; u5 a3 vA、void f(void)
! W) L% K/ c: ?+ x$ N. Y9 kB、void f(void){}
: F- V& S4 }5 C8 zC、f(int s){}
% n" [! ~5 k' L' E& j1 QD、f(int s){return s+1;}
; D8 O% F6 @# q; K, nE、double f() {return 0.0;}
! E2 i3 }' B( r' k* lF、double f(double d){cout<<d;}
2 q% X4 u& ]2 P' M! o/ y) ?: Y" r% v: H: Q" w) d
——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】7 w5 `9 a7 |9 O  @) P
7 B4 p8 Q8 ~! k/ M, G

8 c0 i: E3 r5 Y& ^; h88、从下列函数原型看,返回值类型为int的函数有()  v' [4 t+ Y( y- [2 v
A、char F1(int n);
5 E4 N+ O& n0 b6 j  d6 P& Y+ xB、int F2(char n);1 ]8 t8 L3 X) s1 x8 ]
C、F3(int n);. [" J! j$ c0 k5 {
D、int *F4(int n);/ [8 R; r0 s4 L6 k; }

, e* e1 z) o+ r7 ~! q8 y——我选了B【好似C也是对的,不确定】
+ f2 N  o" s9 H! |% K- q2 L! I2 h, ~
1 A+ M- e' z0 K$ O9 x7 d89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明
) x3 L/ x- C: A' v$ _中可以作为对应的形参变量说明的有()
6 F2 r; Q8 V) T! M. P5 J1 m' AA、int D[4][]
( z  m) B; g$ s9 g8 B1 T8 U+ W* XB、int *s[8]
. O+ j8 C3 m% I5 N4 FC、int (*s)[8]$ J, l' k6 I5 S
D、int D[][8]
/ L  }3 _1 j# ~& K, E0 R+ u# C. |! t; F+ f* {+ N3 Z( T. _
——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

发表于 2009-5-27 00:03 | 显示全部楼层
AD ,bde, bc, cd
回复

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,
- O$ H; K6 Z1 N* Q7 [88题,,,倒。看都知道是哪个啦。。。- m  e% V: a% Q6 ?! D  b0 c3 {
89.二维数组的传递:
5 w/ ~$ o: @5 k2 ]- w6 K你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
! l# b8 t% W0 W$ u( O+ I: P    void Func(int array[2][3]);9 T$ s- t2 C: ?3 [0 f" G3 r# M9 I* d$ l
    void Func(int array[][3]);
  e! g' m2 C$ `' c. @
4 O$ D0 x0 i  K) h9 C' t4 c3 V二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
% h! c/ I+ E: y( V( G或者你使用指针传递,然后指明size即可。
' g+ j$ Z) l- t, A: S& t3 Ieg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

发表于 2009-5-27 00:13 | 显示全部楼层
LZ,你不会是笔试的时候不会做吧?要是的话我可要为你汗一把了。。。
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
* `0 h  I5 z. _8 Ezaijzhgh 发表于 2009-5-27 00:11

" `  u$ t+ {1 l) C- q  Y
' a2 F* y0 Y7 P& G6 S( R- \8 ~构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。
; m& S9 ^# @' z1 F7 c; N% {, N4 xzaijzhgh 发表于 2009-5-27 00:11
+ }" Q) ~4 s0 C3 q. S# r
5 Q3 {8 y: Q& u8 l( w
88、从下列函数原型看,返回值类型为int的函数有()
$ [8 x" O8 N( JA、char F1(int n);  a* a& p- l6 s0 c) u! G
B、int F2(char n);( f' l0 o% p6 b  ]5 j
C、F3(int n);
5 |6 U7 V. E* u0 ]  L" sD、int *F4(int n);- w, J" w9 g7 J) D4 @* f2 P; K- I4 m

7 R1 b- g; ?: P! y7 D我知道B肯定对,AD肯定错: f$ q0 S7 C2 p* S8 y  S
是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:- Z0 L# q/ I+ N% v
0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q
9 u8 a2 J! O+ J( I- Q    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I8 ]6 m+ P8 W  k3 C; v. ]2 f( W
    void Func(int array[][3]);, I9 i9 Q1 t2 ]$ P+ Z2 l) h
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q
9 F% C9 O- Q2 S# d或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y- d' ~$ ?2 \, q& {: s7 P* Z( z
eg:void Func(int **array, int rowSize, int colSize);+ K5 H7 j- q' ]' J. h' h9 |6 D& K
zaijzhgh 发表于 2009-5-27 00:11

* H# L! V4 }5 r, g
& p; r7 [. X8 C3 k/ G5 s$ |
$ x- o+ [: A+ D89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()3 e/ f, e7 }) P
A、int D[4][], m2 B2 ?/ x9 ^; B
B、int *s[8]$ Z" s2 `- C/ Y3 m3 j
C、int (*s)[8]
) S$ c& Y1 i  U( c; m9 ID、int D[][8]6 O! v1 x$ s! P/ o- i5 b. S# p; ]" D

+ F) t' D5 M: g5 a) y0 P9 h! {* ]" R0 ?
——反正我选了CD7 r" h  d1 ]& M" _( `  {
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]
& q# q0 p- x  n但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、
9 A; ]( v# }" L3 Ac是指向数组的指针
* W/ Z: |. M0 ~7 n- Kd是二围指针
+ ?3 y. _6 I  E7 \  Y0 j7 e3 `8 W我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型/ ^, Q3 P/ q' P0 r% F
xdlrz 发表于 2009-5-27 17:15
. a9 \! X) V; @
根据题目来说的嘛。。。它问的是返回类型的原型
6 G2 l; e* \3 d. R3 p5 ^: l在早期C中,可以不用返回类型,好像默认返回类型为空。但是现在的编译器是不能这样的了。。。针对的是一般情况下的函数。构造函数之类除外。
回复

使用道具 举报

发表于 2009-5-27 23:30 | 显示全部楼层
默认是 int
回复

使用道具 举报

发表于 2009-5-27 23:35 | 显示全部楼层
声明有返回值的函数也可以没有 return语句(在某些时候写代码会遇到这样的警告,xxx 被声明为int但没返回值)
回复

使用道具 举报

发表于 2009-5-28 00:10 | 显示全部楼层
默认是不是int跟编译器有关。如果是我回答,没有指定类型的我不会选。
回复

使用道具 举报

发表于 2009-5-28 00:24 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。
7 F# C- L& g; R. O如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。
7 R4 T& a" ?4 s5 l7 o如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
% x/ s* u8 d* [gyCai 发表于 2009-5-28 00:24

, H* w, G& i6 F, Q- j" M% E/ u. j, f

  r! `; e2 ^! P( \如果是
8 [! d# {3 R* L; r2 P: Yclass f
+ O% \! ^& u$ R  @+ g9 i) z{
  e3 M" {! M6 r# Ypublic:
0 l: o9 A; l. v. X4 k    f(int s){}
/ l! F5 u4 T+ l};
- h. A, C. g; u+ M8 Z9 C就不会警告呀
回复

使用道具 举报

发表于 2009-5-30 23:01 | 显示全部楼层
看不懂了,你要加油!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2026-9-20 02:43

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表