编程基础练习题

编程基础练习题
编程基础练习题

第二章基本数据类型和运算

因为题目略有删减,可能编号不连续,请见谅

一、单项选择题

1.下列数据中属于“字符串常量”的是(A )。

A. "a"B.{ABC} C.?abc\0?D.?a?

4.字符串"ABC"在内存占用的字节数是( B )。

A.3 B.4C.6 D.8

5.字符串" \?ABCD\? "内存占用的字节数是( C )。

A.4 B.6 C.7D.8

6.在C语言中,合法的长整型常数是( A )。

A.0L B.4962710 C.0.054838743 D.2.1869e10

7. 在C语言中,合法的短整型常数是( D )。

A.0L B.0821 C.40000 D.0x2a

8.下列数据中不属于“字符常量”的是( C )。

A.…\xff?B.…\160?C.?070?D.070

9.char型常量的内存中存放的是( A )。

A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值

11.常数的书写格式决定了常数的类型和值,03322是( B )。

A、16进制int类型常数

B、8进制int类型常数

C、10进制int类型常数

D、10进制long int类型常数

12.“e2”是( D ) 。

A、实型常数100

B、值为100的整型常数

C、非法标识符

D、合法标识符

13. 要为字符型变量a赋初值,下列语句中哪一个是正确的( A )。

A、char a=?3?;

B、char a=”3”;

C、char a=%;

D、char a=*;

14. 要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C )。

A、float x,y,z=3.14;

B、float x,y,z=3*3.14;

C、float x=3.14,y=3.14,z=3.14;

D、float x=y=z=3.14;

15. 语句float pi=3.1415926535; 将( D )。

A、导致编译错误

B、说明pi为初值3.1415926535的单精度实型常数

C、导致运行时的溢出错误

D、说明pi为初值3.141593的单精度实型常数

16. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B)。

A、算术运算、赋值运算、关系运算

B、算术运算、关系运算、赋值运算

C、关系运算、赋值运算、算术运算

D、关系运算、算术运算、赋值运算

17. 关系运算符中优先级最低的运算符是( C )。

A、“>=”和“<=”

B、“>”和“<”

C、“==”和“!=”

D、“<=”和“<”

18. 逻辑运算符中,运算优先级按从高到低依次为( D )。

A、&&,!,||

B、||,&&,!

C、&&,||,!

D、!,&&,||

19. 对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( A )。

A、0为假非0为真

B、只有1为真

C、-1为假1为真

D、0为真非0为假

20. 表达式x&&1等效于( C )

A. x==0

B. x==1

C. x!=0

D. x!=1

22. 表达式!x||a==b等效于( D )。

A、!((x||a)==b)

B、!(x||y)==b

C、!(x||(a==b))

D、(!x)||(a==b)

23. 设整型变量m,n,a,b,c,d均为0,执行(m=a= =b)||(n=c= =d)后,m,n的值是( C )。

A.0,0 B.0,1 C.1,0D.1,1

26. 设a为5,执行下列语句后,b的值不为2的是( C )。

A. b= a/2 B.b=6-(--a) C.b= a%2D.b= a>3?2:2

28. int b=0,x=1;执行语句if(x++) b=x+1;后,x,b的值依次为( A )。

A.2,3B.2,0 C.3,0 D.3,2

29. 设有语句int a=3;,则执行了语句a+=a-=a*a ;后,变量a的值是( D )。

A.3 B.0 C.9 D.-12

30. 设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a的值是( B )。

A.3 B.0C.9 D.-12

32. 在以下一组运算符中,优先级最高的运算符是( C )。

A.<= B.= C.%D.&&

33 . 在以下一组运算符中,优先级最低的运算符是( D )

A. *

B. !=

C. +

D. =

35. 设整型变量i,j值均为3,执行了j=i++,j++,++i 后,i,j的值是( B )。

A.3,3 B.5,4C.4,5 D.6,6

36. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。

A.1 B.2 C.2.0D.2.5

38. 表达式1?(0?3:2 ) :(10?1:0)的值是( B )。

A.3 B.2C.1 D.0

