C.main(c,v) int c;char *v[];
D.main(argc,argv) int argc;char argv[];
二.填空题:
1.填入运行结果:
swap1(x,y)
int x,y;
{
int w;
A.4个
B.3个
C.8个
D.5个
11.C语言中函数能否嵌套调用和递归调用?
A.二者均不可
B.前者可,后者不可
C.前者不可,后者可
D.二者均可
12.C语言标准库函数"strcat(strcpy(STR1,STR2),STR3)"的功能是________。
A.将串STR1复制到串STR2中后再连接至串STR3之后
B.将串STR1连接至STR2之后再复制至串STR3之后
C.将串STR2复制到串STR1串后再将串STR3连接到串STR1 之后
D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串
13.下列选项中不是C语言main函数正确表达形式的是________?
A.main(int argc,char *argv[]);
B.(1)-8 1 2 7 9 10
(2)-8 1 7 9 10 2
C.(1)-8027910
(2)-8079102
D.(1)-8 0 3 7 9 10
(2)-8 0 4 9 10 2
f(n-1)+f(n-2) (n>1)
D. 0 (n<0)
f(n)={ 1 (n>0)
f(n-1)+f(n-2) (n>1)
6.现给出如下C语言程序:
#include<stdio.h>
shell(v,n)
int v[],n;
data3=5 data4=7
data5=5 data6=7
data7=7 data8=7
data9=7 data10=7
D.data1=5 data2=7
data3=5 data4=5
data5=5 data6=5
data7=7 data8=5
data9=7 data10=5
2.main()
B.函数的定义可嵌套,但函数的调用不能嵌套
C.函数的定义和调用均不能嵌套
D.函数的定义和调用均可嵌套
8.C语言命令行参数很有特点,其一般表达式形式为________。
A.main(int argc,int argv)
B.main(int argc,char argv[])
C.main(int argc,char *argv)
}
A.777
B.7 7 7
C.789
D.7 8 9
6.C程序中若函数类型未加显式说明,则函数的隐含类型为________类型。
A.void
B.int
C.char
D.double
7.对于C程序的函数,下列叙述中正确的是________。
A.函数的定义不能嵌套,但函数调用可以嵌套
}
gbs(a,b)
int a,b;
{ int c;
a=a>0?a:-a;
b=b>0?b:-b;
c=a*b;
if(c==0) return(0);
while(a!=b) if(a>b) a-=b;
else b-=a;
return(c/a);
}
gys(a,b)
f(n)={ 1 (n=1)
f(n-1)+f(n-2) (n>0)
B. 0 (n=0)
f(n)={ 1 (n=0)
f(n-1)+f(n-2) (n>1)
C. 0 (n=0)
f(n)={ 1 (n=1)
B.a=27 b=63 gbs=190 gys=10
C.a=27 b=63 gbs=189 gys=9
D.a=27 b=63 gbs=188 gys=10
4.下面函数swap_p的功能是完成交换两个指针的操作。请 按指定的顺序在题后的相应序号后填上适当的内容,使之成为完整正确的函数。
w=x;x=y;y=w;
}
swap2(p1,p2)
int *p1,*p2;
{
int *p;
p=p1;p1=p2;p2=p;
}
swap3(pa,pb)
int *pa,*pb;
{
int p;
p=*pa;pa=*pb;pb=p;
}
main()
{
int a,b;
int a,b;
{ if(a*b==0) return(0);
a=a>0?a:-a;
b=b>0?b:-b;
while(a!=b) if(a>b) a-=b;else b-=a;
return(a);
}
请写出上面程序的运行结果:
A.a=30 b=63 gbs=189 gys=9
C.没有返回值
D.无法确定
3.函数NewPring用于打印sin(x)、cos(x)和ln(x)等函数的曲线模拟,其参数就是上述函数,则NewPring的原型为___
B.void NewPrint(double(*f)(double X))
for(i=0;i<count;i++)
printf("%d",a[i]);
}
(1)该程序的输出结果是________。
(2)将程序中shell(a,count)改为shell(a,count-1)输出结果是________。
A.(1)-8 0 2 7 9 10
(2)-8 0 7 9 10 2
printf("data5=%d\tdata6=%d\n",a,b);
swap3(ptr1,ptr2);
printf("data7=%d\tdata8=%d\n",*ptr1,*ptr2);
printf("data9=%d\tdata10=%d\n",a,b);
}
A.data1=5 data2=7
v[j]=v[j+gap];
v[j+gap]=temp;
}
}
main()
{
int i,count;
static int a[]={9,7,10,0,-8,2};
count=sizeof(a)/sizeof(int);
shell(a,count);
int *ptr1,*ptr2;
a=5;b=7;
ptr1=&a;ptr2=&b;
swap1(*ptr1,*ptr2);
printf("data1=%d\tdata2=%d\n",*ptr1,*ptr2);
swap2(ptr1,ptr2);
printf("data3=%d\tdata4=%d\n",*ptr1,*ptr2);
*t;
term;
C.**s(或**t);
**t(或**s);
s;
t;
*term;
D.s(或**t);
t(或**s);
*s;
*t;
&term;
5.现有一C语言程序用于计算一个数学函数f(n):
fib(n)
int n;
{
switch(n){
case 0:return 0;
case 1:return 1;
default:
{
int i;
int a=0,b=1,result;
for(i=2;i<=n;i++)
{ result=a+b;
{ int x=3,i;
for(i=0;i<3;i++) printf("%d",f(x));
}
int f(int a)
{ int b=0;
static c=3;
b++;c++;
return(a+b+c);
}
执行此程序后屏幕上显示的结果是什么:
A.8 10 10
data3=5 data4=7
data5=5 data6=7
data7=7 data8=5
data9=7 data10=5
B.data1=7 data2=7
data3=7 data4=7
data5=7 data6=7
data7=7 data8=5
data9=7 data10=5
C.data1=5 data2=7
答案
一.选择题:
1.B
C.从文件fp中读取n个字符串存入指针string指向的内存
D.从文件fp中读取长度不超过长度为n的字符串存入指针string指向的内存
2.参考下面函数f的定义:
f(int a){printf("%d",a);}
函数f的返回类型________。
A.同参数a的类型相同
B.是void类型
D.main(int argc,char *argv[])