找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1890|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 ! n/ h4 ]' R& f, k1 ~
$ C" j5 {4 M& \; x8 E$ N
86、已知一函数中有下列变量定义,其中属于自动变量的有()0 _) Y* t6 X. L" {' h
A、double k;. `0 o- B( O2 I* m1 x; r2 ]6 V
B、register int i;4 E3 c2 `& n8 j) p( D9 L
C、static char c;
4 M7 t; ?2 n6 I" E. WD、auto long m;8 q! P/ X# c  J+ j
6 R' [4 I+ ?5 ]
——我选了AD【D肯定是,A不知道对不对】
9 Q# [5 }. _0 Z/ I5 {( i
9 R- v' N- i" f! L. N& Y. E" v& ~
0 G5 l! ?  m7 Z4 e3 {87、下面的说明中,正确的函数定义有()2 M3 Y' o- q2 ?# R& N2 D9 Q
A、void f(void)" A0 K- ^- j& z9 ~
B、void f(void){}
4 M" }4 D4 o7 K7 d9 r; Y9 \$ ZC、f(int s){}0 S# q7 F' V2 L8 R
D、f(int s){return s+1;}3 A, A/ v% d; N) o! O' y" \
E、double f() {return 0.0;}$ E+ ]  L4 T8 x, m: J5 F/ d" \) V4 y
F、double f(double d){cout<<d;}4 P" a8 K1 {, ]5 x) [9 h2 J
/ i3 }3 a+ L" M5 m& B
——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】' V& ]6 W# Z( q4 O* S
) a" v6 S" K" A6 b* V
# d! y" ]) t% h1 J- Q" `( b# c7 |
88、从下列函数原型看,返回值类型为int的函数有()
9 n4 r6 W: p6 c* c# ?A、char F1(int n);6 l% }4 R7 m0 T: Q$ X+ v( U" L
B、int F2(char n);& f  @' T3 k* Q
C、F3(int n);
4 p6 _; W4 R( A! p0 gD、int *F4(int n);; N& D% ~* L9 U* f7 A5 ?

6 F" n% g0 j& m) b$ v+ L* D. K——我选了B【好似C也是对的,不确定】
6 \- n4 `3 z0 r; S8 k( y
+ b: k. z2 _2 W* o+ D89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明( ~0 l9 Y9 V* ?" I: r- z5 q7 A
中可以作为对应的形参变量说明的有()
5 u& q1 C" }6 v  r9 d3 IA、int D[4][]2 L9 N" ?5 p, A  t2 y9 o0 ?- Z; J
B、int *s[8]
  ^  f  X% G( a6 RC、int (*s)[8]
) r& D$ N/ h# C2 }D、int D[][8]
& q. P* _" i# A' |2 c9 |  h! i
, t2 d6 f! {# @5 H1 W. y8 q  Z/ _3 r——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,; I, V6 F' [, U# T) L$ n9 L2 y
88题,,,倒。看都知道是哪个啦。。。, D7 _3 l4 y7 K; J
89.二维数组的传递:/ P$ E. o. h* H
你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:% C) t6 v2 K: [; _" Y) O: n
    void Func(int array[2][3]);5 Z8 D$ O: ]$ \! F/ l& t2 N7 r
    void Func(int array[][3]);9 `# L9 O7 ^! J' t- P* e! X9 }

' p- t, p7 j0 c' z二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略  b+ w5 S: K4 W7 e; N" w. L
或者你使用指针传递,然后指明size即可。
8 S9 O0 `: A9 {" |( @eg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
& P5 {" @3 v  xzaijzhgh 发表于 2009-5-27 00:11

$ V, {* R& A$ _. {5 J+ u6 a5 _8 p+ Z) }4 f5 D* m
构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。
' c, |' V! ^: l: g0 e1 ?zaijzhgh 发表于 2009-5-27 00:11
/ y/ z) N  f: H2 Y
( j/ |8 a, n: F' [7 t7 ^
88、从下列函数原型看,返回值类型为int的函数有()+ [& F- b& I4 @. s2 Y7 e! B
A、char F1(int n);/ ~, t! r+ `) N8 x; e
B、int F2(char n);
8 C* Q/ V' d. |0 e3 WC、F3(int n);
3 ]# P2 Q. Q0 T8 h5 o( x' uD、int *F4(int n);/ P7 [3 X. V4 V. v. b0 {( r

6 D0 j6 p( E5 r$ ^( m我知道B肯定对,AD肯定错, h4 R4 ?2 Z. ^9 O
是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:) x3 ^# ^. B" G4 g1 w* M' C
0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q
2 \* \% S: x: p. B# ^  M    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I
7 Z/ g# l5 E3 L, u) v0 v0 H/ S    void Func(int array[][3]);7 ?( U" g/ T' d5 K
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q
" v( r" c  \0 [# `: @或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
: p4 s7 u8 x+ l7 x" [. l& K8 Ueg:void Func(int **array, int rowSize, int colSize);" z' ~/ @+ c  x! }) E
zaijzhgh 发表于 2009-5-27 00:11

! ]' h6 F) T5 |* w$ y1 Q8 n' b1 i
/ G5 S4 {( M. ?4 b' u
7 W. @7 ^4 l$ h( z89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()6 W5 o& N3 p: R) [8 r  a
A、int D[4][]
0 W- W- ^! |2 T2 gB、int *s[8]7 t9 j$ r! d+ |4 u
C、int (*s)[8]8 n( D1 U) `$ t5 P$ l1 p% V0 q1 N
D、int D[][8]
8 m0 }# T' `/ g9 p* O3 }+ R, u* ^1 S7 ?# ^0 C( g0 J

, M; z9 l5 x) `——反正我选了CD8 d$ b# o1 W" p3 B" h0 `
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]
  D$ h9 v7 m' [( u但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、1 o" V& m, k4 h. k. Y, H1 q& z
c是指向数组的指针
1 V; B' M! ?* n  v, \d是二围指针
( c" y7 i0 J# l  K& t! Z" i我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型* o# H1 V, }2 R( A) q  q& g
xdlrz 发表于 2009-5-27 17:15

7 U  ~/ V% x- Z# N2 z8 u8 J9 D% B根据题目来说的嘛。。。它问的是返回类型的原型
) M2 f5 F8 J9 h4 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){}的话,我就觉得不应该选。
0 ]) l& o" T3 P) h9 j如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。( U9 p2 {$ v) k1 H$ V& ]( i$ b
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
8 g4 i/ C* m- j: d4 g- _3 PgyCai 发表于 2009-5-28 00:24

8 H4 u2 E7 e; \5 g' ?& y6 E, f* W7 N- d9 D; g3 ?7 _
0 v+ y# U# n; }- E5 P' ]" g! s
如果是
! H0 B0 G" D# Dclass f* |6 u7 ]2 p, i: r" T
{
4 U& R, H1 x- o" A+ k, R# L# lpublic:* i% o' ?$ v+ w4 {; f, ]
    f(int s){}& n$ L1 C+ I( D' P" e$ V; v9 D
};2 U1 m: M' T. ?, n* }5 K
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-20 00:15

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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