单项选择题
1、 在下列语句中,其含义为“q是一个函数指针,该指针指向整型数据”的定义语句是( )。
A.int**q;
B.int(*q)();
C.int *q;
D.int *q();
2、 下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是( )。
#include
maln()
{char s1[]=”chinese”,s2[]=”japanese”;
int i;
{or(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
A.putchar(s2[i]);putchar(i)
B.puts(sl[i],i)
C.print[(”%c%d\n”,s2[i],i)
D.printf(”%c”,sl[i]);print[(”%d\n”,i)
3、 下列程序的运行结果是( )。
#includedstdio.h>
void main()
{int s=0,k;
for(k=7;k>1;k--)
{switch(k)
{case 1:
case 4:
case 7:
s++:
break;
case 2:
case 3:
case 6:break;
case 0:
case 5:
s+=2:
break;
))
print[(”S=%d”,s);
}
A.S=3
B.s=4
C.s=5
D.无输出结果
4、 用链表表示线性表的优点是( )。
A.便于随机存取
B.花费的存储空间较顺序存储少
C.便于插入和删除操作
D.数据元素的物理顺序与逻辑顺序相同
5、 数据的存储结构是指( )。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
6、 下列叙述中错误的是( )。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
7、 有以下程序:
#include
main()
{ int i;
for(i一1;i
(if(i%2)printf(”*”);
e|se continue;
printf(”#”);
}
printf(”$\n”);
程序的输出结果是( )。
A.*#*#*#$
B.#*#*#*$
C.*#*#$
D.#*#*$
8、若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。
A.bdgcefha
B.gdbeefha
C.bdgaechf
D.gdbehfca
9、 为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与(.)配对。
A.缩排位置相同if
B.其前面最近的if
C.其后面最近的if
D.同一行上的if
简答题
10、
某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()部位中填入你编写的若干语句。
试题程序:
#include
#define N 8
typedef struct
{
char nurn[10];
double s[N];
double ave;
)STREC;
void fun(STREC * a)
{
)
void main()
{
STREC s={¨GA005”,85.5,76,69.5,85,91,72,
64.5,87.5};
int i:
fun(&s):
printf(”The%s's student data:n”,S.num);
for(i=0;i printf(”%4.lfkn”,s.s[i]);
printf(”nknave=%7.3fkn”,s.ave);
printf(”\n”):
}