logo资料库

C语言指针练习填空和阅读程序题.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
指针练习 1 若 m 数组的元素和它们的值如下表示: 数组元素: m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8] m[9] 元素中的值: 9 则数组元素 m[m[4]+m[8]]的值是( ),*m+m[9] 的值是( 10 12 2 7 5 1 3 4 8 2 若有以下定义和语句,则下面各个符号的正确含义分别是:(例如对于符号 &a[2][1],应该写 )。m[*(m+4)]的值是( ). 3 若有以下定义和语句,在程序中引用数组元素 x[i] 的四种形式是:( ),( ),( ),和 x[i]。 成:数组元素 a[2][1]的地址)。 int a[3][4], (*q)[4]; q=a; *(q+2): ( ), *(q+1)+2( ), *(*q+2): ( ) x[10], (假设 i 已正确说明并赋值) int 若有定义:int m[10][6];在程序中引用数组元素的形式是:( 确说明并赋值)。 p=x; *p; 4 若有以下定义和语句,在程序中可通过指针数组 p 来引用数组元素 s[i][j]( 假设 i,j 已正确 ),( ),( ) (假设 i,j 已正 说明并赋值);它们是:( s[10][6],*p[10]; int for (i=0;i<10;i++) p[i]=s[i]; ),( 5. void f( int y,int *x) {y=y+*x; *x=*x+y;} )和( )。 void main(void ) { int x=2,y=4; f(y,&x); printf(“%d %d\n”,x,y); } 执行后输出的结果是()。 6. #include "stdio.h" void main(void) {char str[]="1234567890"; int *p=(int*)str; printf("%c",*(p+1)); } 执行后输出的结果是()。 7. 若有以下定义和语句: int a[4]={0,1,2,3},*p; p=&a[1]; 则++(*p)的值是( ),*--p的值是( ). 8.若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是( ), *(a[1]+2) 的值是( ). 9. 设 p1 和 p2 是指向同一个 int 型一维数组的指针变量,k 为 int 型变量,则不能正确执行的语 b. p1=p2; c. p1=k; e. k=*p1/(*p2); 句是: a. k=*p1+*p2; 10. int a[2][3]={1,2,3,4,5,6}; int m,*p; p=&a[0][0]; m=(*p)*(*(p+3))/(*(p+4)) m 的值:( )
11. void main(void) { char a[]=”programming”,b[]=”language”; char *p1,*p2; int i,len; p1=a,p2=b; len=strlen(a); if(len>strlen(b)) for(i=0;i void main() { void input(int *); void change(int *); void output(int *); int number[10]; input(number); change(number); output(number); } void input(int number) { int i; printf("input 10 numbers:" ); for(i=0;i<10;i++) scanf("%d",&number[i]); } void change(int number) { int *p,*max,*min,temp; max=min=number; for(p=number+1;p*max) max=p; else if(*p<*min) min=p; temp=*number[0];number[0]=*min;*min=temp; temp=*number[9];number[9]=*max;*max=temp; }
void output(int number) { int *p; printf("now number is:"); for(p=number;p
} 19.以下程序把一个十进制整数转换成二进制整数,并把此二进制数的每一位放在一位数组 b 中, 然后输出 b 数组.(注意:二进制数的最低位放在数组的第一个元素中。)请填空. main() { int b[16],x,k,r,i; printf(“Enter an integer :\n”); scanf(“%d”,&x); printf(“%6d’s binary number is : k=-1; ”,x); do {r=x%2; k++; *( x/=2; )=r; } while( for(i=k; i>=0; i--) printf(“%1d”,*( ); printf(“\n”); )); } 20.设有五个学生,每个学生考四门课,以下程序能检查这些学生有无考试不及格的课程.若某一 学生有一门或几门不及格的课程,就输出该学生的序号(从 0 开始)和其全部课程成绩.请填 空. main() {int score[5][4]={ { 62,87,67,95 },{ 95,85,98,73 },{ 66,92,81,69 }, { 78,56,90,99 },{ 60,79,82,89 } }; int (*p)[4],j,k,flag; p=score; for(j=0;j<5;j++) flag=0; for(k=0;k<4;k++) { if( ) flag=1; if(flag= =1) { printf(“No. %d is fail, scores are :\n”,j); for(k=0;k<4;k++) printf(“%5d”, ( printf(“\n”); )); } } }
分享到:
收藏