资源描述:
《C语言程序设计题目及解答.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、判断题 (14分)1.指针就是地址,因此一个变量的指针就是该变量的地址。2分2.在语句int*p;和语句printf("%d",*p);中的*p含义相同。2分3.指针变量不可以为函数的参数。2分4.若指针变量指向一维数组的第一个元素,将指针变量加整数3,即指针后移3个元素。5.b是一维数组名,数组元素b[1]还可写成*(b++)。2分6.在二维数组中,行指针是指向一维数组的指针变量.2分7.取地址运算符&与指针运算符*的优先级相同,结合方向为自右向左。2分二、选择题 (18分)1.下列程序执行后的输出结果是()。
2、[A]2分#includevoidfunc(int*a,intb[]){b[0]=*a+6;}intmain(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d",b[0]);}A.6 B.7 C.8 D.92.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为()。 [C]2分A.编译出错 B.12 C.11 D.103.表达式“c=*p++”的执行过程是() [A]2分
3、A.复制*p的值给c后再执行p++B.复制*p的值给c后再执行(*p)++C.复制p的值给c后再执行p++D.执行p++后再复制*p的值给c4.若有floata=2.5,b=6.3,*pa=&a;*pa*=3;pa=&b;则正确的是()。 [B]2分A.pa的值是2.5; B.*pa的值是6.3 C.*pa的值是7.5 D.pa的值是6.3;5.下列语句定义p为指向float型变量d的指针,其中正确的是() [C]2分A.floatd,*p=d; B.float*p=&d,d;
4、 C.floatd,*p=&d; D.floatd,p=d;6.若有“floata=1.5,b=3.5,*pa=&a;*pa*=3;pa=&b;”,则正确的是() [C]2分A.pa的值是1.5 B.*pa的值是4.5 C.*pa的值是3.5 D.pa的值是3.57.指针变量p1、p2类型相同,要使p2、p1指向同一变量,哪一个语句是正确的()。A]2分A.p2=*&p1; B.p2=**p1; C.p2=&p1; D.p2=*p18.指出下列语句中正确的是()
5、。 [B]2分A.char*p;chars[80];p=s[0];B.doublex,y,*p;x=3.45;p=&x;y=*p;C.intx,*p;*p=x;D.int*p=&a;inta;9.下面程序的输出是()。[B]2分#includevoidast(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;x=*cp+*dp;y=*cp-*dp;}voidmain(){intx,y,c,d;x=5;y=2,c=8,d=4;ast(x,y,&c,&d);printf("%
6、d,%d,%d,%d",x,y,c,d);}A.5,2,8,4 B.5,2,7,3 C.12,4,7,3 D.12,4,8,4三、程序填空题 (38分)1.功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。10分#includeintlength(char*p){intn;n=0;while(*p!=' '){__(1)__;p++;}returnn;}intmain(){intlength(__(2)__);intlen;charstr[100
7、0];printf("pleaseinputastring:");scanf("%s",str);len=length(__(3)__);printf("thestringhas%dcharacters.",len);}(1)答案3分n++(2)答案4分char*p(3)答案3分str2.功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。16分#include#definenmax50intmain(){inti,k,m,n,n
8、um[nmax],*p;printf("pleaseinputthetotalofnumbers:");scanf("%d",&n);p=num;for(i=0;__(1)__;i++)*(p+i)=__(2)__;i=0;k=0;m=0;while(m