《C语言程序设计》专升本练习题_第1页
《C语言程序设计》专升本练习题_第2页
《C语言程序设计》专升本练习题_第3页
《C语言程序设计》专升本练习题_第4页
《C语言程序设计》专升本练习题_第5页
已阅读5页,还剩67页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

《C语言程序设计》

专升本练习题

目录

专升本《C语言》练习题一.....................................................1

专升本《C语言》练习题二.....................................................9

专升本《C语言》练习题三....................................................15

专升本《C语言》练习题四....................................................22

专升本《C语言》练习题五....................................................32

专升本《C语言》练习题六....................................................38

专升本《C语言》练习题七....................................................48

专升本《C语言》练习题八....................................................55

专升本《(:语言》练习题九....................................................62

专升本《C语言》练习题一

专升本C语言程序设计试卷

一、单项选择题(广30题每小题1分,31〜45题每小题2分,共60分)

1.以下仆法的用户自定义标识符是(

A、b-bB、floatC、<fr>D、_isw

2.若变量:己正确定义并眼值,以下不符合(:语言语法的表达式是(

A、a*b/c;B、3.14%2C、2,bD、a/b/c

3.下列不正确的字符常£是()

A、'n'B.'1'C、Ma"Dx'ior

4.在C语言中,表示逻辑值“真”用()

A、1B、非0的数C、非1的数D、大于0的数

5.把x、y定义成float类型变是,并照同一初值3.14是()

A、floatx,y=3.14;B、floatx,y=2*3.14;

C、floatx=3.14/y=x=3.14;D、floatx=y=3.14;

6.若变国已正确定义,值不为2的表达式是()

A.2&3B、1«1C、a=2D、1*3

7.若变:H:己正确定义,和语句“if(a>b)k=0;elsek=l;w等价的是O

A、k=(a>b)?l:O;B、k=a>b;

C、k=a<=b;D、a<=b?0:1;

8.设变国定义为“inta,b;",执行下列语句时,若a和b的值都是10,则应输入()

scanf("a=%dzb=%d\&a,&b)1

A,1010B、10,10C、a=10b=10D、3=10,b=10

9.下列程厅的输出结果是()

fun(inta,intb,intc)

{c=a*b;}

voidrndin()

{intc;

fun(2,3,c);

printf("%dn",c);

)

A、0B.1C.6D、无法确定

10在C程序中,若对函数类型未加说明,则函数的除含类型为()

A、intB、doubleC、voidD、char

11.表达式strlen(whello")的值是()

A、4B、5Cs6D、7

12.设变髭定义为“inta[4];”,则不符合C语言语法的表达式是()

A、“aB、a[0]C、aD、a++

13.设变髭定义为“intxjp=&x;",则&*p相当丁•义

A、pB、*pCxxD、*&x

14若变£己正确定义,不能使指针p成为空指针的是()

A、p=EOFB、p=0C、p=''D、p=NULL

15.对于以下的变量定义,不符0C语言语法的表达式是()

structnode{

intlen;

char*pk;

第1页

}x={2,"right"},“p=&x;

A、p->pkB、*p.pkC、*p->pkD、*x.pk

16.彳j如下程序

intrunc(intajntb)

{return(a+b);}

main()

{intx=2,v=5,z=8,r;

r=func(func(x,v),z);

printff"%\d\n"r);

)

该程序的输出的结果是0

A)12B)13C)14D)15

17.对于基类型相同的两个指针变国之间,不能进行的运算是()

A)<B)=C)+D)-

18.方如下程序

longfib(intn)

{if(n>2)retum(fib(n-l)+fib(n-2));

elsereturn(2);

)

mainO

4<v

{printf(%d\nrfib(3));

该程序的输出结果是0

A}2B}4C}6D}8

19.彳j如下定义

structperson{charname[9];intage;};

strictpersondass[10]={“Johu”,17,

“Paul”,19

“Mary”,18,

“Adam16,};

根据上述定义,能输出字母M的语句是0

A)prinft("%c\n”,class[3].mane);

B)"%c\n",dass[3].name[l]);

aw

C)prinft(%c\n/dass[2].name[l));

MA

D)printf(%c\n/class[2].name[0]);

20以下所列的C语言常是中,错识的是0

A)OxFFB)1.2e05C)2LD)'\72'

21•斤以下程序段

intk=0

while(k=l)k++;

while循环执行的次数是()

