历年二级考试真题及答案
(34)有以下程序
void change(int k[]){k[0]=k[5];}
main()
{int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while(n<=4){change(&x[n]);n++;}
for(n=0;n<5;n++)printf("%d",x[n]);
printf("\n");
}
程序运行后的输出结果是
A 6 7 8 9 10 B 1 3 5 7 9 C 1 2 3 4 5 D 6 2 3 4 5
(35)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
A #define N 10 B #define n 5
int a[N]; int a[2*n];
C int a[5+5]; D int n=10,a[n];
(36)有以下程序
main()
{int x[3][2]={0},i;
for(i=0;i<3;i++)scanf("%d",x[i]);
printf(“%3d%3d%3d”,x[0][0],x[0][1],x[1][0]);
}
若运行时输入:2 4 6<回车>,则输出结果为
A 2 0 0 B 2 0 4 C 2 4 0 D 2 4 6
(37)有以下程序
main()
{char s[]={"aeiou"},*ps;
ps=s;printf("%c\n",*ps+4);
}
程序运行后的输出结果是
A a B e C u D 元素s[4]的地址
(38)以下语句中存在的语法错误是
A char ss[6][20]; ss[1]="right?";
B char ss[][20]={"right?"};
C char *ss[6]; ss[1]="right?";
D char *ss[]={"right?"};
(39)若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是
A char y[10];strcpy(y,x[4]);
B char y[10];strcpy(++y,&x[1]);
C char y[10],*s;strcpy(s=y+5,x);
D char y[10],*s;strcpy(s=y+1,x+1);
(40)有以下程序
int add(int a,int b){return(a+b);}
main()
{int k,(*f)(),a=5,b=10;
f=add;
…
}