工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1695|回复: 15

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

[复制链接]
发表于 2009-5-26 23:17 | 显示全部楼层 |阅读模式
本帖最后由 xdlrz 于 2009-5-27 17:25 编辑 " N+ J' C8 M6 `, M4 O

' @% Q$ V. Z( Y' m6 o6 j' v86、已知一函数中有下列变量定义,其中属于自动变量的有()& ]# U% w  J) e- _
A、double k;
: _  K2 U* U$ a: r* V$ W* ^$ HB、register int i;8 ]9 d/ @4 U( c$ p  |
C、static char c;
! u7 t* S% Z4 f5 J$ d2 D. [D、auto long m;' \# `1 ^0 D6 D/ D% S: @
* R3 V1 r! x  m
——我选了AD【D肯定是,A不知道对不对】0 D3 i5 F1 R9 j" ]& T+ {' R

$ N& H9 l+ E5 Z5 j( o5 ^; p6 s/ x- }  i) {! D& B% Q
87、下面的说明中,正确的函数定义有()
, j6 ^- e* g$ W/ uA、void f(void)
2 x8 @! W$ B) ~& C& R' AB、void f(void){}
( n$ x5 `: _" L/ UC、f(int s){}
/ N! G" W( a$ F. zD、f(int s){return s+1;}$ S1 V: V" v4 d! _6 }/ m
E、double f() {return 0.0;}
1 Q- i; a9 K. _, E+ g$ C/ LF、double f(double d){cout<<d;}
: t( S5 W  e9 A  g. u9 R; Z" e+ N8 B6 N0 A  A9 r  k' }9 p& g
——我选了BCDEF【CD没返回类型但是我记得构造函数可以这样,F里面有cout不知道可不可以】" R' p8 E" m2 S9 Z6 x! t/ h

7 Q; V9 }4 e; {3 m; r+ M, q+ h" y/ w3 ~6 @
88、从下列函数原型看,返回值类型为int的函数有()* o% a* G- c: |# ^. `
A、char F1(int n);
# ~2 ^; P, J1 `B、int F2(char n);
4 n: a# S0 h7 o" K! Z' AC、F3(int n);) I+ P/ h7 [9 p8 u: z# w% H9 ^
D、int *F4(int n);
/ P6 g% G3 |. E( _+ `( {6 I3 F: l& s' W' ]& t) G4 ?% a( ~9 z: m
——我选了B【好似C也是对的,不确定】. Q( ?; T  c; m7 O" ]" p8 w

, M' q* {) Z# v, {8 L- c89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明
- q( _, s  J0 m6 M; a- o中可以作为对应的形参变量说明的有()
. ?& ~" K% G$ `2 EA、int D[4][]
" K" ?* O9 ^& @B、int *s[8]0 S( o: E" ^2 n: b
C、int (*s)[8]
2 ^3 }) ^9 ]2 F3 {9 Y- gD、int D[][8]9 X" {' _. O4 q  T
$ g' a; R, Z( [% I4 d4 y/ _
——我选了CD【没把握,反正都按原题抄在草稿纸上带出来了】
发表于 2009-5-26 23:55 | 显示全部楼层
纯属路过
回复

使用道具 举报

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

使用道具 举报

发表于 2009-5-27 00:11 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体,/ p; s8 m9 S. F. r& q+ X1 h
88题,,,倒。看都知道是哪个啦。。。/ m$ G% j( H, E: T1 b5 D
89.二维数组的传递:
. f: B: T& @1 l你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 y3 N7 n. V. ~$ k
    void Func(int array[2][3]);
& S6 k4 f- I8 |0 r. q) |: G  ]; B! z    void Func(int array[][3]);
) z3 \2 l3 \" T7 p) t/ \8 }$ j6 C  H, b; @
二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略
  G+ ^' F2 n: A! ?3 a& B6 n8 B或者你使用指针传递,然后指明size即可。
