二级C语言:数组中比较经典的11个真题
1.一下程序main()
{ char s[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
答案:程序出错
2.一下程序
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1; m=i+x+y;return m;}
main()
{ int j=1,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
答案:5,11
3.若有定义:char*x="abcdefghi"; ,能正确运用了 strcpy函数的是:
char y[10]; *s; strcpy(s=y+1,x+1);
4.有以下程序执行后W结果是;
int fun1(double a) {return a*a;}
int fun2(double x,double y)
{ double a=0,b=0;
a=fun1(x); b=fun1(y);return(int)(a+b);}
main()
{ double w, w=fun2(1.1,2.0);.......}
答案:5.0
5.设函数的fun定义形式为:void fun(char ch,flaot x) {.....}
则对函数fun的调用语句是: fun(32,32);
6.已有定义char a[]="xyz",b[]={'x','y','z'};,则叙述正确的是:
a数组的长度大于b数组长度
7.一下叙述错误的是C)
A.对于double类型数组,不可以直接用数组名进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
D. 可以通过赋值的方式确定数组元素的个数
8.有以下程序:
char fun(char x,char y)
{ if (x<y) return x;
return y; }
main()
{ int a='9',b='8',c='7';
printf("%c\n", fun(fun(a,b),fun(b,c)));
}
答案是:7
9.若定义以下函数:
double myadd(double a,double b)
{ return (a+b);}
并将其放在调用语句之后,则在调用之前应对其说明,正确的说明有:
double myadd(double,double);
double myadd(double b,double a);
double myadd(doubie x,double y);
10有以下程序,执行后输出的是:
fun( int x, inty)
return(x+y);}
main()
int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);}
答案:8
11.有以下程序结果是
#define P 3
F(int x)
{ return (P*x*x);}
main()
{ printf("%d\n",F(3+5));}
答案:192