文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计教程第四章练习试题解析[1]

C语言程序设计教程第四章练习试题解析[1]

单选题

1、关于C语言中的函数,下列描述正确的是()

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的嵌套均不可以嵌套

D.函数的定义和函数的调用均不可以嵌套

答案:B

解析:函数的定义不可以嵌套,但函数的调用可以嵌套

2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个

A.3

B.4

C.5

D.6

答案:A

解析:(v1, v2), (v3,v4,v5)和v6一共三个实参

3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()

A.printf()函数可以向任何地方输出数据

B.printf()只向控制台输出数据

C.scanf()只能输入英文字母和数字

D.scanf()函数可以识别输入的空格

答案:B

解析:printf()是向控制台输出的函数

4、在C语言中,内部函数需要添加的关键字是()

A.extern

B.static

C.this

D.auto

答案:B

解析:在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。

5、当调用时,会调用内部函数

A.当调用时,会调用内部函数

B.当调用时,会调用外部函数

C.当调用时,会调用两次,先调用内部函数再调用外部函数

D.都不调用,会报错

答案:A

解析:当内部函数与外部函数重名时,会优先调用内部函数

6、在C语言中,声明外部函数需要添加的关键字是()

A.extern

B.static

C.this

答案:A

解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字

7、关于C语言中的局部变量,下列描述中错误的是()

A.局部变量就是在函数内部声明的变量

B.局部变量只在函数内部有效

C.局部变量只有当它所在的函数被调用时才会被使用

D.局部变量一旦被调用,其生存周期持续到程序结束

答案:D

解析:当函数调用结束时局部变量就会失去作用

8、关于C语言中的全局变量,下列描述中正确的是()

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态类别变量的生存周期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

答案:B

解析:选项1不对:如果程序中只有一个主函数,则在整个程序运行中,局部变量都在起作用;

选项3不对:除了C++的引用类型参数,所有函数的形参都是局部变量;

选项4不对:static变量定义时就存储地全局区,初始化为0;

9、当全局变量与局部变量重名时,那么在调用时()

A.局部变量会被屏蔽

B.全局变量会被屏蔽

C.都不会调用,系统会报错

D.会调用两次,先调用局部变量,再调用全局变量

答案:B

解析:当局部变量与全局变量重名时,全局变量会被屏蔽。

10、在C语言中,关于变量的作用域,下列描述中错误的是()

A.局部变量只在整个函数的运行周期中有效

B.全局变量的作用域为整个程序的运行周期

C.当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量

D.全局变量会覆盖掉所有与它重名的局部变量

答案:D

解析:当全局变量与局部变量重名时,全局变量会被屏蔽掉

11、在C语言中,如果在一个函数的复合语句中定义了一个变量,则该变量()

A.只在该复合语句中有效,在该复合语句外无效

B.在该函数中任何位置都有效

C.在本程序的原文件范围内均有效

D.此定义方法错误,其变量为非法变量

答案:D

解析:1、2与3错:函数复合语句中定义的变量在该复合语句中引用;但如果函数含有该变量,则在函数中可以引用该变量

4对:在C++中在复合语句中定义变量为合法,但在C语言中是非法的

12、C语言程序的基本单位是()。

B.语句

C.函数

D.字符

答案:C

解析:函数是C语言程序的基本单位

13、C语言中决定函数返回值的类型的是()。

A.return语句中的表达式类型

B.调用函数的主调函数类型

C.调用函数时临时

D.定义函数时所指定的函数类型

答案:D

解析:函数的返回值取决于定义函数时指定的返回值类型

14、若有函数调用语句:fun(a+b, (x,y), fun(n+k,d,(a,b))); 在此函数调用语句中实参的个数是()。

A.3

B.4

C.5

D.6

答案:A

解析:a+b返回一个值,(x,y)返回一个值,fun(n+k,d,(a,b))返回一个值。

15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()。

A.input x,y,z;

B.scanf("%d%d%d",&x,&y,&z);

C.scanf("%d%d%d",x,y,z);

D.read("%d%d%d",&x,&y,&z);

答案:B

解析:读取键盘输入的数据要用scanf()函数,scanf()中的参数要传入变量的地址

16、若变量已正确说明为float类型,要通过语句 scanf("%f %f %f",&a,&b,&c); 给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是()。

