C:用typedef只是将已存在的类型用一个新的标识符来代表 D:使用typedef有利于程序的通用和移植
36. 要使用内存分配函数malloc,需要引入的头文件是 ( B )。BC A:stdio.h B:stdlib.h C:malloc.h D:memory.h
37. 以下宏定义中,不会引起二义性的宏个数为( A )。 1)#define POWER(x) x*x 2) #define POWER(x) (x)*(x) 3) #define POWER(x) (x*x) 4) #define POWER(x) ((x)*(x)) A:1个 B:2个 C:3个 D:4个
38. 若有二维数组定义语句:int a[4][5]; 则下面对元素a[2][3]不正确的引用方式是( B )。 A:*(&a[2][3])
B:*(a+5*2+3)(&a[0][0]+5*2+3)才对 C:*(a[2]+3) D:*(*(a+2)+3)
39. 若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为 ( B )。 A:j*m+i
B:i*m+j正确时n C:i*m+j-1 D:j*m+i-1
40. 有字符数组a[10]={‘A’,‘\\0’}和b[10]={‘B’},则以下正确的输出语句是 ( D )。 A:puts(a,b);
B:printf(\ C:putchar(a,b);
D:puts(a);puts(b);
41. 下列程序的输出结果是( D )。 #include
char p1[20]=\ char str[50]=\
strcpy(str+2,strcat(p1+2,p2+1)); printf(\}
A:xyabcAB B:abcABz C:Ababcz D:xycdBCD
42. 以下程序执行后输出结果是( C )。 void main() {
char a[]=\ printf(\} A:5 5 B:6 6 C:6 10 D:10 10
43. 以下程序的输出结果是( A )。 void main() {
char *p[10]={\ printf(\
} A:2 B:3 C:4 D:编译出错
44. 已知有以下的说明,
int a[]={8,1,2,5,0,4,7,6,3,9}; 那么a[*(a+a[3])]的值为 ( A )。B A:5 B:0 C:4 D:7
45. 以下程序输出结果是( C )。B #include
int a[2][2]={1,2,3,4},(*p)[2]; p=a; p++;
printf(\ } A:2 B:3 C:4
D:以上都不对
46. 设char ch,str[4],*strp;,则正确的赋值语句是 ( D )。C A:ch=\ B:str=\ C:strp=\ D:*strp=\
47. 下面程序的运行结果是( A )。
#include
while(s1 A:7654321 B:1714171 C:1711717 D:7177171 48. 以下程序的输出是( C)。 #include char a[]=\p=a; while(*p!=‘u’){ printf(\-‘u’+‘U’);p++;} } A:LANGUAGE B:language C:LANG D:LANGuage 49. struct s1 { char a[3]; int num; }t={‘a’,‘b’,‘x’,4},*p; p=&t; 则输出为x的语句是( B )。 A:printf(“%c\\n”,p->t.a[2]); B:printf(“%c\\n”,(*p).a[2]) C:printf(“%c\\n”,p->a[3]); D:printf(“%c\\n”,(*p).t.a[2]); 50. 以下程序的输出是( D )。 #include }cnum[2]={1,3,2,7}; printf(\} A:0 B:1 C:3 D:6 51. 以下对age的非法引用是( B )。 struct student {int age; int num; }stu1,*p; p=&stu1; A:stu1.age B:student.age