找回密码
 加入后院

QQ登录

只需一步,快速开始

搜索
查看: 1878|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑
& t! N5 C8 A! ?. y) c* [( X7 j9 ]; F" e% t: _7 u# ?  y
86、已知一函数中有下列变量定义,其中属于自动变量的有()6 R; h. ?6 o. ^. U$ I4 J! D
A、double k;) m( Q, n' Q3 S5 x! G" t% R
B、register int i;
* w9 b6 V% |, ~- {C、static char c;; x7 u- i9 g/ n  ~  \* c
D、auto long m;+ W- t. T, |$ M2 e* ]' q' V" i

: B3 y! |) p' V. O——我选了AD【D肯定是,A不知道对不对】  W, Y4 {) k" w4 I5 U2 G1 L7 a

% f) q% L  o& S  u" l' ~+ E, R. I" B1 _" u
87、下面的说明中,正确的函数定义有()  M; c2 T' ?5 `: ?1 Y' j$ a  R5 P$ m
A、void f(void)% {2 |2 o1 _, O6 ]7 d4 B2 E. U
B、void f(void){}
# ?' P! g% u9 \1 BC、f(int s){}
6 K* c! o- W) o' e- OD、f(int s){return s+1;}2 A: o/ o7 c8 A* O* j, C) U
E、double f() {return 0.0;}% U! D% |3 J" e( H+ f2 i- K
F、double f(double d){cout<<d;}
" ^8 J( S- \  ^( T8 U1 n. ?
, o# J) z  w& [' e——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】
, v$ d5 w1 ^$ o/ z9 _
# r* R  Z5 H/ |; g5 t1 k4 E" z3 U
* @' z. d& z2 S# F7 ~& \4 d88、从下列函数原型看,返回值类型为int的函数有()+ j, Y+ U  i: y. a
A、char F1(int n);
/ l; \+ D; C" r! R) O, zB、int F2(char n);
0 m  _0 q# v  U. IC、F3(int n);
% B: i* R* w3 K) a& C7 YD、int *F4(int n);
; r0 |- B" ^3 P) X2 d1 p3 \+ O1 b
; W9 ]8 }, B8 r+ O) _6 X6 E——我选了B【好似C也是对的,不确定】, }' j/ B8 N, m" e) I5 [
* e) ]/ J! g  h1 ~
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明! L' `5 n! B$ L, H; z
中可以作为对应的形参变量说明的有()
1 X+ b& a8 t1 i. J" A6 U  J! d: KA、int D[4][]
5 s/ e0 i1 t- o0 r0 wB、int *s[8]
  B7 U: C, t6 I8 I( HC、int (*s)[8]$ Q$ y; ?; G, L  p. o  `( f0 [
D、int D[][8]' g" p! ^! Q% C0 d2 K1 y7 a

# Q) W' f) _& ^——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,
5 ~+ \& x+ J. p' Q: d2 s! e88题,,,倒。看都知道是哪个啦。。。* c- U$ W3 h; ], b* B& n
89.二维数组的传递:
8 s( V3 r  W1 b/ @! G& D  {$ B4 G  F你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:, ~, ]& \9 v! A! o5 H0 J: X. P
    void Func(int array[2][3]);
* |$ T" ?/ I9 W' R0 {    void Func(int array[][3]);; c: h+ Q4 G* J

# g1 X9 s. J% V二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
7 B4 L# N  f: y: d或者你使用指针传递,然后指明size即可。
$ g8 K# O" r$ U& c6 feg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体5 A2 e' l1 r( ?, B
zaijzhgh 发表于 2009-5-27 00:11

  h8 Y; P( g5 a, O# g. s* {
7 {: F# j  |. u4 c% V; L构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。
0 I, e5 P  O$ j% e9 Z8 F: xzaijzhgh 发表于 2009-5-27 00:11

6 H3 t4 P# ]# e+ d/ v3 _3 }' h8 f4 }; S1 A& r7 A4 k8 m6 v
88、从下列函数原型看,返回值类型为int的函数有()
- g% Q7 q, x2 c; q+ @( ZA、char F1(int n);, j) q/ M9 O) i' o. f0 b
B、int F2(char n);
9 C. c2 {9 M2 ?2 C6 WC、F3(int n);' R  [: O; S3 B
D、int *F4(int n);) x5 ^; a' j$ |5 u# x
; L' \" r# L6 t
我知道B肯定对,AD肯定错
4 d/ _7 a! ]1 @是不知道C对不对···选择是不定选的
回复

使用道具 举报

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

. e% n" m! i5 c  o% A5 e
( v1 C- H# V+ |8 P' k( x/ I' u' y4 h0 m2 G  t
89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()
( e* q% S( |5 B9 `A、int D[4][]
& [8 ~4 R* U+ X) O5 g% vB、int *s[8]
' K' b5 [, P% a  M2 B3 AC、int (*s)[8]
+ l8 M! p4 U2 hD、int D[][8]
( h: @1 ?; C& s; A; S
4 _7 ?  n/ b0 K) k$ u, p
" f6 n) S  _, m0 }' b. w2 T1 s——反正我选了CD* E9 U8 I; ]6 _7 R
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]1 Y% P# `7 z3 K
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、, @8 x6 H$ r: l# A: z
c是指向数组的指针9 A6 q, Q- z) J  U$ Z1 p3 ]4 s
d是二围指针
# o# e9 X; ]& T我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型$ A1 s1 ?* X" Y
xdlrz 发表于 2009-5-27 17:15

" I: q) }3 Z( s  s根据题目来说的嘛。。。它问的是返回类型的原型! W9 W( G) P5 X- Y# g8 o; A
在早期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){}的话,我就觉得不应该选。
+ J5 }- z$ p( K, Q2 g& x' R如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。7 Q4 e6 x9 o, I
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
! d! _- x: ^; _1 e( B( n9 `; ygyCai 发表于 2009-5-28 00:24

! O5 M/ r! y: v  V- F. Y7 A* D& \# X. B  f

6 O# A& u3 _5 s# s% E. j2 c  D如果是! N# W* f0 s' O# G2 M0 V
class f) }$ R& t2 _' X- e% I% L2 X' n
{
1 j6 ^6 A& I5 K/ ^$ T% p7 E! m( }public:- ^; D5 _5 `9 D* A- s
    f(int s){}
' A& E: W2 B( }. q: r* x! K( f: i};% L9 Y( Z$ m1 J/ z$ F5 q
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-11 19:15

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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