struct data { int i; char ch; double f; } b;
则结构变量b占用内存的字节数是 A)1 B)2 C)7 D)11
30.下面程序的运行结果是 #include main()
{ int a=1,b=10; do
{ b-=a;a++;}while(b--<0); printf(\\n\); }
A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9 [NextPage]
31.以下程序的输出结果是 void reverse(int a[],int n) { int i,t; for(i=0;i
{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;} }
main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8);
for(i=6;i<10;i++)s+=b[i]; printf(\\n \); }
A)22 B)10 C)34 D)30
32.有如下程序 long fib(int n)
{ if(n>2)return(fib(n-1)+fib(n-2)); else return(2); }
main()
{ printf(\\n\(3));} 该程序的输出结果是 A)2 B)4 C)6 D)8
33.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf(\[argc]); printf(\\n\); }
A)ABCDEFG B)IJHL
C)ABCDEFGHIJKL D)IJKLABCDEFGH 34.函数 rewind 的作用是
A)使文件位置指针重新返回文件的开始位置 B)将文件位置指针指向文件中所要求的特定位置 C)使文件位置指针指向文件的末尾
D)使文件位置指针自动移至下一个字符位置
35.阅读以下程序及对程序功能的描述,其中正确的描述是 #include main() {
FILE *in,*out;
char ch,infile[10],outfile[10]; printf(\\n\); scanf(\);
printf(\\n\); scanf(\); if((in=fopen(infile,\))==NULL) {
printf(\\n\); exit(0); } if((out=fopen(outfile,\))==NULL) {
printf(\\n\); exit(0); }
while(! feof(in))fputc(fgetc(in),out);
fclose(in); fclose(out); }
A)程序完成将磁盘文件的信息在屏幕上显示的功能 B)程序完成将两个磁盘文件合二为一的功能
C)程序完成将一个磁盘文件复制到另一个磁盘文件中 D)程序完成将两个磁盘文件合并并在屏幕上输出 [NextPage]
二、填空题(每空2分,共计30分)
1.数据的逻辑结构有线性结构和 【1】 两大类。
2.顺序存储方法是把逻辑上相邻的结点存储在物理位置 【2】 的存储单元中。
3.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 【3】 。
4.软件工程研究的内容主要包括: 【4】 技术和软件工程管理。 5.关系操作的特点是 【5】 操作。
6.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。 #include main () { FILE *fp;
char a[4]=\,b[6]=\; if((fp=fopen(\【6】 \))=NULL)exit(0); fwrite(a,sizeof(char),4,fp); fwrite(b, 【7】 ,1,fp); fclose(fp); }
7.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为 【8】 。 8.以下程序输出的结果是 【9】 。 main()
{ int a=5,b=4,c=3,d; d=(a>b>c);
printf(\\n\); }
9.以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。 请按题意,完成填空。 试题程序: #include #include
void fun (int x, int pp[], int *n) { int i,j=0; 【10】
if(x%i==0)pp[j++]=i; 【11】; }
main ()
{ int x,aa[1000], n, i ; clrscr();
printf(\\nPlease enter an integer number : \n \); scanf (\); fun (x, aa, &n); for (i=0 ; i
printf (\[i]); printf (\\n \); }
10.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。 #include #include
int fun(int *s, int t, int *k) { int i; *k=0; 【12】 if(s[*k] return【13】; }
main() {
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k; clrscr();
fun(a, 10, &k);
printf(\\n \[k]); }
[NextPage]
11.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。 #include #include
int fun(int *s, int t, int *k) { int i; *k=0; 【12】 if(s[*k] return【13】; }
main() {
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k; clrscr();
fun(a, 10, &k);
printf(\\n \[k]); }
12.设有以下结构体类型: struct st
{ char name[8]; int num; float s[4]; } student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:
fwrite(student,【15】,1,fp);