A)无限次B)仃语法错,不能执行

C)一次也不执行D)执行1次

22以下程序的输出结果是()fun(intx,inty,intz)

A)0B|29C)31D)无定值{z=x*x+y*y;}

main()

{inta=31;

fun(5.2,a);

printf("%d”,a);

)

第2页

23.卜列程序段的输出结果是()

A)2143B)1212C)1234D)2112

voidfun(int*x,int*y)

{printf(u%d%d*',*x,*y);*x=3;*y=4;}

main()

{intx=l,y=2;

fun(&yz&x);

printf(a%d%d",x,y);

)

24.当调用函数时,实参是•个数组.名,则向函数传送的是()

A)数组的区度B)数组的首地址

C)数组每•个元素的地址D)数组每个兀素中的值

25.以卜程序的输111结果是()

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

longfun(intn)

{longs;

if(n==111n==2)s=2;

elses=n-fun(n-l);

returns;

)

main()

{print""%ld\n,fun(3));}

26.以卜程序的输巾结果是()

A)16B)2C)9D)1

/defineSQR(X)X*X

main()

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

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

printf(“d\n",a);

)

27.rr以卜程序

main()

{intm=3,n=4,x;

x="m++;

x=x+8/++n;

printf("%d\n'»;

)

程序运行后的输出结果是:<)

A)3B)5C)-lD)-2

28.以卜叙述中正确的是:()

A)构成C程序的基本单位是函数

B)可以在•个函数中定义另一个函数

C)main()函数必须放在其它函数之前

D)所有被调用的函数•定要在调用函数之前进行定义

29.以卜选项中非法的表达式是:()

A)0<=x<100B)i=j=O

C)(char)(65+3)D)x+l=x+l

第3页

30.卜列条件语句中,功能与其他语句不同的是:()

A)if(a)printf("%d\n»;elseprint"%d\n,y);

B)if(a==0)printff,%d\n*,y);elseprintf("%d\n"/x);

C)if(a1=0)printf("%d\n,\x);elseprintff'%d\n",y);

,

D)if(a==0)printf("%d\n"rx);elseprintf(*%d\n'/y);

31.以卜不能定义为用户标识符的是:()

A)scanfB)VoidC)_3com_D)int

32.C语言中用于结构化程序改计的基本结构是:()

A)顺序结构、选择给构、循环结构B)if、switchsbreak

C)forxwhile%do-whileD)ifsfor、continue

33.若有说明语句:inta,b,c,*d=&c:,则能正确从键盘读入三个整数分别赋给变量a、b、c

的语句是:()

M

A)scanf("%d%d%d",&a,&b,d);B)scanf('*%d%d%d/&a/&b/&d);

,M

C)scanf("%d%d%d\a/b/d);D)scanf("%d%d%d/azb/d);

34.若白定义:intaa[8]:,则以卜.表达式中不能代表数组元aa[l]的地址的是:()

A)&aa[0]+lB)&aa[l]C)&aa[0]iD)aa+1

35.有以下程序

main()

,,

{charstr[](10]={China"/"Beijing"}/p=str;

printf("%s\n",p+10);

)

程序运行后的输出结果是:<)

A)ChinaB)BejingC)ngD)ing

36.以卜程序的输出结果是:()

main()

{inta=0J;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;

}

}

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

)

A)31B)13C)10D)20

37.有以下程序

tfinclude<string.h>

main(intargc,char*argv[])

{intiJen=0;

for(i=l;i<argc;i+=2)len+=strlen(argv);

printf(*5d\n*len);

)

经编泽链接后生成的可执行文件是ex.exe.若运行叼输入以卜带参数的命令行

exabedefgh3k44

第4页

执行后输出结果是」()

A)14B)12C)80)6

38.下列选项中正确的语句组是:<)

chars[8];s={"Beijing"};B)char*s;s={"Beijing"};

C)chars[8];s="Beijing";D)char*s;s="Beijing";

39.有以下程序

main()

{inta[3][3]/pj;

p=&a[0][0];

for(i=0;i<9;i++)p=i+l;

printf(-%d\n-,a[l][2]);

)

程序运行后的输出结果是:()

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

40.以卜符合C语言语法的实型常后是:

A)1.2E0.5B)3.14.159EC).5E-3D)E15

以卜程序段中与语句k=a>b?(b>c?l:0):0:功能等价的是:()

A)if((a>b)&&(b>c))k=l;B)if((a>b)||(b>c))k=l;

