A、是死循环 B、循环执行二次 C、循环执行一次 D、有语法错误
56、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2) 表示的数组元素是
( C )。
A、t[2][0] B、t[2][2] C、t[1][2] D、t[2][1] int t[3][3],*pt[3],k;
for(k=0;k<3;k++) pt[k]=&t[k][0];
57、下面程序的运行结果是( D )。
#include
{ int i,b,k=0;
for(i=1;i< =5;i++) { b=i%2;
while(b-->=0) k++; }
printf(\}
A、3,-1 B、8,-1 C、3,0 D、8,-2 58、以下程序的输出结果是( C )。
A、5 2 B、5 1 C、5 3 D、9 7 void main()
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2) printf(\ \}
59、下面程序的功能是计算 1至10之间的奇数之和及偶数之和.请选择填空。
#include
{ int a,b,c,i; a=c=0;
for(i=0;i<=10;i+=2) { a+=i;
( B ) ; c+=b;
}
printf(\偶数之和=%d\\n\ printf(\奇数之和=%d\\n\}
A、b=i-- B、b=i+1 C、b=i++ D、b=i-1 60、以下程序的输出结果是( B )。
A、6 B、6789 C、'6' D、789 void main()
{ char a[10]={ '1', '2', '3', '4', '5', '6', '7', '8', '9',0},*p;
int i; i=8;
- 9 -
p=a+i;
printf(\
}
61、下面程序段的运行结果是( C )。
for(y= 1;y<10;) y=((x=3* y,x+1),x-1); printf(\
A、x=27,y=27 B、x=12,y=13 C、x=15,y=14 D、x=y=27 62、以下程序的运行结果是( A )。
A、运行后报错 B、6 6 C、6 12 D、5 5 #include
{ int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5, *q=NULL; *q=*(p+5);
printf(\ %d\\n\}
63、对for(表达式1;;表达式3)可理解为( B )。
A、for(表达式1; 0;表达式3) B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3) D、for(表达式1;表达式3;表达式3)
64、下面程序把数组元素中的最大值放入a[0]中,则在if语句中的条件表达式应该是
( B )。
A、p>a B、*p>a[0] C、*p>*a[0] D、*p[0]>*a[0] void main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;
for(i=0;i<10;i++,p++)
if( ? ) *a=*p;
printf(\}
65、以下描述正确的是( C )。
A、goto语句只能用于退出多层循环 B、switch语句中不能出现continue语句 C、只能用continue语句来终止本次循环 D、在循环中break语句不能独立出现 66、以下程序的输出结果是( B )。
A、5 4 3 2 1 B、0 1 2 3 4 5 C、1 2 3 4 5 D、5 4 3 2 1 0 void fun(int k)
{ if(k>0) fun(k-1);
printf(\
- 10 -
}
void main() { int w=5;
fun(w); printf(\}
67、有以下程序段:
int x=0,s=0;
while(!x!= 0) s+=++x; printf(\则( B )。
A、运行程序段后输出0 B、运行程序段后输出1
C、程序段中的控制表达式是非法的 D、程序段执行无限次
68、以下程序的输出结果是( C )。
A、6 9 9 B、6 6 9 C、6 15 15 D、6 6 15 int d=1; fun(int p)
{ static int d=5;
d+=p
printf(\ \return (d); }
void main() { int a=3;
printf(\}
69、假定short int类型变量占用两个字节,其有定义:short int x[10]={0,2,4};,则数组x在内
存中所占字节数是( D )。
A、3 B、6 C、10 D、20 70、以下程序的输出结果是( C )。
A、9 B、6 C、36 D、18 #define f(x) x*x void main()
{ int a=6,b=2,c;
c=f(a)/f(b);
printf(\}
71、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( C )。
A、char s[10]=\B、char t[]=\C、char s[10];s=\
- 11 -
D、char s[10];strcpy(s,\
72、若已定义char str[2][3]; 则下列表达式不表示str[1][0]的地址的是( D )。
A、*(str+1) B、&str[0][0]+3 C、str[0]+3 D、str+3
73、int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存
入a数组的是( D )。 A、for(i=0;i<2;i++)
for(j=0;j<3;j++) a[i][j]=i*3+j+1;
B、for(i=0;i<3;i++)
for(j=0;j<2;j++)
a[j][i]=j*3+i+1;
C、for(i=0;i<6;i++)
a[i/3][i%3]=i+1; D、for(i=1;i<=6;i++)
a[i][i]=i;
74、若已定义int a[4][5]; 则对该数组元素a[i][j](i和j已正确赋值)正确引用的是( A、*(a+i+j) B、*(*(a+i)+j) C、*(a+i)+j D、(a+i)[j] 75、以下数组定义中不正确的是( D )。
A、int a[2][3];
B、int b[][3]={0,1,2,3}; C、int c[100][100]={0};
D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 76、有下列程序:
#include\int max(int x,int y)
{ return (x>y?x:y); } int min(int x,int y)
{ return (x scanf(\return ((*x1)(i,j)+(*x2)(a,b)); } void main() { printf(\ } 执行时输入为:1,2,8,10 A、int a[2][]={{1,0,1},{5,2,3}}; B、int a[][3]={{1,2,3},{4,5,6}}; C、int a[2][4]={{1,2,3},{4,5},{6}}; D、int a[][3]={{1,0,1}{},{1,1}}; - 12 - B )。