A.10 22 33

B.10.0,22.0,33.0

C.10.0 22.0 33.0

D.10; 22; 33

答案:B

解析:用scanf()读取从键盘输入的数据时,中间不能加逗号,要用空格隔开

17、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处\u代表空格):1\u2\uA\uB\uC,那么能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是()。

A.scanf("x=%d y=%d",&x,&y);a=getchar();b=getchar();c=getchar();

B.scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar();

C.scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);

D.scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);

答案:D

解析:空格也会作为一个字符赋给字符变量。

18、对嵌套子程序调用说法正确的是()。

A.外层子程序可以调用所有的内层子程序

B.内层子程序只可以调用包含本身的外层子程序,不可以隔层调用

C.外分程序必须能完全套住内分程序

D.以上说法均不正确

答案:C

19、C语言中函数能否嵌套调用和递归调用?()

A.二者均不可

B.前者可,后者不可

C.前者不可,后者可

D.二者均可

答案:D

解析:两者调用都可以

20、C语言规定,程序中各函数之间()。

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

答案:A

解析:各程序间既可以直接调用也可以间接调用。

21、有如下程序:

long fib(int n)

{

if (n>2)

return fib(n-1)+fib(n-2);

else

return 2;

}

void main()

{

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

}

该程序的输出结果是()。

A.2

B.4

C.6

D.8

答案:B

解析:向fib()函数传入3时,返回fib(1)+fib(2)的值;向fib()函数传入1和2时,都返回2,所以fib(3)返回2+2=4。

22、以下程序的输出结果是()。

long fun(int n)

{

long s;

if (n==1 || n==2)

s=2;

else

s=n-fun(n-1);

return s;

}

void main()

{

printf("%ld\n", fun(3));

}

A.1

B.2

C.3

D.4

答案:A

解析:fun()函数传入3时,返回3-fun(2);fun()函数传入2时,返回2。所以fun(3)返回3-2=1。

23、在C语言中,函数的隐含存储类别是()。

A.auto

B.static

C.extern

D.无存储类别

答案:C

解析:为简化编程,C语言中允许在定义外部函数时省略关键字extern。

24、以下叙述中不正确的是()。

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

答案:D

解析:函数内的复合语句中定义的变量仅仅在该复合语句中有效。

25、以下程序运行后,输出结果是()。

int func(int a, int b)

{

static int m=0,i=2;

i+=m+1;

m=i+a+b;

return m;

}

void main()

{

int k=4,m=1,p;

p=func(k,m);

printf("%d,",p);

p=func(k,m);

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

}

A.8,15

B.8,16

C.8,17

D.8,8

答案:C

解析:函数体内的静态局部变量不随函数的调用结束而销毁,而是一直存在。

26、以下程序的输出结果是()。

int d=1;

int fun(int p)

{

static int d=5;

d+=p;

printf("%d ",d);

return d;

}

void main()

{

int a=3;

printf("%d \n",fun(a+fun(d)));

}

A.6 9 9

B.6 6 9

C.6 15 15

D.6 6 15

答案:C

解析:首先调用fun(d),将全局变量d=1带入,此时fun()函数内的静态局部变量d的值是1,d+=p后d的值是6,输出d的值,返回d的值;

然后调用fun(a+6),将局部变量a=3带入,此时fun()函数内的静态局部变量d的值是6,d+=p后d赋值15,输出d的值,返回d的值。

27、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是()。

A.extern

B.register

C.auto

D.static

答案:D

解析:static修饰全局变量时,表示该变量仅在本文件中可使用。

28、下列程序的输出结果是()。

int b=2;

int func(int *a)

{

b += *a;

return b;

}

void main()

{

int a=2, res=2;

res += func(&a);

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

}

A.4

B.6

C.8

D.10

答案:B

解析:func()函数中,对全局变量b自增a的值,func()函数返回4;res+=4,res赋值为6。

29、请读程序:

void main()

{

int a=1,b=2,c=3;

++a;

c+=++b;

{

int b=4,c;

c=b*3;

a+=c;

printf("first:%d,%d,%d\n",a,b,c);

a+=c;

printf("Second:%d,%d,%d\n",a,b,c);

}

printf("third:%d,%d,%d\n",a,b,c);

}

该程序的输出是()

