【PTA】客观题NO.9

您所在的位置:网站首页 fun指针 【PTA】客观题NO.9

【PTA】客观题NO.9

2023-08-06 02:14| 来源: 网络整理| 查看: 265

1-1

如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。

语法/原型:

int strcmp(const char* stri1,const char* str2);

参数 str1 和 str2 是参与比较的两个字符串。strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不同的字符,或者到达字符串末尾(遇见\0)。返回值:

如果返回值 < 0,则表示 str1 小于 str2。如果返回值 > 0,则表示 str2 小于 str1。如果返回值 = 0,则表示 str1 等于 str2。

T

F

1-2

c语言的数组下标从0开始。

(1分)

T

F

1-3

数组初始化时,初始值个数小于数组元素的个数,C语言自动将剩余的元素初始化为初始化列表中的最后一个初始值。

字符数组 \0

整型数组 0

(1分)

T

F

1-4

数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址,是一个常量,不能被修改。

(1分)

T

F

1-5

== can be used to compare two strings.

(1分)

T

F

1-6

指向数组元素的指针只可指向数组的首元素。

(1分)

T

F

1-7

数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址。

(1分)

T

F

1-8

二维数组的元素在内存中按行/列方式存放,即先存放第0行的元素,再存放第1行的元素……其中每一行的元素再按照列的顺序存放。

(1分)

T

F

1-9

若有定义int a[]={2,4,6,8,10},a[1]和a++表示的含义相同。

a[1] == *(a+1)

a++不允许!a是常量!

T

F

(0 分)

1-10

数组的长度可以是变量。

(1分)

T

F

1-11

执行语句int *p = 1000;后,指针变量p指向地址为1000的变量。

(1分)  p是指针, p=1000 是把p指向了地址为1000的值(没实际意义

T

F

1-12

不同类型的指针变量是可以直接相互赋值的。

(1分)

T

F

1-13

要通过函数调用来改变主调函数中某个变量的值,可以把指针作为函数的参数。

(1分)

T

F

1-14

对于定义int a[10],*p=a; 语句p=a+1;和a=a+1;都是合法的。

a是常量!

T

F

1-15

在C语言中,数组名是不可改变的,不能对它进行赋值运算。

(1分)

T

F

2-1

为了判断两个字符串s1和s2是否相等,应当使用下列哪个语句( )。

(2分)

A.

if(s1==s2);

B.

if(strcmp(s1,s2)==0);

C.

if(s1=s2);

D.

if(strcpy(s1,s2));

2-2

设有二维数组定义及初始化 int a[][3] = {{1,4}, {3,2}, {4,5,6}, {0}}; 则元素 a[2][1] 的值是______。

(2分)

A.

2

B.

5

C.

6

D.

4

2-3

一维数组初始化 以下关于数组定义时进行初始化的描述中,( )选项是错误的。

(2分)

A.

int d[5]; 数组d中的值是无法预知。

B.

int d[5]={0}; 数组d中的值全为0;

C.

int d[5]={1}; 数组d中的值全为1;

D.

int d[5]={1}; 数组d中的值第1个为1,其余均为0;√

2-4

若想将一个字符数组a的内容存入另一个字符数组b中,下列正确的是( ).

(2分)

A.

strcpy(a,b);

B.

trcat(b,a);

C.

b=a;

D.

strcpy(b,a);

2-5

下述对C语言字符数组的描述错误的是( )

(2分)

A.

字符数组可以存放字符串

B.

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

C.

可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D.

不可以用关系运算符对字符数组中的字符串进行比较

2-6

在C/C++语言中引用数组元素时,数组下标的要求,下列选项中最合适的是( ) 。

(2分)

A.

整型常量

B.

整型变量

C.

整型表达式

D.

任何类型的表达式

2-7

有数组初始化语句“int a[] ={1,2,3,4,5,6,7,8,9,10};”,则数值最小和最大的元素下标分别是( )。

(2分)

A.

1,10

B.

0,9

C.

1,9

D.

0,10

2-8

有数组定义语句“int i=3,a[20];”,则元素引用错误的是( ) 。

(2分)

A.

a[7*i-1]

B.

a[2*i*i+1]

C.

a[3*i+1]

D.

a[0]

2-9

有初始化语句“int a[3][4]={1,3,5,7,9};”,则a[1][2]的值为( )。

(2分)

A.

0

B.

3

C.

5

D.

9

2-10

根据声明int a[10], *p=a; ,下列表达式错误的是( )。

(2分)

A.

a[9]

B.

p[5]

C.

a++

D.

*p++

2-11

下面程序的输出结果是( )。

# include

void fun (int *x, int *y)

{

    printf("%d%d", *x, *y);

    *x = 3;

    *y = 4;

}

int main(void)

{

    int x=1, y=2; 

    fun(&x, &y); 

    printf("%d%d", x, y);

    return 0;

}

(2分)

A.

2134

B.

1212

C.

1234

D.

2112

2-12

已有定义int k=2; int *ptr1, *ptr2; 且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。

(2分)

A.

k = *ptr1 + *ptr2;

B.

ptr2 = k;

C.

ptr1 = ptr2;

D.

k = *ptr1 *(*ptr2);

2-13

执行以下程序后,y的值是:

int main ( )

 {

    int a[]={2,4,6,8,10};

    int y=1,x,*p;

    p=&a[1];

    for(x=0;x

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

    fun(a,5);

    for(i=0;i



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3