39. 设a=1,b=2,c=3,d=4,则表达式:a

A.4 B.3 C.2 D.1

40. 设a为整型变量,不能正确表达数学关系:10

A.10

C.a>10 && a<15 D.!(a<=10) && !(a>=15)

41. int a=0; if(a=1) a+=10; 结果的值是( B )。

A.0 B.11C.10 D.出错

42. 下列表达式中符合C语言语法的赋值表达式是( C )。

A.a=7+b+c=a+7 B.a=7+b++=a+7 C.a=(7+b,b++,a+7)D.a=7+b,c=a+7 43.设f是实型变量,下列表达式中不是逗号表达式的是( D )。

A.f= 3.2, 1.0 B.f>0, f<10 C.f=2.0, f>0 D.f=(3.2, 1.0)--- 赋值表达式44. 下列表达式中,不正确的表达式是( B )。

A.a=1,b=1 B.y=int(x)C.a=b=5 D.i++

47. 设有整型变量a=35,表达式(a&15)&&(a|15) 的值是( B )。

A.0 B.1C.15 D.35

52. 设a是char型变量,其值字符为?1?,则把其值变成整数1的表达式是( C )。

A.(int)a B.int(a) C.a= a - 48D.a / (int)a

53. 设a是int型变量,其值为3,则把其值变成字符?3? 的表达式是( D )。

A.(char)a B.a=3 C.a= a - 48 D.a= a+48

54. 设ch是char型变量,其值为?A?,则下面表达式的值是( B )。

ch=(ch>=?A?&& ch<=?Z?)? (ch+32) : ch

A.A B.a C.Z D.Z

55. 设有整型变量i, j, k, i值为3,j值为6。计算表达式k=i ^ j<<3; 后,k的值是( B )。

A.56 B.51C.40 D.27

58. 下列格式符中,哪一个可以用于以8进制形式输出整数( C )。

A、%d

B、%8d

C、%o

D、%ld

59. 下列格式符中,哪一个可以用于以16进制形式输出整数( B )。

A、%16d

B、%8x

C、%d16

D、%d

60. a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的( B )。

A、scanf(”%d,%c”,&a,&c);

B、scanf(”%d%c”,a,c);

C、scanf(”%d%c”,&a,&c);

D、scanf(”d=%d,c=%c”,&a,&c);

61.字符变量ch=?A?,int类型变量k=25,语句printf(”%3d,%d3\n”,ch,k);输出( A )。

A、65,253

B、65 253

C、65,25

D、A 25

63.使用scanf(“x=%f,y=%f ”,&x,&y); 要使x, y均为1.25, 正确的输入是( C)。

A.1.25, 1.25 B.1.25 1.25 C.x=1.25, y=1.25D.x=1.25 y=1.25 64. 要使double x;long a;获得数据,正确的输入语句是( C )。

A.scanf(“%d, %f ”,&a,&x); B.scanf(“%f, %1d”,&x,&a);

C. scanf(“%ld, %1f ”,&a,&x); D.scanf(“%1d, %1f”,a, x);

67. 设有int i=010,j=10;则printf(“%d,%d\n”,++i, j--);的输出的是( B )。

A.11,10 B.9,10 C.010,9 D.10,9

68. 设a、b为字符型变量,执行scanf(“a=%c,b=%c”,&a, &b);

后使a为?A?, b为?B?,从键盘上的正确输入是( D )。

A.…A??B?B.…A?,?B?C.A=A,B=B D. a=A,b=B

二、填充题

1.无符号基本整型的数据类型符为unsigned,双精度实型数据类型符为double,字符型数据类型符为char。

7.设下列运算符:<<、+、++、&&、<=,其中优先级最高的是++,优先级最低的

是&&。

10.设a=3,b=2,c=1,则a>b的值为1,a>b>c的值为0(a>b>c a>b为1 1>c 假为0 )。

11.若已知a=10,b=20,则表达式!a

12.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0(x/y 为0 整除) 。

14. 设float x=2.5,y=4.7; int a=7;,表达式x+a%3*(int)(x+y)%2/4 的值为 2.5。16.int x=17,y=5; 执行语句x%=x++/--y 后x的值为2。

