《C语言程序设计》习题集 下载本文

《C语言程序设计》习题集

void main( )

{ int a=?9?,b=?8?,c=?7?;

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

程序的执行结果是( )。 A) 函数调用出错 B)8 C)9

D)7

7、有以下程序

void swap1(int c[]) { int t;

t=c[0];c[0]=c[1];c[1]=t; }

void swap2(int c0,int c1) { int t;

t=c0;c0=c1;c1=t; }

void main( )

{ int a[2]={3,5},b[2]={3,5}; swap1(a) ; swap2(b[0],b[1]);

printf(“%d %d %d %d\\n”,a[0],a[1],b[0],b[1]); }

其输出结果是( )。

A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3 8、有以下程序

int f(int b[][4]) { int i,j,s=0;

for(j=0;j<4;j++) { i=j;

if(i>2) i=3-j; s+=b[i][j]; }

return s; }

void main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\\n”,f(a) ); }

执行后的输出结果是( )。 A) 12 B) 11 C) 18 D) 16 9、有以下程序:

void sort(int a[],int n) { int i,j,t;

for(i=0;i

if(a[i]

- 28 -

《C语言程序设计》习题集

}

void main()

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10);

for(i=0;i<10;i++) printf(“%d”,aa[i]); printf(“\\n”); }

其输出结果是( )。 A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1, C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2,

10、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是( )。 A) 调用可以作为独立的语句存在 B) 调用可以作为一个函数的实参 C) 调用可以出现在表达式中 D) 调用可以作为一个函数的形参 11、以下叙述中正确的是( )。

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

B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 12、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )。 A) void B) int C) float D) double 13、以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

void sort(int a[],int n) { int i,j,t;

for(i=0;i

if(a[i]

void main()

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5);

for(i=0;i<10;i++) print(“%d,”,aa[i]); printf(?\\n”); }

程序运行后的输出结果是( )。 A)1,2,3,4,5,6,7,8,9,10 B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7,6,5,4,9,10 D) 1,2,10,9,8,7,6,5,4,3 14、有以下程序

void f(int a[],int i,int j) { int t; if(i

{ t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } }

void main( )

- 29 -

《C语言程序设计》习题集

{ int i,aa[5]={1,2,3,4,5}; f(aa,0,4);

for(i=0;i<5;i++) printf(“%d,”,aa[i]); printf(“\\n”); }

执行后输出结果是( )。

A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5, 15、有以下程序

int f(int n)

{ if (n==1) return 1; else return f(n-1)+1; }

void main() { int i,j=0;

for(i=1;i<3;i++) j+=f(i); printf(“%d\\n”,j); }

程序运行后的输出结果是( )。 A) 4 B) 3 C) 2

D) 1

16、有以下程序

void main()

{ char a[ ]={?a?,?b?,?c?,?d?, ?e?, ?f?, ?g?,?h?,?\\0?}; int i,j; i=sizeof(a); j=strlen(a); printf(“%d,%d\\n”, i,j); }

程序运行后的输出结果是( )。 A)9,9 B)8,9 C)1,8 D)9,8 17、以下程序的输出的结果是( )。

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

for (i=1;i

incre( )

{ static int x=1;

x*=x+1;

printf(\ %d\}

A) 3 3 B) 2 2 C) 2 6 18、以下程序的输出结果是( )。

int a, b; void fun()

{ a=100; b=200; } void main()

{ int a=5, b=7;

fun();

- 30 -

D) 2 5

《C语言程序设计》习题集

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

}

A) 100200

B) 57

C) 200100

D) 75

二、填空题

1、有以下程序 int sub(int n) { return (n/10+n); } void main() { int x,y; scanf(\ y=sub(sub(sub(x))); printf(\ }

若运行时输入:1234<回车>,程序的输出结果是

2、以下程序运行后的输出结果是 int f(int a[], int n)

{ if (n >= 1) return f(a, n-1)+a[n-1]; else return 0; }

void main()

{ int aa[5]={1,2,3,4,5}, s;

s=f(aa, 5); printf(\} 3、以下程序运行后的输出结果是 fun(int a) {

int b=0;

static int c=3; b++; c++; return (a+b+c); }

void main() {

int i,a=5;

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

printf(\ printf(\}

4、以下程序的运行结果是 #include void main()

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

p=func(k,m); printf(\ p=func(k,m); printf(\ }

func(int a, int b)

- 31 -