找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1869|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 ; K; {1 _& e1 G" ^, O) D: k2 F

& f9 G9 g; T. [! w' b# H86、已知一函数中有下列变量定义,其中属于自动变量的有()
4 k" a1 w; E' D3 G7 Z$ f* K8 EA、double k;- c2 W+ \/ t6 J
B、register int i;2 y  H- B9 x2 V6 L- f
C、static char c;( y, i( U9 D4 Y! B* x
D、auto long m;
  z/ I& x: V+ B/ V' x3 |$ U: z5 U! b6 I$ z
——我选了AD【D肯定是,A不知道对不对】! u6 l' }) B" {/ K5 O

" J+ z* u4 \5 ]0 g2 H
6 x. I" D: e& _) L87、下面的说明中,正确的函数定义有()0 T% S* U5 A4 R3 t
A、void f(void)' S6 x$ a5 x& c5 Z
B、void f(void){}
1 x$ j. G# Q/ T; @+ a4 vC、f(int s){}; p+ ]/ t$ X  t% S: W
D、f(int s){return s+1;}) }3 s8 l2 X4 d1 \
E、double f() {return 0.0;}& w% t. d( B5 @: c; w2 w2 {  s0 M
F、double f(double d){cout<<d;}
9 _# A  t0 c. i
% ]  E+ I" ]7 a, @; C5 X——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】, b8 a/ K$ G/ G; w/ q
; p4 Q' l( i- A2 I1 E4 v

" {3 z) W  ?- b# J1 [5 u, Z9 Y8 |88、从下列函数原型看,返回值类型为int的函数有()
) {% w. k# i7 nA、char F1(int n);
  [, I3 G! s; S1 L8 T! xB、int F2(char n);
3 W' t/ x9 Y9 C- E% ?# ]C、F3(int n);
: ]( m- Z; L7 K' iD、int *F4(int n);
0 k: C1 M) t- z2 r8 w) A/ _
: I( K) G! j) z7 }8 m/ u, j——我选了B【好似C也是对的,不确定】
5 }4 j! |; }/ C% O" W% |/ o2 R0 }9 Q$ `0 k0 T
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明. p. |/ a4 \3 C3 Z  {  f& _9 T
中可以作为对应的形参变量说明的有()5 _& |2 Q& {8 q+ h
A、int D[4][]7 o6 o! h/ ~( ?2 e! {; X, J. e
B、int *s[8]
* c0 h" I! z0 ^1 V4 x7 ~7 V7 w! WC、int (*s)[8]
9 ^) K* r6 C  z" p7 vD、int D[][8]
. B, l; X" e3 u: m4 P/ P1 d3 n8 Q3 K9 X# Q' I
——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,: K. }% O. f  j# s( x
88题,,,倒。看都知道是哪个啦。。。7 l* D6 J1 n( r4 u. ?/ V' p
89.二维数组的传递:# K8 h# X0 o* F; x( c
你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
/ r1 U9 c0 E; U" @: {    void Func(int array[2][3]);
& |# C* e% @) ]1 O+ @    void Func(int array[][3]);% }( [( K/ F- a( p( p; b3 N0 c* {

: z: ^" u4 u& Y& r( t/ q二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
0 \1 j  ]. W; b: D# b7 G或者你使用指针传递,然后指明size即可。/ b& i* m" m- P0 ?; s# R0 {$ c
eg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
2 H: }2 a( v- O+ O# L9 yzaijzhgh 发表于 2009-5-27 00:11
. Y  J3 ], }5 }6 {
( ^5 h. L' u+ {. e
构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。# W2 d' ]" I* |
zaijzhgh 发表于 2009-5-27 00:11

0 K, E$ |% v+ I  g  L! E2 a$ v
* P3 R; c% B/ B2 ~' i; Z, G88、从下列函数原型看,返回值类型为int的函数有()
3 A% \  U* _' M0 TA、char F1(int n);
- x! l) X, C' n4 x; b' mB、int F2(char n);$ x! u( u$ R4 l- q- u2 V
C、F3(int n);7 i9 n# v) C' r
D、int *F4(int n);7 s# a$ e# `5 r+ v0 e( ^/ B

" g4 [4 _+ E$ ^! n$ o我知道B肯定对,AD肯定错8 @9 Q( Z! r, Q# ]: `. u. z
是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:
0 @, i& D1 g" P3 L7 T" D7 L0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q2 X+ d4 S& [3 L$ r5 s6 _
    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I
8 u8 M" g7 p& r* ?  x/ k    void Func(int array[][3]);2 P3 i& m: R; v9 v0 w
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q
! I% V9 J( l7 Q0 b7 ^, r或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
! O) z+ B/ L& b3 feg:void Func(int **array, int rowSize, int colSize);4 h# r6 ?1 H9 ^  P8 b# A% S: L
zaijzhgh 发表于 2009-5-27 00:11

% T7 X' W1 N! r. ^3 ^  q/ v. F' {3 O

% n  g) ]2 A! k3 j. ?89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()
5 {. m1 ~4 p! U, nA、int D[4][]& k* A0 K; v$ J2 N% `
B、int *s[8]
+ j& R$ E4 V1 gC、int (*s)[8]
% u0 l/ o+ D) t, l9 S1 JD、int D[][8]
# X1 [; F9 C7 s) D" D- p2 q  T$ w% r

; Q# b7 T8 l1 O" D——反正我选了CD
: _+ [& x% D9 N如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]
0 G" y5 O+ Z1 ]0 }/ J/ J但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、
4 ?! d- K- D6 U; W% i( Fc是指向数组的指针
1 `9 ^/ r# d) l* V# B3 G5 q/ Jd是二围指针  N1 k! A( z/ U7 V8 L
我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型
8 [! r7 `2 Q3 m, U% M+ }xdlrz 发表于 2009-5-27 17:15
2 w* d$ ?! I. x$ G: y9 @$ r) L
根据题目来说的嘛。。。它问的是返回类型的原型
, p) j! c5 l. {在早期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){}的话,我就觉得不应该选。- ]: ^3 x1 ^0 l+ D" F- N
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。5 s* v+ H0 Z) K  s+ V5 a
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
* p# I, }6 M% I/ h' o# fgyCai 发表于 2009-5-28 00:24

, C: b' n+ q- R! O" R4 o6 K" M$ z+ e+ `9 A; g7 W8 f4 P

7 c0 V) i- Y9 F& t: Q如果是
$ {/ C7 w6 x1 Tclass f3 k) s8 A* t% ?0 Y
{
' R/ c- M! b( H( U5 O9 Ypublic:
- ?; Y, q2 q. D6 ^; T, U    f(int s){}
: i% w4 P# e* |* V, D};. ^$ m% v3 i8 q) l) ]& M2 R0 @
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-5 19:33

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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