找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1824|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑
9 h( s" e! \+ H9 x7 N. A( j
* _& P6 _+ h! a0 f( {86、已知一函数中有下列变量定义,其中属于自动变量的有()
. a  @$ V# N  X' a$ S; NA、double k;
/ b( r( `' X+ ~3 @0 [B、register int i;
3 E3 M* {5 a. u# s4 jC、static char c;! _4 s8 \( l, n# `6 ]
D、auto long m;7 b& \  }. {: p

% N- Q! _! h' b( [——我选了AD【D肯定是,A不知道对不对】
6 f& @& {/ g8 d$ X/ q( u2 c" O1 Z' U) y: ?
4 A; m- g, Q& ]; Y2 X
87、下面的说明中,正确的函数定义有()
7 ?9 @5 t" Z+ }A、void f(void)
% d4 e+ g& A  \  @$ p8 yB、void f(void){}3 [4 p1 W& \* X# }: R0 u/ }
C、f(int s){}: s% n: V. b3 N% c$ ~
D、f(int s){return s+1;}4 w% G4 N- y; q+ Y0 a+ M
E、double f() {return 0.0;}
' _- S1 z( o% c1 o; EF、double f(double d){cout<<d;}
8 j# y) z; `( c4 L, m
: q4 u' C; e7 g& Q% z- q) P7 ?4 I——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】( W- _) |+ }- X" Q
; G( [; F0 r8 g5 p  Q
* ^, P$ r2 s* x/ a+ ~( a
88、从下列函数原型看,返回值类型为int的函数有()
/ X, S+ F- }3 iA、char F1(int n);0 r0 p/ R9 }/ U6 P
B、int F2(char n);
+ i- Z  ~0 t+ P! L. ^7 lC、F3(int n);* n- y/ W! P! V! ~: z
D、int *F4(int n);
! g5 n1 I/ i% }& N- N$ V
) B+ F) _) s; x: o# ?# [) w——我选了B【好似C也是对的,不确定】
1 Z' W7 u' ^8 g+ D+ Y" d) h1 {- ^" P; s! v( O  f1 P* m" n
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明% s2 p- L! `/ f- ]4 J* \
中可以作为对应的形参变量说明的有()+ Y- Q4 L' A4 {* H) ~
A、int D[4][]" Z8 y  E' H2 |& N  M
B、int *s[8]+ Z8 P, n  I) {  F6 T" J
C、int (*s)[8]6 h! V8 e0 K8 I: z& V
D、int D[][8]$ C9 }" t! p8 a/ r

8 @7 X! `& R3 S——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,
* l/ D, }( s. C; n$ ~88题,,,倒。看都知道是哪个啦。。。( z0 X- J% {& M8 K
89.二维数组的传递:
7 w" k5 v# l3 S你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:6 w: }2 Y! L2 s! f5 I
    void Func(int array[2][3]);/ a+ v1 Z6 A% z; F1 B6 f
    void Func(int array[][3]);
; }( `6 K7 V7 ^$ U- d
. @! B2 r( A: @- P, h7 E" Q二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略$ z+ c; m( ~) A/ J0 |% M
或者你使用指针传递,然后指明size即可。  c0 C0 H+ F6 M8 n! A
eg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体$ I1 Z' p* F$ `0 P' v# `- V3 M
zaijzhgh 发表于 2009-5-27 00:11
! T6 j( Q5 C# A/ a% I+ G
8 s) c9 X; g# a( U, f  o
构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。: l% Y* s# {5 B) T0 Y
zaijzhgh 发表于 2009-5-27 00:11
6 I& j7 O5 d! N/ o
, ?' v# B0 ]3 `$ j
88、从下列函数原型看,返回值类型为int的函数有()- T6 X5 E& m, m' i4 l# u
A、char F1(int n);* N- |! P" l/ _$ g) [; H
B、int F2(char n);* p) v4 Y2 d% {# w+ @5 ]6 \) e
C、F3(int n);# o; S4 \  u. y0 B+ y, L' L6 _* X
D、int *F4(int n);
# M( ]& x& b( m* V- Y" M3 k) C/ a; |5 a' ~: e
我知道B肯定对,AD肯定错# Z# w2 b$ [: f5 t( v- t- o+ t
是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:
6 p& g1 L) B0 R3 E0 \; t4 ^0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q& r% d: }. }+ U+ A& X4 S; a/ m
    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I1 P. X9 Q% |1 t
    void Func(int array[][3]);$ N# r; _2 m. {9 L( b" ~, H7 g) |
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q2 F. m+ F" X' k* c
或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
  O! X- m: p0 C" Neg:void Func(int **array, int rowSize, int colSize);
1 d2 S: J1 b% E- j, z; ?zaijzhgh 发表于 2009-5-27 00:11

$ W- [) O8 ]) r# J  q4 A5 `" T: Q. G( ]$ Y7 C. s& T  y/ }+ e
2 h' ?# P! `" x" `- ~
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有(): L4 k8 |9 l* K# n# X# X
A、int D[4][]
+ r$ ~8 ^. G& B* W- v0 y: eB、int *s[8]9 g2 Y( k5 @( r% o7 E& c) Z: [
C、int (*s)[8]& o  E, j) X3 u; B) R
D、int D[][8]' v. s% y+ n: o
' v: B- }  A: E9 q% w0 ~

+ f' h$ M# s% x! M8 H' S- d- B——反正我选了CD0 d  Q4 I" h2 l( X7 L' I
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]
- ]. V/ W- u2 j1 g# K但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、
" r7 h- u1 \$ R; M2 |. W8 ac是指向数组的指针; J4 y2 @% j, W1 R0 y. q" c
d是二围指针
- e4 u+ i; }# L  i( @* R我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型
& `3 N, y9 b7 ]6 ixdlrz 发表于 2009-5-27 17:15
7 j5 i3 `! N) J
根据题目来说的嘛。。。它问的是返回类型的原型
6 p2 I9 [3 d$ e" X6 x8 \在早期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){}的话,我就觉得不应该选。
; m1 r  e9 p* V+ E2 Y; I& _如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。
" X& m$ U3 U, N如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?. ?, }5 A. B) A( s0 L$ R$ T. H
gyCai 发表于 2009-5-28 00:24

9 _# I' D. v  I1 N1 r# J: N+ }
  u# i& l* H0 `4 t1 p
& S1 X, G9 L5 ]; z7 S1 u" i. c2 x如果是; l' m) J2 Y. h" _
class f
1 T5 w+ q$ `: H/ O{- T1 W+ j& s/ v, ^$ h. Y
public:3 f$ W; S% f' u
    f(int s){}
- h5 T1 A9 B- ]1 y2 ]- `4 f& G};
  F: s! `( a" t( x5 N% E5 j' D就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-25 13:14

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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