C语言程序设计练习题第3部分答案.doc
《C语言程序设计练习题第3部分答案.doc》由会员分享,可在线阅读,更多相关《C语言程序设计练习题第3部分答案.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C程序设计语言练习题第三部分63.已知:int x; 则下面说明指针变量pb的语句 是正确的。A) int pb=&x;B)int *pb=x;C)int *pb=&xD)*pb=*x;64.有如下程序段:int *p,a,b=1;p=&a;*p=10;a=*p+b;执行该程序段后,a值是 。A) 12 B) 11 C) 10 D) 编译出错65.若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 。A) i=*p; B) *p=*&j; C) i=&j; D) i=*p;66.已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为_。A) *&pB)
2、 *pC) p0D) *&a67.已知static int a23=2,4,6,8,10,12;正确表示数组元素地址的是_。A) *(a+1)B) a1+2C) a1+3D) a0068.已知int a34,*p=*a; p+=6;那么*p和_的值相同。A) *(a+6)B) *(&a0+6)C) *(a1+2)D) *(&a00+6)69.已知说明int (*p)M; 其中p是_。A) M个指向整型变量的指针B) 指向M个整型变量的函数指针C) 一个指向具有M个整型元素的一维数组的指针D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型变量70.若有定义和语句:int c45, (*
3、cp)5; cp=c;则对c数组元素的引用正确的是哪个?A)cp+1 B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)71.设有以下定义 : int a43=1,2,3,4,5,6,7,8,9,10,11,12; int (*prt)3=a,*p=a0;则下列能够正确表示数组元素a12的表达式是_。A) *(*prt+1)2) B) *(*(p+5)C) (*prt+1)+2D) *(*(a+1)+2)72.若有以下定义和语句: int w 23,(*pw)3; pw=w;则对w数组元素的非法引用是_。A) *(pw0+2)B) *(pw+1)2C) pw00D)*(pw1+2
4、)73.若有以下说明和定义: fun(int *c) void main() int(*a)(int*)=fun,*b(),w10,c; : 在必要的赋值之后,对fun()函数的正确调用语句是_。A)a=a(w); B)(*a)(&c); C)b=*b(w); D)fun(b);74.已知double *p6; 它的含义是_。A) p是指向double类型变量的指针B) p是double类型数组C) p是double类型指针数组D) p是double类型数组指针75.设有定义:int n=0,*p=&n,*q=&p; 则_是正确的赋值语句。A) p=1; B) *q=2; C) q=p; D)
5、 *p=5;76.以下选项中,错误的赋值是_A) char s110; s1=”Ctest”; B) char s2=C,t,e,s,t;C) char s320=”Ctest”; D) char *s4=”Ctestn”;77若有定义和语句:int *pp,*p,a=10,b=20;pp=&p; p=&b;printf(“%d,%dn”,*p,*pp);则输出的结果是_。A) 10,20 B) 10,10 C) 20,10 D) 20,2078.以下程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:ex1 abcd efg 10 ,则运行的结果是什么?9#incl
6、ude main(int argc,char *argv) int i,len=0; for(i=1;i2) change(a+1,n-2);(4) 字符串的长度加1ABC(char *ps) char *p;p=ps;while(*p+);return p-ps;84.对于基类型相同的两个指针变量之间,不能进行的运算是_。A) B) = C) +D) -85.不合法的main函数命令行参数表示形式是 A) main(int a,char *c) B) main(int arc,char *arv) C) main(int argc,char *argv) D) main(int argv,c
7、har *argc)86写出下面各程序段的输出结果(1)static char a=”Basic”;char *p;for(p=a; pa+5; p+) printf(“%sn”,p);for(p=a; pa+5; p+) printf(“%cn”,*p);BasicasicsiciccBasic(2) a=36 b=16 c=19void main() int a=1,b=2,c; c=func(a,&b); b=func(c,&a); a=func(b,&c);printf(a=%d,b=%d,c=%d,a,b,c); int func(int a,int *p) a+; *p=a+2;
8、return(*p+a);(3) 2 1 4 3void fun (int *x,int *y) printf(“%d %d”,*x,*y); *x=3; *y=4; main() int x=1,y=2;fun(&y,&x);printf(“%d %d”,x,y); (4)5ss(char *s) char *p=s; while (*p) p+; return (p-s);main() char *a= “abded”; int i; i=ss(a); printf(“%dn”,i); (5)0 void fun(int *n) while(*n)-); printf(“%d”,+(*n)
9、; main() int a=100; fun(&a); (6) 2 4main()int a5=2,4,6,8,10,*p,*k;p=a; k=&p;printf(“%d”,*(p+);printf(“%dn”,*k);(7) 9main()int a23=1,3,5,7,9,11,*s2,*pp,*p;s0=a0,s1=a1;pp=s;p=(int*)malloc(sizeof(int);*pp= s11;p=*pp;printf(“%dn”,*p);(8)字符串的长度 func( char str ) int num=0; while (*(str+num)!=0) num+; retu
10、rn (num); main() char str10,*p=str; gets(p); printf(“%dn”,func(p); (9) 6385main() char ch25=“6934”,“8254”,*p2 ;int I,j,s=0;for ( I=0; I2; I+)pI=chI;for (I=0;I0& pIj=9; j+=2) s=10*s+pIj-0;printf(“%dn”,s);(10)4int fa(int x) return x*x; int fb(int x) return x*x*x; int f(int (*f1)(int),int (*f2)(int ),i
11、nt x) return (*f2)(x)-(*f1)(x); main() int i; i=f(fa,fb,2); printf(%dn,i); 87、填写程序(1)下列程序输出数组中的最大值,由s指针指向该元素main()int a 10=6,7,2,9,1,10,5,8,4,3,*p,*s;for (p=a,s=a;p-a*s) s=p;printf(“The max;%d”,*s);(2)函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(
12、功能等同于库函数strcmp()。int sstrcmp(char *s,char *t) while( *s& *t &*s=*t) s+;t+; return *s-*t; (3)下面的程序完成的功能是:从键盘输入一行字符,反序输出。 #include struct node char data; struct node *link;*head; main() char ch; struct node *p; head=NULL; while(ch=getchar()!=n) p=(struct node*)malloc(sizeof(struct node); p-data=ch; p-
13、link=_head_; head=_p_; _p=head_; while(p!=NULL) printf(“%c”,p-data); _ p=p-link_; (4)以下程序输入10本书的名称和单价,按照单价进行排序后输出。#define NUM 10struct book char name20; int price;main() struct book term, booksNUM; int count; for(count=0; countNUM;count+ ) printf(“Please enter book name and price.book %d=”,count+1);
14、 scanf(“%s%d%*c”,_ bookscount.name,&bookscount.price _); sortbook(books, NUM); printf(“-BOOK LIST-n”); for(count=0; countNUM; count+); printbook(_books+count或&bookscount_);sortbook(struct book *pbook, int count) int i; struct book temp,*q, _ *pb,*pend=pbook+count_; for(i=0; icount-1; i+) pb=pbook+i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习题 部分 答案
限制150内