测试题2答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1.语句int a=10,*point=&a; D 其值不为地址。
A. point
B. &a
C. &point
D. *point
2.若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 B
A. ”visual C++”
B.str的首地址
C. \n
D.”v”
4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为
A
A.T,Father,F
B.Teaher,F,Father
C. Teacher,Father,Father
D.语法错,无输出
5.下列说明或赋值语句,不正确的是 C
A. char *p;p=”Visual C++”;
B. char p1[12]={…v‟,‟i‟,‟s‟,‟u‟};
C. char p2[12];p2=”Visual C++”
D. char p3[]=”Visual”;
6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 B
A.p+=3*4+3
B.p+=2*4+3
C. p+=(3*4+3)*sizeof(int)
D.p+=(2*4+3)*sizeof(int)
7.语句int i,*p1,**p2;以下语句语法不正确的是 B
A.p1=&i;
B. p2=&i;
C.p2=&p1;
D.i=‟\0x23‟;
8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能
..把结点b连接到结点a之后的语句是 B
C. p->next=&b;
D.(*p).next=q;
9.下面正确的语句是 A
A. int a[3][4],(*p)[4]; p=a;
B. int a[3][4],*p[4]; p=a;
C. int a[3][4],*p; p=a;
D. int a[3][4],**p;*p=a;
10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 B
A.fp=fopen("a:\\aa.dat","ab");
B. fp=fopen("a:\\aa.dat","a");
C. fp=fopen("a:\\aa.dat","r+");
D. fp=fopen("a:\\aa.dat","w");
11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, B
A.函数返回值100
B. 函数返回值150
C. 函数返回二个值100和150
D. 语句return 100,150;语法错.
12.数组作为函数的形参时,把数组名作为实参,传递给函数的是 A
A.该数组的首地址
B. 该数组的元素个数
C. 该数组中的各元素值
D. 该数组的大小
13.执行以下语句序列:则 A
enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //A
c1=Mon; //B
printf(“%d”,c1);
A.输出1
B.输出2
C.输出0
D. B行语法错
14.执行以下语句序列:则 C
char *p1=”Speaking”; //A
char *p2=”English”; //B
char *p3=”a piece of cake”; //C
char *str[]={p1,p2,p3}; //D
printf(“%c”,*(str[0]+1));
A.输出English
B.输出Speaking
C.输出p
D. D行语法错
二、填空题
1.(2*2分=4分)下面程序的运行结果为16 、 2
void main( )
{
static int a[3][2]={{12},{14,16},{1,2}};
int *p=a[1];
printf(“%d\n”,*(p+1));
printf(“%d\n”,*(p+3));
}
2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为11 ,
*(*(p+1)+1)的值为7
static int b[3][2]={1,3,5,7,9,11};
int (*p)[2];
p=b;
3.(1*4分=4分)下面程序的运行结果为26
#include
void sub(int *x,int i,int n)
{
if(n<=i)sub(x,i,3*n);
*x+=n++;
}
void main( )
{
int x=0;
sub(&x,12,2);
printf(“%d”,x);
}
4.(2*2分=4分)以下程序运行结果为_ Hello,world _、ello,world void main()
{
char *p,*q;
char str[]="Hello,World\n";
q = p = str;
p++;
printf(“%s\n”,q);
printf(“%s\n”,p);
}
5. (1*4分=4分)以下程序运行结果是__121232343454_________ void main()
{
short ar[5]={1,2,3,4,5 };
short * par=&ar[1];
int i;
for(i=0; i<4; i++)
{
printf(“%d %d %d”,ar[i],par[i],*(ar+i));
}
}
6.(2*2分=4分) 以下程序运行结果是__200 100_____
void swap2(int *x,int *y)
{int t;
t=*x;*x=*y;*y=t;
}
void main( )
{ int a=100,b=200;
swap2(&a,&b);
printf(“%d\t%d”,a,b);
}