1.有以下程序
#include <stdio.h>
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d\n”,c);
}
程序运行后的输出结果是
A) 3 B) 5 C)7 D)9 答案为A
2.
有以下程序
#include <stdio.h>
main()
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’) n++;
printf(“%d\n”,n);
} 程序运行后的输出结果是
A)0 B) 2 C)3 D)5 答案为B
3.
有以下程序
#include <stdio.h>
#include<string.h>
main()
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s\n”,p);
} 程序运行后的输出结果是
A)9,One*World B)9,One*Dream C)10,One*Dream D)10,One*World 答案为C
4.
有以下程序
#include <stdio.h>
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d\n”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
} 程序运行以后的输出结果是
A)7 B)8 C)9 D)10
答案为C(static为静态全局变量,不是会保持a的值为1吗?除非赋新值,a++是赋新值?)
5.
)有以下程序
#include <stdio.h>
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d\n’,s,t);
} 程序运行后的输出结果是
A)10,64 B)10,10 C)64,10 D)64,64 答案为A