C语言期末考试试题(谭浩强版)
C语言期末考试试题(谭浩强版) C语言期末考试试题 2008年04月12日 星期六00:22 一选择题(24分,每小题2分) 1. 已知函数 fread 的调用形式为 fread (buffer, size, count, fp),其中 buffer 代表的是0 . A存放读入数据项的存储区 B存放读入数据的地址或指向此地址的指针 C 一个指向所读文件的文件指针 D —个整形变量,代表要读入的数据项总数 2. 以下程序的输出结果为(). main() { int i=010,j=10; printf(“%d,%d\n“zi++,j-); } A 11,9 B9z10 C8z10 D9,9 3. 设a为int型变量,执行下列赋值语句后,a的取值分别是(). a=125.534; a=20.0/3; a=(int)125.521%4; a=5<<2; A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20 4. 设i和k都是int类型,则for循环语句()。 for(i=0,k=-l;k=l;i++,k++) printf(,,****\n“); A循环结束的条件不合法 B循环体一次也不执行 C循环体只执行一次 D是无限循环 5. 以下程序的输出结果为()。 main() { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case a : case b : case c :printf(“%c,“,c);break; default:printf(“end“); A a,b,c,end B a,a,a,end C a,a,a, D a,b,c, 6 •函数调用语句:fseek (fp , -10L, 2);的含义是()。 A将文件位置指针从文件末尾处向文件头的方向移动10个字节 B将文件位置指针从当前位置向文件头的方向移动10个字节 C将文件位置指针从当前位置向文件末尾方向移动10个字节 D将文件位置指针移到距离文件头10个字节处 7.以下程序的输出结果为()。 main() < int i=0zj=0; while(sl[i]!= \0 ) i++; while(s2[j]!= \0 ) sl[i++]=s2[j++]; sl[i]=0; printf(“%s\n“,sl); A side B country C sidetry D countryside 8 .下列说法不正确的是()。 A主函数main中定义的变量在整个文件或程序中有效 B不同函数中,可以使用相同名字的变量 C形式参数是局部变量 D在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 9 •在下列程序段中,枚举变量C1的值是()o enum color { red,yellow,blue=4,green,white cl=yellow; cl=white; A 1 B3 C 5 D 6 10 •设有说明int (*ptr)();其中标识符ptr是()。 A是一个指向整形变量的指针 B是一个指针,它指向一个函数值是int的函数 C是一个函数名 D定义不合法 11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()0 A int p; B int (*p)[n]; C int *p[n]; D int (*p)(); 12 .具有相同类型的指针类型变量p与数组a,不能进行的操作是()。 Ap=a; B *p=a[O]; C p= D p= 二判断对错,对的划“7“,错的划“x“ ( 20分,每小题2分) 1. 参加位运算的数据可以是任何类型的数据。() 2. 若有定义和语句: int a; char c; float f; scanf(“%d,%c,%f“, 若通过键盘输入:10 A 12 5 则 a=10,c= A ,f=12.5o() 3 • C语言把文件看作是一个字符(字节)的序列。 () 4•若有宏定义: #define S(a,b) t=a;a=b;b=t 由于变量t没定义,所以此宏定义是错误的。() 5 .在Turbo C中,下面的定义和语句是合法的: file *fp; fp=(“a.txt“/ r“); () 6. 若有定义: char s[ ] = “china“; 则Turbo C系统为数组s开辟6个字节的内存单元。() 7. 若有定义和语句: int a[3][3] = {{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i]; 则 sum=21o () 8•若有定义和语句: struct student int num; char name[10]; float score; } s[5]=«l/ lili“,9printf(“%d“,*p++); 输出结果是lo() 9 •在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。() 10 .在Turbo C中,此定义和语句是合法的: enum aa{ a = 5,b,c}bb; bb=(enum aa)5;() 三写出下列程序的运行结果(36分,每小题6分) 1. main() < int i=29,j=6,k=2zs; s=i+i/j%k-9;//s=i+(i/j)%k-9 printf( 、s=%d\n“,s); 2. main() { int x=31,y=2,s=0; do s-=x*y; x+ = 2;y-=3; while(x%3==0);//先执行,后判断 printf( x=%d\ty=%d\ts=%d\n“,x,y,s); } 3. main() < int a[6] = {10,20,30,40,50,60}/; invert(a,0,5); for(i=0;i<6;i++) printf( %d,“,a[i]); printfC \nw); } invert(int s[ ],int ijnt j) 〃倒置 < int t; if(i