《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 { int k=4, m=1, p; p=func(k,m); printf(\ p=func(k,m); printf(\ } func(int a, int b) 。 - 31 -