2021智慧树知到(山东理工大学)《C语言编程新思路》章节测试答案共14章(3)

D、for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

答案:D

4、以下下面程序的运行结果是()。 #include <stdio.h> int main() { int a=1,b=2,c=2,t; while(a<b<c) {t=a;a=b;b=t; c--; } printf(“%d,%d,%d”,a,b,c); }

A、1,2,0

B、2,1,0

C、1,2,1

D、2,1,1

答案:A

5、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是()。 for (i=5;i;i--) for (j=0;j<4;j++){...}

A、20

B、25

C、24

D、30

答案:A

6、下面程序的输出结果是()。 #include <stdio.h> int main() { int i,j; for(i=0,j=10;i<j;i+=2,j--) ; printf("%d %d",i,j); }

A、4 8

B、6 7

C、8 6

D、10 5

答案:C

7、下面关于switch语句和break语句的结论中,说法正确的是()。

A、break语句是switch语句的一部分

B、在switch语句中,可以根据需要使用或者不使用break语句

C、在switch语句中,必须使用break语句

D、break语句是for语句的一部分

答案:B

8、以下不是死循环的语句是()。

A、for(;;x+=i)

B、while(1) {x++;}

C、for(i=10;;i--) sum+=i;

D、for( ;(c=getchar())!=’\n’;) printf(“%c”,c);

答案:D

9、与语句头while(!x)等价的语句头是()。

A、while(x==0)

B、while(x!=0)

C、while(x!=1)

D、while(~x)

答案:A

10、在while(x)语句中的x与下列条件表达式等价的是()。

A、x==0

B、x!=0

C、x!=1

D、x=1

答案:B

11、下面程序的功能是:在输入的一批正数中求最大者,输入0结束循环,选择()填空。 #include <stdio.h> int main() { int a,max=0; scanf("%d",&a); while() { if (max<a) max=a ; scanf ("%d",&a); } printf("%d",max); }

A、a==0

B、a

C、!a==1

D、!a

答案:B

12、下面程序的功能是从键盘输入一行字符,从中统计大写字母和小写字母的个数,选择() 填空。 #include <stdio.h> int main() { int m=0,n=0; char c; while (() != '\n') { if (c>='A' && c<='Z') m++; if (c>='a' && c<='z') n++; } printf("m=%d,n=%d\n",m,n); }

A、c=getchar()

B、getchar()

C、c==getchar()

D、scanf("%c",&c)

答案:A

13、下面程序的输出结果是()。 #include <stdio.h> int main() { int k=0,m=0,i,j; for (i=0; i<2; i++) { for (j=0; j<3; j++) k++ ; k-=j ; } m = i+j ; printf("k=%d,m=%d",k,m) ; }

A、k=0,m=3

B、k=0,m=5

C、k=1,m=3

D、k=1,m=5

答案:B

14、下面程序的输出结果是()。 #include <stdio.h> int main() { char c='A'; int k=0; do { switch (c++) {case 'A': k++; break; case 'B': k--; case 'C': k+=2; break; case 'D': k%=2; continue; case 'E': k*=10; break; default: k/=3; } k++; } while (c<'G'); printf ("k=%d",k); }

A、k=3

B、k=4

C、k=2

D、k=0

答案:B

15、下面程序的运行结果是()。 #include <stdio.h> int main() { int i; for(i=1;i<=5;i++) { if(i%2) printf(“*”); else continue; printf(“#”); } printf(“$\n”); }

A、*#*#*$

B、***$

C、*#*#*#$

D、*#*#$

答案:C

16、下面程序段的运行结果是()。 int x=3; do { printf(" %d\n",x -=2);} while(!(--x));

A、输出的是 1

B、输出的是1和-2

C、输出的是3和0

D、是死循环

答案:B

17、下面程序段的运行结果是()。 x=y=0; while(x<15) y++,x+=++y; printf("%d,%d",y,x);

A、20,7

B、6,12

C、20,8

D、8,20

答案:C

18、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择()填空: #indude <Stdio.h> int main() {int a,b,t; scanf("%d%d",&a,&b); while( 【1】 ) {if(a>b) {t=a;a=b;b=t;} printf("%d,%d",a,b); scahf("%d%d",&a,&b);人 }

A、!a=b

B、a!=b

C、a= =b

D、a=b

答案:B

19、对for(表达式1;;表达式3)可理解为()。

A、for(表达式1; 0;表达式3)

B、for(表达式1;1;表达式3)

C、for(表达式1;表达式1;表达式3)

D、for(表达式1;表达式3;表达式3)

答案:B

20、若i为整型变量,则以下循环执行次数是()。 for (i=2;i==0;) printf("%d",i-- );

A、无限次

B、0次

C、1 次

D、2次

答案:B

第六章测试

1、在C语言中,引用数组元素时,其数组下标的数据类型允许是()。

A、整型常量

B、整型表达式

C、整型常量或整型表达式

D、任何类型的表达式

答案:C

2、以下程序的输出结果是()。 int main() { int a[5]={1,2,3}; printf(“%d\n”,a[3]); }

