A) 7    B)137    C)137377   D)13737 
5 
 
73.以下程序段运行后,*(p+1)的值为(  ) char a[ ]=”good”; char *p; p=a; 
A)a[1]的地址    B)?o?   C)不确定        D)?g?  
74.(  )能正确定义一个指向函数的指针。 A) (int *)p( )        B)int  *p(  ) C) int (*p( ))        D)int (*p)(  )  
75.以下程序段的运行结果是(  ) int x[  ]={2, 3, 4, 5, 6, 7},*p=x; int i, s=0; 
for(i=1; i<5; i++)  s+=p[i++]; printf(“%d”, s); 
A)6   B)8    C)20     D)14  
76.以下程序段运行后, x的值为(  ) int a[  ]={1,2,3,4,5, 6, 7,8}; int i, x, *p; x=1; p=&a[1]; for(i=0; i<3; i++)  x*=*(p+i); 
A)120    B)6     C)1      D)24  
77.若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; 则(  )表达式是错误的。 
A)a++   B)a[2]    C)p++   D)p[2]  
78.若有定义  
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},  (*p)[4]; p=a; (  )对数组a元素的引用是正确的 
A) *(p[2]+3)   B)**(p+4)   C)(**p)[4]  D)*(p[4])  
79.下面程序段运行后,( )对数组a元素的引用是错误的。(其中0≤i<4,0≤j<3) int i, j, (*p)[3]; 
int a[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a; 
A)*(*(a+i)+j)   B)p[i][j] C)*(*(p+i)[j]     D)*(p[i]+j)  
80.以下程序运行的结果是( ) main( ) { int x, y; 
 
  int *p, *q, *t;   x=23; y=45; p=&x; q=&y;   t=p;   p=q;   q=t; 
  printf(“%d, %d\\n”, x, y); } 
A)23,45          B)45, 23            C)23, 23         D)45, 45  
81. 以下程序的运行结果是(  )。 main( ) 
{int a[3]={1,2,3}; int *num[3]; int **p, i; 
for(i=0; i<3; i++)   num[i]=&a[i]; p=num; 
printf(“%d”, **p); } 
A)1    B)3    C)num    D)&a[0]  
82.若有定义:int a[3][2]; 则表达式&a[2][1]-a的值为(  ) 
A)2           B)3           C)5       D)4    
(七)结构体与共用体 
83.以下程序段的运行结果是(  ) union  
 { int num1;    int num2;  } s; 
s.num1=20; s.num2=30; 
printf(“%d”, s.num1); 
A)2030    B)50       C)30   D)20  
84. 若有定义: union u_type   { int x;    float y[3];    char z;    } a; 
则变量a的长度是(   ) 
6 
A)4    B)15    C)1     D)12  
85.若有定义: struct teacher { int num;   char sex;   int age;   } teacher1; 
则下面叙述错误的是(  ) A)teacher1是结构类型名 B)struct是结构类型的关键字 
C)struct teacher是用户定义的结构类型 
D)num、sex、age都是结构变量teacher1的成员  
86.若有定义: struct data {char a;  float b[3];  long c; }d1; 
则变量d1的长度是(  ) 
A)15   B)12    C)17      D)4  
87.若有定义: struct teacher {  int num; 
  char name[10];   char sex;   int age; 
} t1={2001, “Li  Ming”,?M?, 35}; 
则下列(  )对结构体变量引用是正确的 A) t1.name[0]    B) t1->name[0] C) t1.name      D)t1->name  
88下列程序段运行后,表达式(  )的值为3。 struct point {int x;  int y; }*p; 
struct point a[3]={1,2,3,4,5,6}; p=a; 
A)*(p+2)     B)p[3].x    C)p[1].x   D)p[2].x  
(八)枚举、自定义类型和位运算 
89有定义:enum  num{a1,a2=3, a3, a4=10}; 则枚举常量a2, a3的值分别为(  ) 
 
A)1  2  B)3   3    C)2   3    D)3    4  
90若有定义:enum day{sun, mon, tue, wed, thu, fri,sat}; 则枚举常量sun、mon的值分别为(  ) A)7  0     B)0   1   C)7  1   D)1   2   
91若有定义: 
typedef  int *INTEGER; INTEGER p; 
则下面叙述正确的是() A)p是一个整型变量 
B)程序中可用INTEGER定义int类型指针变量 C)程序中可用INTEGER定义int类型变量 D)p是与INTEGER相同的类型  
(九)文件 
92下面程序运行后,文件d_f.dat的内容是(  )。 main( ) 
{ FILE *fp; int i=10, j=20; fp=fopen(“d_f.dat”,”w”); fprintf(fp, “%d  ”,i); fclose(fp); 
fp=fopen(“d_f.dat”,”a”); fprintf(“%d  “,j); fclose(fp); } 
A)20  10     B)10     C)10  20      D)20   
93 若当前工作目录下有一文本文件test.txt,其内容为“cprogram”(不包含引号),则以下程序段的运行结果是(  ) FILE *fp; char *str; 
if((fp=fopen(“test.dat”,”r”)!=NULL)   str=fgets(str, 5, fp); printf(“%s”, str); fcolse(fp); 
A)cpro    B)cprog   C)gram     D)ogram  
94()不是文件读库函数 
A)fputs( )           B)fgetc( )   C)fread( )           D)fscanf( )  
95下面程序运行后,屏幕显示write ok!, 则下面叙述正确的是(  )。 main( ) 
7 
{ FILE *fp; 
fp=fopen(“data.txt”,”w+”); if(fp!=NULL) 
{ fprintf(fp, “%s\\n”, “File write successed!\\n”); fclose(fp); 
NUM n; 
则(  )语句是正确的 
A)NUM=2   B)n=2   C)n[0]=2  D)NUM=n  
99.若有定义:int a[3][4]={{1,2}{3,4}{5, 6,7}; 则printf(“write ok!\\n”); } } 
A)当前工作目录下存在tata.txt文件,其中的内容是”write ok!” 
B) 当前工作目录下的tata.txt文件已经打开 C) 当前工作目录下的tata.txt文件已经关闭 D) 当前工作目录下找不到tata.txt文件  
96下面程序运行后,屏幕显示File open error!则可能的原因是(  ) #include  main( ) { FILE *fp;  char str[256]; 
fp=fopen{“test.txt”,”r+”}; if(fp= =NULL) 
{ printf(“File open error!”);  return ; } 
fscanf(fp, “%s”, str); fcolse(fp); } 
A)当前工作目录下的test.txt文件是空文件 B)fopen( )的参数是错误的 C)test.txt文件已经打开 
D)当前工作目录下没有test.txt文件  
补充 
97.以下程序段运行后, x的值为(  )。 int a[ ]={1, 2, 3}, b[ ]={4, 3, 3}; int *p, *q; int i, x; p=a; q=b; 
for(i=0; i<3; i++)  if(*(p+i)==*(q+i))   x=*(p+i)*2; 
A)6       B)不确定   C)2     D)4  
98.若有定义 
typedef  int  NUM[100]; 
 
a[1][1]的值为(   )。 
A)3     B)1     C)4      D)2  
100.以下程序段运行后,s的值为( )。 int a[3][3]={1,2,3,1,2,3,1,2,3}; int i, j, s=0; 
for(i=0; i<3; i++)  for(j=i; j<3; j++)   s+=a[i][j]; 
A)13   B)12    C)15     D)14  
101.(  )是正确的数组定义 A)int n; n=5; int arr[n]; B)int N=5, arr[N]; C)int n=5; int arr[n]; D)int arr[10];           
 
8