C语言练习题真答案(汇总版) 下载本文

内容发布更新时间 : 2024/6/2 13:15:43星期一 下面是文章的全部内容请认真阅读。

scanf(\ if (a>10) y=a+6; printf(\

A. 10 B. 1 C.16 D.15 154以下程序的运行结果是(B )。 void main() {int a,b=2,c=6; a=3;

if(a>6) a=a+b;

else if(a==6) b=a+c;

else a=b+c;

printf(\ } A. 5 B. 8 C.6 D.9

155若有定义:int x,a; 赋值语句a=(x%3==0)?0:1; 与( B )语句不等价。 A. if (x%3!=0) a=1; else a=0; B. if (x%3) a=0; else a=1; C.if (x%3==0) a=0; else a=1; D.if (!(x%3==0)) a=1; else a=0;

156以下程序段的运行结果是( C )。 int s=15; switch(s/4)

{case 1: printf(\ case 2: printf(\ case 3: printf(\ default: printf(\ }

A. Three B. Two Over C.Three Over D.One Over 157以下程序段的运行结果是( C )。 int s=15; switch(s/4)

{default: printf(\ case 1: printf(\ break;

case 2: printf(\ }

A. Two B. Over Two C.Over One D.One

158以下程序段运行后x的值为( D )。 int a=3,b=6,x; x=(a==b)?a++:--b; A. 4 B. 3 C.6 D.5

160下列程序段中,非死循环的是( A )。

A. int i=100; while(1) { i=i0+1; if(i>=100) break; } B. int k=0; do{ ++k; }while(k>=0); C.int s=10; while(++s%2+s%2) s++; D.for(;;)

161若已定义 int a; 不会产生死循环的语句是(C )。 A. for( ; ;a+= 2); B. for(a=10; ;a--);

C.for( ;(a=getchar())!= '\\n'; ); D.while(-1) {a++;} 162在循环语句的循环体中,break语句的作用是( B )。 A. 继续执行break语句之后的循环体各语句 B. 提前结束循环,接着执行该循环后续的语句 C.结束本次循环 D.暂停程序的运行

163以下程序段运行后,循环体中的 n+=3; 语句运行的次数为( A )。 int i,j,n=0;

for(i=1;i<=3;i++) {for(j=1;j<=i;j++)

{n+=3; printf(\ } } A. 6次 B. 9次 C.12次 D.1次

164 do?while循环与while循环的主要区别是( D )。

A. while循环体至少无条件执行一次,而do?while循环体可能都不执行

B. do?while循环体中可使用continue语句,while循环体中不允许出现continue语句 C.do?while循环体中可使用break语句,while循环体中不允许出现break语句 D.do?while循环体至少无条件执行一次,而while循环体可能都不执行 165以下程序段运行后,循环体运行的次数为( A )。 int i=8,a=0; for ( ;i<8;i++) a+= i;

A. 0次 B. 1次 C.8次 D.无限

166以下程序段运行后变量a的值为( C )。 int i=1,a=0; for( ;i<3;i++)

{ continue; a+=i; } A. 6 B. 3 C.0 D.5

167有以下程序: void main() { int i;

for(i=1; i<=3; i++) switch(i) { case 1: printf(\ break;

case 2: printf(\

default : printf(\ } } 执行后输出结果是(A )。

A. 1223 B. 132 C.111223 D.123 168以下程序的运行结果是( C )。 void main()

{int s = 0, i = 0; while(i< 8) {i++;

if(i%2==0) continue; s+=i; } printf(\ }

A. 36 B. 7 C.16 D.12

169以下程序的运行结果是( B )。 void main()

{int s = 0, i = 0; while(i< 10) {i++;

if(i % 2==0) s += i; } printf(\ }

A. 20 B. 30 C.25 D.45 170以下程序的运行结果是(C )。 void main() {int x = 5; do

{ printf(\ } while(!x); }

A. 5 4 3 2 1 B. 4 3 2 1 0 C.5 D.4 171以下程序的运行结果是(D )。 void main() {int i,j, k=0;

for(i= 3;i>=1;i--) {for(j=i;j<=3;j ++) k += i * j ; } printf(\ } A. 19 B. 29 C.6 D.25

172以下程序运行时,循环体的执行次数是( C )。 void main() {int i,j;

for(i=0,j=1;i<=j+1;i=i+2,j--) printf(\ } A. 3 B. 2 C.1 D.0

173若有定义: int i,x; (A )不是死循环。

A. for(x=5;x>0;x--) ; B. while(x=1) ; C.for(i=10; ;i--) ; D.for( ; ;i+=2) ;

174下面叙述正确的是(D )。

A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体可包含多条语句,但必须用花括号{ }括起来 175以下程序段运行后x的值为(B )。 int i,j,x=0;

for(i=3;i>=1;i--) for(j=1;j<=i;j++) x=x+2;

A. 14 B. 12 C.8 D.10

176以下程序段运行后x的值为( B )。 int i=0,x=2;

while(i++<=5) {x+=2; }

A. 10 B. 14 C.12 D.8

177若有定义: int i,x=0; 语句for(i=1;i<=3;i++) x+=2;与下列( B )程序段不等价。 A. i=1; for( ;i<=3;i++) x+=2; B. i=1; for( ; ;i++) x+=2;

C.for(i=1;i<=3; ) {x+=2; i++;} D.i=1; for( ;i<=3; ) {x+=2; i++; } 178以下程序段运行后x的值为( D )。 int i=0,x=0;

for(;i<=5;i++,i++) {x+=3;}

A. 15 B. 6 C.12 D.9

180设已定义char s[ ]=\,则字符串所占的字节数是( B )。 A. 19 B. 16 C.18 D.14

181数组元素下标的数据类型为( A )。

A. 整型常量、字符型常量或整型表达式 B. 字符串常量 C.实型常量或实型表达式 D.任何类型的表达式 182( B )是正确的数组定义。 A. int n=10,x[n]; B. int x[10];

C.int N=10;int x[N]; D.int n; scanf(\ int x[n];

183若已定义 int arr[10]; 则不能正确引用arr数组元素的是( D )。 A. arr[0] B. arr[1] C.arr[10-1] D.arr[7+3]

184若已定义 int x[4]={2,1,3}; 则元素x[1]的值为( C )。 A. 0 B. 2 C.1 D.3

185以下程序段运行后,x[1]的值为( B )。 int x[5]={5,4,3,2,1};

x[1]=x[3]+x[2+2]-x[3-1];