C语言综合练习题

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 main()

{ 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 main()

{ 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 void main()

{ 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,则输出为( B )。 A、9 B、10 C、11 D、12 77、以下能对二维数组a进行正确初始化的语句是( B )。

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 )。

联系客服:779662525#qq.com(#替换为@)