C语言课后练习总结_第1页
C语言课后练习总结_第2页
C语言课后练习总结_第3页
C语言课后练习总结_第4页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言练习题【第一章例题选编】1、选择题【例1.1]在计算机上可以直接运行的程序是( )»A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序【例1.2】以下叙述中正确的是( )。C语言比其他语言高级C语言可以不用编译就能被计算机识别执行C语言以接近英语国家的自然语言和数学语言作为语言的表达形式C语言出现的最晚,所以具有其他语言的一切优点TOC\o"1-5"\h\z【例1.3】一个C语言程序是由( )。A,ー个主程序和若干子程序组成B,若干函数组成C.若干过程组成D.若干子程序组成【例1.4】C语言规定,在ー个源程序中,main函数的位置( )。A,必须在最开始B.必须在系统调用的库函数的后面C.可以任意D,必须在最后【例1.5】一个C程序的执行是从( )。A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束【例1.6】以下( )是じ程序的基本结构单位。A.文件B.语句C.函数D.表达式【例1.7】以下( )不是C语言的特点。A.运算符丰富B,数据结构丰富C.可以直接访问物理地址D.C函数包含的语句数目没有限制【例1.8】下列关于C语言标识符的叙述中正确的是( )。A.标识符中可以出现ド划线和中划线(减号)B,标识符中不可以出现中划线,但可以出现下划线C,标识符中可以出现下划线,但不可以放在标识符的开头D.标识符中可以出现下划线和数字,它们都可以放在标识符的开头C语言程序设计辅导材料6【例1.9】以下几组选项中,均为不合法标识符的是( )。A.A,P_0,doB.float,laO,AC.b-a,goto,intD._123,temp,INT【例1.10】以下叙述不正确的是( )。ー个C源程序可由一个或多个函数组成ー个C源程序必须包含ー个main函数C程序的基本结构单位是函数D.在C程序中,注释说明只能位于一条语句的后面【例1.11】以下叙述正确的是( )«A.在C程序中,main函数必须位于程序的最前面C程序的每行中只能写ー一条语句C语言本身没有输入输出语句D.在对ー个C程序进行编译的过程中,可发现注释中的拼写错误【例1.12]、ー个C程序的执行是从( ).A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束〇本程序的main函数开始,到本程序最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束【例1.13]、以下叙述正确的是( )«A)在C程序中,main函数必须位于程序的最前面C程序的每行中只能写ー一条语句C语言本身没有输入输出语句D)在对ー个C进行编译的过程中,可发现注释中的拼写错误【例1.14]以下叙述不正确的是( )«ー个C源程序可由一个或多个函数组成ー个C源程序必须包含ー个main函数C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面【例1.15]C语言规定:在ー个源程序中,main函数的位置( )。A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后【例1.16]ー个C语言程序是由( )«一个主程序和若干子程序组成B)函数组成〇若干过程组成D)若干子程序组成【例1.17]下列说法正确的是( )。A)在执行C程序时,不是从main()函数开始C程序书写格式限制严格,一行内必须写ー个语句C程序书写格式比较自由,ー个语句可以分写在多行上D)C程序书写格式严格,要求一行内必须写ー个语句,并要有行号【例1.18]以下并非C语言的特点的是( )«A)C语言简洁和紧凑B)能够编制出功能复杂的程序〇c语言可以直接对硬件进行操作C语言移植性好2、填空题【例1.12]ー个C源程序中至少应包括ー个»【例1.13】C程序编译后生成程序,连接后生成程序。【例1.14】C语言规定,标识符只能由 、ー _、 一三种字符组成,而且,第一个字符必须是ー _或ー【例1.15】程序的3种基本控制结构是结构结构和 结构。【例1.16】C源程序的基本单位是=【例1.17】在ー个C源程序中,多行注释部分两侧的分界符分别为和。【例1.18】在C语言中,输入操作是由库函数完成的,输出操作是由库函数完成的。【例1.19]任何C语句必须以结束。【第二章例题选编】1,选择题【例2.1】若x、i、j和k都是int型变量,则计算下面表达式后,x的值为x=(i=4j=16,k=32)A.4B.16IC.3)D.52【例2.2]若有代数式とー,则不正确的C语言表达式是beA.a/b/c*e*3B,3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3【例2.3]已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语法的表达式是A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)【例2.4】以下选项中不属于C语言的类型的是〇A.signedshortint B.unsignedlongintC.unsignedint D.longshort【例2.5】下列定义中合法的是。A.shor_a=l-.le-l; B.doubleb=l+5e2.5;C.longdo=0xfdaL; D.float2_end=l-e-3;【例2.6】-8在内存中的存储形式是〇A.1111111111111000 B.1000000000001000C.0000000000001000 D.1111111111110111【例2,7]数值029是一个。A.ハ进制数 B,十六进制数C.十进制数 D.非法数【例2.8】在C语言中,要求运算数必须是整型的运算符是A./B.++C.!=D.%【例2.9】以下符合C语言语法的赋值表达式是。A.d=9+e+f=d+9 B.d=9+e,f=d+9C.d=9+e,e-H-,d+9 D.d=9-1-e-H-=d+7【例2.10】C语言中,关于自增自减运算符使用正确的是〇A.10++B.(x+y)ー・C.d+~H"d+"H~d++D.++(a-b)【例2,11】设有intx=ll;则表达式(x++*1/3)的值是。A.3B.4C.11D.12【例2.12]已知:inti=6,j;则语句j=(++i)+(i++)后的j值是。A.4B.14C.13D.15【例2.13】设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y后,y的值为。A.不定值 B.4C.3D.1【例2.14】当c的值不为0时,以下能将c的值赋给变量a,b的是。A.c=b=a B.(a=c)||(b=c)C.(a=c)&&(b=c)D.a=c=b【例2.15】已有定义:intx=3,y=4,z=5,则表达式!(x+y)+z-l&&y+z/2的值是〇A.6B.0C.2D.1【例2.16】下列运算符中,哪个运算符的优先级最高〇A.<=B.+C.IID.>=【例2.17】在C语言中,int、char和short三种类型数据所占用的内存是。A,均为2个字节 B.由用户自己定义C,由所用机器的机器字长决定的 D,是任意的【例2.18】若有说明语句:charc='\72';则变量cA.包含1个字符B.包含2个字符C,包含3个字符 D.说明不合法,c的值不确定【例2.19】若有定义:inta=7;floatx=2.5,y=4.7:则表达式x+a%3*(int)(x+y)%2/4的值是ーA.2.500000B.2.750000C.3.500000D.0.000000【例2.20]设有说明:charw;intx;floaty;doublez:则表达式w*x+z-y值的数据类型为 A.floatB.charC.intD.double【例2.21】以下程序的执行结果是。#include<stdio.h>voidmain(){inti=2;printf(ll%d,%d\n,\++i,-i);)A.1,IB.2,1C.1,2D.2,2【例2.22】当接受用户输入的含空格的字符串时,应使用的函数是。A.scanf()B.gets()C.getchar()D.getc()【例2.23】下列叙述中正确的是C语言中既有逻辑类型也有集合类型C语言中没有逻辑类型但有集合类型C语言中有逻辑类型但没有集合类型C语言中既没有逻辑类型也没有集合类型【例2.24】以下错误的叙述是。A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值【例2.25]长整型!ong数据在内存中的存储形式是A.ASCH码B.原码C.反码D.补码【例2.26】字符型常量在内存中存放的是A.ASCII码B.BCD码C,内部码 D-十进制码【例2.27】字符串常量“\\\22a.0\n”的长度是TOC\o"1-5"\h\zA.8 B.7 C.6 D.5【例2.28】设intx=l,y=l;表达式(!x||y—)的值是A.0 B.1 C.2 D.-1【例2.29]已知:intx;则使用逗号表达式(x=4*5,x*5),x+25的结果是,变量x的值为。A.20B.100C.45D,表达式不合法【例2.30]逻辑运算符两侧运算对象的数据类型 。A,只能是〇或1 B.只能是〇或非〇正数C.可以是整型或字符型数据 D.可以是任何类型的数据【例2.31]以下程序的执行结果是〇#include<stdio.h>voidmain(){printf(“%f\n”,2.5+l*7%2/4);}A.2.500000B.2.750000C.3.375000D.3.000000【例2.32]若给定条件表达式(M)?(a++):(a-),则其中表达式(M)A.和(M==0)等价 B.和(M==l)等价C,和(M!=0)等价D,和(M!=1)等价【例2.33】有以下程序:#include<stdio.h>voidmain(){unsignedchara,b,c;a=0x3;b=aI0x8;c=b«l;printf(44%d%d\n”,b,c);}程序运行后的输出结果是〇A.-1112B.-6-13C.1224D.11222、填空题【例2.34】若有以下定义,则计算表达式y+=y-=m*=y后的y值是〇intm=5,尸2;【例2.35]已知intx=6;则执行x+=x-=x*x语句后,x的值是〇【例2.36】若w=l,x=2,y=3,z=4,则条件表达式w>x?w:y<z?y:z的结果是〇【例2.37]在C语言中,ー个int型数据在内存中占2个字节,则int型数据的取值范围为ー〇【例2.38】要将一个16位二进制的整型变量的高8位清零,只保其留低8位,可用的方法疋〇【例2.39]若X和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为,n的值为。x+=n++【例2.40】已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为。【例2.41】假设m是ー个三位数,从左到右用a,b,c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是。【例2.42)设y为int型变量,描述“y是奇数”的表达式是。【例2.43】在scanf()函数中格式符x用于输入〇【例2.44】若有定义:inta=2,b=3;floatx=3.5,y=2.5Z则下面表达式的值为〇(float)(a+b)/2+(int)x%(int)y【例2.45]若有定义:intb=7;floata=2.5,c=4.7;则下面表达式的值为〇a+(int)(b/3*(int)(a+c)/2)%4【例2.46】若有以下程序:执行后的输出结果是〇#include<stdio.h>voidmain(){intk=2,i=2,m;m=(k+=i*=k);printfCi%d,%d\n,,,m,i);)【例2.47】有以下程序,输入123456789,其输出结果是〇#include<stdio.h>voidmain(){inta,b;floatf;scanfp%2d%*2d%2d%ド,&a,&b,&f);printff'%d,%d,%f\n”,a,b,f);)【例2.48】以下程序的执行结果是〇#include<stdio.h>voidmain(){inta,b,c;a=b=l;c=a++-l;printf(“%d,%dj,a,c);c+=-a-H-+(++b||-H-c);printf('%d,%d\n”,a,c);}【例2.49】以下程序的执行结果是0#include<stdio.h>voidmain()(inti=10;printf(t<%d,%d,%d,,,i—);}【例2.50】以下程序的执行结果是<#include<stdio.h>voidmain(){inta=-32768,b;b=a-l;printf(<<a=%d,b=%d,\a,b);}【例2.51]以下程序的执行结果是。#include<stdio.h>voidmain(){intx=042,y=067,z;z=(x»2)&(y«3);printfC^d'n'z);)【例2.52】以下程序的执行结果是〇#include<stdio.h>voidmain()(intn=023;printf(t4%d\n,,5—n);}【例2.53】以下程序的执行结果是#include<stdio.h>voidmainQintx=10,y=9;inta,b,c;a=(-x=y++)?-x:+4-y;b=x++;c=y;print隼’%d,%d,%d\n”,a,b,c);【第三章例题选编】1、选择题【例3.1]以下语句错误的是A.ifi[x>y); B.if(x=y)&&(x!=O)x+=y;C.if(x!=y)scanf("%d”,&x);eslescanf("%d'',&y); D.if(x<y){x++;y++;}【例3.2】C语言的if语句中,用作判断的条件表达式为A.任意表达式 B.逻辑表达式 C.关系表达式 D.算术表达式【例3.3】为了避免在嵌套的条件语句if・else中产生二义性,C语言规定:else子句总是与配对。A.缩排位置相同的ifB.同一行上的ifC,其之后最近的if D.其之前最近的if【例3.4】以下程序的输出结果是#include<stdio.h>voidmain()(inti=lj=l,k=2;if((j++||k++)&&i++)printfT%d,%d,%d\n”,iJ,k);}A.1,b2 B.2,2,1C,2,2,2 D.2,2,3【例3*5】已知intx=10,戸20,z=30;以下语句执行后x,y,z的值是0ifi[x>y)z=x;x=y;y=z;A.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10 D.x=20,y=30,z=20【例3.6】以下程序的运行结果是〇#include<stdio.h>voidmain()(intm=5;if(m-H->5)printf(w%d\nv,m);elseprimf("%d\n”,m-・);}A.4 B.5C.6D.7【例3.フ】以下程序的输出结果是〇#include<stdio.h>voidmain()|inta=100,x=10,y=20,ok1=5,ok2=0;逆x〈y)if(y!=10)if(!okl)a=l;elseif(ok2)a=10;a=-l;