17. ch是字符变量,判断ch是英文字母的逻辑表达式为ch>=?a?&&ch<=?z?||

ch>=?A?&ch<=?Z?.

19. 判断变量a、b的值均不为0的逻辑表达式为a!=0&&b!=0。

23. 求解赋值表达式a=5+(c=6)后表达式值、a、c的值依次为11,11,6。

27.求变量a、b中最大值的条件表达式为a>b?a:b。

28.若a=13、b=25、c=-17,条件表达式((y=(a(c*c)&&b==c||c>b 的值为0。

34.int a=3,b=5,c=7;,表达式a>c||c>b!=0&&c==b+a 的值为0。

第三章程序设计结构

一、单项选择题

1. 假定所有变量均已正确定义,下列程序段运行后y的值是(A)。

int a=0,y=10;

if(a=0) y- - ;else if(a>0) y++; else y+=y ;

A.20B.11 C.9 D.0

2. 假定所有变量均已正确定义,下列程序段运行后x的值是(B)。

a=b=c=0,x=35;

if(!a) x- -;else if(b) ;if(c) x=3;else x=4;

A.34 B.4C.35 D.3

4. 下列各语句序列中,能够且仅输出整型变量a、b中最大值的是(C)。

A、if(a>b) printf(”%d\n”,a); printf(”%d\n”,b);

B、printf(”%d\n”,b); if(a>b) printf(”%d\n”,a);

C、if(a>b) printf(”%d\n”,a); else printf(”%d\n”,b);

D、if(a

5. 下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是(B)。

A、if(u>s)t=u; t=s;

B、t=s; if(u>s)t=u;

C、if(u>s)t=s; else t=u;

D、t=u; if(u>s)t=s;

6. 下列各语句中,能够输出整型变量a、b中最大值的是(D)。

A、printf(”%d\n”,(a>b)?a,b);

B、(a>b)? printf(”%d”,a):printf(”%d”,b);

C、printf(”%d”,if(a>b)a else b);

D、printf(”%d\n”,(a>b)?a:b);

7. 下列语句应将小写字母转换为大写字母,其中正确的是(B)。

A、if(ch>=?a?&ch<=?z?) ch=ch-32;

B、if(ch>=?a?&&ch<=?z?)ch=ch-32;

C、ch=(ch>=?a?&&ch<=?z?)?ch-32:??;

D、ch=(ch>?a?&&ch

8. int a=1, x=1; 循环语句while(a<10) x++; a++; 的循环执行( A)。

A. 无限次B.不确定次C.10次D.9次

9. 下列语句中,错误的是(B)。

A.while(x=y) 5;B.do x++ while(x= =10);

C.while(0) ;D.do 2;while(a= =b);

10. 循环语句for(x=0,y=0;(y! =123)| | (x<4); x++); 的循环执行( A )。

A.无限次B.不确定次C.4次D.3次

11. 循环语句for(i=0, x=1; i=10 && x>0; i++); 的循环执行(A)。

A.无限次B.不确定次C.10次D.9次

12. i、j 已定义为int类型,则以下程序段中内循环体的执行次数是( A)。

for(i=5;i;i--)

for(j=0;j<4;j++){………}

A.20B.24 C.25 D.30

13. C语言while语句中,用于条件的表达式是(D)

A. 关系表达式

B. 逻辑表达式

C. 算术表达式

D. 任意表达式

14. while循环,执行次数是(A)

i=4; while(--i) printf(“%d”,i);

A. 3次

B. 4次

C. 0次

D. 无数次

二、填充题

1.结构化程序设计规定的三种基本结构是顺序结构、选择结构和循环结构。

2.三种循环语句是等价的。

3.当循环体中的switch语句内有break语句,则只跳出switch语句。同样,当switch

语句中有循环语句,内有break语句,则只跳出循环语句。

4.循环体中的continue 语句是结束本次循环。

10. 程序段int s,i; for(i=1;i<=100;s+=i,i++); 能否计算1~100的和? 不能,

原因是s没有初试为0。

11. 若int类型变量字长为2,程序段int jc=1; for(int i=2;i<10;i++)jc*=i; 能否

计算10的阶乘? 不能计算10阶乘,原因是i<10 , 且int i不能表示10阶乘。12.设i, j, k均为int型变量,则执行完下面的for循环后,k的值为10。

for(i=0,j=10; i<=j; i++,j--) k=i+j;

13.下列程序的功能是输入一个正整数,判断是否能被3或7整除,若能整除,输出“YES”,

若不能整除,输出“NO”。请为程序填空。

void main( )

{ int k;

scanf (“%d”, &k);

if ((k%3==0) || (k%7==0)) printf(“YES\n”); else printf (“NO\n”);

}

三、程序分析题

1. 阅读程序,写出运行结果。10, 4, 3

void main ( )

{ int a=10, b=4, c=3;

if(a

if(a

printf(“%d, %d, %d\n”, a, b, c) ;

}

3. 写出下列程序段输出结果 3

int k,a=1,b=2;

k=(a++==b) ? 2:3; printf(“%d”,k);

4. 阅读下列程序,写出程序运行的输出结果。8 5 2

void main( )

{ int y=9;

for( ; y>0; y - -)

if(y%3==0) { printf(“%d”, - -y); continue;}

}

第四章数组

(一)单项选择题

1.若有以下数组说明,则数值最小的和最大的元素下标分别是( B)。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12 B.0,11C.1,11 D.0,12

2.若有以下说明,则数值为4的表达式是( D)。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=?a?, d, g ;

A.a[g-c] B.a[4] C.a[…d?-…c?]D.a[…d?-c](即a[…d?-…a?])

3.设有定义:char s[12] = “string “ ;, 则printf( “%d\n”,strlen(s));的输出是( A)。

A.6B.7 C.11 D.12

4.设有定义:char s[12] = “string “; 则printf( “%d\n “, sizeof(s)); 的输出是( B)。

A.6 B.7C.11 D.12

5. 合法的数组定义是( A)。

A.char a[ ]= “string “ ;B.int a[5] ={0,1,2,3,4,5};

C.char a= “string “ ;D.char a[ ]={0,1,2,3,4,5}

6. 合法的数组定义是( B )。

A.int a[3][ ]={0,1,2,3,4,5}; B.int a[ ][3] ={0,1,2,3,4};

C.int a[2][3]={0,1,2,3,4,5,6}; D.int a[2][3]={0,1,2,3,4,5,};

7. 下列语句中,正确的是( D )。

A.char a[3][ ]={…abc?, …1?};B.char a[ ][3] ={…abc?, ?1?};

C.char a[3][ ]={…a?, “1”}; D.char a[ ][3] ={ “a “, “1“};

8. 下列定义的字符数组中,输出printf( “%s\n”, str[2]) ;的输出是( C)。

static str[3][20] ={ “basic “, “foxpro “, “windows “};

A.basic B.foxpro C.windows D.输出语句出错

9. 下列各语句定义了数组,其中哪一个是不正确的(C)。

A、char a[3][10]={”China”,”American”,”Asia”};

B、int x[2][2]={1,2,3,4};

C、float x[2][ ]={1,2,4,6,8,10};

D、int m[][3]={1,2,3,4,5,6};

10. 数组定义为int a[3][2]={1,2,3,4,5,6},值为6的数组元素是(B)。

A、a[3][2]

B、a[2][1]

C、a[1][2]

D、a[2][3]

12.函数调用strcat(strcpy (str1,str2),str3); 的功能是( C )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3 之后。

B.将字符串str1连接到字符串str2之后再复制到字符串str3 之后。

C.将字符串str2复制到字符串str1中后再将字符串str3 连接到字符串str1之后。

D.将字符串str2连接到字符串str1之后再将字符串str1 复制到字符串str3中。13.有字符数组定义如下,则合法的函数调用是(A)

char a[ ]= “I am a student “, b[ ]= “teacher “ ;

A.strcmp(a,b);B.strcpy(a,b[0]); C.strcpy(a[7],b); D.strcat(a[7],b); 14.有字符数组定义如下,则不能比较a,b两个字符串大小的表达式是(D)char a[ ]= "abcdefg", b[ ]= "abcdefh";

A.strcmp(a,b) ==0 B.strcmp(a,b)>0 C.strcmp(a,b)<0 D.a

1.C语言中,数组的各元素必须具有相同的类型,元素的下标下限为0,但在程序执行过程中,不检查元素下标是否越界。下标必须是正整数、0、或者整型表达式。2.C语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。

数组名是一个地址常量,不能对它进行加、减和赋值运算。

3.执行static int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] = 0,a[1][2] = 6。

4.设有定义语句static int a[3][4] ={{1},{2},{3}}; 则a[1][0]值为2a[1][1]值为0,a[2][1]的值为0。

5.设有定义语句static char a[10] = "abcd" ; 则a[3]值为…d?,a[5]值为‘\0?。

7. 如定义语句为char a[ ]= "windows",b[ ]= "95";,

语句printf("%s",strcat(a,b));的输出结果为windows95。

8. 定义语句为char a[15], b[ ]= "windows 95";,则语句printf("%s",strcpy(a,b));

的输出结果为windows 95。

9. 定义语句为char a[ ]=”Box”,b[ ]=”Boss”;,语句printf(”%d”,str cmp(a,b)); 输出5。

10. 定义语句为: char a[10]=”student”; ,语句printf(”%d”,strlen(a));的输出结果为7。

11. 若在程序中用到putchar( ) 函数时,应在程序开头写上包含命令

#include

若在程序中用到strlen( ) 函数时,就在程序开头写上包含命令#include 。(三)程序分析题

7.阅读下列程序,写出程序运行的输出结果。

#include

#include

void main() 输出结果:*******

{ char str1[ ]="*******"; *****

for(int i=0;i<4;i++) { ***

printf("%s\n",str1); *

str1[i]=? ?;

str1[strlen(str1)-1]='\0';

}

}

8. 阅读下列程序,写出程序运行的输出结果。1 0 2 2 5 7 13 20

#include

void main()

{ int a[8]={1,0,1,0,1,0,1,0},i;

for(i=2;i<8;i++) a[i]+=a[i-1]+a[i-2];

for(i=0;i<8;i++) printf("%d ",a[i]);

printf("\n");

}

第5章函数

一、单项选择题

1. 以下正确的说法是

A) 用户若需调用标准库函数,调用前必须重新定义

B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C) 系统根本不允许用户重新定义标准库函数

D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件

包括到用户源文件中,系统自动去调

2. 知函数func的定义为:

void func ( )

{ ……}

则函数定义中void的含义是

A) 执行函数func后,函数没有返回值B) 执行函数func后,函数不再返回

C) 执行函数func后,可以返回任何类型C) 以上答案均不正确

