第八章若有语句:int i,*p=i; 则均表示变量地址的选项是________。 (A) *p,*p,i (B) i,p,*i (C) *i,i,*p (D) i,p,*p以下程序的输出结果是________。 #include<stdio.h> void fun(int *p1,int *p2)( int *p; *p=*p1; *p1=*p2; *p2=*p; ) void main()( int x=5,y=8; fun(x,y); printf("%d,%dn",x,y); ) (A) 5,8 (B) 8,5 (C) 程序运行时报错 (D) 程序编译时[1]报错若有语句:int x=6,*p=x; 则下面正确的表达式是________。 (A) ++x (B) (*p)-- (C) (x+5) (D) p=1000若有语句:int a[10],*p1=a+8,*p2=a[3]; 则p1-p2的值是________。 (A) 20 (B) 4 (C) 16 (D) 5以下程序段[2]执行完毕后,变量a和b的值分别是________。 int a=4,b=5,*p1=a,*p2=b; a=2*(*p1%-*p2)+5; b=*p1**p2++; (A) 13,65 (B) -3,-15 (C) -3,-18 (D) 13,78以下程序段调用scanf函数为变量x赋值,则填入下划线所在位置的错误代码是________。 int x,*p=x; scanf("%d",__________); (A) x (B) *p (C) p (D) *p若有语句:int a[]=(1,3,2,7,3,4),*p=a+3,k; 则变量k的值不等于3的选项是________。 (A) k=(p++,*p++) (B) k=(p-=2,*p--) (C) k=(p--,*--p) (D) k=(p++,*++p)以下程序段在运行时,若通过键盘输入“2 6 9 7 5”,则输出结果是________。 int a[5],*p,t; for(p=a;p<a+5;p++) scanf("%d",p); for(p=a;p<a+3;p++) (t=*p; *p=*(a+(a+4-p)); *(a+(a+4-p))=t;) for(p=a;p<a+5;p++) printf("%d ",*p); (A) 2 6 9 7 5 (B) 7 5 9 2 6 (C) 5 7 9 6 2 (D) 6 2 7 9 5若有定义:int a[10],*p=a; 则表示数组元素a[3]的错误选项是________。 (A) *(a+=3) (B) *(p+=3) (C) *(a+3) (D) p[3]以下程序执行完毕后,变量a和b的值分别是________。 #include<stdio.h> void fun(int *p,int *q)( int *t; if(*p>*q) {t=p; p=q; q=t;) } void main()( int a=13,b=9; fun(a,b); ) (A) 9,13 (B) 13,13 (C) 13,9 (D) 9,9以下程序输出数组a中的最小值,则下划线所在位置应填入的代码是________。 #include<stdio.h> int findmin(int *p,int n)( int *m,*q=p+n; for(m=p;p<q;p++) if(__________) m=p; return *m; ) void main()( int a[6]={21,17,34,9,12,45); printf("%dn",findmin(a,6)); } (A) p<m (B) p>m (C) *p>*m (D) *p<*m以下说法正确的是________。 (A) 可以将整型常量[3]作为存储单元[4]地址存放到指针变量中。 (B) 指针变量的值是指针。 (C) 可以采用为数组名重新赋值的方法使其指向不同的元素。 (D) 使用地址值作为实参[5]、指针变量作为形参,形参值的改变可以使实参值发生变化。以下对程序输出结果的判断中,正确的是________。 #include<stdio.h> void fun(int x,int a[50])( do{ *a++=x%10; x=x/10; printf("%d",*(a-1)); )while(x); } void main()( int x=6985,a[50]; fun(x,a); ) (A) 程序能正常运行,输出结果为5896 (B) 程序编译时报错,因为形参数组名不能进行自增运算 (C) 程序能正常运行,输出结果为6985 (D) 程序能正常运行,输出结果为随机数若有函数定义:double fun(int a[10])(...),则在对该函数进行原型声明时,错误的声明语句是________。 (A) double fun(int []); (B) double fun(int b[10]); (C) double fun(int a); (D) double fun(int *a);若有语句:int x,*p=x; 则与该语句等价的语句是________。 (A) int x,*p; *p=x; (B) int x,*p; p=x; (C) int x,*p; *p=x; (D) int x,*p; p=x;判断题B 当两个指针变量指向同一数组时,两个指针变量相减的差值即为两个指针变量相隔的字节个数。

