day 17 i++优先级大于 *i


(1).有下列定义语句,int *p[4];以下选项中与此语句等价的是【C】

(A).int p[4];

(B).int **P;

(C).int *(p[4]);

(D).int (*p)[4];

分析:int *p[4];是指针数组

int p[4];定义了一个一维数组

int **P;定义了一个二级指针

int *(p[4]);定义了一个指针,指针指向的是一个有4个元组组成的数组

int (*p)[4];是数组指针

(2).以下不能将s所指字符串正确复制到t所指存储空间的是【C】

(A).while(*t=*s){t++;s++}

(B).for(i=0;t[i]=s[i];i++)

(C).do{*t++=*s++;}while(*s);

(D).for(i=0,j=0;t[i++]=s[j++];);

 这个题看的时候确实有点懵:后来才发现主要是看优先级的问题,自增的优先级大于取值运算符(指针变量*),所以进入循环的时候,先自增,因此就会漏掉第一个字符。

(3).有以下程序:

 程序运行后的输出结果是【B】

(A).ABCDE\0FG\0IJK

(B).ABCDIJK

(C).IJK

(D).EFGIJK

遇到\0会提前停止

(4).若有以下语句:

typedef struct S{

  int g;

  int h;

}T;

以下叙述中正确的是【B】

(A).可用S定义结构体变量

(B).可用T定义结构体变量

(C).S是struct类型的变量

(D).T是struct S类型的变量

分析:typedef struct S 是定义结构体类型 S是定义的结构体类型的名称。

T是 结构体struct S的别名,不是struct S的变量。

(5).再长度为n的线性表中,寻找最大项至少需要比较【n--1】次

线性表可以是无序的,所以要一个个进行比较,最坏的情况是n-1次,如果是有序的线性表,进行二分查找,则最坏的情况是log2n次。

(6).有以下程序:

 程序运行时输入:1234567程序的运行结果是【C】

(A).34567

(B).34579

(C).15

(D).12

分析:scanf(“%2d”)函数2d代表宽度为2(不论数输出多少个,只会接收2位),正数表示右对齐,负数表示左对齐。

(7).有以下程序:

 程序运行的结果是【3】。

n【0】=n【0】+1=1

n【1】=n【0】+1=1+1=2

n【0】=n【1】+1=2+1=3

(8).软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是【C】

(A).编译程序

(B).操作系统

(C).教务管理系统

(D).汇编程序

分析:编译程序  属于支撑软件

操作系统 属于系统软件

教务管理系统 属于应用软件