文档库 最新最全的文档下载
当前位置:文档库 › 综合测试题八

综合测试题八

综合测试题八
一、选择题
1.下列程序的输出结果是
#includestdio.h

int b=2;
int func(inta)
{b+=a;return(b);}
main()
{
int a=2,res=2;
res+=func(&a);
printf("%d\n",res);
}
A)4 B)6 c)s D)10
2.请选出正确的程序段
A)int *p; B)int *s,k;
scanf("%d",p); *s=100;
C)int *s,k; D)int *s,k;
char *P,c; char *P,c;
s=&k; s=&k:
P=&c; P=&c:
*P=’a'; s=p;
…… *s=1;
3.有如下程序段:
int *P,a=10,b=1;
p=&a;a=*P+b:
执行该程序段后,a的值为
A)12 B)11 c)10 D)编译出错
4·对于基类型相同的两个指针变量之间,不能进行的运算是
A)< B)= C)+ D)-
5.如下程序的输出结果是
#include
main()
{char s[]="ABCD",*p;
for(p=s+l;p} .
A)ABCD B)A
BCD B
CD C
D D
C)B D)BCD
C CD
D D
6.如下程序的输出结果是
#include
main()
{
char ch[2][5]={"6937","8254"},*p[2];
int i,j,S=0;
for(i=0;i<2;i++)P[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>’\0’;j+=2)
S=10*S+P[i][j]-'0'; .
printf("%d\n",S);
}
A)69825 B)63825 C)6385 D)693825
7.下列程序段的输出结果是
#include
void fun(int *=X,int * Y)
{printf("%d%d",*x,*Y);*x=3;*Y=4;}
main()
{int X=1,Y:2;
fun(&y,&x);
pfinff("%d%d",X,Y);
}
A)2 1 4 3 B)1 2 1 2 C)l 2 3 4 D)2 1 1 2
8.下列程序的输出结果是
#include
void fun(int *a,int *b)
{int *k;
k=a;a=b;b=k;
}
main()
{int a=3,b=6,*x:&a,*Y=&b:
fun(X,Y);
pfintf("%d%d",a,b);
}
A)6 3 B)3 6 C)编译出错D)0 0
9.下面程序的输出结果是
#include
main()
{int a[]={l,2,3,4,5,6,7,8,9,0},*P;
P=a;
pfinff("%d\n",*P+9);
}
A)O B)l C)lO D)9
10.当调用函数时,实参是一个数组名,则向函数传递的是
A)数组的长度
B)数组的首地址
C)数组每一个元素的地址
D)数组每个元素中的值
11·若有说明语句:int a,b,e,* d=&c;,则能正确从键盘读人3个整数分别赋给变量a,b,c的语句是
A)scanf("%d%d%d",&a,&b,d);
B)scanf("%d%d%d",&a,&b,&d);
C)scanf("%d%d%d",a,b,d);
D)scanf("%d%d%d",a,b,*d);
12.若定义:int a=511,*b=&a;,则"printf("%d\n",*b);"的输出结果为
A)无确定值 B)a的地址 C)512 D)511
13·以下程序调用findmax()函数返回数组中的最大值,在下划线处应填入的是
#include
findmax(int *a,int n)
{int *P,*S;
for(P=a,s=a;P-aif(__)s=P;
return(*S)

;
}
main()
{
int x[5]={12,21,13,6,18};
printf("%d\n",findmax(X,5));
a)P>s B)*P> *s c)a[p]>a[s] D)P-a>P-s
4.在说明语句“int *f();"中,标识符f代表的是.
A)一个用于指向整型数据的指针变量
B)一个用于指向一维数组的行指针
C)一个用于指向函数的指针变量
D)一个返回值为指针型的函数名
:5.若有说明:int 13=2,*P=&n,*q=p;,则以下非法的赋值语句是
A)p=q; B)*P=*q; C)n=*q;D)P=n;
二、填空题
1.以下程序通过函数指针P调用函数fun(),请在空格处写出定义变量P的语句。
void fun(int *x,int *Y)
{…}
main()
{int a=10,b=20;
______;/*定义变量P*/
P=fun;P(&a,&b);
}
二.下列程序的输出结果是____。
void fun(int *n)
{while((*n)--);
printf("%d",++(*n));
}
main()
{int a=100;
fun(&a);
}
3.以下程序的输出结果是____。
main()
{int arr[]={30,25,20,15,10,5},*P=arr;
P++;
printf("%d\n",*(P+3));
}
4.以下程序的功能是:将无符号八进制数构成的字符串转换为十进制整数。例如,输入的字符串为
556,则输出十进制整数366。请填空。
#include
main()
{char *P,S[6];
int n;
P=S:
gets(P);
n=*P-’0’:
while(_______!=’\0’)n=n*8+*P-'0':
printf("%d\n",n);
5.以下程序的输出结果是____。
#include
main()
{char *P="abcdefgh",*r;
long *q;
q=(long *)P;
q++;
r=(char *)q;
printf("%S\n",r);
}
6.以下程序的输出结果是____。
#include
main()
{int X=0;
sub(&x,8,1);
printf("%d\n",X);
}
sub(int *a,int n,int k)
{if(k<=n)sub(a,n/2,2*k);
*a+=k:
}
7·已知“int b[]={l,2,3,4},Y,*P=b;",则执行语句“y=*P++;"后,变量y的值为____
8.下面程序的输出结果是____。
#include ,
main()
{static char a[]="language",b[]="program";
char *ptrl=a,*ptr2=b;
int k; .
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
pfinff("%C",*(ptrl+k));
}


相关文档
相关文档 最新文档