A.first: 12,4,12 Second: 26,4,12 third: 4,3,6

B.first: 14,4,12 Second: 26,12,12 third: 26,3,4

C.first: 14,4,12 Second: 26,4,12 third: 26,3,6

D.first: 14,4,12 Second: 26,6,12 third: 26,4,6

答案:C

解析:程序运行到第6行时,a=2,b=3,c=6;程序运行到第10行时,a=14,局部变量b=4,c=12;程序运行到第13行时,a=26,局部变量b=4,c=12;程序运行到第15行时,a=26,b=3,c=6。

30、以下程序运行后,输出结果是()。

int d=1;

int fun(int p)

{

int d=5;

d+=p++;

printf("%d",d);

}

int main()

{

int a=3;

fun(a);

d+=a++;

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

}

A.84

B.99

C.95

D.44

答案:A

解析:fun()函数调用时代入局部变量a的值,fun()函数体内局部变量d自增3,输出d 的值,即8,fun()函数返回8,此时全局变量d的值不变。d+=a++后,全局变量d 自增3,此时全局变量d的值是4,输出全局变量d的值。

31、以下程序的输出结果是()。

int a, b;

void fun()

{

a=100; b=200;

}

void main()

{

int a=5, b=7;

fun();

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

}

A.100200

B.57

C.200100

D.75

答案:B

解析:fun()函数改变的是全局变量的值,printf()函数输出的是局部变量的值,fun()函数不会改变局部变量a、b的值。

多选题

1、在调用外部函数时,下列描述中正确的是()(多选)

A.只要有函数名,就能调用外部函数

B.调用外部函数要包含外部函数所在的头文件

C.外部函数与调用者定义在同一个源文件下

D.在声明外部函数时,外部函数与原函数定义的返回值类型、函数名称和参数列表必须

一致

答案:B,D

解析:外部函数调用时要包含其所在的头文件,当调用者声明了外部函数的原型,也可以不用包含头文件

判断题

1、局部变量就是在函数内部声明的变量。

答案:true

解析:局部变量就是在函数内部声明的变量。

2、局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。

答案:true

解析:局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。

3、局部变量就是在函数内部声明的变量,它只在本函数内有效。

答案:true

解析:局部变量就是在函数内部声明的变量,它只在本函数内有效,也就是说,只能在本函数内使用它。

4、局部变量只有当它所在的函数被调用时才会被使用,当函数调用结束时局部变量还会一直存在。

答案:false

解析:局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。

简答题

1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void func(int a, int b)

{

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

}

void main()

{

func(3,2);

printf("\n");

}

答案:5

解析:fun()是一个实现两个数相加的函数,在主函数中调用并传入值,得到两个数的和

2、请阅读下面的程序,在空白处填写正确的代码,将函数的结果返回给调用者。

int func(int a, int b)

{

int sum = 0;

sum = a + b;

}

void main()

{

int sum = 0;

= func(3,2);

printf("两个数相加的结果为%d",sum);

}

答案:return sum;

sum ;

解析:return sum;return 将函数结果返回

sum ;主函数中sum接收函数返回的值

3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

int num = 100;

printf(“%d, %o, %x\n”,num,num,num);

}

答案:100 144 64

解析:printf()函数将十进制数100分别以十进制,八进制,十六进制形式输出。

4、请阅读下面的程序,当用户从键盘输入hello world时,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void main()

{

char str[256];

scanf(“%s”,str);

printf(“%s\n”,str);

}

答案:hello

解析:输入hello world时,中间的空格对scanf()函数来说是终止符,后面的内容无法读取。

5、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。

用户从键盘输入两个整型数据,将两个数据相加输出。

void main()

{

int a,b;

;

printf(“%d\n”, );

}

答案:scanf(“%d%d”,&a,&b);

a + b;

解析:键盘输入数据,用scanf()函数;

输入两个数据的和a + b;

6、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int func2(int a, int b)

{

int c;

c = a * b % 3;

return c;

}

int func1(int a, int b)

{

int c;

a += a;

b += b;

c = func2(a, b);

return c * c;

}

void main()

{

int x = 11, y = 19;

printf("the final result is:%d\n", func1(x, y));

}

答案:4