printfT%d\n”,a);}A.1B.0C.-1 D,值不确定【例3.8]若a,b均是整型变量,正确的switch语句是A.A.switch(a)(case1.0:case2:primf("you\n");)C.switch(a+b){case1:printff'iW');case2*a:printfV'yoiAn");}【例3.9】对fbr(表达式1;;表达式3),A.fbr(表达式1;0:表达式3)C.for(表达式1;1;表达式3)B.switch(a)(caseb:printf("i\n”);case1:printfi[“you\n'');)D.switch(a+b){printfC'i\n");printf("you\n");)可理解为 B.fbr(表达式1;表达式3;表达式3)D.fbr(表达式1;表达式1;表达式3)【例3.10】执行以下程序段后,变量a,b,c的值分别是intx=10,y=9;inta,b,c;a=(-x==y++)?—x:++y;b=x-H-;c=y;A.a=9,b=9,c=9 B.a=8,b=8,c=10C.a=9,b=10,c=9 D.a=l,b=ll,c=10【例3.11】有以下程序段:intn=0,p;do(scnafT%d”,&p);n++;}whilc(p!=12345&&n<3);此处do-while循环的结束条件是〇A.p的值不等于12345并且n的值小于3B.的值等于12345并且n的值大于等于3p的值不等于12345或者n的值小于3p的值等于12345或者n的值大于等于3【例3.12】下面程序中循环体的执行次数是ca=10;b=0;do{b+=2;a・=2+b;}while(a>=0);A.1B.2 C.3D.4【例3.13】以下程序段〇x=-l;do{x=x*x;}while(!x);A,是死循环 B.循环执行二次C,循环执行ー次 D.有语法错误【例3.14】以下程序的执行结果是#include<stdio.h>voidmain(){inta=0,i;fbr(i=l;i<5;i-H-){switch(i){case0:case3:a+=2;a+=3;default:a+=5;))printf「%d\rr,a);}A.31B.13C.10D.20说明:8+8+10+5=31。【例3.15】下面程序的运行结果是#include<stdio.h>voidmain()|inty=10;do{y—;}while(—y);printfC%d\n",y-);}A.-1B.1C.8D.0【例3.16】下面程序的功能是输出以下金字塔图案的是:*********#include<stdio.h>voidmain()(inti,j;for(i=l;i<=4;i++)for(j=l;j<=4-i;j++)prints");fbr(j=l;j<=;j++)printf(“巧;printfCW");))在下划线处应填入的是A.iB.2*i-lC,2*i+lD.i+2【例3.1フ】下面程序段0fbr(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printfC<%3d,,,t);}A.当xvO时整个循环结束C.printf函数永远也不执行【例3.18]若w,x,y,z,m均为int型变量,w=l;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(x<z)?m:z;A.1B.2C.3【例3.19】请读以下程序:#include<stdio.h>voidmain()(inta=5,b=0,c=0;if(a=b+c)printff***\n");elseprintf("$$$\n”);)以上程序〇A.有语法错误不能通过编译C.输出***【例3.20】下面程序段不是死循环的是ーinti=100;while(l){i=i%100+1;if(i>100)break;)for(;;);intk=0;B.x>=0时什么也不做D.最多允许输出100个非负整数

