内容发布更新时间 : 2024/11/9 1:44:57星期一 下面是文章的全部内容请认真阅读。
} main()
{ int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf(\}
14. int a=100,b=200;
void f( )
{ printf(“%d,%d\\n”,a,b); a=1;b=2; }
void main()
{ int a=5,b=7 ; f( );
printf(“%d,%d\\n”, a,b) ; }
15. fun( int x)
{ static int a=3;
a+=x ; return a ; }
void main ( ) { int k=2,m=1,n; n=fun(k) ; n=fun(m);
printf(“%d\\n”,n) ; }
第10章 指针 一、选择题
1.设有定义 int a[ ]={1,5,7,9,11,13}, *p=a+3; 则*(p-2) , *(a+4) 的值是
A)5 11 B)1 9 C)5 9 D)有错误
2. 设有定义 int a[ ]={1,5,7,9,11,13}, *p=a+3; 则*(p-3) , *(a+2) 的值是
A)5 11 B)1 7 C)5 9 D)有错误
3.对于int a[ ] = {1,2,3,4,5,6}, p; p=a; *(p+3)+ = 2; 则*p, *(p+3)的值为
A) 1 5 B) 1 3 C) 1 4 D) 1 6
4. 设有定义 char *p=“abcde\\Ofghjik\\0”; 则printf(“%d\\n”,strlen(p));输出结果是
A) 12 B) 15 C) 6 D) 5
5.下程序段: char s[20 ]=\的输出结果是 A) abcdABCD B) ABCDabcd C) ABCD D) abcd 6. 设有定义语句:char str[][20]={\
第16页(共23页)
则printf(\输出结果是
A)0 B) 5 C)7 D)20 7.能正确运用指针变量的程序段是
A)int *i=NULL; B) float *f=NULL;
scanf(\ *f=10.5; C)char t='m', *c=&t; D) long *L;
*c=&t; L='\\0';
8.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10
void arrin(int x[N]) { int i=0; while(i scanf(\ } 在下划线处应填入的是 A)x+i B)&x[i+1] C)x+(i++) D)&x[++i] 9.若有以下定义和语句:int a=4,b=3,*p,*q, *w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是 A)*q=0; B)w=p; C)*p=a; D)*p=*w; 10.下列选项中正确的语句组是 A)char s[8]; s={\ B)char *s; s={\C)char s[8]={\ D)char *s; s=\11.若有: int a[10],*p=&a[0];,关于数组名a的不正确的说法是 A)a是个数组指针 B)数组名a表示数组的首地址 C)数组名a与a[0]等价 D)a和p都指向同一个存储单元 12.已定义以下函数 fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值 二、填空题 1.char str1[10],str2[10]={\,则能将字符串books赋给数组str1的标准函数是 。 2.若有说明:char s1[4]=\则我们称指针变量 ptr指向数组s1的 ,而 *(ptr+1)的值是 3.对于char str[ ] = “1234”, *p = str; 则 *(p + 2)的结果是 。 4.已知:int a[5]={1,2,3,4,5}, *p=a+2; 则*P的值是 。 5.若有说明:char *s=\则我们称指针变量S指向字符串的 ,而S[2]的值是 三、读程序,写出程序执行结果 第17页(共23页) 1.void main() { char *p, str[20]=\ p=\ strcpy(str+1 , p+1) ; printf(\} 2.void main() { char *p=”abcdba”,*q; int flag=1; q=p+strlen(p)-1; while(p } 3. void fun(char *a, char *b) { a=b; (*a)++; } main() { char c1='A',c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf(\} 4.void f(int *s , int n1 , int n2) { int i , j , t ; i=n1; j=n2; while(i { t=*(s+i) ; *(s+i)=*(s+j) ; *(s+j)= t ; i++ ; j- - ; } } main() { int a[]={11,55,66,77,88,99},i; f(a,1,5); for(i=0;i<6;i++)printf(“=”,a[i]); } 5. f(int *x,int n) { int *p, *s; for(p=x,s=x;p-x } main() { int a[5]={1,12,10,16,8}; printf(“%d\\n”,f(a,5)); 第18页(共23页) } 6.void main ( ) { char a[20]=”very lucky”, c ; int i, j; j= strlen(a)-1 ; for (i=0; j>i; i++,j--) { c=*(a+i); *(a+i)=*(a+j); *(a+j)=c; } puts(a); } 7. main() { int a,k,*p=&a; a=6; for(k=1;k<=(*p);k++) if((*p)%k!=0)printf(“]”,k); } 8. void main() { char x[]=\char *ptr; for(ptr=&x[2];ptr 9.void main() { char a[]=\ int k=0; while(*p) { if(*p 10. void main() { int k,a[10],*p=a ; for(k=1;k<10;k++) *(p+k-1)=k; for(k=0;k<5;k++) *(p+9-k)=*(p+k); for(k=0;k<10;k++) printf(“=”,*p++); } 11.void main() { char *p=”China University of Petroleum!”, *p1; int n=1; p1=p; while(*++p)n++; printf(%s ,%d\\n”,p1+20,n); } 12.void fun(char *c,int d) { *c=*c+1;d=d+1; 第19页(共23页) printf(“%c,%c,”,*c ,d); } main() { char a='A',b='a'; fun(&b,a); printf(\} 13. fun(char *w, int n) { char t, *s1, *s2; s1=w; s2=w+n-1; while(s1 main() { char *p=\fun(p, strlen(p)); puts(p); } 14.int fun(char *s1,char *s2) { int i=0; while(s1[i]==s2[i] && s2[i]!='\\0') i++; return (s1[i]=='\\0' && s2[i]=='\\0'); } main() { char p[10]=”abcdef”, q[10]=”ABCDEF” printf(“%d\\n”,fun(p,q)); } 15.main() { int a[10],*p,*s,i; for(i=0;i<10;i++) scanf(%d”,a+i); for(p=a,s=a;p-a<10;p++) if(*p>*s)s=p; printf(“max=%d,index=%d\\n”,*s, s-a); } 简述上列程序完成的功能: 16.fun(char *p2, char *p1) { while((*p2=*p1)!='\\0'){ p1++;p2++; } } 简述此函数完成的功能: 第11章 结构体 一、选择题 1.若有以下说明,则对结构体变量stu1中成员age的不正确的引用方式是 struct student 第20页(共23页)