2025年C语言编程技巧与实战上海计算机二级考试复习攻略_第1页
2025年C语言编程技巧与实战上海计算机二级考试复习攻略_第2页
2025年C语言编程技巧与实战上海计算机二级考试复习攻略_第3页
2025年C语言编程技巧与实战上海计算机二级考试复习攻略_第4页
2025年C语言编程技巧与实战上海计算机二级考试复习攻略_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

上海理工大学

上海市计算机二级考试(C语言)复习资料题目

c语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。本

复习资料以教学大纲为根据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读

分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(C语言)的框

架,提供“基础知识、读程序写成果、改错、编程序和程序指令填空”几部份,供学生学习

参照,文末附习题参照解答。

1.B2.C3.C4.B5.D6.A7.A8.C9.C10.A

11.C12.A13.B14.B15.C16.B17.D18.B19.A20.C

21.C22.B23.B24.C25.D26.B27.B28.D29.C30.C

31.D32.C33.C34.B35.C36.D37.C38.B39.C40.B

41.C42.B43.C44.B45.B46.A47.D48.D49.D50.D

51.A52.C

第一部份:基础知识

I.下述循环的循环次数是(B)—♦入彳♦1、

intk=2;

while(k=0)printf("%d",k);

k-;printf("\n");

A、无限次B、()次C、1次D、2次

2.在下列选项中,没有构成死循环的程序段是(C)

A、inti=100;B、for(;:)

while(1)

{i=i%IOO+l;

if(i>IOO)break;

)

C、intk=10(X):D、ints=36;

do{++k;}while(k>=10000);while(s);--s;

3.若有如下定义和语句,且0<=i<10,则对数组元素的错误引用是(C)

inta[]=<0,1,2,3,4,5,6,7,8,9},*p,i;

p=a;

A、*(a+i)B、a[p-a]C、p+i_______D、*(&a[i])

4.下面能对的将字符串“Boy”进行完整赋值操作的语句是'B'有国■符包括结束符

A、chars[3J={'B\'o','y'};B、chars[]=uBoyH;

C、chars[31={"Boy"l;D、chars[3];

slOJ=B';s[l]='o';s[2]=y;

5.如下程序段的输出成果是(D)

chararr[]="ABCDn;

char*ptr;

for(ptr=arr;ptr<arr-i-4;ptr++)

printf("%s\n",ptr);

A、ABCDB、AC、DD、ABCD

BCD

CD

D

6.C语言的aulo型变量是(A)

A、存储在动态存储区中。

B、存储在静态存储区中。

C、存储在计算机CPU的寄存器中。

D、存储在外存储器中。

7.测试文献与否结束函数的函数名是(A)

A、fcofB、EOFC、cofD、FEOF

8.下面程序段的输出成果是(C)

inta[][4]={1,23,4,5,6,7,8,9,10J1,12),(*p)[4];

p=a;

printf(u%d\n,,,*(*(p)+2));

A、IB、5C、3D、7

9.C语言规定;在一种源程存中,main函数的位置是(C)

A、必须在最开始B、必须在系统调用的函数的背面

C、可以任意D、必须在最终

10.一种C程序的执行是从(A)

A^本程序的main函数开始,到main函数结束

B、本程序的笫一种函数开始,到本程序文献的最终一种函数结束

C、本程序的main函数开始,到本程序文献的最终一种函数结束

D、本程序文献的第一种函数开始,到本程序main函数结束

11.下面的四个选项中,均是不合法的顾客标识符的选项是(C)

A、AB、floatC、b-aD、_123

P_0laOgototemp

do_AintINT

12.下面四个选项中,均是合法■义字■的选项是(A)

A、B、C、,018,D、,\\(r

4\V'\017'4\ior

”,、,,,‘xab'4xlf

13.sizeof(float)是(B)

A、一种双精度型的体现式B、一种整型体现式

C、一种函数调用D、一种不合法的体现式

14.下述循环的循环次数是(B)

intk=2;

while(k=0)printf("%d",k);

k-;printf("\nu);

A、无限次B、0次C、1次D、2次

15.若有如下定义和语句,且0<=i<10,则对数组元素的错误引用是()

inta[]=<0,1,2,3,4,5,6,7,8,9},*p,i;

p=a;

A、*(a+i)B、a[p-ajC、p+iD、*(&a[i])

16.若二维数组a有m列,则在前的元素个数为(B)

A、j*m+iB、i*m+jC>D、i*m+j+l

17.对两个数组a和b进行如下初始化

chara[尸,ABCDEF”;

charb口={‘A','B','C','D','E',F};

则如下论述对的的是(D)

A、a与b数组完全相似B、a与b长度相似

C、a和b中都寄存字符串D、a数蛆比b数组长度长

18.C语言中有关全局变,的说法,对的的是(B)

A、在使用到它的所有文献中均需定义

B、在函数体外定义一次

C、在main函数中定义

E、在main函数外定义

19.若有数组名作为函数调用时的实参,则传递给该函数形参的是(A)

A、数组的首地址B、数组的第一种元素的值

C、数组中所有元素的值D、数组元素的个数

20.下面程序段的输出成果是()

inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3J;

p=a;

printfC%d\n,,,*(*(p+I)-2));

A、3B、4C、6D、7

21.不属于C语言程序基本构造的是()

A)次序构造B)选择构造C)函数杓造D)循环构造

22.若有定义及赋值:

inta[6][6]>*p;p=*a;

则卜处各式中能表达兀素列地址的体现式是____________o

A)&a[0]+lB)a[0]+lC)*(p+l)D)p+1

23.十进制数123转换成十六进制数是—___O

A)7AHB)7BHC)7CHD)7DH

24.C语言中合法的字符常量是_______。

A)'\058'B)'ab'C)'\xab'D)“\0"

25.下列字符中,ASCH码管最小的是________o

A)AB)aC)0D)空格

26.下面程序输出成果是____________

main()

{intk=0;charc=,A';

do

{switch(C++)

{case*A*:k++;break;

case'B':k--;

case1C*:k+=2;break;

case,D*:k=k%2;continue;

case*E*:k=k*10;break;

default:k=k/3;

k++;

}while(c<*G1);

printf("k=%d\n'*zk);

}

A)k=3B)k=4C)k=2D)k=0

27.设有如下定义:inix=l,y=-l;,则语句:printf("%d'<n",(x-&++y)):的输出成果是()

A)1B)OC)-lD)2

28.C语言规定,函数返回值的类型是由。

A)return语句中的体现式类型所决定

B)调用函数时的主调函数类型所决定

C)调用函数时系统临时决定

D)在定义该函数时所指定的函数类型所决定

29.下列定义中,不是指针数组定义的是。

A)int*p[5];B)float*q[4]:C)int(*r)[6];D)char*w[7];

30.如下程序运行成果为

#definePT3.5

#defineS(x)PT*x*x

main()

{inta=l,b=2;

printf(H%4.If\nn,S(a+b));

)

A)14.0B)31.5C)7.5D)10.5

31.下面程序输出成果是i)

main()

u

{chara[]=ABCDEFG"zk,*p;

fun(a,0,2);fun(a,4,6);

printf(n%s\nn,a);

)

fun(char*s,intpl,intp2)

{charc;

while(pl<p2)

{c=s[pl];s[pl]=s[p2];

s[p2]=c;pl++;p2―;

}

)

A)ABCDEFGB)DEFGABCC)GFEDCBAD)CBADGFE

32.如下程序的输出成果是()

main()

{inta=l,i;

for(i=0;i<4;i++)

printf(“'d”,func(a));

}

func(a)

inta;

{intb=0;staticintc=l;

b++;c++;

return(a+b+c);

)

A)4444B)445504567D)5678

33.执行下面的程序后,y的值是

main()

{inta[]={2,4,6,8,10};

inty=l,xz*p=a+l;

for(x=0;x<3;x++)y+=*(p+x);

HH

printf(%d\nzy);

}

A)17B)18C)19D)20

34.若使用下述程序段将整数30和浮点数5.5分别赋给变量a和b,那么输入应当是()

inta;

floatb;

scanf("a=%d,b=%f",&b);

A)305.0B)d=30,b=5.5C)30,5.5D)a=30b=5.5

35.设有如下定义:

int(*ptr)();

则如下论述中对的的是()

A)ptr是指向一维数组的指针变量

B)ptr是指向int型数据的指针变量

C)ptr是指向函数的指针,该函数返回一种int型数据

D)ptr是-种函数名,该函数的返回值是指向int型数据的指针

36.设有如下定义:

inta[4][3]={1,2,3/4/5,6,7,8,9,10,11,12);

int(*ptr)[3]=a,*p=a[0];

则如下.可以对的表达数组元素a[1][2]的体现式的是()

A)*(*ptr+1)[2]B)*(*(p+5))

C)(*ptr+l)+2D)*(*(a+l)+2)

37.若有如下定义和语句,且0v=i<10,则对数组元素的错误引用是()

inta[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a;

A)*(a+i)B)a[p-alC)p+iD)

38.执行下面的程序后,a的值是()

#defineSQR(X)X*X

main()

{inta=10,k=2,m=l;

a/=SQR(k+m)/SQR(k+m);

printf(n%d\nn,a);

)

A)10B)1C)9D)0

39.体现式1S/4*sqil(4.0)阳的值的数据类型为()

A)intB)float

C)doubleD)不确定

40.当a=l,b=3,c=5,d=4时,执行完下面一段程序后x的值是()

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex—3;

elsex=6;

elsex=7;

A)1B)2C)3D)6

41.判断char型变量ch与否为大写字母的对的体现式()

A),A,<=ch<=,Z,B)(ch>='A')and(ch<=,z,)

C)(ch>=,A')&&(ch<='Z')D)('A'<=ch)||('Z'>=ch)

42.如下程序的输出成果是()

main()

{inti,k,a[10],p[3];k=5;

for(i=0;i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

fbr(i=0;i<3;i++)k+=p[i]*2;

printf("%d\n",k);

)

A)20B)21C)22D)23

43.下面程序的运行成果是()

main()

{charch[7J={"65ab21");

inti,s=0;

for(i=0;ch[i]>='0,&&ch[i]<=,9,;i+=2)s=10*s+ch[i]-'0,;

printf("%d\n”,s);}

A)12ba56B)6521C)6D)62

44.如下程序运行后的成果是()o

main()

{chars[]=u12345678**;intv[4]={0J,l,0},k.i;

for(k=0;s[k];k++)

{switch(s[k])

{case'l':i=0;case'2':i=l;

case'3*:i=2;case'4':i=3;}

v[i]++;

1

for(k=0;k<4;k++)printf(u%dn,v[kJ);

)

A)0123B)0118C)5678D)0246

45.下面程序输出成果是()

main()

{intk=0;charc=*A';

do

{switch(c++j

{case'A':k++;break;

case'B*:k--;

case'C,;k+-2;break;

case1D*:k=k%2;continue;

case1E*:k=k*10;break;

default:k=k/3;

k++;

}while(c<'G,);

n

printf("k=%d\nzk);

}

A)k=3B)k=4C)k=2D)k=0

46.二进制数111011IB转换成十六进制数是()

A)77HB)37HC)73HD)E7H

47.能对的表达a和b同步为正或同步为负的逻辑体现式是()

A)(a>=0IIb>=0)&&(a<0IIb<0)B)(a>=0&&b>=0)&&(a<0&&b<0)

C)(a+b>0)&&(a+b<=0)D)a*b>0

48.要把高级语言编写的源程序转换为目的程序,需要使用()

A)编辑程序B)驱动程序C)诊断程序D)编译程序

49.英文小写字母d的ASCII码为100(十进制),英文大写字母D的ASCII码为()

A)50B)66C)52D)68

50.下面程序输出成果是()

voidprtv(int*x)

n

{printf("%d\nz++*x);

}

main()

{inta=25;prtv(&a);

)

A)23B)24C)25D)26

51.下面程序的输出是()

intaa[3][3]={{2},{4},{6}};

main()

{inti,*p=&aa[0][0];

for(i=0;i<2;i++)

{if(i==0)

aa[i][i+1]=*p+1;

else

++P;

printf(n%dn,*p);}

)

A)23B)26C)33D)36

52.该程序的执行成果是()

#include<stdio.h>

#include〈string.h>

main()

{intfun(char*,int);

char*p;

p="1234567”;

fun(p,strlen(p));

puts(p);

}

intfun(char*w,intn)

{chart,*sl,*s2;

sl=w;s2=w+n-l;

while(sl<s2)

{t=*sl++;

*sl=*s2—;

*s2=t;

)

}

A)1234567B)765432101711717D)7177171

53.试写出下列数学体现式的C语言体现式

Vx+J~y

2(x+y)

54.下面程序的输出成果是()

#includc<stdio.h>

main()

{char*a=',1234";fun(a);printf("\n");}

fun(char*s)

{chart;

if(*s){t=*++s;putchar(t);fun(s);}

}

55.若有定义及赋值:

inta[6][6],*p:p=*a;

则下列各式中能表达元素列地址的体现式是()

A)&af01+lB)a[01+lC)*(p+l)D)p+1

56.假如用八位二进制补码表达带符号的定点整数,则能表达的十进制数的范围是()

A)-127到+127B)-128到+128C)-127到+128D)-128到+127

57.若有定义及赋值:

inly,*p,*pl;

p=&y;pl=p;*pl=4;

则可以输出变量y的地址的语句是()

A)printf("%u\n",y);B)printf("%u\n",*pl);

C)prinif("%u\n",*p);D)printf("%u\n",&y);

58.设有inty,u=0,x=15,下列各项中不能使y值为0的是()

A)y=xAx;B、y=xIu;C、y=x»4;D、y=x&u;

59.二进制数11数111.101B转换成十六进制数是()

A)FF.AHB)FF.5HC)7F.AHD)7F.5H

60.字符串“123”在计算机内所占用的字节数是()个。

A)1B)2C)3D)4

61.C语言中最基本的数据类型包括()

A)整型、实型、逻辑型B)整型、实型、字符型

C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型

62.C语言中有关do—while循环的说法,对的的是()

A)在if语句内不能再使用do-while语句构成的循环

B)do-while语句构成的循环必须用break语句才能退出

C)do-while语句构成的循环,当while语句中的体现式值为非零时结束循环

D)do-while语句构成的循环,当while语句中的体现式值为零时结束循环

63.在C语言中,不对的的int类型的常数是()

A)32768B)0C)037D)Xaf

64.设有如下定义:

inta=2,b=1,c=3,d=4,m=2,n=2;

则执行体现式:(m=a>b)&&(n=c>d)后,n的值为()

A)1B)2C)3D)0

65.设a,b类型对的,语句:printf("%d",(a=2)&&(b=-2));的执行成果是()

A)2B)-2C)1D)0

66.设有如下定义:intx=Ly=-l;,则语句:printf("%d\n”,(x--&++y)):的输出成果是()

A)1B)0C)-lD)2

67.若有如下定义和语句,且0<=i<10,则对数组元素的错误引用是()

inta[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a;

A)*(a+i)B)a[p-a]C)p+iD)*(&a[i])

68.如下程序段的输出成果是()

chararr[]="ABCD";

char*ptr;

fbr(ptr=arr;ptr<arr+4;ptr++)

printf("%s\nH»ptr);

A)ABCDB)AC)DD)ABCD

BCD

CD

D

69.下列定义中,不是指针数组定义的是()

A)int*p[51;B)float*q[4];C)int(立)[6];D)char*w[7];

70.不能进行++和一运算的数据类型是()

A)指针变量B)整型变量C)整型常量D)字符变量

71.已知:inta,b;用语句scanf(”卷d%d”,&a,&b);输入a、b的值时,不能作为

输入数据分隔符的是()

A),B)空格C)回车D)[Tab]键

72.为表达关系x>=y>=z,应使用C语言体现式()

A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)

C)(x>=y>=z)D)(x>=y)&(y>=z)

73.如下不能对二维数组a进行对的初始化的语句是()

A)inta[2][3]={0};

B)inta[][3]={{1,2},{0}};

C)inta[2][3]={{1,2},{3,4},{5,6}};

D)inta[][3]={1,2z3Z4,5,6};

74.如下不对的的描述是()

A)break.语句不能用于循环语句和switch语句外的任何其他语句

B)在switch语句中使用break语句或continue语句的作用相似

C)在循环语句中使用continue语句结束本次循环,但不会终止整个循环

D)在循环语句中使用break语句是,会跳出循环体,提前结束循环

75.若有如下定义和语句

chars[12]=,,abook!H;

printfstrlen(s));

则输出成果是()

A)12B)8C)7D)6

76.如下程序的输出成果是()

main()

{inta=2,i;

for(i=0;i<3;i++)

printf('^d'\func(a));

func(a)

inta;

{intb=0;staticintc=3;

b++;C++;

return(a+b+c);

)

A)777B)777C)789D)789

77.执行下面的程序后,y的值是()

main()

(inta[]={2,4,6,8,10};

inty=l,x,*p=a+l;

for(x=0;x<3;x++)y+=*(p+x);

printf("%d\n"zy);

)

A)17B)18C)19D)20

78.下面程序的输出是()

intaa[3][3]={{2},{4},{6}};

main()

{inti,*p=&aa[0][0];

for(i=0;i<2;i++)

{if(i==0)

aa[i][i+1]=*p+1;

else

++P;

printf*p);}

}

A)23D)26C)33D)36

79.设有如下定义:

inta[4H3]={l,2,3,4,5,6,7,8,9,10,11,12);

int(*ptr)[3]=a,*p=a[0];

则如下可以对的表达数组元素a[1][2]值的体现式的是()

A)*(*ptr+l)[2]B)*(*(P+5))

C)(*ptr+l)+2D)*(*(a+1)+2)

80.设有如下的程序段:

charstr[]=,,Hello,';

char*ptr;

ptr=str;

执行完上面的程序段后,*(ptr+5)的值为()

A)fo'B)»\0'C)不确定的值D),o,的地址

81.假设已定义chara[10]和char*p=a,下面的赋值语句中,对的的是()

A)a[10]=HTurboCnB)a=nTurboC”

C)*p=nTurboCnD)p=nTurboC"

82.下面程序输出成果是()

main()

{chara(]=,,ABCDEFG,\k,*p;

fun(a,0,2);fun(a,4,6);

,,,,

printf(%s\nza);

}

fun(char*s,intpl,intp2)

{charc;

while(pl<p2)

{c=s[pl];s[pl]=s[p2];

s[p2]=c;pl++;p2―;

)

)

A)ABCDEFGB)DEFGABCC)GFEDCBAD)CBADGFE

83.下列程序的输出成果是()

main()

{inta[5]={2,4z6z8/10}/*p,**k;

p=a;k=&p;

printf(n%ci”,*(p++));

printf(n%d\nn,**k);

)

A)44B)22C)24D)46

84.如有structstudent

{intno;

charname[20];

charsex;

struct

{intyear;

intmonth;

intday;

}birth;

);

structstudents;

对变量s赋值”1984年11月11日”对的方式是()

A)year=1984;month=ll;day=ll;

B)birth.year=l984;birth.month=ll;birth.day=ll;

C)s.year=1984;s.month=ll;s.day=ll;

D)s.birth.year=1984;s.birth.month=ll;s.birth.day=ll;

85.如下程序的输出成果是()

main()

{union

{chari(2];

intk;

Ir;

r.i[O]=O;r.i[l]=2;

printf(n%d\n”,r.k);

}

A)2B)512C)0D)不确定

86.C语言中,文献由

A)记录构成B)由数据行构成

C)由数据块构成D)由字符(字节)序列构成

87.要判断char型变量m与否是数字字符,可以使用体现式()

A)0<=m&&m<=9B)101<c=m&&

C)HOfl<=m&&m<="9"D)0<=m&m<=9

88.如下对的的语句是()

A)inta[l][4]={1,2,3,4,5);

B)floatx[3][]=

C)longb[2][3]={{1},{1,2},{1,2,3}}:

D)doubley[][3]={0};

89.执行下面的程序后,a的值为()

main()

{inta,b;

for(a=l,b=l;a<=100;a++)

{if(b>=20)break;

if(b%3==l)

{b+=3;continue;}

b-=5;

}

)

A)7B)8C)9D)10

90.下面程序的运行成果是()

main()

{charch[7]={'*65ab21M};

inti,s=0;

for(i=0;ch[i]>='0*&&ch[i]<='91;i+=2)

s=10*s+ch[i]-101;

printf(M%d\nu,s);

)

A)12ba56B)6521C)6D)62

91.若已定义:inta[9],*p=a;并在后来的语句中未变化p的值,不能表达a[l]地址

的体现式为()

A)p+1B)a+1C)a++D)++p

92.structstudent

{intage;

intnum;

}studl,*p;

p=studl;

对构造体变量studl中组员age的不对的引用方式为()

A)studl.ageB)student.age

C)(*p).ageD)p->age

93.若有如下的阐明,见输出成果为()

unionun

{inta;

charc[2];

}w;

w.c[0]=0x49;w.c[1]=0x48;

printf(M%x\n",w.a);

A)4948B)48490480049D)490048

94.C语言中的文献类型只有(

A)索引文献和文本文献两种B)ASCII文献和二进制文献两种

C)文本文献一种D)二进制文献一种

95.请写出将整数n(0<n<9)转化为数字字符(ASCH字符)的体现式。

96.写出体现式(0xl234&0xDF)vv8的16进制成果,

97.分别写出下面两式的计算成果(括号内是二进制数):

(11010101)&(01001011)和(11010101)&&(01001011)

98.试计算如下体现式的值

(int)(((float)32/5+(int)(6.8)*2.5)*4)

99.体现式(HA5)的成果为:

100.设有如下定义intx=6;

执行语句X+=X-=X*X;后请写出X的值

第二部分族程序,写成果

I.设有数组a的定义:

int叫={1,2,3,4};

语句:

a[3]=-a[0]?a[l]++:a[2]++;

执行后,数组a的各元素,衣次为

2.下面的程序段执行后,

#defineROUND3(x)(int)(x*l000+0.5)/1000.0

printfT%F',ROUND3(3.1416));

输出的成果是0

3.设有函数段如下:

intefg(inta,intb)

{if(a%b==O)

returnb;

else

returnefg(b,a%b);

}

•••

c=efg(48,8);

则c的值是o

4.假设m是一种三位数,从左到右用a,b,c表达各位上的数字,现将该三位数上的百位

数与十位数互换,则从左到右各位数字是bac的三位数其体现式

是o

5.执行下面的程序后,

#include<stdio.h>

main()

{char*pl,*p2;

p1="How_arc_you?";

p2=pl+strlen(pl)-l;

while(p2>=pl)

printf(H%c",*p2-);

for(p2=pl;*p2!='\0';p2=p2+2)

printf(',%c,,,*p2);

printf("\n");

}

输出的成果是。

6.如下程序运行后,

structks

{inta;

ini*b;

}s[4],*p;

main()

{intn=lJ;

printf("\n");

for(i=0;i<4;i++)

{s[i].a=n;

s[i].b=&sli].a;

n=n+2;

}

P=&s[0];

P++;

printf("%d,%d\n'\(++p)->a,(p++)->a);

}

则成果是。

7.从键盘上输入123<回车),该程序的输出成果是

#include<stdio.h>

main()

{intc;

whi1e((c=getchar())!=>\n,)

{switch(c-JI,)

{case0:

case1:putchar(c+4);

case2:putchar(c+3);break;

case3:putchar(c+2);

case4:putchar(c+1);break;})

printf("\n");

}

8.如下程序运行时,输入10个整型数,输出成果是

inta,b;

voidfound_value(intarray[],intn)

{int*p,*array_end;

arrayend=array+n;

a=b=*array;

for(p=array+l;p<arrayend;p++)

if(*p>a)a=*p;

elseif(*p<b)b=*p;

return;

)

main()

{inti,number[10];

printfCenter10integernumbers:\n");

for(i=0;i<10;i++)

scanf&number[i]);

foundvaluc(number,ID);

printf("\na=%d.b=%d\n",a,b);

)

9.执行该程序时,输出成果是o

main()

{inty=10;

do{y-;}while(-y);

printf("%d\n",++y);

}

10.运行如下程序,从键盘上输入china#,则输出成果是

#include<stdio.h>

main()

{intvl=0,v2=0;

charch;

while((ch=getchar())!='#')

switch(ch)

{case'a':

caseh:

default:vl++;

case'o':v2++;

)

printf(”%d,%d\n”,vl,v2);

)

11.#include<stdio.h>

voidprintletter()

{staticintc=57;

if(c>=48)

{pulchar(c);

c-;

printletter();

}

)

main()

{printlctter();

)

12.main()

{inta[5]={1,3,57,9};

int*num[5];

ini

for(i=0;i<5;i++)

num[i]=&ali);

p=num;

for(i=0;i<5;i++)

{prinlf("%3d”,**p);p++;}

}

13.main()

{intfun(intx,int);

intj=1,n=4,k;

k=fun(&j,m);

printf("j=%dm=%d\n”,j,m);

printf(wThefirstk:%d\n”,k);

k=fun(&j,m;;

printf("j=%dm=%d\n”,j,m);

printf("Thesecondk:%d\n”,k);

}

intfun(int*x,inty)

{staticintk=2;

k+=*x+1;

*x二k-y;

returnk;

14.^include<stdio.h>

intcount,position,data;

voidsearch(int*□,intn,intst)

(if(*p==data)

{count++;

position=st;

)

if(n>1)

search(p+1,n-1,st+1);

}

mainO

{inta[5]={ID,30,50,30,20);

count-0;

data=25;

search(a,15,1);

printf(,,count=%d,position=%d\n,?,count,position);

)

15.intsumadd(intfunc,intdata)

{staticintsum;

switch(func)

{case0:sum=data;break;

case1:sum+=data;break;

case2:sum-=data;break;

)

returnsum;

)

main()

{sumadd(1,10);

printf(fd”,sumadd(2,10));

sumadd(2,20);

printf(t4%d,\sumadd(2,10));

}

16.voids(inta[],intn)

{inti,j,t;

for(i=0;i<n;i++)

{for(t=a[i],j=i-1;j>=0&&t<a[j];j")

a[j+l]=a[j];

a[j+l]=t;

)

)

main()

{inti,b[6]={24,12,14,32,22,34);

s(b,6);

for(i=0;i<6;i++)

printf(w%4dv,b[i]);

printf(w\nw);

)

17.voidp(intk)

{intm,i;

for(m=2;rn<=k;m++)

{for(i=2;i<=ni;i++)

if(!(m%i))break;

if(i==m)printf("%4d",m);

}

printf(“\n”);

)

mainO

{P(13);}

18.#include<stdio.h>

main()

{inta[]={0,10,20,30,};

intn=0.*p;

p=a+1;

n+=*(p++):

n+=(*p)++;

n+=*(++p);

n+=++(*p);

printf(44n=%d,a[]=%d,%d,%d,%d\n”,n,a[0],a[l],a[2],a[3]);

)

19.^include<stdio.h>

voidstrselect(char*strs[],intn,char*dest)

{inti;

for(i=0;i<n;i++)

*(dest+i)=*(strs[i]+i);

*(dost+i)=>\0';

}

main()

{char*strs□={"First","Second",“Third”,"Forth","Fifth"};

charrst[81];

strselect(strs,5,rst);

printf("%s\n",rst);

)

20.^include<stdio.h>

structnode

(intn;

structnode*next;

};

voidinsert(structnode*head,intnewn)

{structnode*p,*q;

for(p=hcad

温馨提示

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

评论

0/150

提交评论