elsek=0;elsek=0;

C)if(a<=b)k=0;D)if(a>b)k=l;

elseif(b<=c)k=l;elseif(b>c)k=l;

elsek=0;

若程序中定义了以卜函数

doublemyadd(doubleafdoubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以卜选项中钳误的说明是:

()

A)doublemyaddfdoublea,b);B)doublemyadd(double,double);

C)doublemyadd(doubleb,doublea);D)doublemyaddfdoublex,doubley);

43.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为:

A)0B)1C)-1D)•个非0值

44.下列美于C语言数据文件的叙述中正确的是:()

A)文件由ASCII码字符序列组成.C语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件

D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

45.有以卜程序

main()

{imaa[4][4]={{l,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};

inti,s=0;

for(i=0;i<4;i++)s+=aa[l];

printf("%d\n"/s);

)

程序运行后的输出结果是।()

A)11B)19C)13D)20

第5页

二、烟空题(每题2分,共30分)

1.表示“x》y2z”的C表达式是_

2.下列程序盘的输曲是。

printf("%d\n",010«1^1);

3.下列程序段的输出是。

intk;

floats;

for(k=0zs=0;k<7;kw-)

s+=k/2;

printf("%d/%fn”,k,s);

4.下列程序段的输Hl是.

^definef(a,b,x)a*x+b

printffXd,%dn“,”3,2,1),f[6,5,f(3,2,1)));

5.下列程序段的输出是。

main()

{intk;

for(k=l;k<5;k++){

if(k%2)printff*。;

elsecontinue;

printf("#");

)

)

6.下列程序段的输山是。

#include<stdio.h>

intf(intx)

{staticy=l;

y++;

x+=y;

returnx;

)

voidmain()

