内容发布更新时间 : 2025/6/23 8:55:09星期一 下面是文章的全部内容请认真阅读。
} 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页)