C:p->age D:(*p).age
52. 以下程序的输出是( 5 )。 #include
{a.u.x=4;a.u.y=5;a.u.z=6; a.k=0;
printf(\} A:4 B:5 C:6 D:0
53. 若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式字符串应是( C )。 A:\ B:\ C:\ D:\
54. 若执行fopen函数时发生错误,则函数的返回值是 ( B )。C A:地址值 B:0 C:1 D:EOF
55. 要打开文件c:\%user\\text.txt用于追加数据,正确的语句是( D )。
A:fp=fopen(\ B:fp=fopen(\ C:fp=fopen(\ D:fp=fopen(\
56. 在执行fopen函数时,ferror函数的初值是 ( C )。D A:TRUE B:-1 C:1 D:0
57. #include
char * s1=\ FILE *pf=fopen(\ fwrite(s2,7,1,pf);读入1个7个字节的数据 fseek(pf,-1,SEEK_CUR);/把g去掉了 fwrite(s1,5,1,pf); fclose(pf); }
以上程序执行后,文件abc.dat中的内容为 ( C )。 A:Hellong B:Beijing Hello C:BeijinHello D:Hello
58. 若fp为文件指针,且文件已正确打开,i为整型数据,以下语句的输出结果是( )。 fseek(fp,0,SEEK_END); i=ftell(fp); printf(\ A:fp所指的文件记录长度
B:fp所指的文件长度,以字节为单位
C:fp所指的文件长度,以比特为单位 D:fp所指的文件当前位置,以字节为单位
59. 函数调用语句:fseek(fp,-20L,2);的含义是 ( C )。 A:将文件位置指针移到距离文件头20个字节处 B:将文件位置指针从当前位置向后移动20个字节 C:将文件位置指针从文件末尾处后退20个字节 D:将文件位置指针移到离当前位置20个字节处
60. 若将文件指针的读写位置指针移动到距离文件头200个字节的位置,对应正确的操作是 ( A )。 A:fseek ( fp, 200, SEEK_SET ) B:fseek ( fp, 200, SEEK_CUR ) C:fseek ( fp, 200, SEEK_END ) D:ftell ( 200 )
多选题(共20题,每题2分,共40分)
1. 关于以下运算,说法正确的有 ( BD )。
A:设有宏定义\则表达式F(2+3)的值是10 B:设int x=4;则执行语句x += x *= x + 1;后,x的值为40 C:设int a, b = 8;执行a = b<<2 + 1;后a的值是33优先级 D:设int a[3][4], *p = a[1]; 该指针变量p指向的元素是a[1][0] 2. 有以下定义:char a[10],*b=a;
则能给a数组输入字符串的语句有 ( ACD )。 A:gets(a); B:gets(a[0]); C:gets(&a[0]); D:gets(b);
3. 要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a[1]到a[n]中。在以下给出的函数中,不能正确执行此功能的函数有 ( CD )。 A:funa(int *a, int n, int x) {
*a = x;
while(a[n] != x) n--; return n; }
B:funb(int *a, int n, int x) { int k;
for(k = 1; k <= n; k++) if(a[k] == x) return k; return 0; }
C:func(int a[], int n, int x) {
int *k;
a[0] = x; k = a+n; while(*k != x) k--; return k - n; }
D:fund(int a[], int n, int x) {
int k = 0; do {k++;
}while((k < n+1)&&(a[k]!=x));??????????????/ if((k < n+1)&&a[k] == x)) return k; else return 0; }
4. 关于下列程序的输入与输出,正确的说法有( C )。D #include
int m,n;
printf(\ scanf(\ while(m!=n) {while(m>n)m-=n; while(n>m)n-=m; }
printf(\}
A:输入m>n时,程序将输出1 B:输入m C:输入m,n满足m%n=0,且m>n时,程序输出值为n的值 D:输入m或n为0时,程序将陷入死循环 5. 已知有如下程序: void main() { int a[5]={1,2,3,4,5},*b; b=(int*)malloc(sizeof(int)); ____; printf(\} 要使程序输出为a[2]的值,则函数fun的定义和横线处对应的fun调用的正确有 ( D )。 A:void fun(int*s,int*d) {*d=*(s+2);} 调用: fun(a,&b) B:void fun(int*s,int&d) {d=*(s+2);} 调用: fun(a,b) C:void fun(int*s,int &d) {d=*(s+2);}