第八章

若有语句:int i,*p=i; 则均表示变量地址的选项是________。 (A) *p,*p,i         (B) i,p,*i     (C) *i,i,*p     (D) i,p,*p

以下程序的输出结果是________。 #include<stdio.h> void fun(int *p1,int *p2){   int *p;   *p=*p1; *p1=*p2; *p2=*p; } void main(){   int x=5,y=8;   fun(x,y);   printf("%d,%d\n",x,y); } (A) 5,8          (B) 8,5          (C) 程序运行时报错          (D) 程序编译时[1]报错

若有语句:int x=6,*p=x; 则下面正确的表达式是________。 (A) ++x          (B) (*p)--          (C) (x+5)          (D) p=1000

若有语句:int a[10],*p1=a+8,*p2=a[3]; 则p1-p2的值是________。 (A) 20          (B) 4          (C) 16          (D) 5

以下程序段[2]执行完毕后,变量a和b的值分别是________。 int a=4,b=5,*p1=a,*p2=b; a=2*(*p1%-*p2)+5; b=*p1**p2++; (A) 13,65          (B) -3,-15          (C) -3,-18          (D) 13,78

以下程序段调用scanf函数为变量x赋值,则填入下划线所在位置的错误代码是________。 int x,*p=x; scanf("%d",__________); (A) x          (B) *p          (C) p          (D) *p

若有语句:int a[]={1,3,2,7,3,4},*p=a+3,k; 则变量k的值不等于3的选项是________。 (A) k=(p++,*p++)          (B) k=(p-=2,*p--) (C) k=(p--,*--p)          (D) k=(p++,*++p)

以下程序段在运行时,若通过键盘输入“2 6 9 7 5”,则输出结果是________。 int a[5],*p,t; for(p=a;p<a+5;p++) scanf("%d",p); for(p=a;p<a+3;p++) {t=*p; *p=*(a+(a+4-p)); *(a+(a+4-p))=t;} for(p=a;p<a+5;p++) printf("%d ",*p); (A) 2 6 9 7 5          (B) 7 5 9 2 6          (C) 5 7 9 6 2          (D) 6 2 7 9 5

若有定义:int a[10],*p=a; 则表示数组元素a[3]的错误选项是________。 (A) *(a+=3)          (B) *(p+=3)          (C) *(a+3)          (D) p[3]

以下程序执行完毕后,变量a和b的值分别是________。 #include<stdio.h> void fun(int *p,int *q){   int *t;   if(*p>*q) {t=p; p=q; q=t;} } void main(){   int a=13,b=9;   fun(a,b); } (A) 9,13          (B) 13,13          (C) 13,9          (D) 9,9

以下程序输出数组a中的最小值,则下划线所在位置应填入的代码是________。 #include<stdio.h> int findmin(int *p,int n){   int *m,*q=p+n;   for(m=p;p<q;p++) if(__________) m=p;   return *m; } void main(){   int a[6]={21,17,34,9,12,45};   printf("%d\n",findmin(a,6)); } (A) p<m          (B) p>m          (C) *p>*m          (D) *p<*m

以下说法正确的是________。 (A) 可以将整型常量[3]作为存储单元[4]地址存放到指针变量中。 (B) 指针变量的值是指针。 (C) 可以采用为数组名重新赋值的方法使其指向不同的元素。 (D) 使用地址值作为实参[5]、指针变量作为形参,形参值的改变可以使实参值发生变化。

