A. 若引用a[10],编译时报错 C. 若引用a[10],运行时出错 A. gets(字符数组)
C. strlen (字符串) 二 判断
B. 若引用a[10],连接时报错 D. 若引用a[10],系统不报错
33.aC语言中实现字符串输入的库函数是______。
B. puts(字符数组) D. strcmp(字符串1,字符串2)
1. 若字符串串长为n个字节,则其占用内存空间为n+1个字节。T
2. 设已定义:float a[5][4];并赋值,要求每行输出4个数,则以下输出二维数组a的程序段是正确的:
for(i=0;i<5;i++)
for(j=0;j<4;j++) printf(\ F
3. 定义一维数组int a[10];则语句for(i=0;i<10;i++) scanf(\;是正确的。F
4. 对二维数组元素赋初值:int a[3][4]={5,12,7,4,8,3,9,24,11,2,6,4,}, 则其中数组元素a[2][2]的值为3。F 5. 下面字符串赋值的方式是正确的: char str1[10];str1=\。F 6. C语言中数组所占存储单元的多少仅由数组的长度决定。F
7. 可以把二维数组看作是一种特殊的一维数组:它的每一个元素又是一个一维数组。T
8. 数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构类型。T
9. 定义字符数组c[6],可以使用格式符%s实现字符串整体的输入和输出,则语句scanf(\是正确的。F 10. 数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度。T 11. 给二维数组的全部元素赋初值,可以不指定第二维的长度,但第一维的长度不能省略。F 12. 由于二维数组在内存中是按行存放的,因此二维数组的初始化也是按行进行赋值的。T 13. 用字符串为字符数组赋初值:char c[ ]={\;则数组c的长度是3。F 14. 在字符数组中,每一个元素只能存放一个字符。T 15. 二维数组在内存中占用一串连续的存储单元。T 三 填空 1. main()
{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a[j][i]=0; for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf(\printf(\输出:__1 2 3____
2. 以下程序运行后的输出结果是: main()
{ int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf(\输出:___1 3 7 15____
ELEVEN 一 单项
1.d 以下数组定义中正确的是______。 A. float f[3,4];
B. int a[ ][4];
C. char c(3);
D. double d[3+2][4];
2.a一维数组初始化时,若对部分数组元素赋初值,则下面正确的说法是______。
A. 可以只对数组的前几个元素赋初值 B. 可以只对数组的中间几个元素赋初值 C. 可以只对数组的后几个元素赋初值 D. 以上说法全部正确
3.d若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10}; char c='a'; 则数值为4的表达式是______。 A. a['f'-c]
B. a[4] C. a['d'-'c'] D. a['d'-c]
4.c当执行下面程序时,输出结果是______。
#include
{ int i; char b[6]={\; for(i=0;i<=4;i++) printf(\; } A.\ B.'1''2''3''4''5' C.12345 A. 数组首地址
D.1,2,3,4,5
D. 数组元素的个数
5.a用数组名作为函数调用时的实参,实际上传送给形参的是______。
B. 数组的第一个元素值 C. 数组中全部元素的值
6.c若已有char b[10]={'0','1','2','3','4'},则______。
A.元素b[5]到b[9]没有被赋值 B.元素b[5]到b[9]不存在 C.元素b[5]到b[9]自动为空字符 D.元素b[5]到b[9]自动为0字符 7.d决定数组所占内存单元多少的是______。
A. 数组的长度
B. 数组的类型
C. 数组在初始化时被赋值的元素的个数 D. 数组元素的个数及其类型 8.d已知有char a[]={\;a数组的长度是______。 A.7 A. 'L' A.3
B.8
C.9
D.10
9.a若定义数组并初始化char a[10]={\该数组的元素中 a[2]是______。
B. 'E' C. 'H' D. 'O' B.2
C.5
D.6
10.d设有数组定义: char a[2][3]={{'a','b'},{'e'}};则数组a所占空间的字节数为______。 11.b数组初始化时,下面说法错误的是______。
A.当对一维数组的全部元素赋初值时,可以不指定长度 B.当对二维数组的全部元素赋初值时,可以省略维数 C.用字符串对一维字符数组赋值时,可以不指定长度 D.用字符串对二维字符数组赋值时,可以省略维数
12.c如已有定义:int a[4];若要把10,20,30,40分别赋值给数组a的4个元素,下面正确的赋值方式是______。
A. scanf(\; B. scanf(\
C. a[0]=10;a[1]=a[0]+10;a[2]=a[1]+10;a[3]=a[2]+10; D. a={10,20,30,40};
13.a若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'},指出以下会导致错误的语句______。 A. printf(\; A. '5'
B. 5
B. printf(\; C. printf(\; D. printf(\;
14.c设定义了:char a[10]={'1','2','3','4','5'}; 则a[5]的正确初值是______。
C. '\\0' D. ' '
15.a以下程序的输出结果是______。
#include
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf(\; } A.0650
B. 1470 C. 5430
D.输出值不确定
16.d下面程序的输出是______。
#include
{ struct cmplx int x;inf y;}cnum[2]={1,3,2,7}; printf(“%d、n”,cnum[0].y/cnum[0].x*cnum[1].x);} A.0
B.1
C.3
D.6
17.c若定义数组并初始化
int i,j,a[2][3]= {{1,2},{3,4},{5,6}}; for(i=0;i<2;i++)
for(j=0;j<3;j++) printf(\;语句的结果是哪一个______。 A. 1,2,3,4,5,6 B. 1 2 3 4 5 6 C. 120340 A. 表达式b[1][2]的值为1 C. 表达式b[1][2]的值为6 A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过运算符“=”对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 20.c设有程序:
#include
{ int i,a[5]; printf(\; for (i=0;i<=4;i++) scanf(\,( )); ... ...
printf(\输出数组:\\n\;
for(i=0;i<=4;i++) printf(\ )); } 则在程序中的两个括号中应填入______。 A. a[i]和&a[i] B. &a[i]和&a[i]
C. &a[i]和a[i]
D. a[i]和a[i]
21.a若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立______。
A.a[10]是a数组的最后一个元素的引用 B.a数组中有10个元素 C.a数组中每个元素都为整数 D.a数组是整型数组 22.d已定义:float a[5]; 则数组a可引用的元素有______。
A. a[1]~a[5] A. *,*
B. a[0]~a[5]
C. a[1]~a[4]
D. a[0]~a[4]
D. *,空白符
D. 15,a[4][2]
23.d设有定义:char a[][5]={{'*'},{'*',' ','*'},{'*',' ',' ',' ','*'},{'*',' ','*'},{'*'}}; 则a[0][0]和a[4][4]的初值分别为______。
B. 空格,空格 C. 空白符,*
B. 15,a[3][5]
24.d设有程序段: #define N 3 #define M N+2 float a[M][N]; 则数组a的元素个数和最后一个元素分别为______。 A. 15,a[5][3]
#include
void main( ) {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(“%d、n”,*(p2));} A.3
B.4
C.1
D.2
26.d阅读程序:
f(int b[],int n) { int i,r=1;
for(i=0;i<=n;i++) r=r*b[i]; return r; } main()
{ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3); printf(\; } 以上程序的输出结果是______。 A. 720 B. 6
C.24
D. 120
C. 8,a[4][2]
25.a下面程序的输出是______。
D. 1 2 0 3 4 0
18.c若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立______。
B. 表达式b[1][2]的值为4 D. 表达式b[1][2]的值为2
19.c下述对C语言字符数组的描述中错误的是______。
27.a若有数组定义 char str[10]={\;则执行printf(\;后,输出结果是______。
A.输出第1,第2,第3个元素的值 B.输出str[1],str[2],str[3]的值 C.输出全部元素 D.输出格式描述不正确 28.d在对二维数组初始化时,错误的说法是______。
A.可对二维数组的全部元素赋初值 B.可对二维数组的部分元素赋初值
C.给二维数组的全部元素赋初值时,可以不指定第一维的长度但第二维的长度不能省略 D.给二维数组的全部元素赋初值时,可以不指定第二维的长度但第一维的长度不能省略 29.c若定义数组并初始化char a[20]= \; printf(\语句的结果是哪一个______。 A. hello
A. 15 ______。 A. Hello
B. Hello word
C. world
D. 不确定
32.b以下数组定义中,不正确的是______。
A.int b[3][4]; 33.d指出以下错误语句______。
A. 用#define N 10语句定义了n后,可以使用char str[N+1];语句定义数组 B. 在用#define N 10语句定义了n后,可以使用char str[N];语句定义数组 C. 在用#define n 10语句定义了n后,可以使用char str[n];语句定义数组 D. int x=10; int a[x]; 二 判断
1. 可以用如下的语句定义数组a:int n=10,a[n]; F
2. 设需定义一个有15个元素的数组a,并对其前5个元素赋初值,可用如下语句实现:int a[]={1,2,3,4,5}; F 3. 数组中的所有元素必须属于同一种数据类型。T
4. 定义数组: int a[10]; 则数组a的最后一个元素是a[9],数组 a共有9个元素。 F 5. 语句printf(“%d\\n”,strlen(“\\t\\”\\065\\xff\\n”))输出项不合法,无正常输出。F
6. 在计算机中二维数组的元素是按行顺序存放的,即在内存中,先顺序存放二维数组第一行的元素,再顺序存放二数组第二行的元素,以此类推。T
7. 数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。F 8. 设定义了:char c[]={\则字符数组c在内存中占用5个字节的内存单元。T 9. C语言只能单个引用数组元素而不能一次引用整个数组。T
10. 设已定义:double a[5][5]; 则数组a在内存中的存放顺序是:a[0][0],a[0][1],a[0][2], ... ,a[4][3],a[4][4] 。T 11. 在C语言中,可以用表达式:\比较字符串的大小。F
12. 设已定义:char a[3][5]; 则可用语句 scanf(\给数组a输入15个字符之内的字符串。 T 13. 设有int a[2][3],元素a[1][2]是数组中第六个元素。T
14. C语言数组的下标从0开始,下标必须是整数型的常量或变量。T 15. C语言中数组元素用数组名后带圆括弧的下标表示。F 三 填空
1. #include
void main( )
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf(\输出:__0650_______ 2. #include
#include
{ char ss[10]={\ gets(ss);
B.int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};
C.int b[200][100]={0}; D.int c[ ][3]={{1,2,3},{4,5,6}};
B. Hello
C. HELLO D. 不确定
30.c已定义:int a[15]; 则数组a占用的内存单元数是______。
B. 16 C. 30 D. 32
31. b若定义数组并初始化char a[20]= \使用函数调用strcat(a,\world\后, printf(\a)语句的结果是哪一个
strcat(ss,\ printf(\
如果输入ABC,则输出:_ABC6789_____
TWELVE 一 单项
1.a下面给出的是使用typedef 定义一个新数据类型的4项工作,如果要正确定义一个新的数据类型,进行这4项工作
的顺序应当是______。 1.把变量名换成新类型名 3.用新类型名定义变量
2.按定义变量的方法写出定义体 4.在最前面加上关键字 typedef
D. 4,2,3,1
A. 2,4,1,3 B. 1,3,2,4 C. 2,3,4,1
A. q->next=NULL;p=p->next;p->next=q; B. p=p->next;q->next= p->next; p->next=q; C. p=p->next;q->next= p; p->next=q;
2.c 设有以下链表,则不能将q所指的结点插入到链表末尾的是______。
D. p=(*p).next;(*q).next= (*p).next; (*p).next=q; 3.b阅读程序,选择正确的输出结果______。
#include
{ int i[2]; long k; char c[4]; } t, *s = &t; s->i[0] = 0x39; s->i[1] = 0x38; printf(\ } A. 39 struct student {int age; int num; }stu,*p; p=&stu;
A. stu.age B. p->age C. (*p).age D. *p.age
5.c设有以下说明 union { int i; char c; float f; }a; 则错误的叙述是______。
A. a所占的内存长度等于成员f的长度 B. a的地址和它的各成员地址都是同一地址 C. a可以作为函数参数 D. 不能对a赋值,也不能在定义a时对它初始化 6.c阅读程序,选择正确的输出结果______。 #include
{ char c; int i; }t; t.c = 'A'; t.i = 1;
printf(\ A. 65,1 B. 65,65
C. 1,1 D. 以上都不对
7.a结构体类型变量所占内存是______。
A. 各成员所需内存的总和 B. 结构体中第一个成员所需内存量 C. 结构体中占内存量最大者所需内存量 D. 结构体中最后一个成员所需内存量 8.d对结构体类型变量定义不正确的是______。
A. #define STUDENT struct student B.struct student STUDENT { char name; {char name; int num; int num; }stu;
B. 9 C. 38 D. 8
4.d设有以下定义,则不正确的引用是______。