3. 以下正确的函数首部定义形式是

A) int abc (int x, int y)

B) int abc (int x; int y)

C) int abc (int x, int y);

D) int abc (int x, y)

4. 在以下对C语言的描述中正确的是

A) 在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参

B) C语言函数既可以嵌套定义,又可以嵌套调用

C) 函数必须有返回值,否则不能使用函数

D) C语言程序中有调用关系的所有函数都必须放在同一源程序文件中

5. 以下正确的函数定义形式是

A) int fun (int x, int y) B} int fun (int x,y)

{ z=x+y; { int z;

return z; z=x+y; return z;

} }

C) int fun (x,y) D) int fun(int x, int y)

{int x, y, z; { int z;

z=x+y; return z; z=x+y; return z;

} }

6. 以下正确的说法是

在C语言中

A) 实参和与其对应的形参共占用一个存储单元

B) 实参和与其对应的形参各占用独立的存储单元

C) 只有当实参和与其对应的形参同名时才共占用存储单元

D) 形参是虚拟的,不占用存储单元

7. 若调用一个函数,且此函数中没有return语句,则正确的说法是

该函数

A) 没有返回值B) 返回一个不确定的值

C) 能返回一个用户所希望的函数值D) 返回若干个不确定值

8. 以下正确的说法是