以下对程序输出结果的判断中,正确的是________。 #include<stdio.h> void fun(int x,int a[50]){   do{     *a++=x%10;     x=x/10;     printf("%d",*(a-1));   }while(x); } void main(){   int x=6985,a[50];   fun(x,a); } (A) 程序能正常运行,输出结果为5896 (B) 程序编译时报错,因为形参数组名不能进行自增运算 (C) 程序能正常运行,输出结果为6985 (D) 程序能正常运行,输出结果为随机数

若有函数定义:double fun(int a[10]){...},则在对该函数进行原型声明时,错误的声明语句是________。 (A) double fun(int []); (B) double fun(int b[10]); (C) double fun(int a); (D) double fun(int *a);

若有语句:int x,*p=x; 则与该语句等价的语句是________。 (A) int x,*p; *p=x;          (B) int x,*p; p=x; (C) int x,*p; *p=x;           (D) int x,*p; p=x;

判断题

B 当两个指针变量指向同一数组时,两个指针变量相减的差值即为两个指针变量相隔的字节个数。

A. 如果某个指针变量赋值为0,表示该指针变量不指向任何变量。
B. 若有语句:int x[]={5,7,3,8},*p=x+2,y; y=++*p--; 则变量y的值是3。
C. 若有函数定义:int fun(int *a){return *a;},则函数的返回值是形参a中存放的地址值。
D. 以下程序段的功能是交换变量a和b的值。 int a=9,b=7,*p=a,*q=b; *p=*p+*q-(*q=*p);
E. 以下程序段在数组a中查找数值x,则在下划线所在位置应填入的代码是“*p!=x”。 double a[5]={1.4,0.78,23.6,-4.5,19.3},x,*p=a; scanf("%lf",x); for(p=a;__________;p++); if(p<a+5) printf("Find!\n"); else printf("Not Find!\n");
F. 以下程序段的输出结果是75。 int x=61,a[100],*p=a; while(x){   *p++=x%8;   x=x/8; } for(p=p-1;p>=a;p--){printf("%d",*p);}
G. 以下程序执行完毕后,全局变量[6]X和局部变量[7]r的值分别是0和5。 #include<stdio.h> int X=4; int fun(int x,int *p){   static int m=5;   X*=m-x; m=++*p;   return m; } void main(){   int a=2,b=3,r;   r=fun(fun(a,b),b); }
以下程序执行完毕后,main函数中数组a各元素的值依次是1、9、6、5、8、7、3。 #include<stdio.h> void fun(int a[],int n,int m){   int i,t,*p;   for(i=1;i<=m;i++){     t=*(a+n-1);     for(p=a+n-2;p>=a;p--) *(p+1)=*p;     *a=t;   } } void main(){   int a[7]={8,7,3,5,1,9,6};   fun(a,7,3); }
填空
[ 指针变量]。
[ 15 ]。 #include<stdio.h> void fun(int *p,int m,int n){   if(n<=m) fun(p,m/2,2*n);   *p+=n; } void main(){   int x=0;   fun(x,16,1); }
进行由大到小排序,请填空。 #include<stdio.h> #define N 6 void fun(int *p,int *q){   int t;   t=*p; *p=*q; *q=t; } void main(){   int a[N]={1,2,3,4,5,6},*p,*q;   for(p=a;p<a+N-1;p++)     for(q=p;q<a+N;q++) [ *p<*q?fun(p,q):1 ]; }
中,并将这些数的个数放在变量n中,请填空。 void fun(int *p,int *q){   int x;   for(x=1;x<=100;x++)     if(x%7==0||x%11==0){*p++=x; (*q)++;} } void main(){   int a[1000],n=0;   [ fun(a,n) ]; }
[ 1 5 9 8 6 ]。 int a[5]={6,5,9,8,1},*p,*q; for(p=q=a+2;q<a+5;p--,q++)   if(*p>*q) {*p=*p+*q; *q=*p-*q; *p=*p-*q;} for(p=a;p<a+5;p++) printf("%d ",*p);
[7]={2,5,3,4,7,8,1},*p=a+1; 则p[*(a+*(a+2))]的值是[ 8 ]。
\x11T\101C"的长度是[5  ]。
[ int ]。
[double  ]。
Visual C++ 6.0环境中,一个char型变量在内存中占[ 1 ]个字节,一个int型变量在内存中占[  4]个字节,一个double型变量在内存中占[ 8 ]个字节。
[ 6 ],表达式y=(y=3,x=y,x+3)的值是[ 6 ]。
可以把一个字符常量赋给一个整型变量。
说明语句int t1=t2=10;可以把t1、t2定义成int型变量并初始化为10。 A k1=k2=k3=10;是一条合法的赋值语句[8]。 A 可以把define定义为用户标识[9]符,但不能把if定义为用户标识符。 A 设有说明语句:int x=3,y=5; ,当执行语句x=x+y; y=x-y; x=x-y;后,变量x和y的值实现了交换。 B 在
语言的运算符中,条件运算符的优先级最低。
 

