|
二、填空题
(1)数据的逻辑结构有线性结构和 【1】 两大类。 解析: 数据的逻辑结构有线性结构和非线性结构两大类。
(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置 【2】 的存储单元中。 解析: 常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。
(3)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 【3】 。 解析: 本题考查了继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
(4)软件工程研究的内容主要包括: 【4】 技术和软件工程管理。 解析: 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学,以及软件心理学等内容。
(5)关系操作的特点是 【5】 操作。 解析: 在关系操作中,所有操作对象与操作结果都是关系。而关系定义为元数相同的元组的集合。因此,关系操作的特点是集合操作。
(6)下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。 #include main () { int i; char s[21],*p; for (i=0;i<20;i++) s[i]=getchar (); s[i]=【6】; p =【7】 while (*p)putchar (【8】); } 解析: 本题选通过for循环从键盘读入20个字符,然后在最后赋一定值′\0′后为结束标志,再使指针P指向字符串的首地址。最后通过while循环对字符串进行扫描并输出。
(7)以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。 #include main () { FILE *fp; char a[4]="1234",b[6]="abcedf"; if((fp=fopen("【9】","wb"))=NULL)exit(0); fwrite(a,sizeof(char),4,fp); fwrite(b,【10】,1,fp); fclose(fp); } 解析: 本题主要考查函数fwrite (char *pt,unsigned size,unsigned n,FILE *fp),把pt所指向的n*size个字节输出到fp所指定的文件中。
(8)在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【11】。 解析: 在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。
(9) 以下程序输出的结果是【12】。 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 解析: 本题的关键在于对变量c的赋值运算: d=(a>b>c) d=(5>4>3) 先算5>3,为真,得1,即:d=(1>3),此时1>3,为假,得0。
(10)以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。 请按题意,完成填空。 试题程序: #include #include void fun (int x, int pp[], int *n) { int i,j=0; 【13】 if(x%i==0)pp[j++]=i; 【14】; } main () { int x,aa[1000], n, i ; clrscr(); printf("\nPlease enter an integer number : \n "); scanf ("%d ", &x); fun (x, aa, &n); for (i=0 ; iprintf ("%d ", aa [i]); printf ("\n "); } 解析: 本题题干信息是能整除且不是偶数的所有整数之和。循环语句中i从1开始且每次增2,所以i始终是奇数,*n=j;语句是记录能够符合题意的各个整数的各数。
#include #include int fun(int *s, int t, int *k) { int i; *k=0; 【15】 if(s[*k]return【16】; } main() { int a[10]={ 876,675,896,101,301,401,980,431,451,777},k; clrscr(); fun(a, 10, &k); printf("%d, %d\n ", k, a[k]); } 解析: 本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认*k的值为数组中的某一下标值,即*k=0。
(12)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str) { int i; for(i=0;【17】!= ′\0′;i++); return(i); } 解析: str是指针变量,它指向字符型数据,在循环过程中,可以用 *(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到 *(str+i)的值为′\0′为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]。
(13)以下程序的输出结果为【18】。 #define JFT(x)x*x main() { int a, k=3; a=++JFT(k+1); printf("%d",a); } 解析: 宏替换的原则是按原样替换,本题中遇到形参x则以实参k+1替换,其他字符不变。所以JFT(k+1)经替换后为k+1*k+1,所以a=++k+1*k+1,若k+1,若k的值为3,则经过运算为a=4+1*4+1=9。
(14)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。 struct node { int info; 【19】link; }; 解析: 本题中的结构类型名为struct node,所以空白处应填:struct node *。即定义一个指向自身的结构体指针。
(15)设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整: fwrite(student,【20】,1,fp); 解析: fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp),其中: buffer:是一个指针变量,是要输出数据的起始地址 size:要写的字节数 count:要进行写多少个size字节的数据项 fp:文件型指针
共4页: 上一页 [1] [2] 3 [4] 下一页
|