《C语言程序设计》核心试题(10)
(2011-09-13 23:23:36)
标签:
c语言 |
分类: 教学文件 |
一、选择题
(1)有以下程序
A)abcdefg
(2)有以下程序
A)8,
(3)
char
main()
{
}
B)*f1(*s);
C)fun(&a);
D)ch=*f1(s)
(4)
在函数调用过程中,如果函数funA调用了函数
funB,函数funB又调用了函数funA,则
A)
称为函数的直接递归调用
C)
称为函数的循环调用
(5)
有以下程序
void fun(int *a,int i,int j)
{ int t;
}
main()
{ int x[]={2,6,1,8},i;
}
A) 1 2 6 8
(6)
有以下程序
#include <string.h>
main(int argc ,char *argv[ ])
{
}
ex
A) 14
(7)
有以下程序
void f(int a[],int i,int j)
{
}
main( )
{
A) 5,4,3,2,1,
(8)
有以下程序
void
{
if(i<j)
}
main()
{
}
A) 6 5 4 3 2
1
(9)
有以下程序
int f(int
{
else return f(n-1)+1;
}
main()
{
for(i=i;i<3;i++) j+=f(i);
printf(“%d\n”,j);
}
A)
4
(10)
有以下程序
#include <string.h>
main(int argc,char *argv[])
{ int
for(i=1;i<argc;i++) len+=strlen(argv[i]);
printf(“%d\n”,len);
}
ex1
则运行的结果是:
A)
22
(11)
有以下程序
int fa(int x)
{ return x*x;
int fb(int x)
{ return x*x*x;
int f(int (*f1)(),int (*f2)(),int x)
{ return f2(x)-f1(x);
main()
{ int i;
i=f(fa,fb,2); printf(“%d\n”,i);
}
A)
-4
(12)
不合法的main函数命令行参数表示形式是
A) main(int
(13)
PROG ABCDEFGH IJKL<回车>,则输出结果为
A)
ABCDEFG
main( int
{
while(--argc>0)
printf(“\n”);
}
(14)
A) 1
long
{
}
main()
{
(15)
long
{
else
}
main0
{
A)
2
(16)
若有以下说明和定义
fun(int *c){
main()
{
}
在必要的赋值之后,对fun函数的正确调用语句是
A)
a=a(w);
(17)
下列程序执行后的输出结果是
A)
hello
(18)
A) hello
good
(19)
A) 5 4 3 2
1
main()
{ int w=5; fun(w); printf(“\n”);}
fun(int k)
{ if (k>0) fun(k-1);
}
(20)
A) CHINA BEIJING
SHANGHAI
C) C B
S
(21) C
A)
既允许直接递归调用也允许间接递归调用
B)
不允许直接递归调用也不允许间接递归调用
C)
允许直接递归调用不允许间接递归调用
D)
不允许直接递归调用允许间接递归调用
二、填空题:
(1)以下程序运行后的输出结果是
【1】
(2)
int
{ if(n>1)
}
main ( )
{
}
(3)
fun(int
{ if (x/2>0)
printf("%d",x);
}
main()
{ fun (6); }
(4)
main()
{
}
(5)
main()
{ int
sub(&x,8,1);
printf("%d\n",x);
}
sub(int
{
*a+=k;
}
(6)
fun(int n,int *s)
{ int f1,f2;
if(n = =1||n = =2) *s=1;
else { fun(n-1,&f1); fun(n-2,&f2);
*s=f1+f2;}
main()
{ int x;
fun(6,&x);
(7)
long fun5(int n)
{ long s;
if((n==1)||(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);}
main()
{ long x;
x=fun5(4);
printf("%ld\n",x);}
(8)
下面h函数的功能是计算如下数学函数H的值。请填空。
double x, double y)
{ return(
double h(double a, double b)
return(fgh( sin,cos,a,b)*fgh(
(9)
#include<stdio.h>
main( int argc, char *argv[])
{ int i;
printf( '%d\n", argc);
for( i=0; i<=argc+1; i++) printf( "%s ",
argv[i]);
printf("\n");
}
若上面的程序编译、连接后生成可执行文件ABC.EXE,则输入以下命令行
abc file1
file2<CR>(<CR>表示回车)
程序执行后的输出结果是
【10】
。
(10)
下面程序的输出结果是
【11】
。
#include <stdio.h>
fun( int x)
{ int p;
if( x==0||x==1) return(3);
p=x-fun( x-2);
return p;
}
main()
{ printf( "%d\n", fun(9));}
(11)
下面程序的输出结果是
【12】
。
#include <stdio.h>
funa( int a, int b)
{ return a+b;}
funb( int a, int b)
{ return a-b;}
sub( int (*t)(), int x, int y)
{ return((*t)( x,y));}
main()
{ int x, (*p)();
p=funa;
x=sub(p,9,3);
x+=sub(funb, 8, 3);
printf("%d\n", x);
}
(12)
设有如下程序:
#include<stdio.h>
main(int argc, char *argv[ ])
printf("\n");
}
(13)
以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。
#include <stdio.h>
#define N 10
invert(int *s,int i,int j)
{ int t; if(i<j){ t=*(s+i); *(s+j)=(s+j);*(s+j)=t;
invert(s,
【14】
,j-1);}}
main()
{ int a[N],i;
答案:
一、选择题:
01)
06)
11)
16)
21)
二、填空题:
(1) 15
(2) 6
(3) 1 3 6
(4) findbig
(5) 7
(6) 8
(7) 9
(8) f(xy)/g(y-x)或(*f)(x+y)/g(y-x)或f(x+y)/(*g)(y_x)或(*f)或(*f)(x+y)/(*g)(y-x)
(9) cos,sin,a,b
(10) 3
(11) 7
(12) 17
(13) IJKLEFGHABCD
(14) i+1
(15) I
一、选择题:
(1)有以下程序
A)26
(2)
以下叙述中正确的是
A)
局部变量说明为static存储数,其生存期将得到延长
B)
全局变量说明为static存储类,其作用域将被扩大
C)
任何存储类的变量在未赋初值时,其值都是不确定的
D)
形参可以使用的存储类说明符与局部变量完全相同
(3)
有以下程序
int a=2;
int f(int *A)
{return (*A) ++;}
main( )
{
}
A) 10
(4)
以下叙述中正确的是
A)
全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
(5)
有以下程序
int a=3;
main()
{
{ int a=5;
s+=a++;printf(“%d\n”,s);
}
A)
8
(6)
以下程序的输出结果是
int
{
int
s+=i;
return
}
{
for(i=0;i<5;i++)
printf("%d\n",a);
}
(7)
在C语言中,形参的缺省存储类是
A) auto
(8)
以下程序的输出的结果是
int x=3;
main()
{
for (i=1;i<x;i++)
}
ncre()
{
x*=x+1;
printf("
}
(9 )
f ( int
{
static int
b++;
return(a+b+c);
}
main()
{
for(i=0;i<3;i++)
}
(10)
int
void fun()
{
main()
{
fun();
printf(“%d
}
A) 100200
(11)
以下只有在使用时才为该类型变量分配内存的存储类说明是
A) auto和static
C) register和static
(12)
在C语言中,函数的隐含存储类别是
A)
auto
(13)
下列程序的输出结果是
(14)
A) 6
(15)
A)
8,15
(16)
A)
84
(17)
A)
在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B)
在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C)
在C中,外部变量的隐含类别是自动存储类别。
D)
在C中,函数形参可以说明为register变量。
(18)
下面程序的输出是
int w=3;
main()
{ int w=10;
fun(int k)
{ if(k==0) return w;
return(fun(k-1)*k);
(19)
下列程序执行后输出的结果是
#include <stdio.h>
f(int a)
{
a=c+ +,b+ +;
return
(a);
main( )
{
for(i=0;i
printf("%d\n",k);
(20)
int d=1;
fun (int q)
{ int d=5;
d + =p + +;
main( )
{ int a=3;
fun(a);
d + = a +
+;
(21)
A)
3
fun3(int x)
static int a=3;
a+=x;
return(a);}
main()
{ int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}
(22)
下面程序的输出是
A)
1
int m=13;
int fun2(int x, int y)
{ int m=3;
return(x*y-m);
}
main()
{ int a=7, b=5;
printf("%d\n",fun2(a,b)/m);}
(23)
请读程序:
#include<stdio.h>
void fun( int *s)
{ static int j=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{ int k, a[10]={1,2,3,4,5};
for(k=1; k<3; k++) fun(a);
for(k=0; k<5; k++) printf("%d", a[k]);
}
上面程序的输出结果是
A)
34756
(24)
以下程序的输出结果是
# include <stdio.h>
main()
{ int k=4,m=1,p;
func(a,b)
int a,b;
{ static int m=0,i=2;
二、填空题:
(1)以下程序运行后的输出结果是
【1】
fun(int
{
}
main()
{
}
(2)
int
fun(int
{
a+=b++;
printf("%d",a);
}
main()
{
fun(c);
a+=c++;
printf("%d\n",a);
}
(3)
int
{
f=f*n;
return
}
main()
{
for(I=1;I<=5;I++
}
(4)
void
{
a+=2;
}
main()
{
for(cc=1;cc<4;cc++) fun()
printf(“\n”);
}
(5)
(6)
(7)
#define MAX 5
int a[MAX],k;
main()
{ fun1();fun3(); fun2();
printf("\n");
fun1()
{ for(k=0;k<MAX;k++) a[k]=k+k; }
fun2()
{ int a[MAX],k;
for(k=0;k<5;k++)
fun3()
{ int k;
for(k=0;k<MAX;k++) printf("%d",*(a+k)): }
(8)
答案:
一、选择题:
01)
06)
11)
16)
21)
二、填空题:
(1) 0
(2) 30 25
(3) 120
(4) 246
(5) 8,17
(6) 8,17
(7) o246802468
(8) 2468