C期末考试复习题2 1

发布 2021-04-21 12:05:28 阅读 6714

(1)inta[4]=;其中a[3]的值为(d)。

a.5b.3c.8d.9

2)以下4个数组定义中,(d)是错误的。

n=5;longb[n];

3)对字符数组进行初始化,( b)形式是错误。

5)在数组中,数组名表示(a.)。

a.数组第1个元素的首地址b.数组第2个元素的首地址。

c.数组所有元素的首地址d.数组最后1个元素的首地址。

6)若有以下数组说明,则数值最小的和最大的元素下标分别是(b)。

inta[12]=;

a.1,12b.0,11c.1,11d.0,12

7)若有以下说明,则数值为4的表达式是(d)。

inta[12]=;charc=’a’,d=4,g=3

d'-'c']'d'-c]

8)设有定义:chars[12]="string";则printf("%d",strlen(s));的输出是(a)。

a.6b.7c.11d.12

9)设有定义:chars[12]="string";则printf("%d",sizeof(s));的输出是(d)。

a.6b.7c.11d.12

10)合法的数组定义是(a)。

string";

string";

11)下面的程序中哪一行有错误(d)。

#include<>

main();第a行。

inti;for(i=0;i<5;i++)

scanf("%f",&array[i]);

for(i=1;i<5;i++)

array[0]=array[0]+array[i];/第b行。

printf("%f",array[0]);第c行}

a.第a行b.第b行c.第c行d.没有。

12)下面哪一项是不正确的字符串赋值或赋初值的方式(c)。

string";'s','t','r','i','n','g'};string";

string",str2=12345678";

13)若有以下说明和语句,则输出结果是哪一项(c)。

strlen(s)为求字符串s的长度的函数)

chars[12]="abook!";printf("%d",strlen(s));

a.12b.8c.7d.11

14)若有以下说明和语句,则输出结果是(c)。

charstr=c:\\printf("%s",str);

a.字符串中有非法字符b.\"c:\\c."c:\"d."c:\\

15)若有以下语句,则下面是正确的描述。

charx=123456";

chary=b )

数组与y数组长度相同。数组长度大于y数组长度。

数组长度小于y数组长度。数组和y数组的赋值是非法的。

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

a)整型常量b)整型表达式。

c)整型常量或整型表达式 d)任何类型的表达式。

17)以下对一维整型数组a 的正确说明是。 d

a)inta(10b)int n=10,a[n];

c) int nd) #define size 10

scanf(“%d”,&nint a[size];

int a[n];

18)若有说明:int a[10];则对a 数组元素的正确引用是。 c

a)a[10] b)a[3.5] c)a(5) d)a[10-10]

19)在c 语言中,一维数组的定义方式为:类型说明符数组名; (c)

a)[整型常量表达式b)[整型表达式]

c)[整型常量] 或[整型表达式d)[常量]

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

a)int a[10]=(0,0,0,0,0b)int a[10]={

c)int a=

4 int i;

5 for(i=0;i<3;i++)scanf(“%d”,&a[i]);

6 for(i=1;i<3;i++)a[0]=a[0]+a[i];

7 printf(“%d”,a[0]);

a)第3 行有错误 b)第7 行有错误。

c)第5 行有错误 d)没有错误。

22)下面程序中有错误9*/的行是(每行程序前面的数字表示行号)。(d)

1 main()

4 int i;

5 scanf(“%d”,&a);

6 for(i=1;i<3;i++)a[0]=a[0]+a[i];

7 printf(“a[0]=%d”,a[0]);

a)3 b)6 c)7 d)5

23)下面程序(每行程序前面的数字表示行号)。 d)

1 main()

4 int i;

5 for(i=0;i<3;i++)scanf(“%f”,&a[i]);

6 for(i=1;i<4;i++)a[0]=a[0]+a[i];

7 printf(“%f”,a[0]);

a)没有错误b)第3 行有错误。

c)第5 行有错误 d)第6 行有错误。

24)对以下说明语句的正确理解是。 (b)

int a[10]=;

a)将5 个初值依次赋给a[1]至a[5]

b)将5 个初值依次赋给a[0]至a[4]

c)将5 个初值依次赋给a[6]至a[10]

d)因为数组长度与初值的个数不相同,所以此语句不正确。

1.变量的指针,其含义是指该变量的___b___

a)值b)地址。

c)名d)一个标志。

2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是___d__.

a)a,point,*&ab)&*a,&a,*point

c)*&point,*point,&a d)&a,&*point ,point

3.若有说明;int *p,m=5,n;以下正确的程序段的是___d___

a)p=&nb)p=&n;

scanf("%d",&p); scanf("%d",*p);

c)scanf("%d",&n); d)p=&n;

*p=np=m;

4. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是___b___

main()

int *p,*q,a,b;

p=&a;printf(“input a:”)

scanf(“%d”,*p);

a)*p表示的是指针变量p的地址。

b)*p表示的是变量a的值,而不是变量a的地址。

c)*p表示的是指针变量p的值。

d)*p只能用来说明p是一个指针变量。

5. 已有变量定义和函数调用语句:int a=25; print_value(&a); 下面函数的正确输出结果是___d___

voidprint_value(int *x)

printf(“%d”,+x);}

a)23b)24 c)25 d)26

6.若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是a

a) *p=&a;scanf("%ld",p);

b) p=(long *)malloc(8);scanf("%ld",p);

c) scanf("%ld",p=&a);

d) scanf("%ld",&a);

7.有以下程序b

#include<>

main()

int m=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf("%d,%d,%d,%d",m,n,*p,*q);

C期末考试复习题

c 期末考试复习题。一 选择题。1.在声明类时,下面的说法正确的是 c a.可以在类的声明中给数据成员赋初值 b.数据成员的数据类型可以是register 可以按任意顺序出现 d.没有用 private public protected定义的数据成员是公有成员。2.在一个类的定义中,包含有 c 成员...

C 期末考试复习题

一 选择题。1.在声明类时,下面的说法正确的是 c a.可以在类的声明中给数据成员赋初值 b.数据成员的数据类型可以是register 可以按任意顺序出现 d.没有用 private public protected定义的数据成员是公有成员。2.在一个类的定义中,包含有 c 成员的定义。a.数据 b...

c期末考试复习题

1.程序中主函数的名字为 a.main b.main c.main d.任意标识符。2.关于c 程序的书写,下列不正确的说法是 a.区分大小写 b.一行可以写多条语句 c.一条语句可写成多行。3.能正确表示逻辑关系 a 10 或a 0 的c 语言表达式是 a.a 10 or a 0 b.a 10 a...