一、 单项选择题(共40分,每小题2分)
1. 声明语句为“char a[10]”,执行printf(“%d,%d\n”,sizeof(a),strlen(strcpy(a, “Windows”)));语句后的输出结果为( )。
A.7,7 B.7,8 C. 10,7 D. 10,8
2. 以“只读”方式打开文本文件c:\xy.text,下列语句中哪一个是正确的( )。
A.fp=fopen(“c:\\xy.txt”, “a”); B. fp=fopen(“c:\\xy.txt”, “r”);
C. fp=fopen(“c:\\xy.txt”, “wb”) D. fp=fopen(“c:\xy.txt”, “r”);
3. 要为字符型变量a赋初值,下列语句中哪一个是正确的( )。
A.char a='3'; B.char a=“3” C. char a=%; D. char a=*;
4. 常量字符串”This is Sunday!”,通过strlen函数求其长度,结果为( )。
A.14 B.15 C. 16 D. 17
5. 若定义数组char a[10],char *p=a,则下面变量中,表示地址的是( )。
A.a+4 B.*p C. &a D. &p
6. 在下面定义中,是指针数组的为( )。
A. int *p[8] B. int (*p)[8] C. int (*p)(8) D. int *p(8)
7. 在C语言中可以用( )来定义一个新的变量类型。
A. #define B. #include C. typedef D. struct
8. 下面函数中不是关于文件操作的是( )。
A. fopen B. fclose C. fseek D. format
9. 结构型变量占用内存的字节数是( )。
A.各成员占用内存字节数之和
B.第一个成员占用的内存字节数
C.占用内存最大成员所需的字节数
D.最后一个成员占用的内存字节数
10. 设 struct st
{ int i;
int j;} *p;
main ( )
{
struct st m[ ]={{10, 1}, {20, 2}, {30, 3}};
p=m;
printf (〃%d\n〃,(*++p). j);
}
则程序的输出结果是( )。
A. 1 B. 2 C. 3 D. 10
11. 若p是一个字符指针,则&*p为( )。
A. 地址 B. 字符 C. 字符串 D. NULL。
12. 如果有二维数组a[8][6],则可以使用地址方式来表示第i行第j列的元素的是( )。
A. a[i][j] B. *(*(a+i)+j) C. *(*(a+j)+i) D. *a[i][j]
13. 在说明语句:int *f();中,标识符f代表的是( )。
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
14. 如果定义结构体
struct student {
int id;
char name[8];
} *s1;
则如果要表示其成员变量,可以用( )。
A. s1.name B. s1->name C. s1[name] D. s1=name
15. 若有以下的定义:int a[]={1,2,3,4,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
16. 在定义了数组int a[5][6];后,第10个元素是( )。
A.a[2][5] B.a[2][4] C.a[1][3] D.a[4][2]
17. 现有语句:int a[10], *p=a;,则下列表达式中不能表示数组第i个元素的是( )。
A.a[i] B.*(a+i) C.*(p+i) D.*p+i
18. 现有语句char chName[10]={“Wang”};,则语句sizeof(chName)的结果为( )。
A.3; B.4 C.10 D.9
19. 设结构体S定义为:struct S{ short g; char h; double *pf;};,则该结构体共占用( )个字节(短整型变量占2个字节)。
A.11 B.7 C.8 D.14
20. 表示链表结构结束的标识符是( )。
A.NULL B.EOF C.BOF D./0