admin 管理员组

文章数量: 1086019


2025年1月1日发(作者:matlab中e怎么输入)

含答案程序设计基础及语言复习提纲

一、选择题

1

•以下叙述中错误的是(A)。

A.

使用三种基本结构构成的程序只能解决简单问题

(P28)

B.

结构化程序由顺序、分支、循环三种基本结构组成

(P26)

C・C

语言是一种结构化程序设计语言

D・

结构化程序设计提倡模块化的设计方法

(P34)

2.

以下叙述正确的是(A)。

A. C

语言函数可以嵌套调用,例如:

fun(funfx))

B. C

语言程序是由过程和函数组成的

(PIO C

语言程序是由函数组成的)

C. C

语言函数不可以单独编译

D. C

语言中除了

main

函数,其他函数不可作为单独文件形式存在

3.

有以下程序

#include

main()

{int a=0, b=0;

/*给

a

赋值

a=10;

b=20;

b

赋值 */

printf('

,

a+b=%dn

,

a+b); /*

输出计算结果 */

}

1 / 56

程序运行后的输出结果是

(E)

A.

出错

B.a+b=O C.a+b=10 D.a+b=30

4.

以下叙述中正确的是(A)。

A.

每个后缀为

.C

C

语言源程序都可以单独进行编译

含答案程序设计基础及语言复习提纲

B.

每个后缀为

.C

C

语言源程序都应该包含一个

main

函数(若在一个项目中,

后缀为

.C

C

语言源可以不包含

main)

C.

C

语言程序中,

main

函数必须放在其他函数的最前面

D.

C

语言程序中,只有

main

函数才可单独进行编译

5.

按照

C

语言规定的用户标识符命名规则,不能出现在标识符中的是(D)。

A.

大写字母

E.

下划线

C.

数字字符

D.

连接符

6.

以下选项中能表示合法常量的是

(D)o (p39)

A.

7.

有以下程序

#include

main()

{

int sum, pad, pAd;

sum = pad = 4;

pAd = ++sum, pAd++, ++pad;

1,200 B.1.5E2.0 C.0118 D.”007"

2 / 56

printf(

n

%dn

u

, pad );

}

程序的输出结果是(

A.

8.

有以下程序

#include

main()

{ int a;

4

B)o

B.5C.6 D.7

含答案程序设计基础及语言复习提纲

a = (int)(-1.65*3);

prmtf(

H

%dn

M

, a);

}

程序的运行结果是(B)

o

(直接取整数部分)

A. -3 B.-4C.-5 D.

结果不确定

9.

关于

H

while(

条件表达式)循环体“,以下叙述正确的是

(E)

A.

循环体的执行次数总是比条件表达式的执行次数多一次

B.

条件表达式的执行次数总是比循环体的执行次数多一次

C.

条件表达式的执行次数及循环体的执行次数一样

D.

条件表达式的执行次数及循环体的执行次数无关

10.

若有定义语句

:int year=2009, *p=&year

;以下不能使变量

year

中的值 增至

2010

的语句是⑻。

A. (*p)++; B.*p++;

3 / 56

C.++(*p); D. *p+=l;

11.

有以下程序

#include

int fun( int a, int b)

{ return a+b; }

main()

{ int x=6, y=7, z=8, r ;

r = fun (fun(x,y), z-

);

printf (“ %dn" , r );

程序运行后的输出结果是(A)。

含答案程序设计基础及语言复习提纲

A. 21 B. 15 C. 20 D. 31

12.

在以下给出的表达式中,及

while(E)

中的

(E)

不等价的表达式是

(E)

A. (E>0| |E<0) B. (E==0) C. (! E==0) D. (E!=0)

13.

由以下

while

构成的循环,循环体执行的次数是(D)。

int k= 1;

while ( k=2 ) k++;//

请注意:若改为

while ( k==2 ),

则如何? (B)

A.

有语法错,不能执行

C.

14.

若有以下定义

int x[10], *pt=x;

B.

一次也不执行

执行一次

D.

无限次

4 / 56

则对

x

数组元素的正确引用是(D)。

(p236)

A. pt+3

15.

有以下程序

#include

main()

{ int "6]={10,20,30,40,50,60}, *p,*s;

p = c; s = & c[5];

printf(

u

%dn

n

, s-p );

}

B. *&x[10] C. *(pt+10) D. *(x+3)

程序运行后的输出结果是(A)。

A. 5 B. 4C. 20 D. 16

16.

以下叙述中正确的是

(E)

A.

—条语句只能定义一个数组

5 / 56

含答案程序设计基础及语言复习提纲

B.

每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储 单

C.

数组说明符的一对方括号中只能使用整型常量,而不能使用表达式

D.

在引用数组元素时,下标表达式可以使用浮点数(整型)

17.

以下叙述中正确的是

(D)

A.

数组下标的下限是

1 (0)

B.

数组下标的下限由数组中第一个非零元素的位置决定

C.

数组下标的下限由数组中第一个被赋值元素的位置决定

D. char cl, c2, *c3, c4[40];

是合法的变量定义语句

18.

有如下程序

#include

main()

{

char name[10] = {'S', T, R, 'F, N, G};

name[3] = 'E'; name[5] = 0;

printf("%sn", name);

}

程序运行后的输出结果是(A)。

A. STREN B. STRIEG C. STRENG

19.

下列定义数组的语句中,正确的是(A)。

D. STRENO

6 / 56

含答案程序设计基础及语言复习提纲

A. #define N 10

int x[N];

C. int x[0..10]; D. int x[];

20.

设有定义

double a[10] ,*s=a;

B. int N=10;

int x[N];

以下能够代表数组元素

a[3]

的是

(E)

A. (*s)[3]

21.

有以下程序

#include

#include

main()

{ char str[12] = { , T , F , 'n' , 'g'};

B. *(s+3) C. *s[3] D. *s+3

printf(

,,

%dn

u

, strlenf str ));

}

程序运行后的输出结果是(D)。

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

22.

设有函数定义:

void subfint k,char ch){…}

则以下对函数

sub

的调用 语句中,正确

的是(A)。

A. sub(l,97); B. sub(2;97

,

); C. n=sub(3,

,

a

,

); D. sub(4,”a”);

23.

若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

(A)

o

7 / 56

含答案程序设计基础及语言复习提纲

A.

函数的形参和实参分别占用不同的存储单元

B.

形参只是形式上的存在,不占用具体存储单元

C.

同名的实参和形参占同一存储单元

D.

函数的实参和其对应的形参共占同一存储单元

24.

以下叙述中错误的是(D)。

8 / 56

含答案程序设计基础及语言复习提纲

A. C

程序必须由一个或一个以上的函数组成

B.

函数调用可以作为一个独立的语句存在

C.

若函数有返回值,必须通过

“turn

语句返回

D.

函数形参的值也可以传回给对应的实参

25.

以下关于

C

语言函数参数传递方式的叙述正确的是(A)。

A.

数据只能从实参单向传递给形参

B.

数据可以在实参和形参之间双向传递

C.

数据只能从形参单向传递给实参(实参可以传递形参但形参不可以传递实参)

D. C

语言的函数参数既可以从实参单向传递给形参,也可以在实参和形参之间 双

向传递,可视情况选择使用

26.

以下关于函数的叙述中正确的是(A)。

A.

函数形参的类型及返回值的类型无关

B.

函数必须要有形参

C.

函数必须要有返回值

D.

函数调用必须传递实参

27

..若有说明和语句:

char str[]="Hello", *p; p=str;,

则此时

*(p+5)

中的值

为(A)。

A. *0' B. 'o'

c. o

的地址

D.

不确定的值

28.

以下选项中的编译预处理命令行

A. # define PI 3.14

正确的是

(A)

B. # #define

eps

int

0.001

INT D・ # define

29.

若程序中有宏定义行:

9 / 56

含答案程序设计基础及语言复习提纲

# define N 100

10 /

含答案程序设计基础及语言复习提纲

则以下叙述中正确的是(B)。

A.

B.

C.

D.

宏定义行中定义了标识符

N

的值为整数

100

在编译程序对

C

源程序进行预处理时用

100

替换标识符

N

上述宏定义行实现将

100

赋给标示符

N

在运行时用

100

替换标识符

N

30.

设有定义:

struct complex

{int real, unreal; } datal ={1,8}, data2;

则以下赋值语句中错误的是(A )。

A. data2 = (2,6);

C. data2. real = data 1. real;

B. data2 = datal;

D. data2. real = data 1. unreal;

31.

下面结构体的定义语句中,错误的是(A )。

A.

B.

C.

struct

struct

struct

struct

ord

ord

ord

{int

{int

{int

{int

x; int

x; int

x; int

y; int Z; } struct ord a;

y; int Z; }; struct ord a;

y; int Z; } a;

D. x; 1 int y; i int z; } a;

32.

设有定义:

struct {int n; float x;} s[2],m[2]={{10,2.8},{0,0.0}};

则以下赋值语句中正确的是(A)。

A. s[0]=m[l]; B. s=m; C. s.n=m.n; D. s[2].x=m[2].x;

33.

下列关系表达式中,结果为“假“的是(D)。

11 / 56

A. 3 <= 4

4”

为真为

1)

