50 喜欢·58 浏览
单选题

在嵌套使用 if 语句时, C 语言规定 else 总是

A
) 和之前与其具有相同缩进位置的 if 配对
B
) 和之前与其最近的 if 配对
C
) 和之前与其最近的且不带 else 的 if 配对
D
) 和之前的第一个 if 配对

题目答案

C

答案解析

答案 C解析: C 语言规定, else 总是与它之前最近的且不带 else 字句的 if 配对。
举一反三
单选题

若有以下函数首部

int fun(double x[10], int *n)

则下面针对此函数的函数声明语句中正确的是

A
)int fun(double x, int *n);
B
)int fun(double , int );
C
)int fun(double *x, int n);
D
)int fun(double *, int *);

题目答案

D

答案解析

答案 D解析 : 函数首部 int fun(double x[10],int *n) 表示这个函数的返回值是整型,其第 1 个形式参数是一个双精度的一维数组,第 2 个参数是一个整型指针。在 C 语言中,一维数组的名字表示的是一维数组的地址,所以选项D是正确的。
单选题

下列叙述中,不符合良好程序设计风格要求的是

A
程序的效率第一,清晰第二
B
程序的可读性好
C
程序中要有必要的注释
D
输入数据前要有提示信息

题目答案

A

答案解析

暂无解析
单选题

若有定义语句: int k[2][3],*pk[3]; , 则以下语句中正确的是

A
) pk=k;
B
) pk[0]=&k[1][2];
C
) pk=k[0];
D
) pk[1]=k;

题目答案

B

答案解析

答案 B解析 : *pk[3] 表示的是一个共有 3 个元素的一维指针数组 。 pk[0]=&k=[1] [2] 表示把二维数组中下标为k[1][2]的值赋予 pk[0], 也就是 pk[0] 指向 k[1][2] 这个元素。
单选题

有以下程序

void change(int k[ ]){ k[0]=k[5];}

main()

{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

while( n<=4 ) { change( &x[n]) ; n++; }

for(n=0;n<5;n++) printf("%d ",x[n]);

printf("\n");

}

程序运行后输出的结果是

A
)6 7 8 9 10
B
)1 3 5 7 9
C
)1 2 3 4 5
D
)6 2 3 4 5

题目答案

A

答案解析

。此时数组中的元素是 “ 6,7,8,9,10 , 6,7,8,9,10 ” 。
单选题

(13) 已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是______。

A
cedba
B
acbed
C
decab
D
deabc

题目答案

A

答案解析

暂无解析
单选题

若要求定义具有 10 个 int 型元素的一维数组 a ,则以下定义语句中错误的是

int a[N];

int a[2*n];

A
) #define N 10
B
) #define n 5
C
) int a[5+5];
D
) int n=10,a[n];

题目答案

D

答案解析

答案 D解析:在选项 D 中, n 是一个整型的变量。 C 语言规定,在一维数组的定义中,其下标只能是常量表达式,不能包含变量。
单选题

以下语句中存在语法错误的是

A
)char ss[6][20]; ss[1]="right?";
B
)char ss[][20]={"right?"};
C
)char *ss[6]; ss[1]="right?";
D
)char *ss[]={"right?"};

题目答案

A

答案解析

答案 A解析:不能用赋值将一个字符串常量直接赋给一个字符串数组。
单选题

下列叙述中正确的是。

A
程序执行的效率与数据的存储结构密切相关
B
程序执行的效率只取决于程序的控制结构
C
程序执行的效率只取决于所处理的数据量
D
以上三种说法都不对

题目答案

A

答案解析

暂无解析
单选题

若有定义 :char *x="abcdefghi"; ,以下选项中正确运用了 strcpy 函数的是

A
)char y[10]; strcpy(y,x[4]);
B
)char y[10]; strcpy(++y,&x[1]);
C
)char y[10],*s; strcpy(s=y+5,x);
D
)char y[10],*s; strcpy(s=y+1,x+1);

题目答案

D

答案解析

答案 D解析 : 在字符拷贝函数中 strcpy( 字符数组 1 , 字符串 2) 中 , “ 字符数组 1 ” 必须写成数组名的形式,而且,数组 1 的长度要大于树组 2 的长度。因此本题 D 正确。
单选题

有以下程序

int add( int a,int b){ return (a+b); }

main()

{ int k, (*f)(), a=5,b=10;

f=add;

}

则以下函数调用语句错误的是

A
)k=(*f)(a,b);
B
)k=add(a,b);
C
)k= *f(a,b);
D
)k=f(a,b);

题目答案

C

答案解析

答案 C解析: 在语句 “ k=*f(a,b) ” 中,由于 “ ( ) ” 的优先级高于 “ * ” ,所以 “ *f(a,b); ” 表示其返回类型为指针的带有两个整型参数的函数。