{intk;

k=f(3);

printf("%d%dn",k,

)

7.卜列程序段的输山是。

int*p,*q,k=5,j=6;

q=&k;p=q;q=&j;

,,

printf('*%d/*p);

8.函数

voidf(chars(],chart[])

{intk=0;

while(s(k]=t(k])k-w-;

)

等价于

voidf(char*s,char*t)

{while(_*si="t++);

第6页

9.下列程序段的输出是.

char•a[2]={"one"/"two"),**p=a;

printf("%sA

printf("%cn","pQ

10.下列程序编译后生成t.exe,运行tinputoutputzoooil的输出结果是

voidmain(intargc,char•argv[])

{intk;

char*p=argv[l];

for(k=2;korgc;k++)

if(strcmp(argv(k]zp)>0)p=argv[k];

printfC'Hsn",p);

}

11.以下程序段的输出结果是

inti=9;

12.以下程斤输出的结果是

main。

{inta=5,b=4,c=3,d;

d=(a>b>c);

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

)

13.以下程月中给指针p分配三个double型动态内存单元,请增空,

#include<stdlib.h>

main()

{double.p;

p=(double*)mallocf3*sizeof(double));

p[O>1.5;p[l]=2.5;p[2J=3.5;

printf("%f%f%f\n^p[0]/p[l]/p[2]);

)

14.彳『以下程序

voidf(intyjntax)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

w

printf(%d%d\n*/x/y);

)

执行后输出的结果是()

15.以下程序的运行结果是()

#include<string.h>

typedefstructstudent

{charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan:2001,95},b={“Shangxian”,2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(/)>0)d=b;

第7页

if(strcmp(/)>0)d=c;

printf("%ld%s\n",d.snop>name);

)

三、程序(段)填空题(每空2分,共10分)

1.以下函数返回3所指数组中最小的值所在的下标值,请填空:

fun(int*3,intn)

{1nti,j=O,p;

P=j;

for(i=j;i<N;l++)

if(a<A[P]);

return(p);

)

2.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值,程序的输出结果

是:()

voidmain()

{inta=3,b=5;

swap(&a,&b);

printf("Afterswap%d,%d",a,b);

}

swap(int*p,int*q)

{Intt;

t=*P;;

*P=*q;

"q=t;

第8页

专升本《C语言》练习题二

一、单项选择题

i.c语言源程序文件经过编译连接之后生成一个后缀为_c_的文件。

A.”.c”B,“ohj”C.“exe”D,“bas”

2.以下选项中不正确的整型常量是_Co

A.12LB.-10C.1,900D.123U

3.表达式—C—的值是()。

A.3%5B.3/5.()C.3/5D.3<5

4.表达式!(x>0||y>0)等价于_D―。

A.!x>0||!y>0B.!(x>0)||!(y>0)C.!x>0&&!y>0D.!(x>0)&&!(y>0)

5.若变量已正确定义并赋值,表达式_D不符合C语言语法。

A.4&&3B.+aC.a=b=5D.int(3.14)

6.若变量已正确定义,执行语句scanf(・%d%d%d”,&kl,&k2,&k3);时,—B

是正确的输入。

A.2030,40B.203()40C.20,3()40D.20,30,40

7.执行语句prinlf("_D",2);将得到出错信息。

A.%dB.%oC.%xD.%f

8.设变量定义为"ims[]="hello\nworld\n";”,则数组s中有_B_个元素。

A.12B.13C.14D.15

9.设变量定义为“inta[2]={l,3},*p=&a[0]+l;",则*p的值是_B__。

A.2B.3C.4D.&a[0]+l

10.若变量已正确定义并赋值,表达式-k++等价于_Ao

A.-(k++)B.(-k)++C.-(k+1)D.-(++k)

11.在C语言程序中,在函数内部定义的变量称为_D-o

A.全局变量B.全程变量C.外部变量D.内部变量

12.若x是整型变量,表达式(x=10.0/4.0)的值是_Do

A.2.5B.2.0C.3D.2

第9页

13.对于以下的变量定义,表达式_A是正确的。

structnode{chars[IO];intk;}p[4];

A.p->k=2B.plO].s="abc"C.p[0]->k=2D.p->s='a'

14.下列运算符中,优先级从高到低依次为_Do

A.&&,!,||B.||,&&,!C.&&,!D.!,&&,||

15.下列程序段的输出结果是_B_。

int*p,*q,k=1,j=10;p=&j;q=&k;p=q;(*p)++;

printf(H%dH,*q);

A.lB.2C.10D.Ii

16.以下各选项企图说明一种新的类型名,其中正确的是水量(C)

A.typedefvlint;B.typedefv2=int;

C.typedefvlintv3;D.typedefv4:int;

17.以下选项中,非法的字符常量是(C)

A.<\t,B.<\17,C)"n"D.<\xaa,

18.以下程序的输出结果是(C)

main()

{inti,a[10];

for(i=9;i>=0;i)a[i]=l()i;

printf(<<%d%d%dw,a[2],a[5],a[8]);

}

A.258B.741C.852D.369

19.以下程序的输出结果是(B)

main()

(uharsl[20]=;

printf(%d%d\nv,strlen(st),sizeof(st));

)

A.99B.520C.1320D.2020

20.以下程序的输出结果是(D)

main()

第io页

{inta,b;

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

{if(b>=10)break;

if(b%3==l)

(b+=3;continue;|

}

printf("%d\n"

)

A.101B.6C.5D.4

21.以下程序的输出结果是(D)

unionmyun

{struct

{intx,y,z;}u;intk;}a;

main()

{a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf(%d\nn,a.u.x);

I

A.4B.5C.6D.O

22.以下程序段的输出结果是(A)

chars[]=u\\141\141abc\tn;printf("%d\n",strlen(s));

A.9B.12C.13D.14

23.以下程序的输出结果是(B)

niaiii()

{charch[3][5]={nAAAA",nBBB","CC"};

printf('V%s\"\n",chri]);

}

A."AAAA"B.”BBB”C.“BBBCC"D.“CC”

24.不合法的main函数命令行参数表示形式是(C)

第11页

A.main(inta,char*c[])B.main(intarc,char**arv)

C.main(intargc,char*argv)D.main(inlargv,char*argc[])

25.有以下程序执行后输出结果是(C)

main()

{char*s[]={"one","two","three"),*p;p=s[l];

printf(n%c,%s\n",*(P+D,s[0]);

)

A.n,twoB.toneC.w,oneD.o,two

26.设有如下说明

typcdcfstruct

{intn;charc;doublex;}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是(A)

A.STDtt[2]={{l,,A',62},{2,B,75}};

B.STDtt[2]={l,nAn,62},2,HB",75);

C.structtt[2]={{l/A'),{2,'B')};

D.structtt[2]={{1,"A',,62.5),{2,"B';75.0|);

27.若变量c为char类型,则能正确判断出c为小写字母的表达式是(D)。

A.'a*<-c<='z'B.(c>:'a')||(c<='z')

C.('a'<=c)and('z'>=c)D.(c>='a')&&(c<='z')

二.填空题

1.设ch是字符型变量,判断ch为英文字母的表达式是:

(ch>=,A'&&ch,=,Z')||(ch>='a'&&ch<=,z')—。

2.计算下列分段函数的if语句是_if(x>O)y=l;elseif(x=O)y=O;elsey=-l;—。

1x>0

y=0x=0

-1x<0

3.表达式!!5的值是_1—。

4.下列程序段的输出结果是

prinlf("%xn”,(0x19«1)&0x17);

第12页

5.下列程序段的输出结果是—k=4s=6—o

intk,s;

for(k=0,s=0;k<10;k++)

if(s>k)break;

elses+=k;

printf("k=%ds=%d'\k,s);

6.下列程序段的输出结果是_15―o

#defineMIN(x,y)(x)<(y)?(x):(y)

printf("%du,10*MIN(10,15));

7.下列程序在运行时可能会出错,原因是一指针变量s未赋初值

#include

voidmain()

{char*s;gets(s);puts(s);)

8.下列程序段的输出是—60_o

#include

intf(intm)

{staticintk=0;ints=0;

for(;k<=m;k++)s++;

returns;

}

voidmain()

{intsi,s2;

sl=f(5);

s2=f(3);

printf(u%d%d\n",si,s2);

)

9.下列程序段的输出结果是_fgh_o

char*st[]={"abcd',;'efghn;'ijkl";,mnopu);

第13页

10.用lypedef定义一人含10个元素的整型数组ARR。

typedefintARR[IO];

11.以下程序调用findmax函数返回数组中的最大值,请填空。

findmax(int*a,intn)

{int*p,*s;

for(p=a,s=a;p-a

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

retum(*s);

)

voidmain()

{intx[5]={12,21,13,6,18);

printf("%d\n",findmax(x,5));

)

三.程序(段)填空题

1.设变量x,y,z已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中

填入正确的内容,使程序段A和程序段B有相同的功能。

程序段A程序段B

x-x+y;y=xy;

x=x-y;z=x+y;

z=x;x=y;

y=z;z=x+y;

2.请仔细阅读函数fl,然后在函数f2中填入正确的内容,使函数”和函数f2

有相同的功能。

chai*fl(chars[],charl[])

{intk;

for(k=0;k++)

sfk]=tfk];

s[k]=*

returns;

)

第14页

专升本《C语言》练习题三

一、填空堰(每空1分,共20分)

1.是C程序的基本单位,一个C程序总是从开始执行。

2.C语言规定标识符只能由字母、和3种字符组成,且第一个字符

必须为字母或。

3.著名计算机科学家沃思提出的一个公式:数据结构+=程序

4.TurboC++中,若有语句:unsignedinta;则a的范围是0〜

5.C中的转义符“\r”表示:。

6.表达式21/4的值为。

7.C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,

必须使用。

8.已知a=12.789,则表达式(int)a的值为。

9.表达式3|2的值是。

10.若归5,经a・二3后a=©

11.己知ch='a',则表达式[(ch>='A'&&ch<='Z,)?(ch+32):ch]的值为。

12.C中定义符号常量E为2.71828的宏命令是。

13.函数形参和调用的实参是数组名时,参数按方式进行传递行

14.C中按位与运算符是、按位异或运算符是、按位或运算符是。

15.定义一个结构变量,共三个成员分别是字符型、整形和浮点型,则该结构体

变量所占内存长度为个字节。

二、单项选择题(每题2分,共40分)

1.下列C语言标识符中,不合法的是()

A.mynameB.WendC.sumD.student

2.欲从键盘给整型变量a赋值3,b赋值2,则对应语句

scanf("a=%d,b=%d",%a,&b);的输入格式是()

A.32B.a=3b=2C.a=3,b=2D.a=b=3,2

3.C语言源程序文件后缀名是()

A..exeB..objC..batD..c

4.结构化程序设计的三种基本结构是(B)

第15页

A.顺序结构、复杂结构、循环结构

B.顺序结构、分支结构、循环结构

C.顺序结构、分支结构、选择结构

D.顺序结构、复杂结构、分支结构

5.以下表达式中,值为0的是()

A.15%5B.15/5.0C.15/5D.15>5

6.设下列表达式中所涉及的变量均已正确定义,则不符合C语言语法的是()

A.4||3B.a+=4C.a=3,b=5D.char(65)

7.设变量定义为【inta[3]={1,3,5},*p=a+l;7则*p的值是()

A.2B.3C.4D.a+1

8.在C语言程序中,在函数内部定义的变量称为()

A.全局变量R.外部变量C.全程变量D.局部变量

9.经过以下的变量定义后,正确的表达式是(A)

structnode{chars|10];intk;}p[4];

A.p->k=21B.p[0]->k=21C.p(0)->k=21D.p->s=,'MaryH

10.若变量c为char类型,则能正确判断出c为大写字母的表达式是(

A.(c>='A')||(c<='Z^B.'A'<=c<=Z

C.(c>='A')&&(c<=Z)D.('A'<-c)and(Z>=c)

ll.C语言中以“只写”方式打开文件,应选择的参数是()

A.oB.wC.aD.r

12.变量定义为【inta[2][3]={1,2,345,6},*p=&a[l][0];I则p的值是)

A.数组a的首地址B.数组a的第1个元素的地址

C.数组a的第“1”行第“0”列的地址D.数组a的第“1”列的首地址

13.用链表表示线性表的优点是()

A.便于插入和删除操作B.花费的存储空间较顺序存储少

C.便于随机存取D.数据元素的物理顺序与逻辑顺序相同

14.结构化程序设计主要强调的是(C)

A.程序的规模B.程序设计语言的先进性

C.程序结构的规范化D.程序的效率

第16页

15.以下表达式中,不正确的浮点数常量是(C)

A.2e2B.2.2C.2c2D.2E2

16.若intx=12,*p=x;则正确的赋值表达式是()

A.p=*&xB.*p=&xC.&p=xD.*p=x

17.设有如下程序段:inti=15;for(;i>=l();)i-;执行完这段程序后,i的值是(D)

A.5B.4C.10D.9

18.设有如下程序段:inti=15;while(i<15)i-;则以下描述中正确的是(C)

A.循环体语句执行15次B.这是一个死循环

C.循环体语句一次也不执行D.循环体语句只执行一次

19.设有如下程序段:{chara[2][6]={"abcden,"uvwxyn),*p=&a[0][2];

printf("\n%s”,p);这段程序执行后,屏幕输出的结果是(B)

A.wxyR.cdeC.wD.c

20.设有如下程序段:union{inti;chare;)a;a.c-A';a.i=12;

primf(”\n%d”,a.i);这段程序执行后,屏幕输出的结果是(C)

A.AB.97C.12D.65

三、程序填空(每空3分,共15分)

1.以下程序的功能是输出杨辉三角形前1()行,请在下划线处填上正确的内容,

使程序能正确运行。

#include<stdio.h>

#defineN11

main()

(inti,j,a[N][N];

for(i=l;i<N;i++)

{aliJllb;

ali][i]=;

)

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

for(j=2;j<=i-l;j++)

a[i]UJ=;

for(i=l;KN;i++)

第17页

{for(j=l;j<=i;j++)

printf("%6d",a[i][j]);

printf(,,\n,r);

1

(

2.以下程序的功能是利用函数求100-200间素数〔质数)的个数,请在下划线处

填上正确的语句,使程序能正确运行。

#include<stdio.h>

intisprime(intn)

{

inti,f;

f=l;

for(i=2;i<n/2;i++)

if()

{f=0;i=n;}

retum(f);

)

main()

{inti=l()(),n=0;

for(;i<200;i++)

if()n++;

printf(HNumbersofprime:%d",n);

}

四、写出以下程序运行结果(每题4分,共12分)

1.以下程序输出的结果是:

include"stdio.hH

voidmain()

{chars[]=',\',hello\"";printf("%sM,s);}

2.以下程序输出的结果是:

^include"stdio.h"

第18页

voidmain()

{inta=12,b=13;

a=a+b;b=a-b;a=a-b;printf(u%d,%d",a,b);

1

3.以下程序输出的结果是:

#include"stdio.h"

voidmain()

{charchf]="IloveGreatWallofChina!1';printf("%c",*(ch+5));}

五、编程题(第1题5分,第2题8分,共13分)

1.百钱百鸡问题:公元前5世纪,我国古代数学家张丘建在《算经》一书中提出了

百鸡问题:鸡翁一值钱五、鸡母一值钱三、鸡雏三值钱一,百钱买百鸡,问鸡翁、

母、雏各儿何?试编程输出所有的买法.注意:每一种鸡至少要一只.

2.编程输出所有“玫瑰花数,(一个四位数等于它每一位数字的4次方之和.那么

我们称这个四位数为“玫瑰花数”)

专升本《C语言》练习题四参考答案

一、填空堰(每空1分,共20分)

1函数主函数或main函数

2数字下划线下划线

3算法

465535

5回车

65

7字符数组

812

93

102

11a或97

12#defineE2.71828

13地址传递或传址

第19页

14&A1

157

二、单项选择题(每题2分,共40分)

12345678910

BCI)BA1)BDAc

11121314151617181920

BCACCI)DCBC

三、程序填空(每空3分,共15分)

111

2n%i==0isprime(i)==l

四、写出以下程序运行结果(每题4分,共12分)

1.运行结果:"hello”

2.运行结果:13,12

3.运行结果:e

五、编程题(第1题5分,第2题8分,共13分)

1.参考程序:

#include"stdio.h',

voidmain()

|intcock,hen,chick;

for(cock=l;cock<20;cock++)

for(hen=l;hen<33;hen++)

{chick=100-cock-hen;

if(cock*5+hen*3+chick/3==100)

printf("cock:%dhen:%dchick:%d\n,',cock,hen,chick);

))

评分标准:程序结构正确得3分,算法正确得2分

2.参考程序:

#include"stdio.h"

第20页

voidmain()

inti,g,s,b,q,m;

for(i=1000;i<=9999;i++-)

{g=i%10;

s=i/10%10;

b=i/100%10;

q=i/1000;

m=g*g*g*g+s*s*s*s+b*b*b*b+q*q*q*q;

if(i==m)printf(u\n%d",i);

}

第21页

专升本《C语言》练习题四

一.单项选择题

1.以下定义语句中正确的是(C)

A.chara='A'b='B';B.floata=b=10.0;C.inta=10,*b=&a;D.float*a,b=&a:

2.卜列运算符中,优先级最高的是(A)o

A.->B.++C.&&D.=

3.表达式!(x>0&&y>0)等价于(A)。

A.!(x>0)||!(y>0)B.!x>0||!y>0C.!x>0&&!y>0D.!(x>0)&&!(y>0)

4.有以下程序运行后的输出结果是(B)

main()

{inta=666,b=888;printf("%d\n",a,b);}

A.错误信息B.666C.888D.666,888

5.有以下程序运行后的输出结果是(C)

main()

{inti;

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

switch(i){

case0:printf("%d",i);case2:printf(,,%d',,i);defeult:printf("%dM,i);}

}A.022111B.021021C.000122D.012

6.若x和y代表整型数,以下表达式中不能正确表示数学关系|x・y|<10的是(C)

A.abs(x-y)<10B.x-y>-l0&&x-y<10

C.!(x-y)<-l0||!(y-x)>10D.(x-y)*(x-y)<100

7.数组定义为,则数组a的元素个数为(D)

A.12B.144C.100D.121

8.对于以下的变量定义,不正确的表达式是(D)。

structnode{intj,k;}x,*p=&x;

A.p->k=2;B.(*p).k=2;C.x.k=2D,x->k=2

9.不正确的赋值或赋初值的方式是(B)o

第22页

A.charstr[尸'string'、;B.charstr[l0];str="string”;

C.char*p="string";D.char*p;p="string”;

10.设程序中不再定义新的变量,写出以下程序中可以使用的所有变量(B)

#includc<stdio.h>

intz;

intp(intx)

{staticinty;return(x+y);}

voidmain()

{inta,b;printf("%dn”,p(a));.......}

A.a,bB.a,b,zC.a,b,y,zD.a,b,x,y,z

II.有以下程序运行后的输出结果是(D)

main。

{inti=0,x=0;

for(;;)

{if(i==3||i==5)continue;if(i==6)break;i++;s+=i;};

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

)A.10B.13C.21D.程序进入死循环

12.以下程序若运行时从键盘上输入:6,5,65,66〈回车>。则输出结果是(A)

main()

{chara,b,c,d;scanf(,,%c,%c,%d,%d",&a,&b.&c,&d);

printf("c,%c,%c,%c\n",a,b,c,d);

1

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

137和s2口正确定义并分别指向两个字符串。若要求:当si所指串大丁s2所

指串时,执行语句S;则以下选项中正确的是(D)

A.if(sl>s2)S;

温馨提示

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

评论

0/150

提交评论