解析:x = 11,y = 19传入func1()函数,在func1()函数中经过运算变为22,38,然后传入给func2()函数,返回运算结果2,func1()函数收到返回值2以后再经过运算返回给主调用函数结果为4。

7、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void func2(int a, int b)

{

a = a + 10;

b = a + 10;

}

void func(int a, int b)

{

a = func2();

b = func2();

}

void main()

{

int x = 1, y = 10;

func1(x,y);

printf("x = %d, y = %d\n”,x, y);

}

答案:x = 1, y = 10;

解析:将实参传递给形参,只是复制了一份给x,y的值,参数在被调用函数内部改变,不影响其在调用函数中的值。

8、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。

用户从键盘输入四个数,比较得出四个数中的最大值并输出。

int max2(int a, int b)

{

if (a > b){

return a;

}

else

{

return b;

}

}

int max4(int a, int b, int c, int d)

{

int res;

res = max2(a, b);

res = ;

res = max2(res, d);

;

}

void main()

{

int a, b, c, d, max;

printf("请输入四个整数:");

;

max = max4(a, b, c, d);

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

}

答案:max2(res,c);

return res;

scanf(“%d%d%d%d”,&a,&b,&c,&d);

解析:在max4()函数中,res = max2(a,b)返回的是a,b中的最大值,这个最大值再与c 进行比较,所以res = max2(res,c),返回的较大的值再与d作比较,再将比较得出的较大的值返回给主调用函数,这个较大的值就是四个数中的最大值。

9、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int add(int n)

{

if (n == 1)

return 1;

else

return n + add(n - 1);

}

void main()

{

int n = 5;

int sum = add(5);

printf(“结果为:%d\n”,sum);

}

答案:15

解析:add()函数进行递归调用,传入的参数5,会一直递减相加直到递减至1。

10、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

void fun(int n)

{

if (n>0)

{

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

fun(--n);

}

}

void main()

{

int a = 5;

fun(a);

}

答案:5 4 3 2 1

解析:fun()函数递归调用,每打印一次就自减再调用一次自己。

11、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。

用递归方法求出n!。

int fac(int n)

{

int t;

if( )

return 1;

else

{

t = ;

return t;

}

}

{

int m, y;

printf("Enter m : \n");

scanf("%d", &m);

if (m<0)

printf("Input data Error!\n");

else

{

y = fac(m);

printf("\n%d!= %d \n", m, y);

}

}

答案:(n == 1) || (n == 0)

n*fac(n - 1)

解析:实现n的阶乘,当n =0或者n=1时,阶乘没有意义,当n>1时,实现阶乘,则为n*fun(n-1);

12、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int x = 5;

static void cude()

{

x = x*x*x;

}

void main()

{

cude();

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

}

答案:125

解析:全局变量x,当调用cude()内部函数时,并没有传入参数,没有复制,所以x值的变化直接改变了x本身的值

13、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

first.c文件

int func(int a, int b)

{

return a + b;

}

second.c文件

static int func(int a, int b)

{

return a – b;

}

{

int x = 5, y = 2;

printf(“%d\n”,func(5, 2));

}

答案:3

解析:当内部函数与外部函数重名时,会优先调用内部函数

14、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

first.c源文件

int func(int a, int b)

{

return a + b;

}

second.c源文件

extern int func(int a, int b);

void main()

{

int x = 5, y = 2;

printf(“%d\n”,func(5, 2));

}

答案:7

解析:在second.c中声明了int func(int a, int b);函数原型,可以调用first.c中的函数。

15、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。

有一个外部函数,用户输入一个数字,可以实现奇偶数的判断。实现在主函数中调用这个外部函数。

first.c源文件

void func(int num)

{

if(num %2 == 0)

printf(“这是一个偶数!\n”);

}

second.c源文件

;

void main()

{

int num;

scanf(“%d”,&num);

func(num);

}

答案:extern void func(int num);

解析:调用外部函数,可以包含函数所在的头文件,也可以在本文件中声明函数原型。

16、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果

能,请写出运行结果。

void show()

{

int x = 0;

}

void main()

{

printf("x的值为:%d\n", x);

}

答案:不能运行

解析:变量x为函数show()的局部变量,只在show()函数范围内有效,在main()中无法调用。

17、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int show()

{

int x = 0;

return x;

}

void main()

{

int x = 10;

show();

printf("x的值为:%d\n", x);

}

答案:x的值为:10

解析:main()函数中的x是局部变量,不受show()函数调用的影响。

18、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int x = 10;

void main()

{

int x = 100;

printf(“%d”,x);

}

答案:100

解析:当全局变量与局部变量重名时,全局变量会被屏蔽掉。

19、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int x = 2;

void func(int x)

{

x = x * x * x;

void main()

{

func(x);

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

}

答案:2

解析:全局变量作为实参传递给函数,在函数中的运算并不改变其原来的值。

20、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int x=10;

void show()

{

int x=20;

printf("show()函数中x的值为:%d\n",x);

}

void main()

{

int x=30;

printf("main()函数中x的值为:%d\n",x);

show();

}

答案:main()函数中x的值为:30

show()函数中x的值为:20

解析:局部变量只在它所在的函数内部有效,且当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量

21、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

int a, b;

void func()

{

a = 100;

b = 200;

}

void main()

{

int a = 5, b = 7;

func();

printf("a = %d, b = %d\n", a, b);

}

答案:a = 5, b = 7

解析:全局变量与局部变量重名时,局部变量会屏蔽掉全局变量

22、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:用函数求x的绝对值。void main()

int x,y;

scanf("%d",&x);

_______

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

}

int abs(int a)

{

int b;

if (a>=0)

b=a;

else

_______

_______

}

答案:y=abs(x); b=-a; return b;

解析:abs()函数是求绝对值的函数。

23、以下check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse 的值相等,则显示“WELL DONE!!”,否则显示计算后的值。请填空。

void check(int ponse, float value)

{

int val;

val = _______;

print("计算后的值:%d", val);

if (_______)

printf("\n WELL DONE!!\n");

else

printf("\nSorry the correct answer is %d\n",val);

}

答案:(int)((value*10 + 5)/10) val == ponse

解析:第一个填空处利用float型转int型的规则实现四舍五入的计算;第二个填空处判断是否计算后的值与ponse的值相等。

24、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:求整数num1和num2的最大公约数,并返回该值。

int gongyue(int num1, int num2)

{

int temp;

while (_______)

{

temp = num1 % num2;

num1 = num2;

num2 = temp;

}

return _______;

答案:num2!=0 num1

解析:循环条件是num2!=0,因为被模数不能为0;num1在对num2取模的过程中一直在改变,最后返回num1的值。

25、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:根据对x的输入,求1到x的累加和。

int fun(int n)

{

int i,c;

c=0;

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

c=c+i;

_______

}

void main()

{

int x;

scanf("%d", _______);

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

}

答案:return c; &x

解析:函数fun()中求总和,c是总和变量,最后返回c;

从键盘输入x,则要对scanf()函数传入变量x的地址。

26、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:先输入10个数据到数组a中,再输入x,然后在a数组中查找与x值相同的元素的所在位置。

void main()

{

int a[11],x,i;

printf("Enter 10 integers:\n");

for (i=1; _______;i++)

scanf("%d",a+i);

printf("Enter x:");

_______

*a=x;i=10;

while (x!=*(a+i))

_______

if (i>0)

printf("%5d's position is:%4d\n",x,i);

else

printf("%d Not been found!\n",x);

}

答案:i<=10 scanf("%d",&x); break;

27、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:输入10个整数存入数组x中,然后计算各元素的和,并将和存入S中。

void main()

{

int x[10],i,s;

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

_______

s=0;

for (i=1; i<10; i++)

_______

printf("%d",s);

}

答案:scanf("%d",&x[i]); s+=i;

解析:第一个空格从键盘输入元素的值;

第二个空格将元素存入变量s中;

28、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:读入一个两位的正整数,按字符型形式输出。

void main()

{

int n;

scanf(_______);

printf(_______);

}

答案:"%d",&n "%c",n

29、请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

#include

int sum(int a)

{

int c=0;

static int b=3;

c+=1;

b+=2;

return a+b+c;

}

void main()

{

int i;

int a=2;

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

printf("%d,", sum(a));

}

答案:8,10,12,14,16,

解析:sum()函数体中的静态局部变量b会一直存在,其值不随函数调用结束而销毁。30、编写一个函数,判断一个数是奇数还是偶数,并在主函数中调用。

答案:#include

相关文档
相关文档 最新文档