B. (3 < 4) == 1 C. (3 + 4) > 6 D. (3 != 4) > 2 (“3 !=

34.

若变量已正确定义,以下选项中非法的表达式是(D)。

含答案程序设计基础及语言复习提纲

A. a!=4 | |'b* BA + 32

*a'= 1 / 2*(x=y=20,x*3)

34.

a

是数值类型,则逻辑表达式

(a==l)| |(a!=l

啲值是(A)。

A. 1 B. 0 C. 2 D.

不知道

a

的值,

C. 'a' % 4 D.

不能确定

35.

下关于逻辑运算符两侧运算对象的叙述中正确的是(A)。

A)

可以是任意合法的表达式

B)

只能是整数

0

或非

0

整数

C)

可以是结构体类型的数据

D)

只能是整数

0

1

36.

有以下程序

#include

main()

{ int c,d;

c= 13&5; d=10&&5;

printf("%d,%dn", c, d);

12 / 56

}

程序的运行结果是(A)。

A) 5,1

37.

有以下程序

#include

main()

{ int x=35, B; char z='B';

B) 1,1 C) 18,1 D) 13,1

含答案程序设计基础及语言复习提纲

B = ((x ) && ( z <'b'));

printf(

H

%dn", B );

}

程序运行后的输出结果是(A)。

A) 1 B) 0 C) 35 D) 66

37.

有以下程序

#include

main()

{ int a[ ]={ 10,20,30,40 }, *p=a, i ;

for( i=0; i<=3; i++ ) { a[i] = *p; p++; }

printf("%dn

,

', a[2]);

}

程序运行后的输出结果是(C)

13 / 56

A. 10

38.

有以下程序

#include

main()

{

B. 20 C. 30 D. 40

int a[10] = { 11,12,13,14,15,16,17,18,19,20 },*p=a,i=9 ;

printff "%d,%d,%dn",a[ p-a ], p[i],*( &a[i]));

}

程序运行后的输出结果是(A)。

A. 11,20,20 B. 12,20,20 C. 11,19,19 D. 12,19,20

14 / 56

含答案程序设计基础及语言复习提纲

39.

有以下程序

#include

main()

{

int *p, x=100;

p=&x; x=*p+10;

printf(

,,

%dn

H

, x);

}

程序运行后的输出结果是(A)。

A. 110 B. 120

40.

有如下程序

#include

main()

{

int a = 0, *ptr;

ptr = &a;

*ptr = 3;

a = (*ptr) ++;

printf(”%d,%diT, a, *ptr);

}

C. 100

C. 1,4

15/56

D. 90

D. 0,4

含答案程序设计基础及语言复习提纲

程序运行后的输出结果是(A)。

A. 4,4 B. 0,1

41.

以下叙述中正确的是

C— o

A) break

语句只能用于

switch

语句中

B) continue

语句的作用是:使程序的执行流程跳出包含它的所有循环

C) break

语句只能用在循环体内和

switch

语句体内

D)

在循环体内使用

break

语句和

continue

语句的作用相同

42.

若有说明

int a[][3]={l, 2, 3, 4, 5, 6, 7};

a

数组第一维的大小是

B _ o

A) 2 B) 3 C) 4 D)

无确定值

43.

有如下程序,该程序段的输出结果是

B— o

void main (void)

{ int n=5;

while(n>2)

{

n-;

printf( “%d” ,n);

}

}

16 / 56

A) 543 B)432 C)4321 D)5432

44.

下列四种数组定义,合法的数组定义是

A— o

A) char a[ ]="hello";

C) char a="hello" ;

B) int a[4]={4,3,2,l,0};

D) char a[4]= "hello";

45.

若已定义

x

y

为实型变量,则表达式

x=l,y=x+3/2

的值是(

D

)。

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

46.

下列语句中,正确的是

D— o

17 / 56

含答案程序设计基础及语言复习提纲

含答案程序设计基础及语言复习提纲

A) #define PI=3.14159

C) define M 3

B) include "stdio.h”

D) #define PI 3.14159

47.

判断字符型变量

ch

