(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).汇编程序
分析:编译程序 属于支撑软件
操作系统 属于系统软件
教务管理系统 属于应用软件