0 O. \4 G, \6 C$ z8 | H7 J( L1 A《C语言程序设计》作业( y& ?6 @4 ]7 V
本课程作业由两部分组成。第一部分为“客观题部分”,由15个选择题组成,每题1分,共15分。第二部分为“主观题部分”,由简答题和论述题组成,共15分。作业总分30分,将作为平时成绩记入课程总成绩。' W, c; ?7 V; x& p6 W4 Y# I; H7 |
! e! q% C2 j# E客观题部分:& R+ W" A- s" K5 e) L k4 V6 [4 |
一、选择题(每题1分,共15题)
U4 r: x3 L, V' o6 Z9 d& v1、以下程序运行后,输出结果是( ): d" D/ d# A8 I1 O* S' n2 b/ _
main()( W) [9 I0 }" d2 c2 k! G! b
{ + D. {+ X* A5 e% l) ]$ D' ~
char *s="abcde";/ j- x3 T) ]/ a2 [+ \
s+=2;
& \; v+ S* y) G$ j9 R2 X- gprintf("%ld\n",s);- p( u8 Z" {0 V6 [ ^1 h/ W+ U
}( [' S6 e' V' `6 c, }( t9 ^
A.cde B.字符c的ASCII码值
' S, f6 F9 M1 P# G# }, J; kC.字符c的地址 D.出错
/ {5 j( P k* ]9 {5 P+ S2、下面的程序将输出:( )
, K2 u$ F6 }! \. Nmain()
% \( |. V3 }. `, s6 k0 ~* k- v{
: ^+ @( a. F7 G9 u8 X4 G char ch;
, ?- D, @2 T! p% U- I ch=’1’;
0 _9 ^, G- D* j6 J" ` ch+=1;& u# t8 F6 [/ q/ n
switch(ch): R+ \3 F" P' B1 ~' m0 q" \
{
& d+ c$ J4 T8 ^" V case ‘1’: printf("this is one. ");
& G* b/ z" ^+ i case ‘2’: printf("this is two. ");* {5 }4 C) _5 B! m1 @
default: printf("no way! ");: `4 t6 y/ t. @0 Z/ v9 L
}1 d5 o5 H7 E5 q
}
! ~2 t& J ?1 o& y1 ]+ x7 d$ L4 YA.this is one. B.this is two. C.no way! D.this is two.no way!2 S9 `# L1 h7 b( H: X3 J
以下所列的C语言常量中,错误的是( )2 {8 k7 m7 D$ E! E
A. 0xFF B. 1.2e0.5 C. 2L D. '\72'
8 |6 u g6 j6 ^: b" U l; E设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不正确的语句是( )' K& m9 k& U M7 g( Y
A.k=*P1+*P2; B.P2=k; C.P1=P2; D.k=*P1 * (*P2);
5 ]' ]" \$ P6 n: P3 P3 M6 u设有如下定义
8 G: ~! I9 \- A$ P7 f% C$ Jint arr[]={6,7,8,9,10};
7 [, r- g4 x) ]# [7 g& K. Rint * ptr;, D* ~9 `# A) t3 [
则下列程序段的输出结果为:( )5 {% v7 ?# l$ t4 m- O
ptr=arr;
) C7 W* ?" I& P' p7 B1 ^7 o( j f* (ptr+2)+=2;
' ?8 c! Y& g; Xprintf ("%d,%d\n",*ptr,*(ptr+2));* I x! n/ Q5 L& @1 @- e
A.8,10 B.6,8 C.7,9 D.6,10$ T7 G6 Y/ a. {% Z$ T7 N- D
6、在下以下程序的输出结果是:( )& Y7 B0 N: ^5 X. m" J
#define f(x) x*x% N* h, {# }% F! X2 W- _* l
main()8 n0 Z+ Q& f" m0 j, F3 G9 }
{
( I- ` j l9 aint a=6,b=7,c;
1 B) S& R3 b U" I1 W3 }! Y( B c=f(a)/f(b);" |, r" w/ W+ ?' O( {
printf(“%d\n”,c);
+ v x8 Z9 C8 v# b6 ?( J: K& w2 T( o}
/ Y. D8 H, c$ `5 ~2 m5 ~- a. f9 _A.9 B.35 C.36 D.187 L- y; W/ U0 E& f! I* f4 r
7、设有以下说明和定义8 U! O. ~; \+ {4 |
typedef union
[; [ o; h# q3 u) r{ long i; int k[15]; char c; }DATE;
$ {- s, D l) w. g% W( l5 R- Estruct date u v4 w# y& d9 P0 U
{ int cat; DATE cow; double dog; } too;) [" r. ^; B& t' V% v: a1 M
DATE max;5 C. A) t- b0 D& b- K/ }' l8 C
则下列语句的执行结果是:( )2 k2 E2 n _1 _: R! k( F6 f/ i v
printf ("%d",sizeof (struct date ) +sizeof(max));* I4 u& D6 m, \
A.30 B.35 C.70 D.75
! E. d# Q( W2 A# ~" ^2 M( S8、若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:( )# d& P8 O" `+ |% G
A.a[2][2] B.p[9] C.a[9] D.p[1][1]
% \# N: k2 U6 v) k9 U9、下列程序段所表示的逻辑关系是:( ): a# P+ ^3 X* B( S
if(a
A. x = 2 I" T/ g3 ?5 {8 o6 P
B. x =
" _9 U9 S! c, X+ [C. x = n( e5 A2 N9 R1 N9 }7 B; v( {
D. x = $ `4 g/ U: n x- f
10、若有说明int a[2][2];那么,下面正确的C赋值语句是:( )
1 [" {' C/ l& l: n# e0 C0 W% FA.a=2; B.a[1]=2; C.a[1]={1,2}; D.a[0][1]=a[1][0];
0 j& \+ h- R, y; X+ G11、给出以下定义:
% q) ?; r6 X! G. }1 ], v1 uchar x[ ]="abcdefg";& ^* R9 Q& ?& f) g
char y[ ]={'a','b','c','d','e','f','g'};7 @2 n6 D* R; s4 h2 x; U/ f
则正确的叙述为7 t. s7 Y7 T, n
A、数组X和数组Y等价 B、数组x和数组Y的长度相同- k5 _3 X% W" R' j7 b& t: H5 d2 V6 Y
C、数组X的长度大于数组Y的长度 D、数组X的长度小于数组Y的长度0 `6 E" k$ `8 z2 y4 d
12、有以下程序
$ ^: @4 b' j& L0 L, `; P7 lmain()* v, N# V& u/ ~8 }- w) [, Q
{ char a[]="programming", b[]="language";2 I3 X7 C N7 t
char *p1,*p2;
& {4 G! y& r, H2 x5 Z) Xint i;
+ _+ W# }: s' l1 c' p+ C* d+ Np1=a; p2=b;
- F# X5 c9 Q; V- g: p1 |for(i=0;i<7;i++)
* o: J6 b. e: y1 d0 T$ S$ a+ b" vif(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));
) G% W: [8 F) w2 x& M}$ X' r5 |3 b# \( s
输出结果是:/ U2 `/ k# Q$ k% \8 k
A、gm B、rg C、or D、ga% I/ g3 I+ M- {! _+ T
13、下面函数调用语句含有实参的个数为:
/ t; ], W1 A5 p; C5 @/ q. Jfunc((exp1,exp2),(exp3,exp4,exp5));
+ P+ g! g# q' J8 H1 {& CA、1 B、2 C、3 D、42 `8 M+ p, R& ` R0 ?$ n% G! b
14、当执行下面的程序时,如果输入ABC,则输出结果是
; h% e) d0 u0 a: o4 ~#include "stdio.h"
- u" x3 y. B( Z#include "string.h"
1 {- B- _# m" Z" I2 a. q$ p) [main(){
9 m) S0 E% D9 |4 r* N! W, E char ss[10]="1,2,3,4,5";
3 o) E. i$ @7 E- F6 k gets(ss);7 U) I- Z) i, f/ Z+ u! s& f! _
strcat(ss, "6789");
' S" S9 w# w4 y9 [# b# v* i printf("%s\n",ss);
2 V! b6 B" E4 ]# [+ U( L4 j& R}$ u, ~( I6 e n& h, C' q
A、ABC6789 B、ABC67 C、12345ABC6 D、ABC4567897 i% ~% ~5 u, g: O
15、若二维数组a 有m列,则在a[i][j]之前的元素个数为( )' W! @" L( `# ^/ ]7 J0 {
A、j*m+i B、i*m+j C、 i*m+j-1 D、i*m+j+1
7 o7 T# p- p( ] I- j1 ~: }; M% M" n. F主观题部分:
( v* Q* J5 p3 v一、简答题(每题2.5分,共2题)+ n1 q$ C! p3 Y$ H
1、阅读程序写结果3 S6 b1 F0 m' H! K# X
#include % F& B" I! j) {! @3 ~1 y
int f(int n)' ?$ x! Z3 }- j* @$ t# `: A" I" ^
{static int s=1;) L5 V* r# Y# Z1 Z# e0 j
while(n) s*=n--;
1 S u& a/ ^% ] return s;
. b% p8 w0 \6 Q+ r}1 x( k- `! B" ^( N5 u
main()9 V; q S$ j D0 v/ \. _% E, r
{
' v" c2 Z2 U+ `- k: Mint i,j;
: K- e; A+ t# t8 J' V m i=f(3); j=f(5)+f(2);/ Y' |1 P1 Z! m
printf("\nThe outputis:\n");7 |' |) d, b, L- t, Z% }
printf("i=%#x,j=%d \n",i,j);# j8 z- r8 j) m( \( q8 ]3 v
}. Q4 t/ }7 J3 ?1 e% X
2、阅读程序写结果
5 Q" G$ g9 G# A4 x) q#include
& A5 ~; L5 a2 f! W! ptypedef struct stu
. q* e* _, E3 y9 Y. ? B# x* w{ char name[10];
: l! v% P* n: Y- l1 r9 F. [' j' D int age;
O u9 d* m x* ?' e% D }STU;
" T8 S1 S7 x$ zchar *fun(STU *p,int m)
8 F/ [( T1 g# C0 g5 o{ int k,i;
' ]* L/ N" `$ y& z+ H, A4 C. ] STU *q;9 @0 r, l- x& h0 k
k=200;% } Y* k' j! ^
for(i=0;i
8 n q/ ~8 H1 g5 C. z if((p+i)->age
{: g. H- R& n2 W: a
k=p->age;% ?" I5 Z: N; b3 U9 L+ P
q=p+i;4 \+ [+ t) V: X
}4 X5 a! ]2 ?5 \- L, N
return q->name;
/ g+ ?" X _# T: [# X}, @2 M, f; f3 d3 _0 d
main(), K" X3 e$ x( q, Q& w
{ struct stu students[3]=
& d) J+ r8 \% F1 O; j{
9 u; c3 ?+ p, R$ n: }"Zhang",20,
2 W y6 K# N. P0 q& X: ?"Wang",19,
! Q! Z# S! f9 {5 W. _& A"Zhao",18};* I# h3 f. a- ]9 p L5 @" ]
printf("%s\n",fun(students,3));& t, c+ K7 P& `
}
. @9 A |/ C& I4 z S二、论述题(每题5分,共2题)
0 l' c0 n6 M/ ]; p) e6 ~( D1、编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值,并输出最大值与最小值的和、差、积、商。0 r3 K* N8 H# d1 u$ o
2、下面程序的功能是将一个字符串续接到另一个字符串上,至少包含有10处错误。请纠正错误的地方,使之成为正确运行的程序。3 I: n( ?, I; f4 X
#include "string.h"
# h) r4 q9 H- P7 W) w. q#include “stdio.h”
6 R* {6 a) O; X! r( r) N. Tvoid main()
- t# R( i' S- n {# W1 J& z, n{4 Y3 J B6 v9 L1 c" _
char str1[4];l' q8 @4 i* B+ I3 a
char *str2="4567";8 W& b% Q2 }2 N! p% S" b
void StringCat(char s1;char *s2)6 f$ x: D% y* O# t, Q* e2 ~9 p
str1="123";
; ]; W' e( X7 W0 S; G; V6 y2 @ StringCat(str1,str2);) k* X/ b7 [5 e6 N( G+ t
printf("%s",str1);
. j1 ]8 v+ G. s% d }
3 k E4 M. F6 |1 Y6 @' G4 Kvoid StringCat(char s1;char *s2);
]& Y) t9 H7 S) H! t' h; D{" T& {2 ?# V% F; N
char *p1,p2;
% d$ F. g; n' g m! Y2 K2 j p1=s1;
2 p7 {* I: J; o$ A% Q p1+=strlen(s1);5 v7 }/ s# u3 c0 {
p2=s2;
6 J1 g( i& V/ A+ U! i2 ?. y& ] while(p2)
; P, e2 {0 _2 C *p1++=*p2++;0 S G( O% I3 U) }# d# s
*p1=0;6 _" T P: N3 Z
}. ^! u2 H, y7 o H( c
转载请注明无忧答案网) a+ I; |& ?3 r4 y& t