是否为大写英文字母的表达式为

E — o

A) 'A' <=ch<= 'Z' B) ch>= 'A' && chv=

<

Z

,

C) ch> 'a' && chv= 'z' D) ch>= 'A' | | ch<= "Z'

48.

x

为整型变量,

p

是指向整型的指针变量,则下列赋值表达式正确的是

A

A) p=&x B) p=x C) *p=&x D) *p=*x

49.

设有定义:

int k=3,*p=&k;

则表达式S的值是

_D_

O

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

50.

要将字符串

str2

复制到字符串

strl

中,应使用的函数是A— 。

A) strcpyfstrl, str2);

C) strcat (str 1, str2);

51.

以下叙述错误的是BD —

o

A)

一个

C

源程序可由一个或多个函数组成

B)

一个

C

源程序必须包含一个

main

函数

C) C

程序的基本组成单位是函数

D)

C

程序中,注释说明只能位于一条语句的后面

52.

函数调用语句

func ((expl,exp2),(exp3,exp4,exp5))

冲,实参的个数为

18 / 56

B) strcpy(str2, strl);

D) strcmp(str2, strl);

B_ _

o

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

53.

下面字符数组初始化语句正确且及语句

char c[]=

H

string";

等价的是虫

_ O

A)charc[]={O, T,

丫,

'n;

創;

19 / 56

含答案程序设计基础及语言复习提纲

B) char c[]=rs t, F, T, g,

0'};

C) char c[]={'string'};

D) char c[]

=,

string';

54.

运行下面程序段后,

i

的值是

C—

int i=10;

whilefi—);

printf(

M

%d", i);

A) 0

A) 1

B) 1

B) 2

C)-l

i-1

的值为

C

C) 3

D) 10

o

55

.设

int i=4;

则表达式

(i==2)?i:

D) 4

D) ”

d

的值为

A

56

.下面不正确的字符串常量是

A

A) 'ABC' B) ”5678“

57

o

C)

n

2

n

.若定义

int d, c=l;

则执行下面的语句后,

switch(—c)

{ case 0: d=0; break;

case 1:

case 2: d=l;

case 3:

case 4: d=2; break;

default: d=3; }

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

5&

以下能正确定义变量

a, b

c

并为它们赋值的语句是匸_

A)int a=5; b=5; c=5; B)int a,b,c=5;

C)a=5,b=5,c=5; D)int a=5, b=5, c=5;

59.

当定义一个结构体变量时,系统为它分配的内存空间是

R

A)

结构中一个成员所需的内存容量

20 / 56

B)

结构中第一个成员所需的内存容量

C)

结构体中占内存容量最大者所需的容量

D)

结构中各成员所需内存容量之和

60.

有下列程序段落:

int i,a[5];

21 / 56

含答案程序设计基础及语言复习提纲

含答案程序设计基础及语言复习提纲

for(i=0;i<5;i++)

scanf( "%d”,&a[i]);

若要使数组元素的值分别为

1, 2, 3, 4, 5,

应从键盘输入

A)l,2,3,4,5/ B) 1 2 3 4 5/

C)12345/ D) 1;2;3;4;5/

二、填空题

1

•算法是为解决一个问题而采取的方法和步骤。

2. C

语言的数据类型分为基本数据类型和构造类型两大类。

3.

程序的三种控制结构是:顺序结构、选择结构和循环结构。

4

.在循环语句中,

break

语句的作用是提前结束循环语句的执行°

5.C

语言规定,函

数返回值的类型是由所定义函数的类型决定的。

6.

若用数组名作为函数调用的实参,则传递给形参的是数组的苴地扯。

7.

按照作用范围可以把变量分为局部变量和全厦变量。

8.

C

语言中,实参和及其对应的形参各占独立的存储单元

9.

某函数直接或间接调用自身称为该函数的递归调用。

10.

表达式

(int)((double)9/2)-9%2

的值是—

3 _____________________

。//后有详解

11. C

语言规定,二维数组元素在内存中是按登优先的顺序存储的。

12.

x

int

型变量,请写岀一个关系表达式

x%7==0&&x%3==0,

用以判 断

x

时为

3

7

的倍数时,关系表达式的值为真。

13

.设

y

int

型变量,请写出描述”

y

是奇数”的表达式

y%2!=0

14

.若定义

int b[7],*p=b;

p+3

表示

&b

⑶。

15.

计算机能直接执行的程序是机器语言程序。

22 / 56

16. C

语言主要是借助函数来实现程序模块化

17. C

语言的函数由两部分构成,分别是函数苴部和函数体。

18. C

语言本身不提供输入输出语句,输入和输出操作是由屋函数来完成的。

19.

按照

C

语言规定的用户标识符命名规则,构成

C

标识符的字符只能是字母,

23 / 56

含答案程序设计基础及语言复习提纲

数字,下划线三类字符。

20. C

语言规定,标识符的第一个字符只能字母开头。

21.

按照作用范围,可以把

C

语言的变量分为全同变量和局部变量。

22.

编译时分配存储单元,作用范围结束后还占据原来存储单元的变量,是用关

F

键字

static

定义的。

23. C

语言规定,二维数组元素在内存中是按照』或称为行优先)的 顺序存储的。

24.

若有定义

int a[2][3]={{2},{3}};

则值为

3

的数组元素是

a

l][O]

25.

若有定义语句:

intx = 5;,

则表达式

x+=x-=x*x

的值为虫。//后有详解

26.

将数学表达式写成

C

语言表达式,为卜

b+sqrt(bWa*c))/(2S)

27.

存放其他变量地址的变量称为指锂变重。

28.

若有说明