A、0

B、1

C、3

D、随机值

答案:A

3、以下程序的输出结果是()。 int main(){ int i, k,a[10]={1,5,3,4,2,8,9,6,7,0}; for (i=0,k=0; i<10; i++) if(a[k]<a) k=i; printf("%d",k);}

A、5

B、6

C、7

D、8

答案:B

4、以下程序的输出结果()。 int main(){int i,j,s=0,a[2][3]={1,2,3,4,5,6};for (i=0; i<2; i++) for (j=0; j<3; j++) s=s+a[j];printf(“%d”,s);}

A、10

B、15

C、20

D、21

答案:D

5、有以下程序运行后的输出结果是()。 int main(){int aa[4][4]={{1,2,3,4}, {5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0;for(i=0;i<4;i++)s+=aa[1];printf(“%d ”,s);}

A、11

B、19

C、13

D、20

答案:B

6、数组定义为 int a[3][2]={1,3,4,6,8,10},数组元素()的值为6。

A、a[3][2]

B、a[1][1]

C、a[2][1]

D、a[2][2]

答案:B

7、定义 int a[10][11],则数组a有()个元素。

A、11

B、90

C、110

D、132

答案:C

8、以下不能对二维数组a进行正确初始化的语句是() 。

A、int a[2][3]={0};

B、int a[][3]={{1,2},{0}};

C、int a[2][3]={{1,2},{3,4},{5,6}};

D、int a[][3]={1,2,3,4,5,6};

答案:C

9、若有定义语句:int a[3][5];,按在内存中的存放顺序,a数组的第8个元素是()。

A、a[0][4]

B、a[1][2]

C、a[0][3]

D、a[1][4]

答案:B

10、若有定义 int a[10];则对a数组元素的正确应用是()。

A、a[10.0]

B、a[1+2]

C、a(10)

D、a[10]

答案:B

11、以下能对一维数组a进行正确初始化的语句是()。

A、int a[10]=(0,0,0,0,0)

B、int a[10]={}

C、int a[]={0};

D、int a[10]=10*1;

答案:C

12、以下对二维数组a的正确说明是()。

A、int a[3][];

B、floatf a(3,4);

C、double a[1][4];

D、float a(3)(4);

答案:C

13、若有说明: int a[3][4]={0};则下面正确的叙述是()。

A、只有元素a[0][0]可得到初值0

B、此说明语句不正确。

C、数组a中各元素都可得到初值,但其值不一定为0。

D、数组a中每个元素均可得到初值0

答案:D

14、若有定义:int s[3][4]={{1,2},{0},{3,4,5}};则s[2][1]的值为()。

A、3

B、4

C、0

D、1

答案:B

15、若有定义int a[2][3];则合法引用数组元素的是()。

A、a[0][1/2]

B、a[1][2]

C、a[2][3]

D、a[1][3]

答案:B

16、在以下数组定义中,错误的是()。

A、int a[2][]={1,2,3,4,5};

B、int a[][2]={{0},{1}};

C、int a[2][2]={{1,2},{3}}

D、int a[][2]={1,2,3,4};

答案:A

17、以下程序段执行后p的值是()。int a[3][3]={3,2,1,3,2,1,3,2,1}; int j,k,p=1;for(j=0;j<2;j++)for(k=j;k<3;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

答案:C

18、以下程序段执行后p的值是()。 int a[3][3]={3,2,1,3,2,1,3,2,1}; int j,k,p=1;for(j=0;j<2;j++)for(k=j;k<4;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

答案:A

19、以下程序段运行后s的值是()。 int a[3][3]={1,2,3,4,5,1,2,3,4};int i,j,s=1;for(i=0;i<3;i++)for(j=i+1;j<3;j++)s+=a[j];

A、6

B、120

C、7

D、240

答案:C

20、下面程序段的运行结果是()。 int m[]={5,8,7,6,9,2},i=1;for(i=0;i<6;i++) {if(i % 2 !=0) m+=10; }for(i=0;i<6;i++) printf("%d ",m);

A、5 18 7 16 9 12

B、15 18 17 16 19 12

C、15 8 17 6 19 2

D、5 8 7 6 9 2

答案:A

第七章测试

1、变量的指针,其含义是指变量的()。

A、值

B、名称

C、地址

D、另一个名称

答案:C

2、以下叙述错误的是()。

A、指针变量可以与整数进行加、减算术运算

B、指针变量中存放的是地址值

C、指针变量不占用存储空间

D、多个同类型的指针变量可以指向同一个普通变量。

答案:C

3、已知指针变量P的指向如图1所示,则表达式*P++的值是()。

A、20

B、30

C、21

D、31

答案:A

4、已知指针变量P的指向如图1所示,则表达式*++P的值是()。

A、20

B、30

C、21

D、31

答案:B

5、已知指针变量P的指向如图1所示,则表达式++(*P)的值()。

A、20

以上相关的更多内容请点击智慧树查看,该题目的答案为网上收集整理仅供参考!

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

大家都在搜

相关推荐:

猜您喜欢