C语言实验与习题(注释版) 下载本文

C语言练习题

19. 以下程序段的运行结果是()。

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

13

期末复习题集

5. 第六章 循环控制

1. 下面叙述正确的是( )

A) 在for循环中,不能用break语句跳出循环体

B) For循环的循环体可包含多条语句,但必须用花括号{}括起来 C) For循环是先执行循环体语句,后判断表达式 D) For循环只能用于循环次数已经确定的情况

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

A) i=1; for(;i<=3;i++) x+=2; C) for(i=1;i<=3;) {x+=2;i++;} B) i=1; for(;;i++) x+=2; D) i=1; for(;i<=3;) {x+=2;i++;}

3. 以下程序段运行后x的值为()

int i=0,x=0;

for(;i<=5;i++,i++) {x+=3;} A) 12 B) 6 C) 9 D) 15

4. 若有定义:int i,x; ( )不是死循环

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

5. 以下程序运行后x的值为()。

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

A) 8

B) 12

C) 14

D) 10

6. 对于整型变量x,与while(!x)等价的是( )。

A) while(x!=0) C) while(x!=1) B) while(x==0) D) while(~x)

7. 对于整型变量x和y,语句

for(x=0,y=0;(y!=123)&&(x<4);x++) y++;

中的“y++;”被执行( )。 A) 4次 B) 0次 C) 123次 D) 3次 8. 在c语言中while循环和do--while循环的主要区别是( )。

A) do--while循环体内可以使用break语句,while循环体内不能使用break语句

B) do--while循环体内可以使用continue语句,while循环体内不能使用continue语句 C) while的循环体至少无条件执行一次,do--while的循环体不是 D) do--while的循环体至少无条件执行一次,while的循环体不是 9. 设有整型变量x,下述语句( )不会出现死循环。

A) for(;;x+=1); C) while(1) {x++;} B) for(;(x=getchar())!='\\n';); D) for(x=10;;x--);

14

C语言练习题

6. 第七章 数组

1. 下面叙述错误的是()

A) 数组中每个元素都属于同一个数据类型 B) C语言数组长度在定义数组时可不作确定 C) C语言数组名称是数组在内存中的首地址

D) C语言规定可逐个引用数组元素但不能一次引用整个数组。 2. ()是正确的数组定义。

A) int n=5;int arr[n]; C)B) int n;n=5;int arr[n]; D)3. 下列数组声明中,正确的是( )。

A) int a[5]={0}; C)B) int a[]={0 1 2};

D)4. 已知 int a[10]; 则对a数组元素引用不正确的是( )。A) a[10] B) a[3+5] C)5. 设有如下数组定义: char str[8]={ \

则分配给数组str的存储空间是( )个字节。 A) 6 B) 7 C)6. 下列数组声明中,正确的是( )。 A) int a[10]; C)B) int n=10,a[n];

D)7. 若有定义:int a[3]={0,1,2};则a[1]的值为( )。

A) 0 B) 1 C)8. 有如下定义

int a[][3]={1,2,3,4,5,6,7,8};

则数组a的行数是( )。 A) 2 B) 3

C)9. 若有定义:int a[10],i=2; 能正确引用a数组元素的是( ).

A) a[9+i] B) a[10] C)10. 以下数组定义中,正确的是( )。 A) int a[2][3]={1,2,3,4,5,6,7};

B) int a[][]={{1,2,3},{4,5,6},{7,8,9}}; C) int a[2][]= {1,2,3,4,5,6}; D) int a[][4]= {6};

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

A) int a[5]=(0,0,0,0,0); C)B) int a[5]=[0]; D)12. 以下程序段运行后x的值为( )。

int arr[10]; int N=5,arr[N];

int a[5]=0; int a[];

a[10-10] D) a[5]

8 D) 9

int N=10;int a[N];

int n;scanf(\

2 D) 3

4 D) 无法确定的

a[10-i] D) a(7)

int a[5]={1,2,3,4,5,6,7}; int a[]={0}; 15

期末复习题集

Int a[8]={1,2,3,4,5,6,7,8},i,x=0; For(i=1;i<8;i++,i++) x=x+a[i]; A) 18 B) 20

C) 16 D) 36

13. 若有定义:int arr[15],n=5;无法正确引用arr数组元素的是() A) arr[n] B) arr[0] C) arr[10+n] D) arr[15-n]

14. C语言中,二维数组元素在内存中的存放顺序是( )

A) 随机存放 C) 由用户自己定义 B) 按行存放 D) 按列存放

15. 以下程序段的运行结果是()

int t[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%d\\n”,t[1][1]); A) 4 B) 3 C) 1 D)16. 以下程序段运行后x的值为() int a[]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[1];

for(i=0;i<3;i++) x*=*(p+i); A) 24 B) 120

C) 1 D) 17. 若有定义:int a[3][4]={{1,2},{3,4},{5,6,7}};则a[1][1]的值为()。

A) 3 B) 1 C) 2 D) 18. 以下程序段运行后s的值是()。

int a[3][3]={1,2,3,1,2,3,1,2,3}; int i,j,s=0;

for(i=0;i<3;i++) for(j=i;j<3;j++) s+=a[i][j];

A) 15

B) 12

C) 14

D) 19. 设有如下程序段:

int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0; for(i=0;i<3;i++) for(j=0;j

则执行该程序段后,s的值是( )。 A) 0 B) 1

C) 2 D) 20. 若有定义:int i=0,x=0;int a[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为( )。for (;i<3;i++) x+=a[i][2-i]; A) 0 B) 12 C) 15 D) 21. 以下程序段的运行结果是() char a[]=”abcdef”;

5

6

4

13

3

18 16