找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1891|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 # M* K! w, j& I3 N( @

, d6 S# }6 |- Q86、已知一函数中有下列变量定义,其中属于自动变量的有()
7 n, f4 p8 v# R2 A' J( o6 J2 ^! aA、double k;/ x( A) S0 ~& }! B
B、register int i;
0 v) H7 q& H2 U! KC、static char c;: o8 C, |% a$ ]! \* I
D、auto long m;* o# m/ e; u! r2 c2 ]5 O( l' A
1 R3 e% [* b0 ~# K  C' c+ n
——我选了AD【D肯定是,A不知道对不对】
& t2 q. N5 ]6 @6 C0 g5 _+ C: [7 ~2 Q; X  n; V

* o& V9 w% R8 w87、下面的说明中,正确的函数定义有()
! a9 D/ c; [, `5 JA、void f(void)
4 v! u: A$ N+ w+ E, m, \B、void f(void){}% w/ a: K7 I3 z0 r+ i: x  t0 d  ~+ g
C、f(int s){}
# O1 P- I% q) N/ x, XD、f(int s){return s+1;}, h' z5 a8 e8 H" f; p
E、double f() {return 0.0;}0 u! d. h% X6 P
F、double f(double d){cout<<d;}: j6 h" I/ L9 |/ M: x4 z
' F) a" B& l, |' |: P. \
——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】3 b8 W& G9 m8 E/ S8 n
4 B6 K/ M6 z* ~$ I# d
' N8 i, J% e# \( Y0 T! N) j
88、从下列函数原型看,返回值类型为int的函数有()0 T8 g! [. `) j/ I! D# u. }
A、char F1(int n);  P7 L) `) ?  C2 t  u$ k
B、int F2(char n);
6 N  Q4 }' D4 u$ L6 z; m0 Q$ RC、F3(int n);5 f  P: K! P) \% D* z. Z. v1 R
D、int *F4(int n);
7 G4 @: |6 f) D$ o+ s+ l; t- a& a4 k2 n
5 F' `2 x: t$ S- x' f——我选了B【好似C也是对的,不确定】
2 G8 w3 ]' c$ ?$ h% p) Q; M: l( W/ b( }$ Q7 q6 s4 d# O" i
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明- _% G, e7 f" q; }0 {, w
中可以作为对应的形参变量说明的有()
$ ~8 M2 U5 L, }& S. _2 uA、int D[4][]) o5 u# ]. G. l( P' I
B、int *s[8]$ D. w4 g! C0 |5 D8 i- J
C、int (*s)[8]/ K: \' _" c. k
D、int D[][8]' @, N9 q/ F4 R$ b8 o
) S2 z. p  j- Y, L. E& C
——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,
9 {! ~2 u: Y/ R$ @& k# T/ g88题,,,倒。看都知道是哪个啦。。。
/ f  J& z! B( `4 l2 K6 W0 l89.二维数组的传递:
; Q5 P9 r1 S& e* P. D% [你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
! L9 h0 T  B' f! b1 ]    void Func(int array[2][3]);
: _% {3 @- [5 p, y    void Func(int array[][3]);
6 d0 N3 W  A0 ~% g9 s0 o- x( s6 V, w" Y; X2 u4 O7 A
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
( N+ b! Q2 Y4 m$ r. w0 F或者你使用指针传递,然后指明size即可。
; T$ s$ o: f, u! f) Teg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体5 K8 m9 g! F0 ?/ g% |
zaijzhgh 发表于 2009-5-27 00:11

, H$ p' V% [+ p  q1 b: A
, K0 z4 v$ v# m1 y5 N构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。
  S9 E$ p3 D& l5 G) {" Ozaijzhgh 发表于 2009-5-27 00:11
# s, B1 \& F9 D4 J
! r5 e5 y: i" i4 [+ u! |
88、从下列函数原型看,返回值类型为int的函数有()
8 D4 F# f& a, V( j( w1 l" ?A、char F1(int n);1 G( Q7 T; x: m
B、int F2(char n);# n$ T# r* a+ W$ b  m. e- h2 f
C、F3(int n);& }& L/ ?8 ?% @3 R+ M- {. U* t6 Q
D、int *F4(int n);. `" H/ i9 U; r8 a" e2 o6 X
8 v( ~3 g" e- b3 j
我知道B肯定对,AD肯定错
9 [; K4 v0 N  P, b是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:7 G: |  e0 R# K2 o  k# t
0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q8 v" a6 W$ ?+ H" O& S5 U% {
    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I
4 y$ |, A" o+ D2 X( y* Z; s- D- P- s    void Func(int array[][3]);2 A; m6 V+ w$ ?' h: q) B; h! v9 H& C
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q
+ J+ i- ]0 O8 @$ C. N) X或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y- U2 L1 R* _* y
eg:void Func(int **array, int rowSize, int colSize);1 K: S/ N; \( s+ p% L6 x; r
zaijzhgh 发表于 2009-5-27 00:11
- S2 v- M9 j5 x

: Q% q. D; N8 l+ b. G
5 O: y! ], ~8 _- p+ ^89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()0 f# D$ w6 `! k  `% ~% n1 j
A、int D[4][]
+ j: \7 L5 U7 W( A" x( ZB、int *s[8]. _  G' I2 @: @- D
C、int (*s)[8]
5 B& O  n0 [% cD、int D[][8]
7 {  G& E1 q0 n6 D
9 r( I( z  Y+ o5 R! G5 ~1 V% |; B, w7 [  z8 D- S5 s
——反正我选了CD& x2 O2 Z; Q3 b/ _$ K5 V
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]. [' m, v6 I% v8 [+ |
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、( q/ [3 |4 V( Z8 `% f. A
c是指向数组的指针
3 t  y* T* ^! i" Pd是二围指针
7 N3 W* @$ i, S9 K# C我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型) T/ [7 X  p0 L* N* E# E6 N
xdlrz 发表于 2009-5-27 17:15
0 Z( a5 M$ N& c% `4 P8 r) b
根据题目来说的嘛。。。它问的是返回类型的原型
) o: e+ E- b) E/ ]在早期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& S1 H: l2 k8 g! g" W如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。: H# d+ t5 s) \& \# f) U2 b! u  ?
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
4 Y+ K. ^0 l, @; SgyCai 发表于 2009-5-28 00:24
% d- o+ H0 l- w: j" Q6 k

- a: q5 V6 j* k% a$ q, @
3 j# F! t; N$ o, U, w! H7 ^如果是
: d. K9 _4 s- M7 jclass f; v; B" B: a% f/ e0 j; l6 R
{
% a  W6 i  ?4 s: @6 Xpublic:1 v6 F5 ~# I. s3 Y# q2 x: V
    f(int s){}
& @6 s: z. N& p0 h+ A};/ x  X, {( Q0 k+ k4 ^+ c& u$ B$ i
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-21 05:48

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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