int a[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[2];,

*(p+4)

的值是 乙。//后有详

29.

如果函数先被调用,后被定义,应该在调用之前进行廈型吏明。

30. C

语言中,按变量地址访问变量的方式称为直接访问。

31. C

语言中,按照指针变量访问其他变量的方式称为间按访问。

32.

函数调用语句

:fun( ( exp 1, exp2 ), ( expl, exp2, exp3));

含有的实参个 数是

2

//后有详解

33.

若定义函数时未指定返回值的数据类型,则

C

语言规定:函数返回值的类型

into

34.

若要求从键盘读入含有空格字符的字符串,应使用函数

gets

()。

35. C

语言允许用户自己建立由不同类型数据组成的组合型的数据结构,称为结 构

体类型,在其他一些高级语言中称为“记录”。

36.

使几个不同的变量共享:同一段内存的结构称为左輕结构。

37.

若有联合数据类型定义如下:

union

{int a;

24 / 56

int b;

}x,y;

25 / 56

含答案程序设计基础及语言复习提纲

执行语句

x.a=5;x.b=x.b+3;y.a=x.a*5;

后,则

y.b

的值为 40。

38.

设文件指针

fp

已定义,执行语句

fp=fopen(”file“,”w”);

后,对文本文件

file

操 作是只写。

39.

C

语言中调用

fopen()

就可把程序中要读、写的文件及磁盘上实际的数据文

件联系起来。

40.

当程序中对

fp

指针指向的文件的所有写操作完成之后,必须调用

fcolse ()

函数

关闭文件。

41. _____________________________________________________

若程序中使用了

函数

sqrt(),

则必须包含的头文件名为 ___________________________ math.h _______

42. C

语言源程序中主函数名由系统规定为

main,

程序员是不能改变的。

43.

若定义

int b[5],*p=b;

p++

表示&b[0]。

44.

按照作用范围可以把变量分为全局变量和融变量。

45.

按照存储类别可以把变量分为自动存储类别的变量和 静态,外部,寄存器 四

种存储类别。

46

.程序的三种控制结构是:顺序结构、选择结构和循环结构。

47.

若用数组名作为函数调用的实参,则传递给形参的是数组的苴地址

48. —

个函数直接或间接调用自身称为 递归调用。

49.

C

语言中,用零来表示逻辑“假”,用韭箜来表示逻辑“真”

o 50

.循环的嵌

套是指二鰹墮旬中乂包含另二个完整循坯

51. C

语言规定,程序中用到的变量必须“先说明,后使用”。

52. C

语言规定,函数返回值的类型是由定义函数声明类型决定的。

53

.若定义

int b[7],*p=b;

P+3

表示数组

b

中第四个函数的地址。

5 4.

指针变量是存放其他变

it

地址的变量

o

55.

调用函数时,在函数名后面列出的参数称为实參。

56.

定义函数时,在函数名后面的圆括号中出现的参数称为形参。

26 / 56

57. C

源程序中,凡是行首以#标识的控制行都是编译预处理指令 。

三、读程序写结果//后有详解

1.

以下程序运行后,如果输入的是

1 2 3 4 5 Ov

回车〉,输出结果为:24689

含答案程序设计基础及语言复习提纲

#inelude

main()

{ int s;

scanf( "%d” ,&s);

while(s>0)

{switch(s)

{default :printf(“%d” ,s+4);break;

case l:printf( "%d” ,s+l);break;

case 2:printf(

u

%d

,,

,s+2);break;

case 3:printf(“%d” ,s+3);

}

scanf(“%d”,&s);

}

}

2.

写出下列程序结果:n=9

#include

void main()

27 / 56

{

char s[]=”23d6xy7s809flw4“;

int i,n=O;

for(i=0;s[i]!

=,

O' ;i++)

if(s[i]>=

,

0

,

&&s[i]v=9) n++;

printf(

n

n=%dn",n);

28 / 56

含答案程序设计基础及语言复习提纲

3.

有以下程序程序的执行结果是:CdEfGh

#include

void main()

{ char b,c; int i;

b='C';c='c';

for(i=0;i<6;i++)

putchar(i+b);

else

putchar(i+c);} printf(

n

n

K

);

}

4.

以下程序执行后输出结果是:k=ll,s=16

#include

void main()

{int k, s;

for(k=2, s=l; k<20; k+=3)

if (s>k) break ;

else s+=k; printf("k=%d,s=%dn", k, s);

}

5.

运行下面的程序段,输出结果是d56def。

int i=0;

char sl[10]=

n

456

M

, s2[10]=

n

def

M

;

29 / 56

strcat(sl,s2);

含答案程序设计基础及语言复习提纲

while (sl[i++]!='0‘)

s2[i]=sl[i];

puts(s2);

6.

运行下面的程序段,输出结果是2, 3, 1。

#in elude

main()

{int x, y, z;

x=y=l;

z=x++, y++, ++y;

printf("%d, %d, %dn", x, y, z);

}

7.

运行下面的程序段,输出结果是1,0,0,1。

#include

main()

{ int a=O,b=O,c=O,d=O;

(a++ && b++) ? c++ : d++;

printf("%d,%d,%d,%dn", a,b,c,d);

}

8.

运行下面的程序段,输出结果是0,-1。

30 / 56

#include

main()

{ int a=-l, b=-l;

while(++a)

++b;

含答案程序设计基础及语言复习提纲

printf(

,

'%d,%dn'

r

, a,b);

}

9.

运行下面的程序段,输出结果是乜。

#include

main()

{ int y=10;

while(y-);

prmtfC

y=%dn*

,

,y);

}

程序执行后的输出结果是(A)

A. y=-l B. y=O C. y=l D. while

构成无限循环

10.

运行下面的程序段,输出结果是7月。

# includ e

# define

# define

PT 3.5

S

PT*x*x

31 / 56

int main()

{int a=l,b=2;

含答案程序设计基础及语言复习提纲

printf(

H

%4.1fn

,,

,S(a+b));

return 0;

11

•运行下面的程序段,输出结果是6,6,1。

#include

main()

{ int a=6, b=0, c=0;

for ( ;a&&(b==O);)

{ b += a; a -= c++;

printf("%d,%d,%diT, a,b,c);

}

}

则程序的输出结果是

A) 5,6,0 B) 6,0,0 C) 6,6,1

D) 5,6,1

12.

运行下面的程序段,输出结果是1,3,3。

#include

main()

{ int a=l,b=2,c=3,d=0;

if (a==l && b++==2)

(b!=2| |c-!=3) printf("%d,%d,%dn",a,b,c);

else printf("%d,%d,%dn",a,b,c); else printf("%d,%d,%dn",a,b,c);

}

32 / 56

含答案程序设计基础及语言复习提纲

13.

运行下面的程序段,输出结果是2,2,2,4。

#include

main()

{ int a=l,b=2,c=3,d=4;

if ((a=2) | | (b=l)) c=2;

if ((c==3) && (d=-l)) a=5; printf("%d,%d,%d,%dn

H

, a,b,c,d);

}

14.

运行下面的程序段,输出结果是

#include

main()

{ int a=l,b=2,c=3,d=4;

if ((a=2) && (b=l)) c=2;

if ((c==3) | | (d=-l)) a=5;

printf("%d,%d,%d,%dn", a,b,c,d); }

15.

以下程序运行后的输出结果是:817。

func(a,b)

int a,b;

{static int m=O,i =2;

i+=m+l; m=i+a+b; return(m);

}

main()

{int k=4,m=l,p;

33 / 56

含答案程序设计基础及语言复习提纲

p=func(k,m); printf( "%d” ,p);

34 / 56

含答案程序设计基础及语言复习提纲

p=func(k,m); prin

廿

(

“%dn” ,p);

}

16.

设从键盘上输入

Hello World!

下面程序

的运行结果为hello world!。

#include

void mainfvoid )

{ char ss[20];

int i;

gets(ss);

for(i=0;ss[i]!='0';i++)

if(ss[i]>='A' && ss[i]<='Z')

ss[i] = ss[i]+32 ;

puts(ss);

}

17.

下面程序的运行结果为6, 45

2, 98

#include

void main(void)

{ int a[10]={78,89,98,66,54,76,45,82,62,95 };

int ka, ki, j;

ka = ki = 0;

35 / 56

for(j=l; jvlO; j++)

36 / 56

含答案程序设计基础及语言复习提纲

if ( a[ki]>a[j] ) ki=j ;

if (a[ka]

}

printf(“%d, %dn %d, %dn” , ki, a[ki], ka, a[ka]);

}

18.

下列程序段的输出是

(峠峠)。

main(){

int k;

for(k= 1; k<5; k++) {

if(k % 2) printf

「*”)

else continue;

printf(

,,

#

n

);

}

}

四、程序填空

1

•猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又 多吃

了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天 早上都吃

了前一天剩下的一半零一个。到第

10

天早上想再吃时,就只剩一个 桃子了。求第

一天共摘了多少个桃子

#include

void main()

37 / 56

含答案程序设计基础及语言复习提纲

{int day,peach;

(1) peach=l ; //存放桃子数的变量赋初值

(2) day=9; //存放天数的变量赋初值

while(day>0)

(3) {peach=2穴(peach+1) ; //计算桃子数

(4) day—; //天数变化

}

printf( “total peaches=%dn

,,

,peach);

}

2.

1!+2!+3 !+4

汁・・・+

20!

#include

void main()

(5)

{float s^O,t=l;//

定义存放和的变量并赋初值

int n;

for(n= 1 ;n<21 ;n++)

{

t=t*n;

(6) s=s+t; //求除乘之和

}

printf(

a

l

2!+3

4!+…+20!=%en” ,s);

3.

输出圆面积,面积大于

100

时停止。

#i nclud e< s tdio. h >

#define PI 3.14159

voidmainf)

38 / 56

含答案程序设计基础及语言复习提纲

{float area;

(7) int r; //定义整型变量

r

for(r=l;r<=10;r++)

{area=PI*r*r;

(8) if(area>100)break;; }//如果面积超过

100

则提前结束循环

printf("r=%d,area=%.2fn",r,area);

}

4.

斐波那契数列的第

1

项和第

2

项都是

lo

下面的程序用来计算并输出斐波那 契数

1, 1, 2, 3, 5, 8, 13, 21,

...第

9

项的值,请选择正确答案填入程

序空白处。

斐波那契数列的构成规律:/(/)=

#include

⑼ long

fib(int g) //函数的整型形参声明

{switch(g)

{case 0: return 0;

case 1:

(10)

}

(11)

}

return

(fib(g-l) +fib(g・2))

case 2: return

丄; //数列的

1

2

项*/

//数列的其余各项

39 / 56

main()

{long int k;

(12) k=fib(9);

含答案程序设计基础及语言复习提纲

//数列的第

9

printf("k=%dn", k);

5.

下面的程序的功能是输出

300

500

之间所有素数。本程序中利用自定义函 数

prime()

判断一个整数是否为素数(如果整数

x

不能被

2

x-l

之间的任意一个 数所整

除,则

x

是素数)。要求每行输出

11

个素数。

#include

#include

(13)

int prime(int m); //函数的原型声明

void main()

{int k, s=0;

(14)

for(k=300;kv=500;k++) //判断

300

500

之间的每一个素数

if (prime(k))

{

printf("%5d",k);

s++;

(15) if(s%ll==O)

//每行输出

11

个素数

printfCAn

1

');

}

printf("ns=%dn

M

,s);

}

int primefint m)

{int i;

for(i=2;m%i!=0;i++);

40 / 56

含答案程序设计基础及语言复习提纲

(16) return(m==i);} //

返回函数的值

6.

斐波那契数列的第

1

项和第

2

项都是

lo

下面的程序用来计算并输出斐波那 契数

1, 1, 2, 3, 5, 8, 13, 21,

...等

20

项的值,请将正确答案填入程 序空白处。

#include

void main()

{int i;

int fib[20]={l,l};

初始化前两项

41 / 56

//

含答案程序设计基础及语言复习提纲

for(i=2;i<20;i++)

+ fib[i・2];

for(i=0;i<20;i++)

{

if

((i+l)%5==0&&i!=0)

// 第

i

项的值

//每行五个元素,然后换行

printfr( 'n');

print#" %12d" , fib[i])

} /*for

循环结束*/

} /*程序结束*/

7.

下面的程序的功能是求出任意两个数的和,并输出。本程序中利用自定义函 数

add()

进行两个数和的求解。

# include

float add(floatx, floaty); /*对被调用函数

add

的声明*/

void main ()

{

float a, b, c;

scant( “%f ,&a, &b); //输入两个数,并保存在变量

a

和b中

//调用

add

函数,并将结果保存在

c

中 c=float add(a,b);

printf ( ” sum is %f n " , c);

}

float add (float x, float y)

{ float z;

z=x+y;

42 / 56

/*函数首部*/

/* 函数体*/

含答案程序设计基础及语言复习提纲 return z; //函数值的返

五、判断题

1. C

语言中主函数的名字不一定用

main

表示。><

2. C

语言是一种典型的解释型高级程序设计语言。

V

3. enum a {one=9,two=-1,three};

是正确的枚举类型定义。

X

4.

int x,y;,

则执行以下语句

:x+=y; y=x-y; x-=y;

的功能是交换变量

x

y

的值。y

5.

若有声明

int (*funcl)(int,int);

fund

是指向返回值为整型且有两个整型

形参的函数的指针。

V

6. C

语言可以使用字符数组或字符指针处理字符串。

V

7.

在一个

C

源程序文件中,若要定义一个允许其他源文件中所有函数使用的全 局

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

statico X

8.

静态局部变量离开所在函数,其占用的存储空间将释放。

Xo

所在函数的模

块没有被释放掉的情况下,这个静态变量为上次调用的值。

9.

如果函数的形参及实参的类型不一致,以实参类型为准。

X,

同于形参=实

参,按左边的为准

10.

完成编译预处理的工作是在编译前完成的。

V

11. C

程序中用到的所有数值型数据都是精确表示的。

X

12. C

程序中的静态存储类别变量和外部变量的初始化是在编译阶段完成的。

V

13. C

语言中所有的逻辑运算符优先级都是相同的。

X,

逻辑运算符分三种优

43 / 56

先级

44 / 56

含答案程序设计基础及语言复习提纲

14.

若有定义

int a[7]={2, 3, 5, 7};

则数组元素

a[5]

的值为

0

V

15.

C

语言中,将按变量地址存取变量值的方式称为“直接访问”方式。

V

16.

按函数在程序中出现的位置来分,可以有三种函数调用方式,分别是函数 语

句、函数表达式和函数参数。

V

17.

如果在同一个源文件中,外部变量及局部变量同名,则在局部变量的作用 范围

内,外部变量被“屏蔽”,即它不起作用。

V

18.

若字符数组

a[20]

中存放着一个字符串,且

a[10] =

,

0

,

,

函数

strlen(a)

的值为

10

。><

Strlen()并不包含0,并且遇到0就返回长度值,所以应该返回9

19

.若有变量定义

char x; short int y;

,则表达式

x+y

的值为

double

o

>

20

.设

a

b

h

分别是梯形的上、下底和高,有定义

double a, b, h;

利用

公式

(l/2)*(a+b)*h

不能正确计算出此梯形的面积。

X

21. C

语言中,%运算符要求参加运算的运算对象必须为整数。

V

22. C

语言优先级最低的运算符是逗号运算符。

V

23.

若定义

int n=10;

则用

int a[n];

定义一维数组是合法的。〈//数组下表

只能是表达式和常量

24. C

语言中,函数既可以嵌套定义,又可以嵌套调用。

X,

不可以嵌套调用

25.

用数组元素作函数实参时,是将实参的值传递给形参,采用“值传递”方

式。

V

45 / 56

含答案程序设计基础及语言复习提纲

26.

在局部变量的作用范围内,如果全局变量及局部变量同名,则全局变量有

效,局部变量被屏蔽。X,全局变量无效

27. C

语言中的寄存器变量,用关键字

register

声明。

V

46 / 56

含答案程序设计基础及语言复习提纲

2&

全局变量的作用域是从变量的定义处开始,到本程序文件的末尾。

V

29.

static

声明的外部变量存放在静态存储区,不加

static

声明的外部变量

存放在动态存储区。

X

无论是加static的外部变量还是不加static的外部变量

都是存放在静态存储区

30.

数组名不代表整个数组,只代表数组首元素的地址。y

六、编写程序

1.

计算数列的前

20

项和,并输出运算结果。

2.

采用

do……while

语句实现计算并输出

s=l+2+3+……+100

3.

100 200

间的全部素数。要求编写一个判断一个整数是否为素数的

函 数,并在

main

函数中调用该函数,每个数占

5

列宽度,每行输出

7

个素数。

4.

已知百分制成绩(由键盘输入),要求计算并输出五分制成绩等级

'A'

<

B

,

'C'

'D'

'E' o 90

分以上为

'A' , 80

79

分为

'C'

'60

89

分为

<

B

,

,

70 69

分为

D'

60

分以下为

'E'

(请用

if

语句

实现)

o

5.

已知百分制成绩(由键盘输入),要求计算并输出五分制成绩等级

'A'

<

B

,

<

C

,

'D'

'E' o 90

分以上为

'A' , 80

79

分为

'C'

'60

89

分为

'E',

70 69

分为

D'

60

分以下为

'E'

(请用

switch

语句实现)。

6.

请编写程序,其功能是:计算并输出

s = i +

丄+ ? + ^ + ? +…的前

20

项之和

2 3 5 8

7.

编写程序,其的功能是:计算并输出下列级数的和。其中,变量

n

的值由键盘 输

47 / 56

入。

---- +

1*2

1 1 F F 2*3 3*4

含答案程序设

n(n

+1)

计基础及语言复习提纲

例如,当

n=10

时,函数值为

0.909091o

&请编写函数

fun,

其功能是:计算并输出下列多项式值:

9.

编程序应用选择法实现对

17

个整数按照从大至小的顺序排序。

10.

编程序,应用冒泡法对通过键盘输入

17

个整数按照从大到小的顺序排序, 并输

出排序前后的数据。

11.

编程实现计算分段函数的值。

%<-5

x~ + 5x

— 2

I X

3

+3

X

2

-5

* —10/+7

兀+

3

填空题详解:

10

题:表达式

(int)((double)9/2)-9%2

的值是_

3—

1. (double)9

强制转化为双精度

2. (double)9 / 2

为小数除以整数,结果为小数,为

4.5

3. (int) ( (double)9/2 )

(int) (4.5),®

制转化为整型,结果为

4

48 / 56

4. (9)%2

取余数,结果为

1

5.4-1

结果为

3

25

题:

25

.若有定义语句:

intx=5;,

则表达式

x+=x-=x*x

的值为 ・40 。

先计算

x*x = 5*5 =25,

存入临时变量

49 / 56

含答案程序设计基础及语言复习提纲

X

还是

5

再执行亠操作,

x-= 25,

执行

x= 5-25 =-20

再执行+=操作,

x+=-20,

执行

x=-20-20 = -40

结果

x

变为

-40

32

.函数调用语句

:fun( ( exp 1, exp2 ), ( expl, exp2, exp3));

含有的实参个 数是

2

:分别是

exp2

exp3.

逗号表达式,它将以逗号为界,从左到右计算每个表达式的值,最后返回最右

边的表达式的值

3.1

#include

main()

{ int s;

scanf(“%d”,&s);①

while(s>0)

{switch (s)

{default :printf( "%d" ,s+4);break;⑨®

case l:printf( "%d” ,s+l);break;(3)

case 2:printf( "%d” ,s+2);break;@

case 3:printf(“%d” ,s+3);⑦

}

scanf(“%d” ,&s);(2)@©(§)(§)

}

50 / 56

含答案程序设计基础及语言复习提纲

(D

输入

1 2 3 4 5 0

②读入

s=l, s>0(3)

输出

s+1;

2

读入

s=2; s>0@

输出

s+2;

4

◎读入

s=3; s>0

⑦输出

s+3;

6

◎读入

s=4; s>0

(§)输出

s+4;

8

⑨读入

s=5; s>0

砂输出

s+4;

9

3.2

#include

void main()

{

char s[]=

,,

23d6xy7s809flw4

,t

;

int i,n=0;

for(i=0;s[i]!=

,

0

J

;i++)

if(s[i]>=

,

0

,

&&s[i]v=9)

n++;

//用以计算字符串中数字的个数,

//字符串中一共有

9

个数字,即

n=9;

printf(

u

n=%dn",n);

}

3.3

51 / 56

#include

void main()

{ char b,c; int i;

b=C;c='c:

for(i=0;i<6;i++)

含答案程序设计基础及语言复习提纲

{if(!(i%2))

putchar(i+b);

else

putchar(i+c);

}

printf(

n

n");

}

3.4

#include

void main()

{int k, s;

//当

i

等于偶数时执行输出

i+b

//反之,输出

i+c;

for(k=2, s=l; k<20; k+=3)@(§)⑦

if (s>k) break ;(§)

else s+=k; (2)0)(§)

printf("k=%d,s=%dn", k, s);

52 / 56

含答案程序设计基础及语言复习提纲

}

@)k=2,s=l(?)s+=2,

s=3

0k=2v2O;k+=3,

k=5(J)s+=5,

s=8

(§)k=5v20;k+=3,

k=8(§)s+=8,

s=16

53 / 56

含答案程序设计基础及语言复习提纲

k=8<20;k+=3,

k=13 @s>k break

结束循环 输出结果结果

k=ll, s=16

3.5

int i=0;

char sl[10]=

H

456", s2[10]=

,,

def

M

;

strcat(sl,s2); ①

while (sl[i++]!

=,

0')(2)④

s2[i]=s 1 [i]; O G

puts(s2);

Q)

s2

加到

si

末尾,即

si: “456def” gsl[0]=4,sl[0]!='0‘

成立,

i=l

(3)s2[l]=sl[l],s2[l]=5,

s2: 0)sl[l]=5,sl[l]!='0'

成立,

i=2

@s2[2]=sl[2],s2[2]=6

s2: ©sl[2]=6,sl[2]!-(T

成立,

i=3

0s2[3]=sl[3],s2[3]=d

s2: @sl[3]=d,sl⑶!='0‘

成立,

i=4

®s2[4]=sl[4],s2[4]=e

s2: ®sl[4]=e,sl⑷!='0'

成立,

i=5

Qs2[5]=sl[5],s2[5]=f

s2: Q s^5]=f,sl⑸! JO,

成立,

i=6

©s2[6]=sl[6],s2[6]=,( “d56def0”

0s 1 [6]=' 0' ,sl⑹!-(T

不成立;

输出字符串

s2: “d56def0”

含答案程序设计基础及语言复习提纲

#in elude

main()

3.6

54 / 56

“d56de”

“d56def”

“d5f”

“d56”

“d56d”

{int x, y, z;

x=y=l;

z = x++, y++, ++y;

z=x++= 1 ,x=2 ,y=3

printf("%d, %d, %dn", x, y, z);

}

3.7

#include

main()

{ int a=O,b=O,c=O,d=O;

(a++ && b++) ? C++ : d++; /*a++

表达式值为

0

造成&&短路,

b++

不执

//逗号运算符运行级别最低,按从左到右执行。

行,

a=l

(a++ &&b++)

表达式为假,执行

d++,d=l */

printf("%d,%d,%d,%dn", a,b,c,d);

}

3.8

#include

main()

{ int a=-l, b=-l;

55 / 56

while(++a) //++a

表达式值为

0,

不进行循环,

a=0

56 / 56

含答案程序设计基础及语言复习提纲

++b;

printf("%d,%dn", a,b);

}

3.9

#include

main()

{ int y=10;

whilefy—)

//此处循环为空循环,当

y—

表达式为

o

时,跳出循环

;y=-1.

prmtfC

y=%dn

,,

,y);

}

3.10

# includ e

# define PT 3.5

# define S(x) PT*x*x

int main()

{int a=l,b=2;

printf("%4. lfn",S(a+b)); //

a+b

替代

x

再计算

3.5*a+b*a+b = 7.5

3.11

57 / 56

return 0;

3.11

含答案程序设计基础及语言复习提纲

58 / 56

含答案程序设计基础及语言复习提纲

#inelude

main()

{ int a=6, b=0, c=0;

for ( ;a&&(b==0); )®(3)

{

b += a;(2)

a -= c++;(3)

}

printf("%d,%d,%dn", a,b,c);

}

6&&(0==0)

为真谜入循环.

(2)b=0+6=6 (3)a=6-c++=6-0=6, c=l

◎6&&(6==0)

为假,跳出循环,输出结果。

3.11

#include

main()

{ int a= 1 ,b=2,c=3,d=0;

if (a== 1 && b++==2)//(J) (1==1&&2==2)

成立,

b=3,

执行语句(?) 辻

(b!=2|

|

C

-!=3)(2)3!=2

表达式为真,造成丨|短路,执行语句

printf("%d,%d,%dn",a,b,c);

else

a=5;(2)

59 / 56

含答案程序设计基础及语言复习提纲

printf("%d,%d,%dn",a,b,c);(3)

else

printf("%d,%d,%dn",a,b,c);

}

3.12

#include

main()

{ int a=l,b=2,c=3,d=4;

if ((a=2) | | (b=l)) //a=2

表达式为真,造成| |短路,即不对

b

赋值

1

c=2;

if ((c==3) && (d=-l) //2==3

假.造成&&短路,即不对

d

赋值

-1.

a=5;

printf("%d,%d,%d,%dn", a,b,c,d);

}

3.13

#include

main()

{ int a=l,b=2,c=3,d=4;

if ((a=2) && (b=l)) //a=2

真,

b=l

真,执行语句

(D

60 / 56

c=2;①

if ((c==3) | | (d=-l)) //2==3

d=-l

真,

执行语句辺

含答案程序设计基础及语言复习提纲

printf("%d,%d,%d,%dn", a,b,c,d);

}

3.14

func(a,b)

int a,b;

{static int m=O,i =2;

i+=m+l; (2)(§)

m=i+a+b; (3)

return (m);

}

main()

{int k=4,m=l,p; (T)

p=func(k,m); 0)

printff

u

%d

n

,p);

p=func(k,m); ◎

prin

廿(“

%dn

,,

,p);

}

a=5;(2)

61 / 56

®k=4,m=l(2)i=i+m+1=2+0+1=3 (3)m=3+4+l=8 0)p=8,

输出

@i=i+m+1=3+8+1 = 12 ,m=12+4+l = 17©p=l

乙输出.

3.16

#include

void mainfvoid )

{ char ss[20];

62 / 56

含答案程序设计基础及语言复习提纲

int i;

gets(ss);

for(i=0;ss[i]!='0';i++)

(ss[i]>=A && ss[i]<='Z')

ss[i] = ss[i]+32 ;

puts(ss);

}

3.17

#include

void main(void)

//将大写字母替换为对应的小写字母

{ int a[10]={78,89,98,66,54,76,45,82,62,95 };

int ka, ki, j;

ka = ki = 0;

for(j=l; j<10; j++)

{

if ( a[ki]>a[j] ) ki=j ;//a[ki]

存储的是最小值

if (a[ka]

存储的是最大值

}

63 / 56

含答案程序设计基础及语言复习提纲

printf( "%d, %dn %d, %dn

,,

, ki, a[ki], ka, a[ka] );//2,98,6,45

6.1 # include

int main(void)

{

int i;

float temp, a, b, s;

a = 2;

b = 1;

s = 0;

for(i=0; i<20; i++)

{

s += a / b;

temp = a;

a += b;

b = temp;

}

printf("

结果为

%.4fn", s);

return 0;

64 / 56

含答案程序设计基础及语言复习提纲

}

6.2

2.

采用

do……while

语句实现计算并输出

s=l+2+3+……+100

*/

# include

int main(void)

{

int i,s;

i=100;

s=0;

do{

s+=i;

}while(i—);

printf(

n

结果为

%dn

H

, s);

return 0;

}

6.3

/*

3.

100?200

间的全部素数。要求编写一个判断一个整数是否为素数的函

数,并

65 / 56

含答案程序设计基础及语言复习提纲

main

函数中调用该函数,每个数占

5

列宽度,每行输出

7

个素数。

# include

66 / 56

含答案程序设计基础及语言复习提纲

含答案程序设计基础及语言复习提纲

# include

int prime(int);

int main(void)

{

int i, s=O;

for( i = 100; i <= 200; i++)

iff prime(i))

{

printf(”%5d“,i);

s++;

if(s % 7 == 0)

printfCAn");

}

return 0;

int prime(int n)

{

int i;

for( i=2; n % i != 0; i++)

67 / 56

; //空循环

return ( n == i);

68 / 56

含答案程序设计基础及语言复习提纲

}

6.4

/*

4.

已知百分制成绩(由键盘输入),要求计算并输出五分制成绩等级

'A'

<

B

,

C

'D,

<

E

,

o

90

分以上为

'A' , 80-89

分为

'B' , 70-79

分为

'C'

'60~69

分为

D'

60

分以下为

'E'

(请用

if

语句实现)。

*/

# include

int main(void)

{

float score;

printf

(”请输入分数:”);

scanf("%f", &score);

if( score >=90 )

69 / 56

printf("An

H

);

else if (score >= 80)

printf("Bn");

70 / 56

含答案程序设计基础及语言复习提纲

含答案程序设计基础及语言复习提纲

else if (score >= 70)

printf(

H

Cn");

else if (score >= 60)

printffDXn*');

else

printf(

n

En

M

);

return 0;

6.5

/*

5.

已知百分制成绩(由键盘输入),要求计算并输出五分制成绩等级

'A'

<

B

,

'C'

'D'

<

E

,

o

90

分以上为

'A' , 80?89

分为

'B' , 70?79

分为

'C'

‘60?69

分为

D'

60

分以下为

'E'

(请用

switch

语句实现)。

*/

# include

int main(void)

71 / 56

float score;

printf

(“请输入分数:”);

72 / 56

含答案程序设计基础及语言复习提纲

scanf(

M

%f &score); switch( (int) score / 10 )

case 10:

case 9:

printf(”An”);break;

case 8: printf(

n

Bn

n

);break;

case 7:

printf("Cn") ;break;

case 6: printf("Dn

H

);break;

default: printf(

u

En");break;

}

return 0;

6.6 # include

int i;

float temp, a, b, s;

a = 2;

b = 1;

int main(void)

73 / 56

含答案程序设计基础及语言复习提纲

s = 1;

for(i=0; i<20; i++)

{

s += b / a;

temp = a;

a += b;

b = temp;

printfC'M

果为

%.4fn”,

}

6.7

# include

int main(void)

s); return 0;

74 / 56

含答案程序设计基础及语言复习提纲

int i,n;

float s;

printf

(”请输入变量

n: ”);

scanf("%d", &n);

s = 0;

for( i=l; i <= n; i++)

{

s += 1 / ( (i + 1) * (float)i);

}

printf

「结果为

%fn", s);

return 0;

}

6.8

# include

double fun(int);

int n;

//强制转换

75 / 56

int main(void)

double sum;

含答案程序设计基础及语言复习提纲

printf("

请输入变量

n:");

scanf("%d", &n);

sum = fun(n);

printfC'

结果为:

%f", sum );

}

double funfint n)

double s;

int i;

s=0.0;

for(i=l; i<=n; i++)

s +=1.0 /(2*M) - 1.0 /(2*i);

return s;

}

{int a[N],i,j,t,k;

76 / 56

6.9

#include

#define N 17

int main()

{int a[N],i,j,t,k;

含答案程序设计基础及语言复习提纲

77 / 56

含答案程序设计基础及语言复习提纲

printff

请输入原始数

B:n-);

for(i=0;i

{printf ("a[%d]=" ,i) ;scanf ("%d" ,&a[i]);}

prinlff*

排序前的数据如下所示:

n“);

for(i=0;i

printf(

,

'%4d

,,

,a[i]);

for(i=0;i

{k=i;

for(j=i+l;j

if(a[k]

if(k!=i)

{t=a[k];

a[k]=a[i];

a[i]=t;

}

}

printff"n

排序后的数据如下所示:

iT);

for(i=0;i

printf(

,,

%4d

n

,a[i]);

return 0;

/*

10.

编程序,应用冒泡法对通过键盘输入

17

个整数

78 / 56

含答案程序设计基础及语言复习提纲

按照从大到小的顺序排序,并输出排序前后的数据

*/

# include

# define N 17

void maxtominfint [], int n);

int main(void)

{

int a[N];

int i,j,temp;

printfC

输入

%d

个整数,空格隔开

:nN);

for( i=0; i

scanf("%d", &a[i]);

for( i=0; i

for( j=0; j

if( a[j] < a[j+l])

temp=a[j];

79 / 56

a[j]=a[j+l];

a[j+l]=temp;

含答案程序设计基础及语言复习提纲

printfC

结果为

:n

,(

);

for(i=0; ivN;i++)

printf("%d ”,a[i]);

return 0;

}

6.11

# include

int fun(int);

int main(void)

{

int x;

printf("

输入

x

的值:

");

scanf("%d", &x);

printfC'

结果为:

%dn”,

fun(x));

80 / 56

}

int fun (int x)

{

int sum;

if(x<= -5)

含答案程序设计基础及语言复习提纲

sum = x + 7;

else if(x<=2)

sum = x*x+5*x-2;

else if(x<=10)

sum = x*x*x + 3*x*x-5;

else

sum = x*x*x*x - 10*x*x*x + 7*x + 3;

return sum;

81 / 56


本文标签: 变量 语言 函数 输出 程序