找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1836|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 # S) s2 P& z* b9 q

+ v7 e# y7 Y# [7 h- `7 I+ G( U86、已知一函数中有下列变量定义,其中属于自动变量的有()$ p2 U# n4 N! u- f* I9 g& P
A、double k;" z* e! Y* e& @; `' A0 W
B、register int i;
3 [+ w5 @: V" h1 G; uC、static char c;
$ S$ F: B* K0 J. d$ [& k9 t% \, l, eD、auto long m;
# k8 m1 g( E1 C) @8 l1 f* _+ g7 D% s0 p( d3 B3 p
——我选了AD【D肯定是,A不知道对不对】: G* k# H. A& h+ C' Y4 O5 y
3 V: f3 }, d9 x, K' X9 S
5 J7 Q8 x5 P: ~
87、下面的说明中,正确的函数定义有()
5 C9 f3 ?! T2 S+ bA、void f(void)
. v2 T" ]' c  C% ^0 l  sB、void f(void){}# [/ \9 \4 `6 z
C、f(int s){}
# Y7 R0 [$ z; H5 TD、f(int s){return s+1;}4 n5 V5 R* X+ Q; o
E、double f() {return 0.0;}
' U1 {8 s7 ?+ S& v) C, \F、double f(double d){cout<<d;}
; `" ^6 b3 L' a8 `) [
( |8 `3 X" a" l( t4 K; i——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】
# T' C" ~0 J! f0 h, R# p
" _4 P9 @8 K+ z# n% ~& u5 W% ]  T7 o" g5 x) `! y  Y* S
88、从下列函数原型看,返回值类型为int的函数有()
( ~9 k4 L/ _. ?" f0 E' r0 Y+ ^A、char F1(int n);0 t* x( `4 z  B9 t
B、int F2(char n);
( U( u1 g; N7 ?. }7 pC、F3(int n);1 M* A4 u, L6 E& G0 {
D、int *F4(int n);
0 |) e. S4 O1 T+ B0 n  c- p* B9 U9 z
——我选了B【好似C也是对的,不确定】! U* o/ i4 r1 _8 }, O( l: a

* s" y4 Q1 m4 e2 L) @0 m) A  K89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明
4 j) A2 Q0 S$ q3 ^中可以作为对应的形参变量说明的有()9 K2 T6 _" T; N  I3 }* J1 n
A、int D[4][]" W! b8 q# k/ d, _8 ?% ?# O
B、int *s[8]4 |7 b. ^3 I" @" N3 B
C、int (*s)[8]+ |. _9 i3 V3 `) W
D、int D[][8]1 [) o$ {, |# k: I

$ T. d! r# r( H/ z$ _" V( T——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,; X6 z7 V1 O9 U% m
88题,,,倒。看都知道是哪个啦。。。8 S: ]: i4 H, _5 t) Z8 o
89.二维数组的传递:
7 m0 ~! v2 [! m( c! j5 o" {你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
# {2 S9 X, b& g6 k) [: R( C    void Func(int array[2][3]);
6 e7 m1 f. X7 g" c/ T3 D    void Func(int array[][3]);
8 W0 ~6 T0 o; i% o5 _3 @, m8 I; N. S' Q1 B3 ^  ?
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
$ E2 u. G3 ]* `/ K- I* `或者你使用指针传递,然后指明size即可。/ b: m' |' }1 A+ [
eg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体1 ?) v7 F" q5 p; l0 Q3 |4 o
zaijzhgh 发表于 2009-5-27 00:11

, r9 k; y% V! r# c' r6 t
* O/ x! b) n5 d6 z构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。! S( B6 @& ]# J' S
zaijzhgh 发表于 2009-5-27 00:11
. G  _8 q4 N9 n8 e4 o7 l
2 q6 R' A, s5 h. [( _
88、从下列函数原型看,返回值类型为int的函数有()" D4 `+ `% z# h+ o4 D6 r8 n! t
A、char F1(int n);) R3 T7 u7 ^; s# J$ d0 p" o( j
B、int F2(char n);" o: n/ x  v5 p! [5 M" ^) j
C、F3(int n);" X0 {+ H9 C5 y# w5 B" r
D、int *F4(int n);6 \# n% y! h$ B6 i6 X
3 k& b6 d* n# ?* j
我知道B肯定对,AD肯定错
% |$ a, d) x- y0 e+ q* F9 F2 }是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:
+ t5 t7 @9 j9 N' p) O& C0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q6 P+ X$ p9 o; ?5 u
    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I
* C0 q/ M1 B( N# o3 z+ f    void Func(int array[][3]);
! r# x$ l9 N6 j2 L* l3 r二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q* r3 s) ^7 ?7 x2 H& \7 n
或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y, m! T; Z0 F* k: _
eg:void Func(int **array, int rowSize, int colSize);  W: k, `; ?) P6 _5 n) R  }9 C
zaijzhgh 发表于 2009-5-27 00:11
* ^+ d( b$ b4 u8 `% V: o# E7 o
/ @. m0 X0 T( O# h$ \  y

: w& i  w8 g$ C: J: _$ A89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()
9 ]5 t2 l; m: b% m# m" G5 OA、int D[4][]9 f( z2 I( f0 A. y
B、int *s[8]5 E4 L. r. ?5 m' x
C、int (*s)[8]
( f# C' E2 H3 g' P* |: xD、int D[][8]
$ e2 X& g0 ]( \1 t/ C- X3 q& A( f/ b0 e: j8 @2 D% g% n8 W
0 Z3 ?# z! B4 V( K' g0 U' T
——反正我选了CD
/ C$ J' ]0 c) D. ^: w; M如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]" t2 [. G" \$ _3 ~
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、
3 F/ ?1 A/ J1 N$ M; S1 ~+ J0 ?5 vc是指向数组的指针
  j! u) y% F  b& r! W+ h1 Y& Kd是二围指针
- R7 T! t' F5 j) F. q9 `$ ]/ \. N; ?我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型
: Q  ]: A- U! Y& [6 E2 Z8 |xdlrz 发表于 2009-5-27 17:15
7 ^, Y- M/ @! a9 L/ _
根据题目来说的嘛。。。它问的是返回类型的原型  f) M0 U4 h- ?. P& f+ f, S
在早期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){}的话,我就觉得不应该选。6 J( Z" m0 Q9 g2 T
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。
( [) F  v% o+ M7 h3 X6 X如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
7 {* M  r, R3 M5 WgyCai 发表于 2009-5-28 00:24

' ~' F+ f+ F. i4 \/ }! ]
/ y; ^; L: H8 c) n* ?  ~5 B& r1 z% V- W, m' n& D" e; L2 _
如果是
- Z/ E, i, ^  |+ x; Rclass f  t3 h) i- ]! j, ]. c8 _% y/ A6 U( \
{9 h9 U% c  @8 s. H) r0 }
public:
' a5 }7 l5 |2 s: R8 ^    f(int s){}, D4 g3 F: T# x# h* B, `5 A! U9 ~
};
( Y, ^, n% i  q& h& b- o就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-21 14:37

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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