一 单项选择题
1.以下程序的输出结果是( C )。
int d=1;
fun(int p)
{static int d=5;
d+=p;
printf("%d ",D);
return(D);
}
main( )
{ int a=3; printf("%d\n",fun(a+fun(D)));}
A) 6 9 9
B) 6 6 9
C) 6 15 15
D) 6 6 15
2.下列程序执行后的输出结果是( C )。
void func1(int i);
void func2(int i);
char st[ ]="hello,friend!";
void func1(int i)
{printf("%c", st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{printf("%c", st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{int i=0; func1(i); printf("\n");}
A) hello
B) hel
C) hlo
D) hlm
3.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B )。
A) 地址传递
B) 单向值传递
C) 由实参传给形参,再由形参传回实参
D) 传递方式由用户指定
4.以下函数值的类型是( A )。
fun( float x )
{float y;
y=3*x-4;
return y;
}
A) int
B) 不确定
C) void
D) float
5.设有以下函数:
f( int a)
{int b=0;
static int c=3;
b++; c++;
return(a+b+C);
}
如果在下面的程序中调用该函数,则输出结果是( A )。
main()
{int a=2, i;
for(i=0;i<3;i++) printf("%d\n", f(a));
}
A) 7
B) 7
C) 7
D) 7
8 9 10 7
9 11 13 7
6.以下程序的输出结果是( B )。
int a, b;
void fun()
{a=100; b=200;}
main()
{int a=5, b=7;
fun();
printf("%d%d\n", a,
B);
}
A) 100200
B) 57
C) 200100
D) 75
7.以下所列的各函数首部中,正确的是( C )。
A) void play(var a:Integer, var b:Integer)
B) void play(int a, B)
C) void play(int a, int B)
D) Sub play(a as integer, b as integer)
8.以下程序的输出结果是( C )。
fun(int x, int y, int z)
{z=x*x+y*y; }
main()
{int a=31;
fun(5, 2, a);
printf("%d", a);
}
A) 0
B) 29
C) 31
D) 无定值}
9.当调用函数时,实参是一个数组名,则实参向形参传递的是( B )。
A) 数组的长度
B) 数组的首地址
C) 数组每一个元素的地址
D) 数组每个元素中的值
10.以下程序的输出结果是( A )。
long fun( int n)
{long s;
if(n= =1 || n= =2) s=2;
else s=n-fun(n-1);
return s;
}
main()
{printf("%ld\n", fun(3)); }
A) 1
B) 2
C) 3
D) 4
11.有如下函数调用语句:
func(rec1, rec2+rec3, (rec4, rec5));
在该函数调用语句中,含有的实参个数是( A )。
A) 3
B) 4
C) 5
D) 有语法错
12.有如下程序:
int func(int a,int B)
{return(a+B);}
main( )
{int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%d\n”,r);
}
该程序的输出的结果是( D )。
A) 12
B) 13
C) 14
D) 15
13.以下程序的输出结果是( B )。
long fib(int n)
{if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main( )
{printf(“%ld\n”,fib(3));}
A) 2
B) 4
C) 6
D) 8
14.在C语言中,变量的隐含存储类别是( A )。
A) auto
B) static
C) extern
D) 无存储类别
15.在下列的函数调用中,不正确的是( D )。
A) max(a,B);
B) max(3,a+B);
C) max(3,5);
D) int max(a,B);
16.以下程序的输出结果是( C )。
func(int x, int y)
{int z;
z=x+y;
return z;
}
main( )
{int a=10, b=20, c=30, s;
s=func((a--, b++, a+B), c--);
printf(“%d\n”, s);
}
A) 30
B) 40
C) 60
D) 50
17.现有以下程序:
#include
inverse(char str[ ])
{char t;
int i, j;
for(i=0, j=strlen(str); i {t=str[i]; str[i]=str[j-1]; str[j-1]=t; } } main( ) {char str[100]; scanf(“%s”, str); inverse(str); printf(“%s\n”, str); } 如果输入an anple,该程序的输出结果是( D )。 A) an anple B) elpna na C) an D) na 18.在下列叙述中,正确的一条是( A )。 A) puts和gets函数只能输入或输出一个字符串 B) 在C语言中,函数可以递归调用或递归定义 C) 用scanf函数输入数据时可以规定精度,例如scanf(“%7.2f”,&a); D) 外部变量只限于本文件中使用 19.以下程序的输出结果是( C )。 power(int x, int n) {int p; if(n>0) p=power(x, n-1)*x; else p=1; return (p); } main( ) {int x=2, n=3; printf(“%d\n”, power(x, n)); } A) 5 B) 6 C) 8 D) 9 20.在C语言的函数中( C )。 A) 必须有形参 B) 形参必须是变量名 C) 可以有也可以没有形参 D) 数组名不能作形参
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |