阶段一C语言题库含答案.pdf
一、单选题.1二、多选题.12三、填空题.13四、判断题.34五、简答题.34六、程序分析题.46七、编程题.55一、单选题1.break关键字在哪一种语法结构中不能使用?(C)A.for 语句 B.switch 语句C.if语 句 D.while语句2.现在最快且最通用的排序算法是什么?(A)A.快速排序B.冒泡排序C.选择排序D.外部排序3.设 x 和 y 均为bool变量,则 x&y为 真 的 条 件 是(A)。A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假4.下面的哪个保留字不能作为函数的返回类型(C)。A.void B.int C.new D.long5.假定a 为一个整型数组名,则元素a4的字节地址为 A。A.a+4 B.a+8 C.a+16 D.a+326.C 库函数stN r的功能是?(A)A.查找子串B.计算字符串长度C.字符串比较D.连结字符串7.在程序中可以用来作为变量名的合法的标识符是:c _,A static B23_bl Cstu_lt D#338.下列运算符运算级别最高的是:_ _ d _ A&B+=C=D!9.已知:char str 1,str210;选择正确的输入语句:_ d_ _。Ascanf(%s%c,&strl,str2);B scanf(%s%s,&strl,str2);C scanf(%c%c,&strl,str2);D scanf(%c%s,&strl,str2);10.有一个二维数组s34,其第2 行第3 列元素的正确表示是:_ _ oA*(*(s+2)+3)B*(s+2)+3 C s2,3 Ds32I L以下正确的描述是:_ d _ _ oA continue语句的作用是终止整个循环的执行。B continue语句的作用是结束本次循环的执行。C continue语句和break语句都可以在switch语句中使用。D break语句的作用是结束本次循环的执行。12.假定x 和 y 为 double型,则表达式x=2,y=x+3/2的值是:_ a _ A)3.500000 B)3 C)2.000000 D)3.00000013.C 语言规定,数组名做实参时,它和对应形参之间的数据传递方式是:_d_A 用户指定传递方式 B 无传递 C 单向值传递 D 地址传递14.若有以下说明语句:struct STUDENT int num;char name10;float cj;al=1001,liming”,97.5,*p=&al;不正确的输出语句是:_ d _ oA printfC%r,al.cj);B printf(4cj);C printfC%f(*p).cj);D printf(%,*p.cj);15.已知int a;则对指针变量正确的说明和初始化是:_d_A int*p=a;B int p=a;C int p=&a;D int*p=&a;16.若有定义:int aa 8;则以下表达式中不能代表数组元aal的地址的是:a _。A)&aa0+l B)&aal C)&aa0+D)aa+117.若有下面的说明和定义,则 sizeof(struct a a)的值是:_ c_。struct aa double r2;int rl;float r3;union uuchar ul 5 Jong u2 2;ua;mya;A)30 B)29 C)24 D)2218.若有以下定义和语句:_ c _.ints45,(*ps)5;ps=s;则对s 数组元素的正确引用形式是A)ps+1 B)*(ps+3)C)ps02|D)*(ps+l)+3191.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为:_ _ d _ oA)log2n B)n2 C)O(nl.5)D)n(n-1)/220.在说明语句:int*f();中,标识符f 代表的是:d _ A)一个用于指向整型数据的指针变量B)个用于指向一维数组的行指针C)一个用于指向函数的指针变量D)一个返回值为指针型的函数名21.线性表L=(al,a2,a3,a i,a n),下列说法正确的是:_d 。A)每个元素都有一个直接前件和直接后件B)线性表中至少要有一个元素C)表中诸元素的排列顺序必须是由小到大或由大到小D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件22.若以下定义:struct link int data;struck link*next;a,b,c,*p,*q;且变量a 和 b 之间已有如下图所示的链表结构:a bdata next data nextI 5|+一|9|0|l _ I _I l _ I _lf Pcdata nextI I II 7|t q指针p 指向变量a,q指向变量c。则能够把c 插入到a 和 b 之间并形成新的链表的语句组 是:_ c 。A)a.next=c;c.next=b;C)q-next=p-next;p-next=&c;B)p.next=q;q.next=p.next;D)(*p).next=q;(*q).next=&b;23.设有以下说明语句:b _otypedef struct int n;char ch8;PER;则下面叙述中正确的是A)PE R 是结构体变量名 B)PER是结构体类型名C)typedef struct是结构体类型 D)struct是结构体类型名24.若有说明:int a 4=0,0;则下面不正确的叙述是:dA)数组a 的每个元素都可得到初值0B)二维数组a 的第一维大小为1C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D)只有元素a 0 0 和 a 0 1 可得到初值,其余元素均得不到确定的初值25.以下叙述正确的是:dA)可以把define和 if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和 if都不能定义为用户标识符26.若定义:inta=511,*b=&a;,则 printf(%dn,*b);的输出结果为:_ d _ _ A)无确定值 B)a的地址 C)512 D)51127.以下程序中,while循环的循环次数是:_ d 。main()int i=0;while(i10)if(il)continue;if(I=5)break;i+;A)1 B)10 C)6 D)死循环,不能确定次数28.若有以下程序:#includevoid f(int n);main()void f(int n);f(5);)void f(int n)printf(H%dn,n);则以下叙述中不正确的是:_ c _oA)若只在主函数中对函数f 进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f 进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对对f 函数重复说明D)函数f 无返回值,所以可用void将其类型定义为无值型29.有如下定义struct person char name 9;int age;struct person class 10=John,17,npaul,19,Mary,18,*Adam1,16,;根据上述定义,能输出字母M 的语句是:-d oA)printf(n%c n,class 3.nam e);B)printf(n%c n,class 3.name 1 );C)printf(M%cnn,class 2.name E 1 );D)printf(M%c nM,class 2.name 0 );30.在 C 语言中,形参的缺省存储类是:a _oA)auto B)register C)static D)extern31.若要打开A 盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是:b _oA)fopen(A:userabc.txt,T)B)fopen(,A:userabc.txt,r+u)C)fopen(,A:userabc.txt,rbn)C)fopen(,A:userabc.txt,w)32.若有定义:char*st二 how are you ;下列程序段中正确的是:_ a 。A)char a 11,*p;strcpy(p=a+1 ,&st 4);B)char a 11;strcpy(+a,s t);C)char a 11;strcpy(a,s t);D)char a ,*p;strcpy(p=&a 1,st+2);33.下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是:_c_。A)b B)t C)v D)f34.设变量n 为 float类型,m 为 int类型,则以下能实现将n 中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是:_ _ a _ oA)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/1 0 0+0.5)*1 0 0.03 5.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是:d _ oA)x&y B)xpk B)*p.pk C)*p-pk D)*x.pk44.设有 int a=10,11,12),*p=&aO;则执行完*p+;*p+=l;后 a,al,a2的值依次是:_ C _oA)10,11,12 B)11,12,12 C)10,12,12 D)11,11,1245.表达式 sizeof(,hello)与 stHen(hello)的值分别是:c _oA)6,6 B)5,5 C)6,5 D)5,646.假定建立了以下链表结构,指针p、q 分别指向如图所示的结点,则以下可以将q 所指结点从链表中删除并释放该结点的语句组是:_b_oA)free(q);p-next=q-next;B)(*p).next=(*q).next;free(q);C)q=(*q).next;(*p).next=q;free(q);D)q=q-next;p-next=q;p=p-next;free(p);47.d _ 是合法的用户自定义标识符。A、b-b B、float C、D _isw48.C_ J CX、y 定义成float类型变量,并赋同一初值3.14。A、float x,y=3.14;B、float x,y=2*3.14;C、float x=3.14,y=x=3.14;D float x=y=3.14;49.下面四个选项中,均是C 语言关键字的选项是:a,b _A.auto enum includeB.switch typedef continueC.signed union scanfD.if struct type50.下列一维数组说明中,正确的是:a,c_oA.#define SI ZE 8+2float bSI ZE;B.int n;scanf(d”,&n);float bn;C.const int m=7;float am;这个要区分c 文件和C+文件D.int a(10);51.下列字符数组初始化语句中,正确的是:A_oA.char c=newspaper”;B.char c8=newspaper;C.char c10=newspaper;D.char c 12=newspaper;52.设x、y、z 都是整型变量,x、y 的初值都是5,执行z=(+x)+(y-)+1后,x、y、z 三变量的值按顺序是:d _oA.5,5,11 B.6,6,13 C.4,6,12 D.6,4,1253.以下转义字符中,表 示“换页”的是:_ b _ _ oA.v B.f C.b D.t54.在内存中要开辟多少字节来存放字符n :_a _oA.1 B.2 C.3 D.455.有变量说明int a=3,则表达式a0);printf(na=%d,b=%dH,a,b);)A a=2,b=-l B a=2,b=-2 C a=4,b=-l2.以下程序的输出结果是:_b 。main()int b33=0,l,2,0,l,2Al,2,i,j,t=l;for(i=0;i3;i+)for(j=i;j b?(a c?a:c):b);)A)5 B)4 C)6 D)不确定4.以下程序的输出结果是:main()int a=O,i;fbr(i=l;i5;i+)switch(i)case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;)printf(%dn;a);)A)31 B)13 C)10 D)205.以下程序的输出结果是:_ a _。main()int a=4,b=5,c=0,d;d=!a&!bll!c;printf(H%dnn,d);)A)1 B)0 C)非 0 的数 D)-l6.有以下程序main()chara =z a b c d,e,f,g h 0 ;inti,j;i=sizeof(a);j=strlen(a);printf(%d,%db,i,j);)程序运行后的输出结果是:d _ A)9,9 B)8,9 C)1,8 D)9,87.以下程序的运行结果是:b _#define MI N(x,y)(x)(y)?(x):(y)main()inti=10,j=15,k;k=10*MI N(i,j);printf(%d n,k);)A)10 B)15 C)100 D)1508.以下程序的输出结果是:d _。int f()static int i=0;int s=l;s+=i;i+;return s;main()int i,a=O;fbr(i=0;i 5;i+)a+=f();printf(n%dnn,a);)A)2 0 B)2 4 C)5 D)1 59.有如下程序int func(int a,int b)return(a+b);main()int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(n%d n ,r);)该程序的输出的结果是:d-oA)1 2 B)1 3 C)1 4 D)1 51 0.以下程序的输出结果是:b _ Omain()char ch3 5=“AAAA”,“BBB“J C C ;printf(”s“n”,chl);)A)A A A A B)nB B B C),B B B C C,1 1.以下程序执行后a的值是:d _ omain()int x,y=2 5 2,i=3 8 6,*m=&y,*z=&i;x=(z=y);printf(d”,x);A)2 5 2 B)1 C)01 2,下列程序的输出结果是:b _ostruct abc int a,b,c,s;main()struct abc s 2 =1,2,3,4,5,6;int t;t=s 0 .a+s 1 .b;printf(H%d n t);A)5 B)6 C)71 3.下列程序的运行结果是:b _ ovoid fun(int int*b)D)HC C D)运行时出错,x无定值D)8 int*k;k=a;a=b;b=k;)main()int a=3,b=6,*x=&a,*y=&b;fun(x,y);printf(u%d%dn,a,b);)A)63 B)36 C)编译出错 D)0014.以下程序段的输出结果是:int a=1234;printf(n%2dn,a);A)12 B)34 C)1234 D)提示出错、无结果15.有以下程序void fun(int a,int b,int c)a=456,b=567,c=678;main()int x=10,y=20,z=30;fun(x,y,z);printf(%d,%d,%d nu,x,y,z);)输出结果是:b _ oA)30,20,10 B)10,20,30 C)456,567,678 D)678,567,45616.以下程序的输出结果是:3 1 _ofun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,a);printf,%d”,a);)A)0 B)29 C)31 D)无定值17.以下程序的输出结果是:d _.main()char w10=“ABCD”,“EFGH”JTJKL”,“MNOP”,k;for(k=1 ;k3;k+)printf(4t%s t wk);A)ABCD FGH KL B)ABCD EFG C)EFG JK D)EFGHI JKL18.以下程序的输出结果是:2 5 _Oint f(void)(static int i=0;static int s=1;+=i+;return s;)int main(void)(int i,a=0;for(i=0;i 0;x-)if(x%3)printf(“%d,”,x-);continue;printf(d,”,-x);)A.7,4,2 B.8,7,5,2 C.9,7,6,42 1.以下程序的输出结果是:c _ oint main(void)int a,b;fbr(a=l,b=l;a=1 0)break;if(b%3=1)b+=3;continue;b-=5;D.8,5,4,2printf(u%dn;a);return 0;)A.6 B.5C.4 D.3二、多选题1.在C语言中,每个变量必须在使用前进行类型说明或定义,这样可以(A B C D ).(A)为 变 量 赋 初 值(B )规定该变量的取值范围(C )规定该变量所能进行的运算操作(D)方便在编译时为其分配存储单元(E )规定变量的个数2.以 下 是 死 循 环 的 程 序 段 是。(A)for(i=l;)(if(+i%2=0)continue;if(+i%3=0)break;)(B)i=32767;do if(i=0);3.设有以下说明和定义语句,则下面表达式中值为3 的是 d,e ostruct s(int il;struct s*i2;)static struct s a3=1,&al,2,&a2,3,&a0,*ptr;ptr=&al;(A)ptr-i 1 +(B)ptr+-i 1 (C)*ptr-i 1 (D)+ptr-i 1 (E)(+ptr)-i 14.下面程序的功能是将一个整数字符串转换为一个整数,如“324”转换为3 2 4,请选择填空。#include#include main()(char s6;int n;gets(s);if(*s=-)n=_2_;else n=chnum(s);printfCt%dn,n);)chnum(char*p)int num=0,k,len,j;len=strlen(p);for(;_ 3 _;p+)k=_ 4_;j=(Ten);while(_ 5 _)num=num+k;return(num);)2(A)chnum(s)(E)-chnum(+s)*p!=0*p=0,*ppO-O-j0)z/JZ!/)zAEAEAz(xfz(zlzf345k=k*10;(B)-chnum(*s)(B)*(+p)!=0(B)*p+,0,(B)j 0(C)(C)-chnum(s+l)(C)*(p+)!=0(C)*p 0 len0(D)(D)-chnum(s+)(D)len!=0(D)*p-32len-0(E)j5.下面程序删除字符串s 中的所有空格(包括TAB符、回车符、换行符)。在对应的一组选项中选择正确的内容填入 处。#include#include main()char s81=ab c de f g.”;delspace(s);puts(s);)delspace(char*str)int i,t;char ts81;for(i=0,t=0;8 ;9一)if(!isspace(stri)tst+=stri;_ 1 0 _;strcpy(str,ts);)8(A)stri(B)!stri(C)stri!=,0,(D)stri=NULL(E)stri=09(A)t+(B)+i(C)i+(D)*(ts+i)(E)+t10(A)tst=,0,(B)strt+=,0,(C)tst+=,0,(D)ts-t=,0,(E)strt=,0,5.下列哪些写法是对的,而且是常量。(ABCEGH正确,D 错 误)A 125 B-.456 C 1.25e20 D ABE E6 F 0238 G Oxabcdef H n 123三、填空题1.某32位系统下,C+程序,请计算sizeof的值char str=Hello”char*p=str;int n=10;请计算sizeof(str)=6sizeof(p)=4sizeof(n)=4void Foo(char str100)(请计算 sizeof(str)=4)void*p=malloc(100);请计算sizeof(p)=42.设 int arr=6,7,8,9,10;int*ptr=arr;*(ptr+)+=123;printf(u%d,%dn,*ptr,*(4-4-ptr);结果 8,83.定 义 则 变 量 占 有 的 内 存 空 间 为:_48答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4 字节,因此总空间为3X 4X 4=48。4.如果i 等于5,那么(H i)一的返回值是_ 6 _。5.头文件中的ifndef/define/endif干什么用?预处理指令、防止头文件被重复引用6.#include 和#include filename.hJ,的区别为前者用来包含开发环境提供的库头文件,后者用来包含白编写的头文件。7.switch。中不允许的数据类型是实型8.队列和栈的区别为 队列先进先出,栈后进先出9,写一个“标准”宏,这个宏输入两个参数并返回较小的一个#define Min(X,Y)(X)(Y)?(Y):(X)结尾没有:10.写出判断ABCD四个表达式的是否正确,若正确,写出经过表达式中a 的值int a=4;(A)a+=(a+);9(B)a+=(+a);10_(C)(a+)+=a;错误,左侧不是一个有效变量,不能赋值,可改为(+a)+=a;修改后答案是10(D)(+a)+=(a+);1111.某 32位系统下,C+程序,请计算sizeof的值.char str=”char*p=str;int n=10;请计算sizeof(str)=_ 17sizeof(p)=4sizeof(n)=4void Foo(char str(100)请计算sizeof(str)=4)void*p=malloc(100);请计算sizeof(p)=412、strcat能把strSrc的内容连接到strD est,为什么还要char*类型的返回值?方便赋值给其他变量13.int i=10,j=10,k=3;k*=i+j;k 最后的值是?答:6 0,此题考察优先级,实际写成:k*=(i+j);,赋值运算符优先级最低14.计算反正弦的库函数是_ a s i n();计算浮点数绝对值的库函数是_fabs()一;计算浮点数n 次方的库函数是_pow()一;将浮点数转化为字符串的库函数是一 fcvt()一。15.描 述 命 题“A 小 于 B 或 小 于 C”的表达式为-6A B|AC。16.对 嵌 套 i f 语句的规定是:e ls e 总 是 与 else if 配对。17.行尾使用注释的开始标记符为一/_ _ _。1 8 多 行 注 释 的开 始标 记 符和结束标记符分别为/*和_*/_ _ _ _ _ _ _。19.一个完整程序中必须有一个名为 main 的函数。20 一个函数的函数体就是一条 复合 语句。21.程序中的预处理命令是指以#一 字符开头的命令。22.一条表达式语句必须以一分号 作为结束符。2 3 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是 用户(或编程者 定义的头文件。2 4 使用#include命令可以包含一个头文件,也可以包含一个程序 文件。25 一个函数定义由一函数头 和_ 函数体 两部分组成。2 6 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_ _ 原型(或声 明)语 句。27程序文件的编译错误分为 警 告(warning)和 致命(e r r o r)两类。28当 使 用 _ void 保留字作为函数类型时,该函数不返回任何值。29函数参数表用_v o id _ 保留字表示时,则表示该参数表为空。30-条函数原型语句“int funl(void);可知,该函数的返回类型为_i nt,该函数带有_0_ 个参数。31假定x=5,y=6,则表达式x+*+y的值为_ _ _ 35。32假定x=5,y=6,则表达式x-*-y的值为_ _ _ 25。33假定x=5,y=6,则执行表达式y*=x+计算后,x 和 y 的值分别为一6_和 _30。34假定x=5,y=6,则执行表达式y+=x-计算后,x 和 y 的值分别为一4和-11。3 5 常数0 x145对应的十进制值为325 3 6 常数0345对应的十进制值为 229_。37十进制常数245对应的十六进制的C+表示为0 xF5一。38十进制常数245对应的八进制的C+表示为0365 。39 Signed char类型的值域范围是_-1 28至+127 之间的整数。40.int和 float类型的数据分别占用4 _ 和 4 个字节。41.float和 double类型的数据分别占用 4_和 8一 个 字 节。42.bool和 char类型的数据分别占用 1和一1一 个字节。43.unsigned short int和 int类型的长度分别为 2_ 和 4。44.字符串 This、sabookAn的长度为 15。45.字符串nThis sapennn的长度为 15。46.存储字符串 abcdef”至少需要 7 个字节。47.存储字符串 a+b=c”至少需要 6 一 个字节。48.假 定 x 和 y 为整型,其值分别为16和 5,则 x%y和 x/y 的值分别为_1 和3 o49.假定x 和 y 为整型,其值分别为16和 5,则 x/y和 double(x)/y的值分别为 3 和 3.2 o50.假定x 是一个逻辑量,则 x&true的值为_ x。51.假 定 x 是一个逻辑量,则 x II true的值为 true(或1)。52.假 定x 是一个逻辑量,则 x&false的值为 false(或0)一。53.假定x 是一个逻辑量,则 x II false的值为X。54.假定x 是一个逻辑量,则!xll false的值为!x-。55.假定x 是一个逻辑量,则 x&!x的值为 false(或0)。56.假 定x 是一个逻辑量,则 x II!x的值为 true(或1)_。57.常数-4.205和 6.7E-9分 别 具 有 _ 4 和 2_位有效数字。58.枚举类型中的每个枚举值都是一个一枚 举 常 量,它的值为一个一 整数一。59.常 数 100和 3.62的数据类型分别为 int_和 double一。60.若 x=5,y=10,则计算y*=+x表达式后,x 和 y 的值分别为_ 6_和_60_。61.假 定x 和 ch分别为int型和char型,则 sizeof(x)和 sizeof(ch)的值分别为_ 4 _ 和_ 1_。62.假定x=1 0,则表达式x=10?20:30的值为_ 2 0 _。63.表达式sqrt(81)和 pow(6,3)的值分别为_ 9 _和_ _ _ 216_。64.含随机函数的表达式rand()%20的值在一 0 _ 至_1 9 _ 区间内。65.在 switch语句中,每个语句标号所含关键字case后面的表达式必须是_ 常量_ _ _。66.在 if语句中,每个else关键字与它前面同层次并且最接近的if关键字相配套。67.作为语句标号使用的C 保留字case和 defaule只能用于_ switch_ 语句的定义体中。68.执 行 switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停 止)不停止_ 执行。69.若 while循环的“头”为“while(i+a/=(k+m)*l*(k+m);=a=a/9;=a=1;4.求下面函数的返回值int func(x)(int countx=0;while(x)(countx+;x=x&(x-l);return countx;假定 x=9999。答案:8思路:将 x 转化为2 进制,看含有的1 的个数。5.请问以下程序的输出#i nclude union(int i;char x2;a;void main()(a.x0=10;a.xl=1;printf(d”,a.i);)答案:266(低位低地址,高位高地址,内存占用情况是OxOlOA)6.请问以下程序的输出main()(union/定义一个联合*/int i;struct /*在联合中定义一个结构*/char first;char second;half;number;number.i=0 x4241;/*联合成员赋值*/printf(n%c%cnn,number.half.first,mumber.half.second);number.half.first=,a1;/*联合中结构成员赋值*/number.half.second=,b;printf(xn”,number.i);getch();答案:AB(0 x41对应A,是低位;0 x42对应B,是高位)6261(number.i 和 number.half 共用一块地址空间)7.I n the main()function,after ModifyString(text)is called,what s the value of text?#include#include int FindSubString(char*pch)(int count=0;char*pl=pch;while(*pl!=0)(if(*pl=pll-l)(pl+;count+;)else(break;)int count2=count;while(*pl!=Of)(if(*pl=pll+l)(pl+;count2;)else(break;)if(count2=0)return count;return 0;)void ModifyString(char*pText)(char*pl=pText;char*p2=p 1;while(*pl!=0)(int count=FindSubString(pl);if(count0)*p2+=*pl;sprintf(p2,%I,count);while(*p2!=0)(p2+;)p 1 +=count+count+1;else*p2+=*pl+;void main(void)(char text32=XYBCDCBABABA;ModifyString(text);printf(text);)答:XYBCDCBAI BAAFindSubString返回连续出现字母增加又递减的个数,且增加个数刚好等于递减个数。如 ABA返 回 1,ABAB返 回 1,ABCBA返回2,BCBA返回0。sprintf(p2,%I,count);将*p2=T,*(p2+l)=W8.请问程序运行的结果void fun(char*a,char*b)(a=b;(*a)+;)void main()(char sl=A,s2=a;char*pl=&sl;char*p2=&s2;fun(pl,p2);printf(%c%c,sl,s2);)输出结果:答:输出结果为:A b,因为在fun函数里,指 针 a 指向s2存储区(a=b),接着让s2 存储区的值 加 1 得b (*a)+),所以s2等于b,s i 不变。9.写出程序运行结果int sum(int a)auto int c=0;static int b=3;c+=l;b+=2;return(a+b+c);)void main()(inti;int a=2;for(I=0;I a/=(k+m)*1 *(k+m);=a=a/9;=a=1;21.写出运行结果:(char str=world;cout sizeof(str):char*p=str;cout sizeof(p)”:char i=10;cout sizeof(i)void*pp=malloc(lO);cout sizeof(p)endl;)6:4:1:422、以下程序的输出结果是:31_ofun(int x,int y,int z)z=x*x+y*y;)main()int a=31;fun(5,2,a);printf(d”,a);)23.以下程序的输出结果是:_4,8,12,_omain()int i=l;while(i=12)if(!(i%4)printf(%d;i);i+;)24.以下程序的输出结果是:abcdemain()char s=abcde fn;s5=printf(%snH,s);25.以下程序的输出结果是:s=8 _ omain()int a33=3,2,1,4,5,6,2,9,2;int i,j,s=O;for(i=0;i3;i+)for(j=0;j10)p ri n t f(H%d nu,a);el s ep ri n t f(,a=%d n a-);)运行结果:_a=l l27.以下程序的输出结果m a i n()ch a r s =Ha b cd efs 4=X 0;p ri n t f(s n”,s);运行结果:_ _ _a b ed _ o28.以下程序的输出结果m a i n()i n t i=l;w h i l e(i y)s w a p(&x,&y);p ri n t f(u%d x);s w a p(i n t *p l,i n t *p 2)i n t *t em p;t em p=p 1;p l=p 2;p 2=t em p;)运行结果:25-o30.以下程序的输出结果:_ 3 0 _ om a i n ()i n t a =21,b =11;p ri n t f(H%d n,f,a +b,-b +a);)31.说出下面这个程序的运行结果:n o t equ a l!_och a r b u fl 10=nh el l on;ch a r b u f2 10=h el l oH;i f(b u fl=b u f2)p ri n t f(equ a l!);el s ep ri n t f(un o t equ a l!*);32.下面这个程序的输出是什么?_y=-l _o#i n cl u d e m a i n()i n t y=10;w h i l e(y);p ri n t f(ny=%d n ”,y);)33.该源程序执行后,屏幕上显示什么?a=4,b=9.50v o i d m a i n()i n t a;fl o a t b;a=4;b=9.5;p ri n t f(,a=%d,b=%4.2f n,a,b);)34.若k,g均为i n t型变量,则以下语句的输出为哪一项?15,6f _oi n t k,g;k=017;g=H l;p ri n t f(”d,”,k);p ri n t f(x n”,g);35.以下程序的输出结果是:1 U3 _om a i n()i n t a=12,b=12;p ri n t fC%d,%d n,-a,+b);)36.下列程序的运行结果是:_ a=1 0,b=5 _ _o#i n cl u d em a i n()i n t a=2,c=5;p ri n t f(a=%d,b=%d n,a*c+,c);)37.若有以下程序段i n t cl=l,c2=2,c3;c3=1.0/c2*cl;则执行后,