C语言基础练习题(1-3) 下载本文

第三部分 循环结构 ·41·

} while(y>=1);

for(j=i-1;j>=0;j--) printf(\ printf(\

}

A. 10000 B. 10010 C. 00110 D. 10100 13. 以下程序运行后,输出结果是( )。

main()

{

int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k; for(k=0;k<4;k++)

if(a1[i]

A. 1234 B. 1324 C. 2413 D. 4321 14. 以下程序运行后,输出结果是( )。

main() {

int i,k,a[10],p[3];

k=5;

for (i=0;i<10;i++) a[i]=i;

for (i=0;i<3;i++) p[i]=a[i*(i+1)]; for (i=0;i<3;i++) k+=p[i]*2; printf(\}

A. 20 B. 21 C. 22 D. 23 15. 以下程序运行后输出结果是( )。 main( )

{

int n[3],i,j,k;

for(i=0;i<3;i++) n[i]=0; k=2;

for (i=0;i

n[j]=n[i]+1; printf(\

A. 2 B. 1 C. 0 D. 3

16. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找

x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是 ( )。 main()

{

int i,a[10],x,flag=0; for(i=0;i<10;i++)

第三部分 循环结构 ·42·

scanf(\

scanf(\

for(i=0;i<10;i++) if _______ {flag=i+1; break;}

printf(\}

A. x!=a[i] B. !(x-a[i]) C. x-a[i] D. !x-a[i] 17. 若说明:int a[2][3]; 则对a数组元素的正确引用是( ) 。

A. a(1,2) B. a[1,3] C. a[1>2][!1] D. a[2][0] 18. 若有定义:int b[3][4]={0};则下述正确的是( ) 。

A. 此定义语句不正确 B. 没有元素可得初值0 C. 数组b中各元素均为0

D. 数组b中各元素可得初值但值不一定为0 19. 若有以下数组定义,其中不正确的是( ) 。

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}};

20. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。 A. t[2][4] B. t[5][0] C. t[0][0] D. t[0,0] 21. 在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。 A. 4 B. 1 C. 2 D. 5 22. 在定义int n[5][6]后第10个元素是( )。

A. n[2][5] B. n[2][4] C. n[1][3] D. n[1][4] 23. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为( )。

(假设c[0][0]位于数组的第一个位置)

A. i*m+j B. j*m+i C. i*m+j-1 D. i*m+j+1 24. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是( )。

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A. 0.0 B. 4.0 C. 5.0 D. 6.0 25. 以下程序运行后,输出结果是 ( )。

main()

{

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

printf(\}

A. 0650 B. 1470 C. 5430 D. 输出值不定 26. 以下程序运行后,输出结果是( )。

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[i][1]; printf(“%d\\n”,s);

第三部分 循环结构 ·43·

}

A. 11 B. 19 C. 13 D. 20 27. 有以下程序

main( ) {

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

for(j=0;j<=i;j++) s+=a[i][j]; printf(\}

该程序的输出结果是( )。

A. 18 B. 19 C. 20 D. 21 28. 若定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( )。

for(i=0;i<3;i++) printf(\

A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 29. 下述对C语言字符数组的描述中错误的是( )。

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出

C. 可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D. 不可以用关系运算符对字符数组中的字符串进行比较 30. 下述对C语言字符数组的描述中正确的是 ( )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间 B. 一维数组的元素在引用时其下标大小没有限制

C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素

31. 不能把字符串:Hello!赋给数组b的语句是( )。

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '};

B. char str[10];str=\

C. char str[10];strcpy(str,\D. char str[10]=\32. 合法的数组定义是( )。

A. int a[]=\ C. int s=\ 33. 下列语句中,不正确的是( )。

B. int a[5]={0,1,2,3,4,5}; D. char a[]={0,1,2,3,4,5};

A. static char a[2]={1,2}; B. static char a[2]={ '1', '2'}; C. static char a[2]={ '1', '2', '3'}; D. static char a[2]={ '1'}; 34. 若给出以下定义:

char x[ ]=\

char y[ ]={'a','b','c','d','e','f','g'};

第三部分 循环结构 ·44·

则正确的叙述为( )。

A. 数组x和数组y等价 B. 数组x和数组y的长度相同

C. 数组x的长度大于数组y的长度 D. 数组x的长度小于数组y的长度 35. 若有数组定义: char array [ ]=\则数组 array所占的空间为( )。

A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 36. 若有定义和语句:

char s[10];s=\

则结果是(以下└┘代表空格)( )。

A. 输出abcd B. 输出a C. 输出abcd└┘└┘└┘└┘ D. 编译不通过 37. 下面程序运行后,输出结果是( )。

main() {

char ch[7]={ \int i,s=0;

for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2) s=10*s+ch[i]- '0'; printf(\}

A. 12ba56 B. 6521 C. 6 D. 62

38. 运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是( )。

A. 123,456,789 B. 1,456,789 C. 1,23,456,789 D. 1,23,456 main() {

char s[100]; int c, i;

scanf(\ printf(\ }

39. 运行下面的程序,如果从键盘上输入: ab<回车> c <回车> def<回车>

则输出结果为( )。

A. a B. a C. ab D. abcdef

b b c c c d d d e f

#include #define N 6 main()

{

char c[N];

第三部分 循环结构 ·45·

int i=0;

for( ;i

printf(\

}

40. 运行下面的程序,如果从键盘上输入:ABC时,输出的结果是( )。

#include

main() {

char ss[10]=\strcat(ss, \

gets(ss);printf(\

}

A. ABC B. ABC9 C. 123456ABC

D. ABC456789

41. 判断两个字符串是否相等,正确的表达方式是( )。

A. while(s1==s2) B. while(s1=s2) C. while(strcmp(s1,s2)==0) D. while(strcmp(s1,s2)=0) 42. 以下程序的输出结果是( )。

main()

{

char str[12]={ 's','t','r','i','n','g'};

printf(\ }

A. 6 B. 7 C. 11 D. 12 43. 若有以下程序片段:

char str[ ]=\printf(\

上面程序片段的输出结果是 ( )。

A. 3 B. 4 C. 6 D. 12 44. 若有以下程序段,输出结果是( )。

char s[ ]=\printf (\A. 9

B. 12 C. 13 D. 14

45. 设有static char str[ ]=\

则执行printf(\后的输出结果为 ( )。

A. 5 B. 7 C. 12 D. 14 46. 以下程序运行后,输出结果是( )。

main()

{

char cf[3][5]={\printf(\

}

A. \B. \