找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1849|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 & {& o! _+ t5 i- @
) u( a8 P( x3 U5 I9 f" Q' w; S$ H) H( ]5 }
86、已知一函数中有下列变量定义,其中属于自动变量的有()6 L2 V5 w9 i* c7 s/ i9 P1 x8 u
A、double k;
  ~* g9 b7 Q( a+ L% wB、register int i;2 \( E4 ]) [' F" F! _
C、static char c;
4 |% G- D# b  z# l" w) S- M$ F! r( qD、auto long m;
( @% w" K3 A& C! t- N2 A
% Z5 _, C/ ]+ F7 p( y——我选了AD【D肯定是,A不知道对不对】
  o0 ]+ H! F% Y9 a: `+ \- ~$ h, p# g. w/ ?: p5 U" B7 v
( u+ V1 C& D( A# v0 z! u3 [7 B
87、下面的说明中,正确的函数定义有()/ w! g- |( ~7 p
A、void f(void)
8 u4 V8 x1 o  q1 s+ ~! o2 TB、void f(void){}
% X6 |4 o+ \& M) |C、f(int s){}
8 e5 Y; a# b; Z+ p7 E; k/ w  U& ZD、f(int s){return s+1;}( _: m: v) I9 B& [+ ?0 Q
E、double f() {return 0.0;}
0 u0 x2 L  A4 t! @  ?6 ]* R4 BF、double f(double d){cout<<d;}
) c5 V* B* j' W. E" F- S# h2 k
( o5 \7 J% r3 G- s, k8 R——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】* ~2 H$ `3 g9 V. [
9 }: x, F" U' t' U4 s

" N4 h/ i* t3 ?) N% L. v88、从下列函数原型看,返回值类型为int的函数有()6 y) m  l) j" n; v" u9 w
A、char F1(int n);; ]% j( p: Z7 K
B、int F2(char n);
* ~8 H" b( \5 k2 z4 j5 y0 g  |2 `; jC、F3(int n);
. Z! k/ }& U2 y" F; C% a% PD、int *F4(int n);5 t* b+ S7 b( E( L: I
: a6 F1 W2 T0 }/ T+ X. s6 C
——我选了B【好似C也是对的,不确定】
0 O$ q  D& x; E, o( @  T, C4 E# j! d6 d$ I8 ~. J; b  S) g8 ]& D
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明
* s9 I  H' l& s7 M6 e5 |中可以作为对应的形参变量说明的有()
9 Y, j, I; z9 t" NA、int D[4][]' u9 i0 R% S4 L; I
B、int *s[8]
% h' d: ?$ F, ~C、int (*s)[8]7 l) f7 @' k  D1 B% I3 U
D、int D[][8]
3 H* E% M; C, I" d7 {4 Q: p  m* h+ i  b8 M# A  q0 F1 x" i7 H" E% h
——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,3 h( u& a6 f& R# c( B* c
88题,,,倒。看都知道是哪个啦。。。
5 g' X! K- j& ^89.二维数组的传递:7 Q* _6 E( V- j6 F6 Q& n9 t
你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:
  {/ q$ G2 z7 Y  z7 K  A    void Func(int array[2][3]);
! z: c/ [  @8 j6 @- S! C    void Func(int array[][3]);6 ]$ F& Q. Q1 |9 J! O3 T4 q3 u9 H

' S8 S, ]6 L4 H二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
' e, x( R  i( s, q8 W9 Z. Q或者你使用指针传递,然后指明size即可。
* S( U* z) D, Q6 L0 Q; r0 Seg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
2 o# h  ]( t  z! a7 Czaijzhgh 发表于 2009-5-27 00:11

1 q& f3 A2 Z9 [% L% c
2 R6 I! o$ ~: p% y构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。% `" F# \, q/ e& t" M  F$ `: w+ s+ g2 s
zaijzhgh 发表于 2009-5-27 00:11

3 V& @  r7 z8 Q! z! S. @7 T* p' M9 @- n+ e$ X
88、从下列函数原型看,返回值类型为int的函数有()0 y& f, A( {# o9 n* f! u
A、char F1(int n);# y+ [  v# m3 y$ j7 T' t, |6 ?
B、int F2(char n);9 }; R1 C* @2 P% ?. c' }
C、F3(int n);9 @+ g4 e5 x2 |! L: }2 s+ r
D、int *F4(int n);
9 e+ Y7 a% }' x1 q
% t5 s0 ^) t7 w% J我知道B肯定对,AD肯定错' k+ g5 c- w8 v) Q$ W9 ]" K
是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:
. M* Z* d. `% @" b' f0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q
' z4 R$ F5 m, x, Z  O* u- Z    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I
0 ^( q6 C0 D) ?5 o2 z. p    void Func(int array[][3]);$ ~4 z7 Q- _& B; {% }8 A+ I
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q* A- D4 c* \' ]; U2 D/ J
或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
: c) h  Y; d" @, V; F9 eeg:void Func(int **array, int rowSize, int colSize);4 X+ v! t. F" i" A; o
zaijzhgh 发表于 2009-5-27 00:11

6 m- u/ H0 W) m/ _9 X
4 \+ w8 \7 o4 Y) E& {! k2 [/ B0 U9 k0 q
1 J  L5 @0 d  h4 E3 w' G/ ?' H' i89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()
3 s* z+ v+ ~! z- C; YA、int D[4][]
7 Y( d- K9 `0 b& @0 g2 eB、int *s[8]- {# o$ g8 m( j: H9 ~
C、int (*s)[8]
# Z$ H2 u% M/ N7 Q6 t/ VD、int D[][8]
6 C+ t0 F  k5 u
  D+ _, n$ z! M! f0 R" e% B, P/ J& g3 }+ o' D
——反正我选了CD/ J$ R" S$ A4 i
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]& O2 C5 c, g  o% D8 R1 ?6 B
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、# e$ T( O0 s  ~, U1 x, }/ i; F
c是指向数组的指针% q$ Q( q% t9 p5 z0 k3 [6 F  C/ |
d是二围指针
2 b7 B5 f# a7 E5 T0 v$ \2 v& a我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型7 c2 r4 H* Z5 m! Y9 e& [8 I
xdlrz 发表于 2009-5-27 17:15

7 X: U' y, a" P8 T4 i根据题目来说的嘛。。。它问的是返回类型的原型
: R# I4 A1 t: q5 [" i8 L. u* v6 U在早期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){}的话,我就觉得不应该选。
$ a- k( ~, b! Z# ?如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。
: l- k5 ~  c3 U, m3 x如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?. w8 m2 V$ J0 c7 D9 x5 q
gyCai 发表于 2009-5-28 00:24

- _2 N# l% c: t! J- w& F3 f$ M5 d/ ]+ U" r+ P  {
* D4 z: D9 g8 \
如果是
7 x) w8 R+ R  N: z# _class f/ F8 l- G( J+ c5 v% x1 U
{: F' R9 D  Y5 Q; C9 ~; `* f
public:
! Q. t5 M5 a0 Z" s  E" r    f(int s){}7 Y+ \, s, y/ n7 y
};
* S) W" J) r, T0 |: O) A就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-12 15:51

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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