找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1867|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑
$ ]; M" U8 R( p+ F" y+ @0 a) A$ `4 g- }1 d9 k2 ?' x  ?) l) G
86、已知一函数中有下列变量定义,其中属于自动变量的有()
( l9 A$ J5 U% x" k8 rA、double k;
& W& F+ e) _4 }- EB、register int i;- H, f5 `5 M8 ~: |
C、static char c;
; S. ^$ a7 z; j2 y, s( ^D、auto long m;
; ?# e- q% h8 R" r# \( }# |# j1 ~* v" ?5 O  h7 q0 _( R; H
——我选了AD【D肯定是,A不知道对不对】& g" k- y3 u9 A- r- K, L. k
5 ]8 M' U9 `6 q

8 V; e+ x8 _5 B0 F! o& [1 W87、下面的说明中,正确的函数定义有()
+ {) t- f& {$ [' H  [( A% m+ BA、void f(void)
8 C& K- i+ K# _3 }: c. ?B、void f(void){}
9 T# C, o4 g0 `C、f(int s){}/ y. _' \2 Z5 x6 u, T* ~
D、f(int s){return s+1;}/ T, v/ G3 S) X/ G( G% W9 h
E、double f() {return 0.0;}9 `# U; b# k1 F  F( t1 s- C+ |9 F
F、double f(double d){cout<<d;}; R! m( G- t7 y3 B3 {# O0 e' D! d
5 g& U8 e0 u' h) N9 Y
——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】
  c$ a7 C! @9 h* J, i  _$ F* e( C0 c- u$ a$ Y) y5 n

3 @- D6 M/ ]. p7 Z4 p  ~* H$ g88、从下列函数原型看,返回值类型为int的函数有()
& v% w( U+ `$ S6 P, ~* K. jA、char F1(int n);3 V) J! B5 t4 Y1 u6 M! c8 u8 w( f, Z# w
B、int F2(char n);) H% z9 Y' S; z* t/ J
C、F3(int n);- k1 R1 o$ ^; z# n7 n, B) h; I
D、int *F4(int n);. b% s4 P$ F, d" S
. K; H! p! ^5 z
——我选了B【好似C也是对的,不确定】' o( \1 f- k& p) q* C. B0 T1 |

/ O/ W9 o; `2 f3 B89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明
- Z8 B  V1 r! y3 |% ~中可以作为对应的形参变量说明的有()
1 `0 d% b, m' SA、int D[4][]
  T6 y1 u% R. e' y, V; y+ KB、int *s[8]
: _- \7 @6 Q; _( {C、int (*s)[8]* E4 ^+ q! f" P, H
D、int D[][8]
+ o( O5 m+ V9 c! }
; `5 C0 r  @0 w; ]' j——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,
9 w- C' N( V- q) [" n; w. G, _* P( v88题,,,倒。看都知道是哪个啦。。。3 H7 W& |- G$ E( J- b
89.二维数组的传递:0 E5 j/ \, a3 U2 i5 l& x9 [% x$ |
你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
, v' ~, b, B8 Z    void Func(int array[2][3]);
8 q7 ?; Z/ Q* p! R7 j9 r6 m    void Func(int array[][3]);
- G$ T) [/ H, d( {6 |" R
! a* a$ z" a) p7 N" T$ U% _二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
5 j% U% L; @4 e2 R0 S  D% `7 x0 R3 U或者你使用指针传递,然后指明size即可。$ d5 X, G. ~  [$ Y8 }8 Z
eg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
: c" W7 A: h+ P; x) Jzaijzhgh 发表于 2009-5-27 00:11
& e$ z$ N$ D' Y. b8 ^

, X/ w% F& X( d* z4 _构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。
  {' P2 L6 J* R% v  |* Qzaijzhgh 发表于 2009-5-27 00:11

% \+ R- @1 X4 n& s' F) y9 w+ K3 M( m6 r8 i# ?
88、从下列函数原型看,返回值类型为int的函数有()4 Q  R3 H7 U: t/ d! U! ]
A、char F1(int n);, K/ I* s# B0 q: B7 \/ |4 w& G- v
B、int F2(char n);- t9 q, |! S8 e- j
C、F3(int n);
% U! G( `! V# X0 S# CD、int *F4(int n);+ P& Z9 U5 Z5 E3 _" L
7 I& `9 \2 J! s. u3 L0 Z7 t( ^
我知道B肯定对,AD肯定错
( r" V1 }' l) i. k是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:- w6 h& X/ p, U2 S* x  V
0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q
& X1 _* N0 m) V. p1 o    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I
( f) w5 A! S' K+ ^3 ~* j    void Func(int array[][3]);
( |" i5 V  r5 L, y# O% Y3 B二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q! S; c" }8 x( X6 y" {) V6 T
或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
3 B( z! ~9 Q4 x0 E2 ieg:void Func(int **array, int rowSize, int colSize);
- o6 l, k% ^, R4 A. q$ s8 R6 O+ Ozaijzhgh 发表于 2009-5-27 00:11
9 Y: {2 i. k- c5 h
# i  {! B& ]5 v( h+ y8 G

7 g& ?$ T- P5 @: j. o89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()! O) s; m! _( W6 ~2 L
A、int D[4][]: I" h+ Q8 ^: [/ W+ r# q3 T3 b
B、int *s[8]1 u! L& |! U" M" E5 T% T! N' x) f* v
C、int (*s)[8]
6 `( U( e8 w. r- H  ?/ D4 d  TD、int D[][8]
4 U$ P  U: u% {5 R2 Y
, B0 f2 S) T3 y1 d: O8 R7 B$ S$ q9 `& r( c& ^; B+ A" p; S7 ?
——反正我选了CD) w7 T1 p2 j" Z6 J3 C5 b1 h
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]  |' h2 e1 o) b5 H9 V
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、1 v9 o. [9 I6 g8 d+ o# X
c是指向数组的指针
: h) l1 o1 w9 [5 cd是二围指针
7 Z9 A6 W7 D/ g' z我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型
" F7 V. f2 q$ ]8 ^# cxdlrz 发表于 2009-5-27 17:15

; D+ A9 Z7 A  C根据题目来说的嘛。。。它问的是返回类型的原型/ u1 j% x9 Q* F2 k' \, N2 N# j
在早期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 F  @$ u5 ^5 {% P) W3 o
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。
" |: h& S1 z" ~  a( t4 P0 j如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
4 b) I- I# l# {! M, e& \$ FgyCai 发表于 2009-5-28 00:24
) t( ~; {& L0 n- [5 a1 h6 Q
& `: L( V! ^' L

. q; ]' e- [4 L2 @5 ~如果是+ u( ]5 ~( p# X  Y" E. k1 N1 h
class f: H' e+ a$ b. w& a" ^1 Y9 W* g
{
' i9 B. f3 q; G6 M2 n0 f) Wpublic:  {: l2 R) x6 ~& V
    f(int s){}  T) B+ s( |% g$ I  }6 f1 `
};; r9 A7 @1 U4 w
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-3 07:12

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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