A) 实参只能是常量或常量表达式B) 形参可以是常量、变量或表达式

C) 形参只能是常量或常量表达式D) 形参应与其对应的实参类型一致

9. C语言中函数返回值的类型是由决定的

A) 调用该函数的主调函数类型B) return后边的表达式类型

C) 调用函数时系统临时指定D) 定义函数时指定的函数类型

10. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是

A) 地址传递B) 由用户指定传递方式

C) 由实参传给形参,再由形参传回给实参D) 值传递

11. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是

A)float型B) 1ong型C) int型D) double型

12. 下面函数调用语句含有实参的个数为

fun ((expl, exp2), (exp3, exp4) );

A) 1 B) 2 C) 3 D) 4

13. 若用数组名作为函数调用的实参,传递给形参的是

A) 数组第一个元素的地址B) 数组第一个元素的值

C) 数组中全部元素的值D) 数组中全部元素的地址

14. 以下正确的说法是

如果在一个函数中的复合语句中定义了一个变量,则该变量的作用域

A) 在该复合语句范围内有效B) 在该函数范围内有效

C) 在本程序范围内均有效D) 在本源程序文件范围内均有效

15. 以下叙述中不正确的是

A) 在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B) 在C语言中,在调用函数时,实参和对应形参的类型只需赋值兼容

