1、若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示:
A.已读到此文件末尾 B.未读到此文件的末尾 C.此文件已关闭 D.此文件尚未被打开 [A] 教师批改:A
2、系统的标准输入文件是指__。 A) 键盘 B) 显示器 C) 软盘 D) 硬盘 [A] 教师批改:A
3、若执行fopen函数时发生错误,则函数的返回值是__。 A) 地址值 B) 0 C) 1 D) EOF [B] 教师批改:B
4、若要用fopen打开一个新的二进制文件,该文件既能读也能写,则文件方式字符串应该是__。 A) “ab+” B) “wb+” C) “rb+” D) “ab” [C] 教师批改:B
5、当顺利执行了文件关闭操作时,fclose函数的返回值是__。 A) -1 B) TRUE C) 0 D) 1
[C] 教师批改:C
6、fscanf函数的正确调用形式为__。 A) fscanf(fp,格式字符串,输出列表) B) fscanf(格式字符串, 输出列表,fp) C) fscanf(格式字符串,输出指针,输出列表) D) fscanf(文件指针,格式字符串,输入列表) [D] 教师批改:D
7、fwrite函数的一般调用形式为__。 A) fwrite(buffer,count,size,fp); B) fwrite(fp,size,count,buffer); C) fwrite(“fp,count,size,buffer); D) fwrite(buffer,size,count,fp); [D] 教师批改:D
8、fgetc函数的作用是从指定文件读入一个字符串,该文件的打开方式必须是__. A) 只写
B) 追加 C) 读或读写
D) 答案B和C都正确 [D] 教师批改:C
9、若调用fputc函数输出字符成功,其返回值是__。 A) EOF B) 1 C) 0
D) 输出的字符 [D] 教师批改:D
10、利用fseek函数可实现的操作数__。 A) 改变文件的位置指针 B) 文件的顺序读写 C) 文件的随即读写 D) 以上答案均正确 [D] 教师批改:D
11、利用fseek函数可实现的操作数__。 A) 改变文件的位置指针 B) 文件的顺序读写 C) 文件的随即读写 D) 以上答案均正确 [D] 教师批改:D
12、函数rewind的作用是__。 A) 使位置指针重新返回文件的开头 B) 使位置指针指向文件所要求的位置 C) 使位置指针指向文件的末尾
D) 使位置指针自动移至下一个字符的位置 [A] 教师批改:A
13、函数ftell(fp)的作用是__。 A) 得到流式文件中的当前位置 B) 移动流式文件的位置指针 C) 初始化流式文件的位置指针 D) 以上答案均正确 [A] 教师批改:A
14、在执行fopen函数时,ferror函数的初值是__。 A) TRUE B) -1 C) 1 D) 0
[D] 教师批改:D
1、若x=2,y=3则x&y的结果是__。 A) 0 B) 2 C) 3 D) 5
[B] 教师批改:B
2、表达式0x13|0x17的值是__。
A) 0x13 B) 0x17 C) 0xE8 D) 0xc8 [B] 教师批改:B
3、表达式 0x13^0x17的值是__。 A) 0x04 B) 0x13 C) 0xE8 D) 0x17 [A] 教师批改:A
4、表达式~0x13的值是__。 A) 0xFFEC B) 0xFF71 C) 0xFF68 D) 0xFF17 [A] 教师批改:A
5、在位运算中,操作数每右移一位,其结果相当于__。 A) 操作数乘以2 B) 操作数除以2 C) 操作数乘以4 D) 操作数除以4 [B] 教师批改:B
6、在位运算中,操作数每左移一位,其结果相当于__。 A) 操作数乘以2 B) 操作数除以2 C) 操作数乘以4 D) 操作数除以4 [A] 教师批改:A
7、若执行完成下列语句: int a=3,b=6,c; c=a∧b<<2; 则变量c的二进制值为: A.00011100 B.00010100 C.0001000 D.00011011 [D] 教师批改:D
8、表达式0x13&0x17的值是__。 A) 0x17 B) 0x13 C) 0xf8 D) 0xec
[B] 教师批改:B
9、若a=1,b=2则a|b的值是__。 A) 0 B) 1 C) 2 D) 3
[D] 教师批改:D
1、设有以下定义或语句,则输出的结果是?(用small模式编译,指针变量占2个字节) struct date { long *cat; struct date *next; double dog; }too;
printf(\ A.20 B.16 C.14 D.12
[B] 教师批改:D 2、设有以下说明语句 struct ex
{ int x ; float y; char z ;} example; 则下面的叙述中不正确的是 A.struct结构体类型的关键字 B.example是结构体类型名 C.x,y,z都是结构体成员名 D.struct ex是结构体类型 [C] 教师批改:B
3、已知有共用体变量data1定义如下: union data { int i; char ch; float f; } data1;
则变量data1所占的内存存储空间可表示为: A.sizeof(int) B.sizeof(char) C.sizeof(float)
D.sizeof(int)+sizeof(char)+sizeof(float) [C] 教师批改:C
4、以下对枚举类型名的定义中正确的是 A.enum a={one,two,three}; B.enum a{one=9,two=-1,three}; C.enum a={″one″,″two″,″three″}; D.enum a{″one″,″two″,″three″}; [C] 教师批改:B
5、以下关于typedef的叙述中错误的是: A.用typedef可以增加新的类型
B.用typedef可以定义各种类型名,但不能用来定义变量 C.用typedef只是将已有的类型用新的标识符来代表 D.使用typedef有利于程序的通用和移植
[D] 教师批改:A
6、当说明一个结构体变量时系统分配给他的内存是__。 A) 各成员所需内存量的总和。 B) 结构中第一个成员所需内存量。 C) 成员中占内存量最大者所需内存量。 D) 结构中最户一个成员所需内存量。 [B] 教师批改:A 7、设有以下语句 struct stu {int a; float b; }stutype;
则下面叙述不正确的是__。 A) struct 是结构体类型的关键字。 B) struct stu是用户定义的结构体类型。 C) stutype 是用户定义的结构体类型名。 D) a和b都是结构体成员名。 [A] 教师批改:C
8、在16位IBM-PC机上使用的C语言,若有如下定义: struct data {int i; char ch; double f; }b;
则结构变量b占用内存的字节数是__。 A) 1 B) 2 C) 8 D) 11
[C] 教师批改:D
9、以下程序的运行结果是__。 #include “stdio.h” main() {struct date {int year,month,day; }today;
printf(“%d\\n”,sizeof(struct date)); } A) 6 B) 8 C) 10 D) 12
[A] 教师批改:A
10、下面程序的运行结果是__。 main() {
struct cmplx{int x;
int y;
}cnum[2]={1,3,2,7};
printf(“%d\\n”,cnum[0].y/cnum[0].x*cnum[1].x); } A) 0 B) 1 C) 3 D) 6
[B] 教师批改:D 11、 有如下定义: struct sk {int n; float x; }dara,*p;
若要使p指向data中的n域,正确的赋值语句是__。 A) p=&data.n; B) *p=data.n;
C) p=(struct sk *)&data.n; D) p=(struct sk *)data.n; [A] 教师批改:C 12、若有以下说明和语句: struct student {int age; int num; }std.*p; p=&std;
则以下对结构体变量age引用不正确的是__。 A) std.age B) p->age C) (*p).age D) *p.age [C] 教师批改:D
13、若有以下说明和语句,则对pup中sex域的正确引用方式是__。 struct pupil {char name[20]; int sex; }pup,*p; p=&pup; A) p.pup.sex; B) p->pup.sex; C) (*p).pup.sex D) (*p).sex [D] 教师批改:D
14、以下对结构体变量stul中成员age的非法引用是__。 struct student {int age;
int num; }stu1,*p; p=&stu1; A) stu1.age B) student.age C) p->age D) (*p).age [A] 教师批改:B
15、C语言共用体类型变量在程序运行期间__。 A) 所有成员一直驻留在内存中。 B) 只有一个成员驻留在内存中。 C) 部分成员驻留在内存中。 D) 没有成员驻留在内存中。 [B] 教师批改:B
16、在16位IBM-PC机上使用C语言,若有如下定义: union data {int i; char ch; double f; }b;
则共用体变量b占用内存的字节数是__。 A) 1 B) 2 C) 8 D) 11
[B] 教师批改:C
17、下面对typedef的叙述不正确的是__。
A) 用typedef可以定义各种类型名,但不能用来定义变量。B) 用typedef可以增加新类型
C) 用typedef只是将已存在的类型用一个新的标识符来代表D) 使用typedef有利于程序的同意和移植 [C] 教师批改:B
1、假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是: A.p2=**p1 B.p2=*&p1 C.p2=*p1 D.p2=&*p1 [C] 教师批改:D 2、若有以下定义和语句: char *s1=\ printf(\ 则输出结果是_____。 A.4 B.5 C.9
D.10
[C] 教师批改:A
3、下列程序段的输出结果是_____。 void fun(int *x, int *y)
{ printf(\ main() { int x=1,y=2; fun(&y,&x); printf(\ } A.2 1 4 3 B.1 2 1 2 C.1 2 3 4 D.2 1 1 2
[A] 教师批改:A 4、以下程序的输出结果是 fut( int **s,int p[2][3]) { **s=p[1][1];} main( )
{ int a[2][3]={1,3,5,7,9,11},*P; ??p=(int *)malloc(sizeof(int)); ??fut(&p,a); ??print(\ \ } A.1 B.7 C.9 D.11
[B] 教师批改:C
5、假设指针p已经指向某个整型变量x,则*p相当于: A.&x B.&p C.x D.*x
[A] 教师批改:C
6、若有定义:int a[3][4];不能表示数组元素a[1][1]的是_____。A.*(a[1]+1) B.*(&a[1][1]) C.(*(a+1))[1] D.*(a+5)
[B] 教师批改:D 7、若有定义和语句: int **pp,*p,a=10,b=20; pp=&p;p=&a;p=&b; printf(\ 则输出结果是()
A.10,10 B.10,20 C.20,10 D.20,20
[D] 教师批改:D
8、若有以下的定义: int a[]={1,2,3,D,5,6,7,8,9,10},*p=a 则值为3的表达式是 A.p+=2,*(p++) B.p+=2,*++p C.p+=3,*p++ D.p+=2,++*p [D] 教师批改:A 9、若有以下定义和语句: int a[10]={1,2,3,D,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A.*p B.a[10] C.*a D.a[p-a]
[A] 教师批改:B 10、若有以下定义和语句: int w[2][3],(*pw)[3];pw=w;
则对w数组元素的非法引用是_____。 A.*(w[0]+2) B.*(pw+1)[2] C.pw[0][0] D.*(pw[1]+2) [A] 教师批改:B 11、设有定义: struct sk{ int a; float b; }data,*p;
若有p=&data;,则对data中的a域的正确引用是____。 A.(*p).data.a B.(*p).a C.p->data.a D.p.data.a [D] 教师批改:B
12、设有如下定义: char *aa[2]={\则以下说法中正确的是
A.aa数组元素的值分别是\和\
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有D个字符的一维字符数组的首地址
D.aa数组的两个元素中各自存放了字符'a'和'A'的地址
[B] 教师批改:D
13、以下c语言函数声明中,不正确的是: A.void fun (int x, int y); B.fun (int x, int y); C.int fun (int x,y); D.char *fun (char *s); [D] 教师批改:C 14、以下程序输出的值为? main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; p=a;
printf(\ } A.1 B.9 C.10 D.0
[D] 教师批改:C 15、有以下程序 main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf(\); }
程序运行后的输出结果是_____。 A)16 B)10 C)8 D)6
[B] 教师批改:B
16、若有语句:char *line[5];,以下叙述中正确的是( ) A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 [A] 教师批改:A 17、有以下程序 main()
{ int a[]={2,4,6,8,10}, y=0, x, *p; p=&a[1];
for(x= 1; x<3; x++) y += p[x]; printf(\); }
程序运行后的输出结果是_____。 A)10 B)11