l 2 3 4
6 7 8 11 12 16
则在程序下划线处应填入的是________
A)i-l B)i C)i+1 D)4-i 答案:B
评析:本题程序为二重循环,外循环控制输出数据的行数,内循环控制输出数据的列数。从本题输出的形式来看,程序要求输出的是4行4列。
(45)有以下程序
point(char*p){p+=3;} main()
{ char b[4]={‘at,lb‘,‘c‘,‘d.},*p=b;
poim(p);primf(‖%c\n‖,*p); }
程序运行后的输出结果是________.
A)a B)b C)c D)d 答案:A
评析:在c语言中,函数的参数传递方式采用按值传递,因此不能通过调用函数的方式来改变指针本身的值,只能改变指针所指变量的值。
(46)程序中若有如下说明和定义语句
char fun(char*); main() {
char *s=‖one; a[5]={O},(*f1)()=fun,ch; }
以下选项中对函数fun的正确调用语句是________.
A)(*f1)(a); B)*f1(*s); C)fun(&a); D)ch=*fl(s); 答案:A
评析:题中将函数fun的入口地址赋给了指针变量f1,这时f1和fun都指向函数的开头,调用*fl。就是调用函数fun.
(47)有以下结构体说明和变量定义,如图所示:
struct node
{int data;struct node *next;} *p,*q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作
的语句是________。
A)P->next=q->next; B)p->next=p->next->next;
C)p->next=r; D)p=q->next; 答案:D
评析:要想将q所指结点从链表中删除,同时保持链表的连续,必需使p结点的next指向r,在四个选项中,只有选项D不能做到。
(48)以下对结构体类型变量td的定义中,错误的是________。
A) typedef struct aa B) struct aa
{ int n; { int n;
float m; float m;
}AA; }td;
AA td; struct aa td;
C) street D) struct
{ int n; { int n;
float m; float m;
}aa; }td;
struct aa td; 答案:C
评析:选项c中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,故此种定义方法是错误的:
(49)以下与函数fseek(f1),0L,SEEK_SET)有相同作用的是________。
A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) 答案:D
评析:fseek函数用于改变文件的位置指针。
本题中―fseek(fp,0L,SEEK_SET)‖的作用是将位置指针移到文件头。
feof的作用是判断文件是否结束,已指到文件的末尾,则返回值为非零,否则为零。
ftell的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。
fgets的作用是指定文件读入二个字符串。
(50)有以下程序
#include
void WriteStr(char *fn, char *str)
{ FILE *fp;
fp=fopen(fn,‖w‖);fputs(str, fp);fclose(fp); } main()
{
WriteStr(―t1.dat‖,‖start‖);
WriteStr(―tl.dat‖,‖end‖); }
程序运行后,文件t1.dat中的内容是________。
A)start B)end C)startend D)endrt 答案:B
评析:两次使用―写入‖的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中t1.dat的内容为end。
二、填空题(每空2分,共40分)
请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分。(1)某二叉树中度为2的结点有18个,则该二叉树中有一___【1】___ 一个叶子结点。
答案:【1】19
评析:二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
(2)在面向对象方法中,类的实例称为___【2】___.
答案:【2】对象
评析;将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的