找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1822|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 ( @# Y! U; s% C# x7 Y- K/ j

6 V0 }& [! K4 J8 n86、已知一函数中有下列变量定义,其中属于自动变量的有()
4 J, l! U/ l7 S, r- uA、double k;7 a0 i/ t8 _* @
B、register int i;$ I4 r. p4 X, S2 c8 [/ T% L3 T
C、static char c;
% {* k6 C( `- `D、auto long m;
# w! S7 |7 k: a* H) |# r* f3 [, \: R& Z
——我选了AD【D肯定是,A不知道对不对】
; D2 B  d, c9 R- u- B* K. h7 a4 Q; b3 @" x4 G) J

  m2 ^& M' P  E; v: c. \87、下面的说明中,正确的函数定义有()
; S' Z. y8 J9 Y  X$ `* n* bA、void f(void)
/ b# J: l! p/ Q6 [1 wB、void f(void){}5 @% ?$ q) I( Q* b. k
C、f(int s){}
/ x! C$ D+ p5 YD、f(int s){return s+1;}/ |3 |3 S. \( J& D
E、double f() {return 0.0;}: ], ^" L/ Z. i5 f: J/ q# Y9 p
F、double f(double d){cout<<d;}* y( K7 W- Z1 F9 l: ?

' H9 `! L& w, `8 m( G$ q% X——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】
$ `3 m  K' {3 G  y+ o- i7 S% x* p0 @" ~. W) |9 ~

7 p/ K3 i" |0 b3 z" ^# l88、从下列函数原型看,返回值类型为int的函数有()  v  U% V7 M& G* i# Q+ G% ^
A、char F1(int n);
7 _; a; a: K( |+ q" Q( R( ]B、int F2(char n);
, {( s. }, X* E- X  TC、F3(int n);3 {; o" @: M+ d: [6 l
D、int *F4(int n);  C# p* m9 G5 ^" ?$ ~0 @8 P  T

( z/ x6 H' b+ O$ a; m# t* D, Y——我选了B【好似C也是对的,不确定】
6 _+ m4 D$ w" p  }
% W% S: a( G, L3 ~89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明0 U8 X0 p* K1 p4 |
中可以作为对应的形参变量说明的有()
7 Y2 L$ a5 }' n: e& iA、int D[4][]
$ V3 u( w3 q" ]% t1 @3 Y3 ZB、int *s[8]
. B) A; d6 S+ W  U& G, V! zC、int (*s)[8]# V! Q8 k. J* v) Z( c. Y
D、int D[][8]
# u. Y5 h9 T; O2 M" s
) g: t, f, ^3 o8 i2 y2 M0 c9 ?——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,' t' j. j7 G) y5 g$ K; e
88题,,,倒。看都知道是哪个啦。。。
$ }) Q5 g! }, p6 f0 h, t1 y; O89.二维数组的传递:# i# N0 ^6 c( i* f  Z
你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
* O% D8 v& p( b) }    void Func(int array[2][3]);2 F# X. ]# z) N( ]8 s9 I7 f: h
    void Func(int array[][3]);( n0 N, B. g" D4 L% A

% j% I3 p- }% O& m二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
0 }' z5 ^9 i3 Q' M7 q/ O( G或者你使用指针传递,然后指明size即可。& h$ U& o9 O+ d* i* Q, O$ s: J
eg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
2 ]8 ]7 |* Y$ Q: \  e! u/ fzaijzhgh 发表于 2009-5-27 00:11

7 e: s7 z# k) m7 p6 _/ S& z5 M$ Z  r3 D
构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。/ _8 Z2 y: Y: e4 o- Q1 [( G
zaijzhgh 发表于 2009-5-27 00:11

7 w" c' J1 V) l, g1 @
5 }7 T* o+ B2 q8 V2 B% `. {! }" s/ `88、从下列函数原型看,返回值类型为int的函数有()$ ~/ p: I( X/ j. P  A/ u: Q; M& J
A、char F1(int n);! Q2 B9 z9 ?& ?4 Q5 f5 T
B、int F2(char n);
# r6 d5 J/ Z0 C' ~) CC、F3(int n);
: x& l- ^9 ^. OD、int *F4(int n);" |- R' _; K; j- d

7 n2 s( L1 \5 |% [我知道B肯定对,AD肯定错
' n& j  l3 C8 y2 E  v( o% f+ `是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:
1 Y2 N* H1 M4 }) k  p7 _0 v6 G& N* _0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q
5 c* `8 O8 v% S6 _" b    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I) Y" r9 \/ Y3 k- O
    void Func(int array[][3]);
, s2 D2 p0 Q+ G二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q; e, d* M  O4 m
或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
  L8 [; m' @9 R- |eg:void Func(int **array, int rowSize, int colSize);# G& L$ u( p- d* w
zaijzhgh 发表于 2009-5-27 00:11

# {/ a2 A8 C4 X: N
5 {) J# U2 i6 b
5 I" w2 h$ L/ f" s7 l% ]+ A( S# W2 a89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()
" q+ V( t' A1 d' LA、int D[4][]
; V( \- E7 _+ D) aB、int *s[8]2 G5 L2 |1 }8 A# }
C、int (*s)[8]
; ?) e$ _6 v5 n) qD、int D[][8]$ @( h8 U/ H. X" Y0 M
& ]5 {) R2 H" R& f2 g

" w* W+ q5 `# a; R3 }9 V) h4 m——反正我选了CD
& `8 T2 q! o, ?如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]  m0 x8 ?8 y5 w" U8 F
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、
" w; ^6 u* L0 T6 Nc是指向数组的指针
: l" R' b( U/ v+ Dd是二围指针
5 E7 w* L+ l7 Q3 r, N我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型
% w" f/ z+ e- ^. S$ Bxdlrz 发表于 2009-5-27 17:15

* K7 x' m& _) T( i2 o6 `5 ?根据题目来说的嘛。。。它问的是返回类型的原型
+ C. b; U+ C8 c' m$ i  N$ t在早期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){}的话,我就觉得不应该选。
. r, D* i% i+ C8 Q4 J& }2 |如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。1 M) k/ n* P: A
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
$ v  d# `0 F5 {% l5 T; u4 z& l0 MgyCai 发表于 2009-5-28 00:24

  r# g2 {2 R' d2 o6 J% T8 N
& c: |* \: G9 B2 @2 U' o
) ^- n" n7 G$ Y+ O# r如果是" {- j# F1 o1 A1 D0 A- r
class f
% f' \2 c. p+ X+ Z: |' Y{
) z* j' o7 J: U  N  u7 R- {public:' k- u; q/ s+ g# N! V
    f(int s){}
; p# D5 f& B" X: U5 R$ s# y};+ @# }  c0 t1 K! I: ]
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-25 11:06

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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