C) 在C语言中,全局变量的隐含存储类别是自动存储类别

D) 在C语言中,局部变量的隐含存储类别是寄存器存储类别

16. 说明语句“static int i=10; ”中,“i=10”的含义是

A) 只说明了一个变量B) 与“int i=10 ”在功能上等价

C) 将变量i初始化为10 D) 将变量i赋值为10

17. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全

局变量,则该变量需要使用的存储类别是

A) extern B) register C) auto D) static

18. 在C语言中,对于存储类别为的变量,只有在使用它们时才占用内存单元

A) static和auto B) register和extern

C) register和static D) register和auto

19. 在一个源文件中定义的外部变量的作用域为

A) 本文件的全部范围B) 本程序的全部范围

C) 本函数的全部范围D) 从定义的位置开始至本文件结束

20. 函数swap (int x, int y)可以完成对x值和y值的交换,在运行调用函数中的如下语句后,a和b的值分别是

a=2; b=3;

swap(a,b);

A) 3 2 B) 3 3 C) 2 2 D) 2 3

21. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则

A) 称为函数的直接递归调用B) 称为函数的间接递归调用

C) 称为函数的循环调用D) C语言中不允许这样的递归调用

22. 以下叙述中正确的是

A) 局部变量说明为static存储数,其生存期将得到延长

B) 全局变量说明为static存储类,其作用域将被扩大

C) 任何存储类的变量在未赋初值时,其值都是不确定的

D) 形参可以使用的存储类说明符与局部变量完全相同

24. 对于以下递归函数f,调用f(4),其返回值为

int f (int n)

{ return f (n-1)+n; }

A) 10 B) 11 C) 0 D) 以上均不是

二、填充题

1. 执行完下列语句段后,i值为:_ _

int i;

int f (int x)

{ static int k = 0;

x+=k++;

return x;

}

i=f (2);

i=f (3);

2. 执行完下列语句段后,i值为:__ __

int i;

int f (int x)

{ return ((x>0)? x*f(x-1):3); }

i=f(f(1));

3. 以下程序运行后的输出结果是

int f (int a)

{ return a%2; }

main( )

{ int s[8]={1,3,5,2,4,6},i,d=0;

for (i=0; f(s[i]) ; i++) d+=s[i];

printf("%d\n",d);

}

4. 有以下程序运行后的输出结果是_ ___

int f (int n)

{ if (n==1) return 1;

else return f(n-1)+1;

}

main()

{int i,j=0;

for(i=1; i<3;I ++) j+=f (i);

printf("%d\n",j);

}

参考答案

一、单项选择题

1. B

2. A

3. A

4. A

5. D

6. B

7. D

8. D

9. D 10. D 11. C 12. B 13. A 14. A 15. C 16. C 17. D 18. D 19. D 20. D

21. B 22. A 23. D 24. D

二、填充题

1. 4

2.18

3. 9

4. 3

相关主题