则执行以下语句后的m值是D.4B.可以通过编译但不能通过连接D.输出$$$do{++k;}while(k<=0);D.ints=36;while(s); -s;【例3.21】有一堆零件(100到200之间),如果分成4个零件ー组的若干组,则多2个零件,若分成7个零件ー组,则多3个,若分成9个零件ー组,则多5个零件,下面程序是求这堆零件总数,请选择填空。#include<stdio.h>voidmain(){inti;for(i=100;i<200;i-H-)ifl[(i-2)%4==0)if(!((i-3)%7))iR)printfT%d”,i);}A.i%9=5 B,i%9!=5C,(i・5)%9!=0 D.i%9==5【例3.22】下面程序的运行结果是〇#include<stdio.h>voidmain(){inti;fbr(i=l;i<=5;i-H-){iRi%2)printfT*");elsecontinue;printer);}printf("$\n");}A.*#*#*#$ B.#*#*#*$C.*#*#$ D*#*#*$【例3.23】下面程序的运行结果是。#include<stdio.h>voidmain(){intij,x=0;fbr(i=0;i<2;i++)(x++;for(j=0;j<=3j++)ifd%2)continue;XH;}x++;)printf(uux=%d\n,,,x);}A.x=4 B.x=8C.x=6D.x=122、填空题[例3.24]C语言中,break语句只能用于语句和语句中。【例3.25]当a=3,b=2,c=l时”,表达式f=a>b>c的值是〇【例3.26]若a=6,b=hc=2,则表达式!(a・b)+c・l&&b+c/2的值是【例3.27]下列程序计算2〜100的偶数的累加和,清填空。#include<stdio.h>voidmain()(inti,sum=0;for()sum+=i;printK“sum=%d\n'',sum);}【例3.28]以下程序的输出结果是#include<stdio.h>voidmain(){intx=15;while(x>10&&x<50)(x++;if(x/3){x++;break;}elsecontinue;}printf("%d\n'',x);}【例3.29】下面程序段是找出整数的所有因子,请填空。scanfif"%d",&x);i=l;fbr(;;)(i負x%i==0)printf(“%3d”,i);i++;【例3.30】下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。intn=0,c;c=getchar();while()( )n++;c=getchar();)【例3.31]等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。#include<stdio.h>voidmain()(inta,d,sum;a=2;d=3;sum=0;do(sum+=a;a+=d;if()printfC'%d\n",sum);}while(sum<200);}【例3.32】请读程序:#include<stdio.h>voidmain(){intx=l,尸〇,a=0,b=0;switch(x)(switch(y){case〇:a++;break;casel:b++;break;)a++;b++;break;}printff'a=%d,b=%d”,a,b);}上面程序的运行结果是。【例3.33】以下程序对输入的ー个小写字母,将字母循环后移5个位置后输出‘如‘a'变成‘f‘,‘w'变成・b\请填空。#include<stdio.h>voidmain()|charc;c=getchar();iRc>='a'&&c<=,u5)elseiRc>='v'&&c<=,z,)putchar(c);)【例3.34j下面程序的功能是求出用数字0至9可以组成多少个没有重复的三位偶数。请填空。#include<stdio.h>voidmain(){intn,ij,k;n=0;fbr(i=l;i<=9;i+H-)fbr(k=O;k<=8;)if(k!=i)for(j==0;j<=9ij++)if()n-H-;printf(tun=%d\n,,,n);}【例3.35】下面程序的功能是输出1至100之间每位的乘积大于每位数的和的数。请填空。#include<stdio.h>voidmain()(intn,k=l,s=0,m;for(n=l;n<=]00;n++)(k=l;s=0;while()k*=m%10;s+=m%10;【例3.36】下面程序的功能是求1000以内的所有完全数。请填空。(说明:ー个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:6=1+2+3,6为完全数)#include<stdio.h>voidmain(){inta,i,m;fbr(a=l;a<=!000;a++)(fbr(;i<=a/2;i-H-)if(!(a%i))if(m==a)printfC%4d”,a);}}【例3.37】下面程序的运行结果是#include<stdio.h>voidmain(){inti=l;while(i<=15)iR++i%3!=2)continue;elseprint心%d”,i);printfC'山");)【例3.38】下面程序的运行结果是。#include<stdio.h>voidmain()(inti,j,k=19;while(i=k-l){k=3;if(k%5=0){i++;continue;elseifi[k<5)break;i++;}printf(uti=%d,k=%d\n,,,i,k);)【例3.39】下面程序的运行结果是〇#include<stdio.h>voidmain()(inty,a;y=2;a=l;while(y—!=-l)(do{a*=y;a++;}while(y—);}printf(“%d,%d”,a,y);)【例3.40】以下程序的功能是根据公式e=l+丄+丄+丄+…求e的近似值,精度要求为!0t1!2!3!请填空。#include<stdio.h>voidmain(){inti;doublee,new;new=1.0;fbr(i=1;;i++){new/=(double)i;e+=new;)printf(tue=%f\n,,,e);}【例3.41】下面程序的功能是打印100以内个位数为6且能被3整除的所有数。请填空。#include<stdio.h>voidmain()intij;for(i=O;;i++){j=i*10+6;ig )continue;printfCWj);}}【例3.42】下面程序的功能是计算100到1000之间有多少个数其各位数字之和是5.请填空。#include<stdio.h>voidmain()(inti,s,k,count=0;fbr(i=100;i<=1000;i++){s=0;k=i;while()(s+=k%10;k=;}ifi(s!=5)elsecount-H-;)printf(tt%d,\count);)【例3.43】下面程序的运行结果是#include<stdio.h>voidmain()(inti=5;do{switch(i%2)(case4:i-break;case6:i--;continue;}i——;i——;printfT%d”,i);}while(i>0);【例3.44】下面程序的功能是计算ー分数数列前20项的和:2/1,3/2,5/3,8/5,13/8,...#include<stdio.h>voidmain()floats=0.0;inti,a,b,t;fbr(;i<=20;i-H-)s+=;t=a+b;b=a;a=t;}printf(<4s=%.2f\s);【第四章例题选编】1、选择题【例4.1I以下有关C语言中数组的说法正确的是A.数组元素的数据类型可以不一致B,数组元素的个数可以不确定,允许随机变动C,可以使用动态内存分配技术,定义元素个数可变的数组D,定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数【例4.2]若有说明:inta[][3]={0,0};则下列所述正确的是A.数组a的每个元素都可得到初值0;B,二维数组a的第一维的大小为4;C,数组a的行数为2;D.只有元素a⑼⑼和可得到初值0,其余元素均得不到初值【例4.3)以下对ー维数组a的正确说明是。A.inta(10); B.intn=10,a[n];C.intn; D.#defineSIZE10scanf("%d”,&n); inta[SIZE];inta[n];【例4,4]若有说明:inta[3][4];则对a数组元素的正确引用是A.a[2][4] B.a[l,3]C.a[l+l][0]D.a(2)(l)【例4.5】以下错误的语句是staticcharword]]=rC','h','i','n','a'};staticcharword[]={"China"};staticcharword]]="China";staticcharword]尸China';【例4.6]下面程序(每行程序前面的数字表示行号)main()(floata[10]={0.0};inti;fbr(i=0;i<3;scanfT%d”,&a[i]);fbr(i=l;i<10;i-H-)a[0]=a[0]+a[i];printfr%f\iT,a[〇]);)A,没有错误 B.第3行有错误C.第5行有错误 D.第7行有错误【例4.7]下面程序的运行结果是〇#include<stdio.h>voidmain()(inta[6],i;fbr(i=l;i<6;i-H-)(a[i]=9*(i-2+4*(i>3))%5;print"4%2dxi]);A.-4 0 4 0 4 B.-4 0 4 0 3C.-4 0 4 4 3 D.-4 0 4 4 0【例4.8】以下对C语言字符数组的描述错误的是A.字符数组可以存放字符串B.字符数组中的字符串可以进行整体输入输出C.可以在赋值语句中通过输值运算符“=”对字符数组整体赋值D,字符数组的下标从0开始【例4.9】有下面的程序段chara[3],b[]="China”;a=b;printfp%ゴ,a);则«A,运行后将输出China B.运行后将输出ChC.运行后将输出Chi D•编译出错【例4.10】判断字符串si是否大于字符串s2,应当使用〇A.if(sl>s2) B.ifi(strcmp(sl,s2))C.if(strcmp(s2,s1)>0) D.if(strcmp(s1,s2)>0)【例4.11]已知:charclロ={“abcd”};charc2[]=ra','b','c','d'};则下所述正确的是A.数组cl和数组c2等价B.数组cl和数组c2的长度相同C.数组cl的长度大于数组c2的长度D,以上都不对【例4.12】下面程序的运行结果是〇#include<stdio.h>voidmain()charstr[]="SSSWLIA”,c;intk;fbr(k=2;(c=str[k])!=,\O,;k++){switch(c){caseT:++k;break;case'L':continue;default:putchar(c);continue;putchar('*');))A.SSW*B.SW*C.SW*AD.SW【例4.13]已知:charstring1[10]=,,abcde,\string2[10]=,,xyz,,5则下列C语句输出结果是.printfi["%d'',strlen(strcpy(string1,string2)));A.3 B.5C.8 D.9【例4.14】有以下程序:#include<stdio.h>#include<string.h>voidmain()(chars卜''\nl23\\";printf("%d,%d\n",strlen(s),sizeof(s));)执行后的输出结果是A.赋初值的安符串有错 B.6,7C.5.6 D.6,6【例4.15】下面程序的功能是将字符串s中所有的字符c删除。请选择填空。#include<stdio.h>voidmain()(chars[80];intij;gets(s);fbr(i=j=O;s[i]!='\0';i++)if(s[i]!='c')s[j]='\O';puts(s);}B.s[++j]=s[i]B.s[++j]=s[i]C.s[j]=s[i];j++D-s[j]=s[i]【例4.16】以下程序的输出结果是#include<stdio.h>voidmain()(intb⑶[3]={0/20,120,1,2},i,j尸〇;for(i=0;i<3;i-H-)fbrd=l;j<=i;j++)t=t+b皿如]皿;printf(11%d\n,,!t);}A.3 B.4C.1 D.9【例4.17】有如下程序:#include<stdio.h>voidmain()(staticinta[3][3]={{1,2},{3,4},{5,6}},ij,s=0;for(i=0;i<3;i++)fbr(j=O;j<=i;j++)s+=a[i][j];printf(4t%d\n,\s);}该程序的输出结果是A.18 B.19C.20 D.21【例4.18】有以下程序#include<stdio.h>voidmain(){inti;fbr(i=0;i<3;i+H-)switch(i){case1:printf("%dH,i);case2:printf("%dH5i);default:print負"%d",i);})执行后输出结果是〇A)011122 B)012 C)012020 D)1202、填空题【例4.19]若有定义:staticinta[3][4]={{l,2},{0},{456,8,10}}:则初始化后,a[l][2]=a[2]ri]= 。【例4.20】在C语言中,二维数组元素在内存中的存放顺序是0【例4.21]若二维数组a有m列,则在前的元素个数为。【例4.22]判断字符串a和b是否相等,应当使用=【例4.23】以下程序可求出矩阵a的两条对角线上的元素之和,请填空。#include<stdio.h>voidmain()(inta[3][3]={l,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i=弓)sum1=suml+a[i][j];for(i=0;i<3;i++)for(;;j")if((i+j尸=2)sum2=sum2+a[i][j];printf(uusuml=%d,sum=%d\n,\suml,sum2);)【例4.24j设数组a包括10个整型元素,下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空。#include<stdio.h>voidmain()(inta口〇],bu〇],i;fbr(i=O;i<10;i++)scanf("%d”,&a[i]);fbr(;i<10;i++)fbr(i=l;i<10;i++){primfT%3d”,b[i]);i出==0)printグザ);})【例4.25】下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b,请填空。#include<stdio.h>voidmainQ{inta[10],b[10],i;for(i=0;;i-H-)scanfT%d”,&a[i]);fbr(i=l;;i++)fbr(i=l;i<10;i++)printfT%3d”,b[i]); )printf(“\nツ;【例4.26】以下程序可求出所有的水仙花数,(提示:所谓水仙花数是指ー个三位正整数,其各位数字的立方之和等于该正整数。例如:407=4*4*4+0*0*0+7*7*7,故407是ー个水仙花数)请填空。#include<stdio.h>voidmain()intx,y,z,a[8],m,i=O;printff'Thespecialnumbersare(inthearrangeof1000:\n)");fbr(..;m++)fbr(.x=m/100;y=;z=m%10;if(x*l00+y*10+z==x*x*x+y*y*y+z*z*z)i++;fbr(x=0;x<i;x-H-)printfT%6d”,a[x]);}【例4.27】ド面程序的功能是生成并打印某数列的前20项,该数列第1,2项分别为0和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20个数存在ー维数组x中,并按每行4项的形式输出,请填空。#include<stdio.h>voidmain()intx[21],i;x[l]=0;x[2]=l;i=3;do{x[i]=_x[i+l]=i=_i±2}while(i<=20);fbr(i=l;i<=20;i++)printfC'%5d”,x[i]);if(i%4==0)printfT'n");【例4.28】下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。#include<stdio.h>voidmain()|inta[5],max,min,i,j,k;fbr(i=0;i<5;i-H-)scanfT%d'',&a[i]);min=a[0];fbr(i=l;i<5;i++)if(a[i]<min)(min=a[i];max=a[0];fbr(i=l;i<5;i4-+)if(a[i]>max){max=a[i];printfi[“\nThepositionofminis:%3d\n,,,k);printffへnThepositionofmaxis%3d\n,,j);fbr(i=0;i<5;i-H-)prin氓"%5ザ,a[i]);)【例4.29】下面程序的运行结果是#include<stdio.h>voidmain()]inti,f[10];f[O]=f[l]=l;fbr(i=2;i<10;i++)f[i]=f[i-2]+f[i-l];fbr(i=O;i<10;i++)iRi%4==0)printfTW");printfT%3d”,f[i]);【例4.30】设数组a中的元素均为整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。#include<stdio.h>voidmain()(inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;fbr(k=s=i=0;i<10;i-H-){if(a[i]%2!=0)s+=;k++;)if(k!=O)(ave=s/k;prin埠%d,%f\n”,k,ave);))【例4.31】当从键盘输入18并回车后,下面程序的运行结果是#include<stdio.h>voidmain(){intx,y,i,a[8]j,u;scanfi("%d",&x);y=x;i=0;do{u=y/2;a[i]=y%2;i++;y=u;}while(y>=l);fbr(j=i-l;j>=Oj-)printf("%ザ,a[j]);【例4.32l下面程序的功能是检查ー个二维数组是否对称(即:对所有i和j都有a[i]U]=a[j][i])o请填空。#include<stdio.h>voidmain()(inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};inti,j,fbund=0;fbr(j=0;jv4;j++)fdr(;i<4;i-H-)if(aU][i]!=a[i]U])break;)ififfound)printfCNO");elsepri•氓“YES”);)【例4.33】以下程序是求矩阵a,b的乘积,结果存入矩阵c中并按矩阵形式输出。请填空。#include<stdio.h>voidmain()(inta[3][2]={2,-1,-4,03,1};intb[2][2]={7,-9,-8,10);intij,k,s,c[3][2];fbr(i=0;i<3;i++)fbr(j=0J<2;j++){fbr(;k<2;k-H-)s+=;c[i][j]=s;}fbr(i=0;i<3;i-H-)fbr(j=0y<2j-H-)printfT%6d”,c[i][j]);})【例4.34]下面程序的功能是求出矩阵x的上三角元素之积,其中矩阵x的行、列数和元素值均由键盘输入,请填空。#include<stdio.h>#defineM10voidmainQ(intx[M][M];intn,ij;longs=l;printff'Enterainteger(<=10):\n^^);scanfT%d”,&n);printf(U4Enter%ddataoneachlineforthearrayx\n",n);for()for(j=O;j<n;j-H-)scanf(6t%d,,,&x[i][j]);for(i=0;i<n;i++)for() ,printf「%ld\n”,s);}【例4.35】下面程序的运行结果是#include<stdio.h>voidmain()(chara[2][6]={"Sun”JMoon"};inti,j,len[2];for(i=0;i<2;i++)(for(j=0;j<6;j-H-)if(a[i皿=='\0'){'en[i]=j;break;}printf(<*%6s:%d\n",a[i],len[i]);}}【例4.36】下面程序的运行结果是〇#include<stdio.h>voidmain(){inti=5;charc[6]="abcd";do{c[i]=c[i-l];}while(—i>0);puts(c);【例4.37】下面程序的运行结果是#include<stdio.h>#defineLEN4voidmain()(intj.c;staticcharn[2][LEN+l]={"8980'',"9198''};fbr(j=LEN-l;j>=O;j-)(c=n[O][j]+n[l][j]-2*,O,;n[0][j]=c%10+,0,;)for(j=O;j<=l;j-H-)puts(n[j]);)【例4.38】下面程序的功能是将字符串a中下标值为偶数的元素由小到大排序,其它元素不变。请填空。#include<stdio.h>voidmain(){chara[]=,,labchmfye,,,t;intij;fbr(i=0;i<7;i+=2)fbr(j=i+2j<9;)if< ){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf(',\n,,);}【例4.39】有十个字符串,下面程序的功能是在每个字符串中,找出最大字符按ーー对应的顺序存入ー维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。请填空。#include<stdio.h>voidmain()(chars[10][20],a[10];intij;for(i=0;i<10;i++)gets(s[i]);for(i=0;i<10;i++)(a[i]=s[i][〇];for(j=l;s[i][j]!=,\O,;j++)if(a[i]<s[i]U])fbr(i=0;i<10;i++)printfT%d%c”,i,a[i]);)【例4.40]若从键盘输入52,则下面程序的运行结果是#include<stdio.h>voidmain()(inta[8]={6,l2,18,42,44,52,67,94};intlow=0,high=7,mid,fbund=0,x;scanfC%d'',&x);while((low<=high)&&(fbund==0))|mid=(low+high)/2;if(x>a[mid])low=mid+1;elseif(x<a[mid])high=mid-l;else(fbund=l;break;))if(fbund==l)printfi(4tSearchsuccessful!Theindexis%d:\n,,,mid);elseprintfTCan'tsearch!\n^^);)【例4.41】下面程序的运行结果是«#include<stdio.h>voidmain(){charc,s[尸'ABCCDA”;intk;fbr(k=l;(c=s[k])!='\O';k++){switch(c)!case'A':putchar(4%');continue;case'B':++k;break;default:putchar(fc*,);case4C:putchar(fc&,);continue;putchar(fc#');【例4・42]下面程序的运行结果是〇#include<stdio.h>voidmain()(inti=0;chara[]=',abm'\b[]=,,aqid,,,c[10];while(a[i]!='\0,&&b[i]!=,\0,)(i«a[i]>=b[i])c[i]=a[i]-32;elsec[i]=b[i]-32;++i;)c[i]=>\0,;puts(c);)【例4.43】程序填空,以下程序用于统计字符串中最长单词的长度及其在字符串中的位置,其中单词全由字母组成。#include<stdio.h>intalph(charc)(ifUc>='a'&&cv='z')||(c>='A'&&c<='Z'))elsevoidmain()(staticcharstring]J={"Iamhappy."};intlen=O,i,length=O,flag=1,p,p1;fbr(i=O;;i++)if(alph(string[i]))if(flag)(pl=i;; /・将取位置标记flag置为0・/len-H-;)else/*单词长度增ド/else{flag=1;ifi(len>length)/・将最大单词长度放入!ength*/(length=len;p=pl;)len=O;}printf("最长的单词:M);fbr(i=p;i<p+length;i-H-)printfC%c”,string[i]);printfCW");)【例4.44]有以下程序,执行后输出结果是〇#include<stdio.h>voidmain(){inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=O;fbr(i=0;i<4;i+4-)(for(j=0;j<4y++){if(a[i]U]<0)continue;if(a[i][j]=O)break;s+=a[i][j];})printf("%d\n”,s);)【例4.45】下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。#include<stdio.h>voidmain()(inta[2][3]={{l,2,3},{4,5,6}};intb[3][2],ij;printf("arraya:\n");fbr(i=O;i<=l;i++)fbrG=O; ;j++)prin氓"%5d”,a[i皿);printfT'n");)printf^arrayb:\n");for(i=O;;i++)(for(j=O;j<=l;j++)prin或"%5d”,b[i]|j]);printff'n");[例4.46]下面程序的运行结果是。#include<stdio.h>voidmain()|inta[6][6],i,j;fbr(i=l;i<6;i++)for(j=ly<6;j-H-)a[i][j]=(ゆ*(j/i);for(i=l;i<6;i++){fbr(j=l;j<6j++)printfT%2d”,a[i][j]);printfT'n");))【例4.47]卜一面程序的功能是从键盘上输入一个大写字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间.若指定的字母为Z,则打印YZA;若指定的字母为A则打印ZAB.请填空.#include<stdio.h>voidmain(){chara[3],c;inti;c=getchar();a[l]=c;if(c=='Z')a[2]='A';elseif(c=='A')a[O]=Z;elsefbr(i=0;i<3;i++)putchar(a[i]);}【例4.48]下面程序的运行结果是.#include<stdio.h>voidmain(){inti,r;charsl[80]="bus";chars2[80尸b)ok”;fbr(i=r=0;sl[i]!='\0'&&s2[i]!='\〇';i++)iRsl[i]=s2[i])i++;else(r=sl[i]-s2[i];break;)printf("%d",r);}【例4.49]下面程序的运行结果是.#include<stdio.h>voidmain(){inta[9]={0,6,l2,18,42,44,52,67,94};intx=52,i,m,n=9;i=n/2+l;m=n/2;while(m!=0){if(x<a[i]){i=i-m/2-l;m=m/2;}elsei£(x>a[i]){i=i+m/2+l;m=m/2;}elsebreak;}printffTheindexis:%d”,i);)【例4・50]下面程序的运行结果是.#include<stdio.h>voidmain()(chara[]=,,moming,,,t;intij=0;fbr(i=l;i<7;i-H-)if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=t;puts(a);)【例4.51]下面程序的功能是将二维数组a中每个元素右移一列,最右一列换到最左一列,移后的数组存到另ー数组b中,并按矩阵形式输出b。请填空。#include<stdio.h>voidmain()(inta[2][3]={4,5,6,l,2,3},b[2][3];intij;printffarraya:\n");fbr(i=O;i<=l;i++)fbr(j=lj<3j-H-)fbr(;i++)b[i][0]=a[i][2];printf(uarrayb:\n");fbr(i=0;i〈2;i++)(fbr(j=0J<3;j++)printfT%5d'',b[i皿);)【例4.52】从键盘输入一行句子,统计其中单词的个数,补充程序使之完整。#include<stdio.h>voidmain(){chars[80];inti,num=0;gets(s);while(s[i]!=?\O,)|if((i==O)&&(s[i]!=s())num++;elseif(&&)num-H-;i++;)printf(ttnum=%d,\num);)【例4.53]下列count函数用于计算子串substr在母串str中出现的次数。intcount(char*str,char*substr)(intx,y,z;intnum=0;fbr(x=O;str[x]!=;x-H-)fbr(y=,z=0;substr[z]==str[y];z++,y++)氓subs仇]=='、〇')(num-H-;break;)retum(num);}【例4.54】下面程序的运行结果是。#include<stdio.h>voidmain(){inti,j;staticinta[10]={ };fbr(i=0;i<10;i4-+)for(j=Oy<i;j++)a[i]=a[i]+a[j];for(i=0;i<10;i++)prin氓"%d",a[i]);printf("\n");}【第五章例题选编】1、选择题【例5.1]变量的指针,其含义是指该变量的A.值B.地址C.名D.ー个标志【例5.2I若有语句int*point,a=4;和point=&a;下面均代表地址的,组选项是〇A.a,point,*&a B.&*a,&a,*pointC.*&point,*point,&aD.&a,&*point,point【例5.3】若已定义a为int型变量,则是对指针p的正确说明和初始化。A.int*p=a; B.int*p=*a;C.intp=&a; D.int*p=&a;【例5.4]下面判断正确的是〇char*a="china”;等价于char*a;*a="china”;charstr[10]={"china”};等价于charstr[10];strロ={"china"};char'china";等价于char*s;s=''china”;charc[4]="abc'',d[4]=''abc";等价于charc[4]=d[4]=''abc";【例5.5】若有以下定义和赋值语句,则对s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为〇ints[2][3]={0},(*p)[3];P=s;A.*(p+i)+j B.*(p[i]+j)C.(p+i)+j D.(*(p+i))U]【例5.6]语句int(*ptr)();的含义是〇ptr是指向ー维数组的指针变量ptr是指向int型数据的指针变量ptr是指向函数的指针,该函数返回一个int型数据D.ptr是ー个函数名,该函数的返回值是指向int型数据的指针【例5.7]下面程序段中,for循环的执行次数是〇char*s="\ta\018bc";for(;*s!=,\0,;s-H-)printf("*");A.9B.5C.6D.7【例5.8]下面程序段的运行结果是〇char*s="abcde”;s+=2;printf("%d,,,s);A.cde B,字符'c'C.字符'c'的地址 D,无确定的输出结果【例5.9]有以下程序:#include<stdio.h>voidmain()chara,b,c,*d;a=,\';b=,\xbc,;c='\xab';d="\017";printf("%c%c%c%c\n,,,a,b,c,*d);编译时出现错误,以下所述中正确的是。A.程序中只有a=’ヽ’;语句错误 B.b='\xbc';语句错误C.d='へ017”;语句错误 D.a='ヽ’;和c='\xbc';语句错误【例5.10】以下合法的定义是。A.staticstr[]={"china"}; B.char*p="china";C.char*p;strcpy(p,"china");D.charstr[13];str[尸'china";【例5.11]若有定义:inta[4][6];则能正确表示a数组中任一元素此处0Wi<4,0<j<6)地址的表达式是〇A.&a[0][0]+6*i+j B.&a[0][0]+4*j+iC.&a[0][0]+4*i+j D.&a[0][0]+6*j+i【例5.12】若有以下定义,则数值不为3的表达式是.intx[10]={0,1,23,4,5,6,7,8,9},*p1;A.x[3] B.pl=x+3,*pl++C.pl=x+2,*(pl++) D.pl=x+2,*++pl【例5.13]若有以下说明:int(*p)[3];则以下是正确的叙述.p是ー个指针数组p是ー个指针,它只能指向ー个每行包含3个int类型元素的二维数组p是ー个指针,它可以指向一个一维数组中的任一元素(*p)[3]与・p[3]等价【例5.14】若有说明语句:intx[3][4];则以下关于x,*x,x⑼,&x⑼[0]的正确描述是。A.x,*x,x[〇],&x[〇][〇]均表示元素x[〇][〇]的地址B.只冇x,x[0],&x[〇][〇]表示的是元素x[〇][〇]的地址C,只有x[〇]和&x[〇][〇]表示的是元素x[〇][〇]的地址D.只有&x[〇][〇]表示的是元素x[〇][〇]的地址【例5.15】若有以下说明语句:staticinti,a[2][3]={I,3,5,7,9,11};intm,n;且OWmWl,0WnW2,则是对数组元素的正确引用。A.a[m]+n B.*(a+5)C.*(*(a+m>4-3) D.*(*(a+m)+n)【例5.16】以下程序运行的结果是。#include<stdio.h>voidabc(char*p)inti,j;for(i=j=0;*(p+i)!='\〇';i++)if(*(p+i)>='d')(*(p+j)=*(P+i);j++;}*(P+j尸、〇';voidmain()charstr[]=,,cdalbM;abc(str);puts(str);)A.dalbB.cdC.dlD.c【例5.17】下面程序的运行结果是。#include<stdio.h>voidmain(){intx[5]={2,4,6,8,10},*p,**pp;p=x;PP=&P;printfC6%d,,,*(p++));printf(u%d\n,,,**pp);)A.44B.2 4C.2 2D.4 6【例5.18】阅读以下程序:#include<stdio.h>voidmain(){inta[l0]={2,4,6,8,10,12,14,16,18,20},*p;p=a;printfCt%x\n,\p);printf("%x\n”,p+9);)若第一个printf语句输出的是ffca,则第二个printf语句输出的是A.ffddB.ffdcC.ffdeD.ffcd【例5.19】以下程序运行的结果是〇#include<stdio.h>#include<string.h>voidmain(){char*p1,*p2,str[50]="abc'】st[50]="abc”;pl=st;p24abc”;strcpy(str+1,strcat(p1,p2));printH"%s\n”,str);}A.abcabcabcB.bcabcabcC.aabcabcD.cabcabc【例5.20】以下程序运行的结果是〇#include<stdio.h>sub(intx,inty,int*z)*z=y-x;voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printfr%4d,%4d,%4d\n”,a,b,c);}A.5,2,3B.-5,-12,-7C.-5, -12,7D.5,-2,-7【例5.21]执行以下程序后,a的值为【1] ,b的值为3#include<stdio.h>voidmain(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=pl==&m;b=(-*pl)/(*p2)+7;print出“a=%d\n”,a);printfTb=%d\n”,b);}[1] A.-1 B. 1 C.0 D.4[2] A.5 B. 6 C.7 D.10【例5.22]下面程序的运行结果是〇#include<stdio.h>voidmain(){intb,a=28;chars[10],*p;p=s;do{b=a%16;iRbvlO)*p=b+48;else*p=b+55;P-H-;a=a/5;}while(a>0);*p=ヘ〇';puts(s);}10B.2C.C51D.\0【例5.23】下面程序的运行结果是.#include<stdio.h>voidmain()staticchara[ド''Language",%]="programe";char*pl,*p2;intk;pl=a;p2=b;fbr(k=O;k<=7;k++)ifi(*(pl+k尸=*(p2+k))printfT%c”,*(pl+k));A.gaeB.gaC.LanguageD,有语法错误【例5.24】以下程序中调用scanf函数给变量a输入数值的方法是错误,其错误原因是voidmain()int*p,*q,a,b;p=&a;printf(fckinputa:");scanf{tt%d,,,*p);A.*p表示的是指针变量p的地址*p表示的是变量a的值,而不是变量a的地址*p表示的是指针变量p的值D.・p只能用来说明p是ー个指针变量【例5.25]以下程序运行的结果是〇#include<stdio.h>voidmain(){inta[]={2,4,6,8,10},y=l,x,*p;P=&a[l];fbr(x=0;x<3;x-H-)y+=*(p+x);printfT%d\n”,y);}A.17 B.1819 D.20【例5.26】有如下程序:#include<stdio.h>voidmain()charch[2][5]={tu6937","8254"},*p[2];inti,j,s=0;

fbr(i=0;i<2;i++)p[i]=ch[i];fbr(i=0;i〈2;i++)fbr(j=O;p[i皿!ゴ、〇';j+=2)s=10*s-Fp[i][j]-,0,;printf("%d\n”,s);)该程序的输出结果是〇A.69825 B.6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论