川农《C语言(专科)》17年3月在线作业3 d0 W5 Y& X e1 A& y$ o; N
# c( a7 M3 _* l8 f; f! _一、单选题:% b1 ~- Y7 i: h) q( ^! M$ @
1.假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4; (满分:5)6 a/ e' Q4 Q' g$ {, a" t5 n
A. 34
4 P; ?0 n% O! s; j B. 4* Y( u1 [ t' x1 A
C. 35
- z: l9 q1 U: A* Z$ |8 K D. 36 [! f/ k1 Y% e' ~0 B# [
2.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式1的表达式是( ) (满分:5)
4 F6 z! E5 g* ], O b A. 1/a*b*c
; |+ U# c2 I* j( M7 |4 e6 b$ S B. 1/(a*b*c)& V1 Z0 r% [: S+ b; e
C. 1/a/b/(float)c
7 e6 W/ b/ `) m: M D. 1.0/a/b/c
( |9 q, d6 o5 n9 a4 Q7 j3.C语言的编译系统对宏命令的处理是( ) (满分:5)6 w. J( }+ D: s1 _) B' q, Y7 P2 g
A. 在程序运行时进行的
" d* x# Q5 S B4 \8 f B. 在程序连接时进行的$ E! c( N: x3 _& G4 F
C. 和C程序中的其它语句同时进行编译的
9 C3 r6 h2 p& o; o D. 在对源程序中其它成份正式编译之前进行的% d) u& b1 p! [8 i2 l
4.以下有关宏替换的叙述不正确的是( ) (满分:5)# `- A" ]4 r$ [# F1 R, W( S! z
A. 宏替换不占用运行时间5 R* c" A* i: Y% L& N! M4 r* x
B. 宏名无类型
- I. I* w6 i6 Q C. 宏替换只是字符替换
" k" z2 A6 X; O0 ] D. 宏名必须用大写字母表示
* {4 a4 I+ p4 A) F* P5.以下程序的输出结果是( )main( ){ int x=10,y=10; printf("%d %d\n",x--,--y);} (满分:5)% w$ N8 \7 E: J) E
A. 10 101 i$ R; t* t8 I8 a: K
B. 9 9
$ i9 y* R3 M' h" @4 A+ y$ }7 l C. 9 10
6 g5 s0 j0 h6 F0 k& s- x D. 10 9
2 K# Q! D% y! C4 K z9 X# ]6.运行以下程序后,如果从键盘上输入 china#,则输出结果为( )#includemain( ){ int v1=0,v2=0;char ch;while((ch=getchar( ))!='#')switch(ch){ case 'a';case 'h';default; v1++;case '0'; v2++;}printf("%d,%d\n",v1,v2);} (满分:5)9 m+ ~0 j* X) ]* s) g
A. 2% ]) W9 P, u# S+ K
0
. b/ Z% O7 {- C' j9 u B. 59 J3 S0 C1 `& T) I& v$ G
06 X! v7 A" o1 y' y+ }8 v" h
C. 5
0 t2 D' w" R; ` i& ^, a# _- O 56 x+ M3 a0 |( e+ h% h. i
D. 27 X4 l$ p# P4 _, Z" |) i3 l
57 y j: I/ I" K# R
7.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( ) (满分:5)& ^& R, F+ D z
A. c=b=a;. `6 B% A/ t" u3 z
B.(a=c)‖(b=c);
% u) u% |# [% ~7 x C.(a=c)&&(b=c);0 t0 r4 U) c' G
D. a=c=b;+ e/ k7 I( F3 }+ D6 B- S$ J- b
8.下列程序执行后输出的结果是( )int d=1;fun(int q) { int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);} (满分:5)
0 I+ P5 V( _4 i3 o A. 8 4
. Z6 F( `9 N3 x- _# e B. 9 6
4 }4 A3 I( q5 b% N% p C. 9 4$ }9 S& [1 O6 ]1 a7 R
D. 8 5
+ z+ s# w0 E4 N+ |. s) ]0 r9.执行下面的程序后,a的值为( )main( ){ int a,b;for(a=1,b=1;a=20)break;if(b%3==1){b+=3;continue;}b-=5; }} (满分:5)
0 R2 J: V- E1 x# `0 D A. 7k* x0 f8 {# \& `
B. 8) F! `6 l) _: E, Y' L; f9 s
C. 9
! `9 K8 f1 u2 i4 [" a7 Y D. 10
) E9 e+ }8 v9 F2 K8 H% P6 E6 O10.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( ) (满分:5)G' ^1 e( y: S' f- n; p
A. 1
! z- B2 K# y) a- w9 x9 j B. 2% I" F1 s) K' j& v0 m" [
C. 2.0# A; K. Y" k# _1 c R
D. 2.5: M. U& {! h2 k+ E
11.在以下一组运算符中,优先级最高的运算符是( ) (满分:5)! S. c- \9 @( V" _; l$ z5 p
A. <=
$ e* I0 L, B2 }1 h" [) B8 ~ B. =
( e& V! y9 l" g9 S$ x- M C. %; w0 _% |3 N+ t/ m9 f& z( k/ S
D. &&. e- I6 \. W: G# D
12.请选出以下语句的输出结果( )printf("%d\n",strlen("\t\"\065\xff\n")); (满分:5)
6 }+ a; ^' O5 y$ F$ `8 x) O$ c A. 59 ]# a6 M5 b/ _' `
B. 14* w8 O1 X# W- T* S7 v1 p5 s
C. 8) \7 S3 E6 e' H" D& V' E
D. 输出项不合法
1 c& ?* s |, T7 {, j: m P/ | 无正常输出' i6 g0 N( P V- D4 q
13.不能把字符串:Hello!赋给数组b的语句是( ) (满分:5)
' \" m/ u# _# m: }" x$ r A. char b[10]={'H'
7 g3 `& c( ?* H' u" A+ J 'e'
2 V/ l0 p4 G1 x* e. s) W 'l'
2 P5 @. X1 Z" M9 {* m/ R+ Z 'l'
$ ]2 k, G/ B. Q7 t& T/ W 'o'; y# J2 S6 J2 [( c+ c$ S/ F
'!'};* s; p/ { [+ I7 K
B. char b[10];b="Hello!";5 G0 O; |& b* m; q$ \- l; ^
C. char b[10];strcpy(b4 [6 f% [/ G1 M9 X6 y
"Hello!");, Q+ m0 Y$ Z# t/ ~; d6 X( W
D. char b[10]="Hello!";
7 F! s. @6 s- Y x" S2 F14.在C语言中,合法的长整型常数是( ) (满分:5)
, L0 ?7 h5 l- p x3 s A. 0L/ q* ?$ l1 A* V
B. 4962710
2 N% u c1 z$ |8 [5 M C. 0.0548387431 x& U2 @$ m8 Z8 f b$ A, @' e [- Y
D. 2.1869e10
! [/ D( O- I% J* v( s6 e5 {15.以下程序的输出结果是( )#include main( ){ char *p1,*p2,str[50]="ABCDEFG";p1="abcd"; p2="efgh";strcpy(str+1,p2+1); strcpy(str+3,p1+3);printf("%s",str);} (满分:5)+ L! S, v, f4 i7 D j6 d& H3 S; S
A. A)AfghdEFG
9 I0 ^0 X9 |7 R1 q B. Abfhd
2 Z B+ [5 S- P3 H/ e C. Afghd
; d% y6 ]# R3 z4 ^; r D. Afgd
) E7 K$ { y4 N" I16.在宏定义 #define PI 3.14159中,用宏名PI代替一个( ) (满分:5)' O1 J a. U/ N
A. 常量6 D$ ]% t. H' v' k6 S3 s
B. 单精度数" q: O" b o5 x7 g
C. 双精度数
9 W, P2 p8 }9 H l D. 字符串2 S9 A" t$ }7 w* \ _* E; `' @" j
17.以下说法中正确的是( ) (满分:5)
+ j( ]5 K/ }% F. D A. #define和printf都是C语句###define是C语句,而printf不是##printf是C语句,但#define不是###define和printf都不是C语句
. S4 p& }! v9 y- z5 H; i B. #define是C语句,而printf不是! g5 f# z. A7 @; e' g2 ~7 K
C. printf是C语句,但#define不是
( b5 A5 Y: `+ M7 O D. #define和printf都不是C语句# ]) ^. D) l! [) T/ Z
18.若i ,j已定义为int类型,则以下程序段中for(i=5;i;i--)for(j=0;j<4;j++){...}内循环体的总的执行次数是( ) (满分:5)
' j; x( K2 c2 T A. 20
' O: E9 d& k/ \8 v J B. 15/ S0 C6 t5 p* g2 s& @
C. 24; s' \2 c9 h1 x \( q' L
D. 16
6 v9 D- @, G- C9 V' v19.请读程序#define ADD(x) x+x main( ){int m=1, n=2, k=3;int sum=ADD(m+n) * k;printf("sum=%d", sum);}上面程序的运行结果是( ) (满分:5)8 O% W7 ?; ?" S- [3 X* f6 X2 b! G
A. sum=9, q! c* @$ U, m% E
B. sum=10
$ D' @% W" J( c$ ~+ [ C. sum=12" Z" ^) v3 I y0 M# Z
D. sum=187 z+ U6 j3 o/ Y( L
20.下面能正确进行字符串赋值操作的语句是( ) (满分:5)% L v1 Y8 o$ T% `, X
A. char s[5]={"ABCDE"};1 _0 t& {) O3 A9 l) o! n' m
B. char s[5]={'A'
" H' N7 @3 ?* z3 n( j 'B'
3 g( W, ]! v; Y1 k 'C'6 D' H+ P0 O. k
'D') I1 E) h9 V5 b
'E'};0 X' z" f: l/ }
C. char *s;s="ABCDEF";8 C/ S' g7 ^& X' V3 I; F l. R
D. char *s; scanf("%s"& t6 E; Y7 ?6 _3 e
s);: W# C: ]' E0 m: G% A& R; Z
回复贴子下载答案q/ d' n5 C! f. `
: S! s, G' U# {9 m" _3 p
游客,如果您要查看本帖隐藏内容请回复