C语言程序设计(第二版)习题参考答案

发布时间 : 星期日 文章C语言程序设计(第二版)习题参考答案更新完毕开始阅读

A.scanf(\,&a); B.scanf(\,a[]); C.gets(a[20]); D.gets(a);

11.下面程序执行后的正确输出项是( )。

#include<>

void swap1(int a[ ])

{ int t;

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

void swap2(int a,int b) { int t;

t=a; a=b; b=t; }

void main() { int x[2]={1,5}; int y[2]={1,5}; swap1(x);

swap2(y[0],y[1]);

printf(\ x[0],x[1]); printf(\ y[0],y[1]);

}

A. x:5 1 B. x:1 5

C. x:1 y:1 5 y:5 1

y:1 12.执行下列程序后的输出结果是( )。

#include <> char f(char s[],int n) { return (s[n]); } main()

{ char a[]=\ printf(\ }

A.D B.C C.B 13.执行下列程序后的输出结果是( )。

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

{ int x[]={1,3,5,7,9}; printf(\ }

A.1 B.4 C.9 解:

5 D. x:5 5

y:5 D.A

D.16

1 1

二、填空题

1.构成数组的各个元素必须具有相同的 。

解:数据类型

2.若有定义“int a[10]={1,2};”,则数组元素a[2]的值为 。

解:0

3.若有定义“int a[3][4];”,则数组a行下标的上限为 ,列下标的下限为 。

解:2 0

4.C语言程序在执行过程中,不检查数组下标是否 。 解:越界

5.C语言中,二维数组元素在内存中的存放顺序是 。 解:按行存放

6.若有定义“int a[3][4];”,则在数组元素a[2][2]前有 个元素。 解:10

7.若用数组名作为函数调用的实参,传递给形参的是 。 解:数组第一个元素的地址

8.若有定义语句“char s1[ ]=\,s2[ ]={'a','b','c'};”,则数组s1有 个元素,数组s2有 个元素。 解:4 3

三、写出下列程序的输出结果 1.#include <>

void main() {

int a[6]={2,3,7,1,9,6},i,j,k,m;

for(i=5;i>=0;i--){

k=a[5];

for(j=4;j>=0;j--) a[j+1]=a[j]; a[0]=k;

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

printf(\ putchar('\\n'); } }

解:6 2 3 7 1 9 9 6 2 3 7 1 1 9 6 2 3 7 7 1 9 6 2 3 3 7 1 9 6 2 2 3 7 1 9 6 2.#include <>

void main() {

int n[3],i,j,k;

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

n[i]=0;

k=3;

for(i=0;i

for(j=0;j

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

printf(\ }

解: 13 14 17 3.#include <>

void main() {

int a[6][6],i,j;

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

for(j=1;j<6;j++)

a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++){

for(j=1;j<6;j++)

printf(\ printf(\

} }

解:1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

4.#include <>

void main() {

int x[10]; int i,m=1;

void sort(int a[],int n);

for(i=0;i<10;i++){ m=-m; x[i]=m*i; }

sort(x,10);

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

}

void sort(int a[],int n) {

int i,j,t; for(i=1;i<10;i++){ t=a[i];

for(j=i-1; j>=0; j--) if(t>a[j]) break; else a[j+1]=a[j]; a[j+1]=t; } }

解: -8 -6 -4 -2 0 1 3 5 7 9 5.#include <>

void main()

{

char s1[]=\ int i1,i2,i,flag;

i1=i2=i=flag=0; while(1){

if(s1[i1]=='\\0'){ flag=1;

break;

}

if(s2[i2]=='\\0'){

flag=2; break; }

if(s1[i1]

s[i++]=s1[i1++];

else

s[i++]=s2[i2++];

}

if(flag==1)

while(s2[i2]!='\\0')

s[i++]=s2[i2++]; else

while(s1[i1]!='\\0')

s[i++]=s1[i1++];

s[i]='\\0'; puts(s); }

联系合同范文客服:xxxxx#qq.com(#替换为@)