C语言程序设计基础教程 - 习题答案 下载本文

a[i++]=b[j]; a[i]='\\0'; puts(a); }

6.3.8 从键盘输入10个数给数组a,然后逆序输出。

参考答案

#include void main() {

int i,a[10];

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

scanf(\ for(i=9;i>=0; i--)

printf(\}

6.3.9 输入10个0到100的随机整数到指定的数组中。

参考答案

#include #include void main() {

int i,a[10]={0};

srand(50); /*初始化随机数序列*/ for(i=0;i<10;i++) {

a[i]=rand()0; /*产生100以内的随机整数*/ }

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

printf(\}

6.3.10 为比赛选手评分。 计算方法:从1 0名评委的评分中扣除一个最高分,扣除一个最低分,然后统计总分,并除以8,最后得到这个选手的最后得分(打分采用百分制)。

参考答案

#include void main( ) {

int score[10]; /* 10 个评委的成绩*/ float mark; /* 最后得分*/ int i;

int max =-1; /*最高分*/ int min =101; /*最低分*/

int sum=0; /*10个评委的总和*/ for( i =0 ; i < 10 ; i ++)

{

printf(\ scanf(\ sum=sum+score[i]; }

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

if(score[i] > max) max = score[i]; }

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

if(score[i]

mark = ( sum - min - max ) / 8.0;

printf(\}

习题七答案

习题七

7.1 选择题

7.1.1 在一个C语言程序构成中,较完整的描述是(D )

A) 由主程序与子程序构成 B) 由多个主函数与多个子函数构成 C) 由主函数与子函数构成 D) 由一个主函数与多个子函数构成 7.1.2 C语言在程序开始执行时,其正确的描述是(B )

A) 由编写程序语句的顺序格式执行 B) 在主函数main()开始处执行 C) 在第一个子函数处执行 D) 由人随机选择执行 7.1.3 下列有关函数错误的描述是(A )

A) C语言中允许函数嵌套定义 B) C语言中允许函数递归调用 C) 调用函数时,实参与形参的个数、类型需完全一致 D) C语言函数的缺省数据类型是int类型

7.1.4 在C语言中,各个函数之间具有的关系是(D )

A) 不允许直接递归调用,也不允许间接递归调用 B) 允许直接递归调用,不允许间接递归调用 C) 不允许直接递归调用,允许间接递归调用 D) 允许直接递归调用,也允许间接递归调用 7.1.5 在C语言中,函数的返回值的类型是由(D )

A) C语言的编译程序,在程序编译时决定 B) 由调用该函数的主调函数所决定

C) 由return语句的表达式的类型所决定

D) 由定义该函数时指定的函数类型所决定

7.1.6 当调用函数时,如果实参是一个数组名,则向函数传送的是(B )

A) 数组的首元素 B) 数组的首地址

C) 数组每个元素的地址 D) 数组每个元素中的值 7.1.7 对于以下程序,不正确的叙述是(A )

#include

void f(int n); /*函数说明*/ void main()

{ void f(int n); /*函数说明*/ f(5); }

void f(int n)

{ printf(\ }

A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B) 要求函数f无返回值,所以可用void将其类型定义为无值型

C) 在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调

用函数f

D) 对于上面程序的说明,编译时系统会提示出错信息:提示对f函数重复说明 7.1.8 以下程序的输出结果是(A )。

long fun( int n) { long s;

if(n==1 || n==2) s=2; else s=n-fun(n-1); return s;} void main()

{ printf(\

A) 1 B) 2 C) 3 D) 4 7.1.9 有以下程序执行后输出的结果是(C )。

int f1(int x,int y)

{ return x>y?x:y; } int f2(int x,int y)

{ return x>y?y:x; } main()

{int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b); e=f2(e,c); f=a+b+c-d-e;

printf(\}

A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,4 7.1.10 设有以下函数;

f(int a) { int b=0; static int c=3;

b++;c++;

return(a+b+c); }

如果在下面的程序中调用该函数,则输出结果是(A )。

void main() { int a=2, i;

for(i=0;i<3;i++) printf(\ }

a) b) c) d) 7 7 7 7 8 9 10 7 9 11 13 7

A)a) B)b) C)c) D)d) 7.1.11 以下程序的输出结果是(C )。

int x=3; void main() { int i;

for(i=1;i

incre()

{ static int x=1; x*=x+1;

printf(\}

A)3 3 B)2 2 C)2 6 D)2 5

7.1.12 以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。程序运

行后的输出结果是(A )。 void reverse(int a[],int n) {int i,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} }

void main()

{int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8);

for(i=6;i<10;i++) s+=b[i]; printf(\}

A)22 B)10 C)34 D)30 7.1.13 程序运行后的输出结果是(C )。

#include void f(char p[][10],int n) { char t[20]; int i,j;