( t* w  I& G0 Y8 h( a/ Beg:void Func(int **array, int rowSize, int colSize);
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-5-27 17:15 | 显示全部楼层
87题:函数定义必须要有返回类型和以“{}”主体
; ~/ n, {0 i" R- uzaijzhgh 发表于 2009-5-27 00:11
5 P  ~9 \1 W/ @  U/ B
$ X0 [& x* e. P# z8 y
构造函数、复制构造函数、析构函数不用返回类型
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:16 | 显示全部楼层
88题,,,倒。看都知道是哪个啦。。。. a- I2 u/ r2 j# r: `, w
zaijzhgh 发表于 2009-5-27 00:11

! L+ D( f8 Z3 U1 }) S" Q) O5 `$ F( o% h
88、从下列函数原型看,返回值类型为int的函数有()
7 C, Y" s, E4 L$ KA、char F1(int n);
( X/ |6 \* r( s* U- vB、int F2(char n);
7 X3 P2 B3 s! w4 J% M$ i% \, j/ ^6 sC、F3(int n);. F) u3 `  d9 B! x- }# M) c/ Z
D、int *F4(int n);7 a" E/ w$ w" k. K* b

+ r+ u* r* P* p- a$ ?; D3 V我知道B肯定对,AD肯定错
. M  |% ?4 w6 v2 F是不知道C对不对···选择是不定选的
回复

使用道具 举报

 楼主| 发表于 2009-5-27 17:20 | 显示全部楼层
89.二维数组的传递:
/ {2 K! F3 ]2 Z- h+ j; q  H0 `6 r% ]% r% f你可以用数组名作为实参或者形参,在被调用func中对形参数组定义时可以指定所有维数的大小,也可以省略第一维的大小说明,如:4 ]9 A# `) u: C9 X/ _& I( Q
2 K: n7 P! }2 |& E! g8 m, ]    void Func(int array[2][3]);6 _' c2 C, s: j9 D& I3 R; t; }5 {, d& E7 B
    void Func(int array[][3]);
) _0 q: `! `8 s* a* H  |1 s二者都是合法且等价,但是注意,不能把第二维或者更高维的大小省略/ _- p) K* h6 M6 z, w. \: D$ Q) t7 [- R$ n" n
或者你使用指针传递,然后指明size即可。9 H/ l8 }" B! Y5 _. Y
; Z5 \) ^8 R4 U' K0 @2 `; x0 Weg:void Func(int **array, int rowSize, int colSize);
- h: i" y0 [& }! B- U- tzaijzhgh 发表于 2009-5-27 00:11

; W- l0 l/ X+ j; {3 e
6 M- k3 N4 J: I) {) L: }
6 ~. B8 s+ L- z8 ~" D3 ]: C; r" y89、已知数组D的定义式int D[4][8];现在需要把这个数组作为实参传递给以个函数进行处理,下列说明中可以作为对应的形参变量说明的有()
% d; h9 G; e$ g( ?A、int D[4][]9 r, U* f/ ^9 W% o2 g  g
B、int *s[8]7 x8 C5 v% g+ i- c1 k2 K1 |# V
C、int (*s)[8]5 ?! f8 m! ~* Y7 w. @
D、int D[][8]
# y) k! [9 ?: J. J! v2 z
5 `8 e% J& z2 l/ l5 {% \
! i. N7 ?& o; `; ]——反正我选了CD1 z1 O1 v7 x5 i- E( K' q
如果是一维的,那很简单,如果数组时a[10],在实参传递a的话,我们形式参数可以是*a, 也可以是a[]# T& e. r3 ]# k8 Y
但是二维我以前没用过,不知道是不是CD那样?
回复

使用道具 举报

发表于 2009-5-27 19:14 | 显示全部楼层
89、, Q8 [' C& h8 o* E+ l
c是指向数组的指针3 U5 A# Q) U1 U7 ?+ m. n, I
d是二围指针3 i# P  R. r, v6 F3 C$ }
我也觉得是cd
回复

使用道具 举报

发表于 2009-5-27 23:24 | 显示全部楼层
构造函数、复制构造函数、析构函数不用返回类型; E3 B' A5 ~8 O$ D- J8 m, ~
xdlrz 发表于 2009-5-27 17:15
6 {3 ~3 N- F# [- i
根据题目来说的嘛。。。它问的是返回类型的原型8 d/ I7 R9 {5 a9 {+ ~7 A% `0 i+ S
在早期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){}的话,我就觉得不应该选。
# @" R5 e8 p/ |( x5 O如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?
回复

使用道具 举报

 楼主| 发表于 2009-5-28 10:06 | 显示全部楼层
如果是f(int s){}的话,我就觉得不应该选。# b. ]" D- f$ i& L3 `
如果碰到个默认返回int的编译器的话,至少会给你一个warning吧?& m% p/ k" n# ]
gyCai 发表于 2009-5-28 00:24
0 h# ]0 P5 ~* ?5 I& A2 ?
, I4 a) O  t" T

8 Z3 n! o7 G3 U) v) Y如果是9 o0 q2 u% v+ y) l% v* A+ p
class f
# n0 N1 u& r* v$ _{
" _" d5 G. H0 P9 I0 {9 r- m% |% Epublic:
% y: p% t. |  |6 G    f(int s){}: E1 a. l- B; Q8 Z5 L/ ~* R; z
};7 |* i0 y8 ]* L+ P' [5 e& j
就不会警告呀
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 00:54

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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