参考答案与解析:

相关试题

若有语句:inti,*p=&i;则均表示变量地址的选项是()

[单选题]若有语句:inti,*p=&i;则均表示变量地址的选项是()A . *&p,*p,&iB . i,p,&*iC . *&i,&i,*pD . &i,p,&*

  • 查看答案
  • 若有: int i=1000; int *p=&i; void*q; q=p;

    [主观题]若有:int i=1000;int *p=&i;void*q;q=p;其中,q=p的含义是______。

  • 查看答案
  • 若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ( )

    [单选题]若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ( )A.i=*p;B.*p=*&jC.i=&jD.i=* *p;

  • 查看答案
  • 若有说明int i,j=2,*p=&i;则能完成i=j赋值功能的语句是_____

    [单选题]若有说明int i,j=2,*p=&i;则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*&j;C.i=&若有说明int i,j=2,*p=&i;则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

  • 查看答案
  • 若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ___

    [单选题]若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ______。A.i=*p;B.*p=&j;C.i=&am若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ______。A.i=*p;B.*p=&j;C.i=&j;D.i=**p;

  • 查看答案
  • 第七章练习题选择题7.1.在线性回归模型._(i)=(P)_(1)+(P)_(2)(X)_(i)+(C)_(i)中,._(i)=(P)_(1)+(P)_(2)(X)_(i)+(C)_(i)反映的是(

    第七章练习题选择题7.1.在线性回归模型._(i)=(P)_(1)+(P)_(2)(X)_(i)+(C)_(i)中,._(i)=(P)_(1)+(P)_(2)(

  • 查看答案
  • 若有说明int i,j=2,*p&i;,则能完成i=j赋值功能的语句是_____

    [单选题]若有说明int i,j=2,*p&i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*&j;C.i=&若有说明int i,j=2,*p&i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

  • 查看答案
  • 若有下列定义及初始化语句: int i=100; int*p=&i; intk=

    [单选题]若有下列定义及初始化语句: int i=100; int*p=&i; intk=*ip; 并假设整型数i的地址为0x12345678,指针中的地址为0x21000000,则k的值为( )。A.0x12345678B.0x21000000C.100D.异常

  • 查看答案
  • 若有说明:inti,j=7,*p=&i;则与i=j;等价的语句是()。

    [单选题]若有说明:inti,j=7,*p=&i;则与i=j;等价的语句是()。A . i=*p;B . *p=jC . i=&j;D . i=**p;

  • 查看答案
  • 现有如下定义语句 int*p,s[20],i; p=s; 表示数组元素s[i]的

    [单选题]现有如下定义语句int*p,s[20],i;p=s;表示数组元素s[i]的表达式不正确的是A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)

  • 查看答案