1.若有以下说明和定义
typedefint*INTEGER;
INTEGERp,*q;
以下叙述正确的是()
A)p是int型变量
B)p是基类型为int的指针变量
C)q是基类型为int的指针变量
D)程序中可用INTEGER代替int类型名
2.若指针ps已正确定义,要使ps指向能够存储8个字符的动态存储单元,以下不正确的语句是()
A)ps=(char*)malloc(8);
B)ps=(char*)malloc(sizeof(char)*8);
C)ps=(char*)calloc(8,sizeof(char));
D)ps=8*(char*)malloc(sizeof(char));
3.设下面程序段中调用fun函数传送实参a和b,
main()
{
char a[10],b[10];
…
fun (a,b);
…
}
则在fun函数首部中,对形参错误的定义是()
A)fun(char a[10],b[10]){ …}
B)fun(char a1[],char a2[]){ …}
C)fun(char p[10],char q[10]){ …}
D)fun(char*s1,char*s2){ …}
4.C语言规定,程序中各函数之间()
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
5.下列程序
voidfunc1(int i);
voidfunc2(int i);
char st[]="hello,friend!";
void func1(int i)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{inti=0;func1(i);printf("\n");}
执行后的输出结果是()
A)hello
B)hel
C)hlo
D)hlrn
6.以下对结构体类型变量的定义中,不正确的是()
A)typedef struct aa
{int n;
float m;
}AA;
AA tdl;
C)struct
{int n;
float m;
}aa;
struct aa tdl;B)#define AA struct aa
AA{int n;
float m;
}tdl;
D)struct
{int n;
float m;
}tdl;
7.有以下程序
main()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
程序运行后的输出结果是()
A)18
B)19
C)20
D)21
8.请选出以下程序的输出结果()
#include
sub(x,y,z)
int x,y,*z;
{*z=y-x;}
main()
{ int a,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)5,2,3B)-5,-12,-7
C)-5,-12,-17D)5,-2,-749.若有如下定义:
unionaa
{int n;char c[9];float x;}a,b,c;
9.则下列叙述中不正确的是()
A)union aa是定义的共用体类型
B)a,b,c 是定义的共用体类型名
C)n、c[9]和x是共用体的成员名
D)a,b,c 是定义的共用体变量名
10.在下列定义中的共用体所占内存字节数是()
Union
{char k[6];
struct
{int m;float f; }a;
double d; }b;
A)8
B)14
C)18
D)10
答案:1.B 42.D 43.A 44.A 45.C 46.C 47.A 48.B 49.B 50.A
1.若有如下定义:
int s[3][4];
则下面表达式中能代表数组元素s[1][0]的值的是()
A)*(s+1)
B)s[1]
C)s+1
D)*(s[1])
2.若有定义和语句
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);
则输出结果是()
A)10,10
B)10,20
C)20,10
D)20,20
3.有以下程序
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
程序运行后的输出结果是()
A)3
B)4
C)1
D)9
4.下列程序执行后输出的结果是()
#include
f(int a)
{ int b=0;
static c=3;
a=c++,b++;
return(a);
}
main()
{ int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
A)3
B)0
C)5
D)4
5.下列程序执行后的输出结果是()
#define MA(x) x*(x-1)
main()
{ int a=1,b=2;
printf("%d\n",MA(1+a+b));
}
A)5
B)6
C)7
D)8
6.有以下程序段
# include
main()
{ char s[4][10];
int i;
scanf("%s%s",s[0],s[1]);gets(s[2]);gets(s[3]);
for(i=0;i<4;i++)
puts(s[i]);
}
输入数据如下:aaaa bbbb(此处代表回车符)
cccc dddd
输出结果是()
A)aaaa
bbbb
cccc dddd
B)aaaa
bbbb
cccc
dddd
C)aaaa
bbbb
cccc dddd
eeee
D)aaaa bbbb
cccc
dddd
7.有以下程序
main()
{charst[20]="hello\0\t′\\";
printf("%d%d\n",strlen(st),sizeof(st));
}
程序运行后的输出结果是()
A)9 9
B)5 20
C)13 20
D)20 20
8.不合法的main函数命令行参数表示形式是()
A)main(inta,char*c[])
B)main(intarc,char**arv)
C)main(intargc,char*argv)
D)main(intargv,char*argc[])
9.下面程序的输出结果为()
struct st
{ int x;
int*y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],,&dt[2],80,&dt[3]};
main()
{ p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A)10
B)50
C)51
D)60
20 60 60 70
20 21 21 31
10.以下程序的功能是()
# include
main ()
{ FILE*fp1;*fp2;
fp1=fopen ("file1","r");
fp2=fopen ("file2","w");
while (!feof (fp1))
fputc (fgetc (fp1),fp2);
fclose (fp1); fclose (fp2); }
A)将磁盘文件的内容显示在屏幕上
B)将两个磁盘文件合为一个
C)将一个磁盘文件复制到另一个磁盘文件中
D)将两个磁盘文件合并后送屏幕
参考答案:1.D 2.D 3.B 4.D 5.D 6.A 7.B 8.C 9.C 10. C