c语言复习题.docx

上传人:b****6 文档编号:3786579 上传时间:2022-11-25 格式:DOCX 页数:16 大小:22.06KB
下载 相关 举报
c语言复习题.docx_第1页
第1页 / 共16页
c语言复习题.docx_第2页
第2页 / 共16页
c语言复习题.docx_第3页
第3页 / 共16页
c语言复习题.docx_第4页
第4页 / 共16页
c语言复习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言复习题.docx

《c语言复习题.docx》由会员分享,可在线阅读,更多相关《c语言复习题.docx(16页珍藏版)》请在冰豆网上搜索。

c语言复习题.docx

c语言复习题

C语言复习题

一、选择题:

1、一个C程序可以包含任意多个不同名的函数,但有且只有一个()。

A、过程B、主函数main()C、函数D、include

2、在C语言中,每个语句是以()结束。

A、句号B、逗号C、分号D、括号

3、若i,j已定义为int型,则以下程序段中内循环体的执行次数是()。

  for(i=5;i;i--)

for(j=0;j〈4;j++〉{......}

A、20B、24C、25D、30

4、在ASCII代码表中每一个大写字母比相应的小写字母的ASCII码()

A、小32B、小64C、大32D、一样大

5、若x是int型变量,y是float型变量,所用的scanf调用语句格式为:

scanf(“x=%d,y=%f”,&x,&y);

则为了将数据10和66.6分别赋给x和y,正确的输入应当是(  )

  A、x=10,y=66.6〈 回车 〉

B、10  66.6〈 回车 〉

  C、10〈 回车 〉 66.6〈 回车 〉

D、x=10〈 回车〉y=66.6〈 回车 〉

6、以下哪一个是C语言中的回车换行符()。

A、\nB、\cC、\tD、\b

7、执行下列程序段输出是( )

x=3;

do

{printf(“%2d”,x--);

}while(!

x);

A、0B、3C、321D、210

8、若i,j已定义为int型,则以下for循环是()

for(i=0,j=0;(j!

=123)&&(i<4);i++);

A、无限循环B、循环次数不定

C、执行4次D、执行3次

9、以下结果为整数的表达式(设inti;charc;floatf;)是()。

A、i+fB、i*cC、c+fD、i+c+f

10、C语言对嵌套if语句的规定是:

else总是与()配对。

A、其之前最近的ifB、第一个if

C、缩进位置相同的ifD、其前面最近的尚未配对的if

11、C语言的while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,

因此,进入while循环后,一定要有能使此表达式的值变为()的操作,否则,循环将

会无限制地进行下去。

A、0B、-1C、1D、NULL

12、以下关于数组的描述正确的是:

()

A、数组的大小是固定的,但可以有不同类型的数组元素

B、数组的大小是可变的,但所有数组元素的类型必须相同

C、数组的大小是固定的,但所有数组元素的类型必须相同

D、数组的大小是可变的,可以有不同类型的数组元素

13、在C语言程序中,下列描述正确的是()。

A、函数的定义可以嵌套,但函数的调用不可以嵌套

B、函数的定义不可以嵌套,但函数的调用可以嵌套

C、函数的定义和调用均可以嵌套

D、函数的定义和调用均不可以嵌套

14、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()。

A、地址传递B、单向值传递

C、由用户指定传递方式D、由实参传给形参,再由形参传回给实参

15、若用数组名作为函数调用时的实参,则实际上传递给形参的是()。

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

C、数组中全部元素的值D、数组元素的个数

16、为了判断两个字符串S1和S2是否相等,应当使用()。

A、if(s1==s2)B、if(s1=s2)

C、if(strcpy(s1,s2))D、if(strcmy(s1,s2)==0)

17、在一个源文件中定义的全局变量的作用域为()。

A、本文件的全部范围B、本程序的全部范围

C、本函数的全部范围D、从定义该变量的位置开始到本文件结束

18、在执行charstr[10]=“china”;strlen(str)的结果是()。

A、5B、6C、7D、9

19、以下4个数组定义中,()是错误的。

A.inta[7];B.#defineN5longb[N];

C.charc[5];D.intn,d[n];

20、当接收用户键入的含空格的字符串时,应使用()函数。

A、scanf()B、gets()C、getchar()D、getc()

21、若定义inta[10];则对a数组元素的正确引用是()

A、a[10]B、a[4.3]C、a(5)D、a[6-6]

22、以下正确的C语言标识符是:

()。

A、%xB、a+bC、a123D、test!

23、、inta[4]={5,3,8,9};其中a[3]的值为()

A.5B.3C.8D.9

24、若t为double类型,表达式t=1,t+5,t++的值是()。

A、1B、6.0C、2.0D、1.0

25、设a=2,b=3,执行表达式c=b*=a-1后,变量c的值是

A、5B、3C、2D、4

26、在C语言中,横向跳格字符是()

A、\cB、\vC、\mD、\t

27、设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

A、552B、144C、264D、-264

28、在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为()。

A只能是逻辑表达式B只能是关系表达式

C只能是逻辑表达式或关系表达式D可以是任意表达式

29、数组名作为实参数传递给函数时,数组名被处理为()。

A该数组的长度B该数组的元素个数

C该数组的首地址D该数组中各元素的值

30、关于return语句,下列正确的说法是()。

A可以在同一函数中出现多次B在主函数中不能出现

C必须在每个函数中出现D只能在除主函数之外的函数中出现一次

31、在C语言中,引用数组元素时,其数组下标的数据类型允许是()

A整型常量

B整型表达式或整型常量

C实型常量

D任何类型的表达式

32、、C语言中,哪一个运算符的优先级最高(  )

  A、<=   B、+   C、||D、>=

33、若已知a=5,b=6,则表达式!

a

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

34、C语言中,下列运算符的操作数必须是int类型的运算是

A、%B、/C、—D、++

35、已知intx=6;则执行x+=x-=x*x;语句后,x的值为:

( )

    A、36  B、-60C、60D、-24

36、设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=c>d)”后m,n的值是()。

A、0,0B、0,1C、1,0D、1,1

 

二、写出程序执行结果:

1、main()

{intk=4,m=1,p;

p=func(k,m);

printf(“%d,”,p);

p=func(k,m);

printf(“%d\n”,p);}

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

 

2、main()

{int*p1,*p2,*p3,a[2]={2,3},b[3]={5,6,7};

p3=p1=&a[0];p2=&b[0];

printf(“%u\t”,p1);

printf(“%d\t”,*p1++);

printf(“%u\t”,p1);

printf(“%d\t”,*p1);

printf(“%d\t”,p1-p3);

printf(“%dt”,*(p2=p2+2));

printf(“%d\t”,*--p2);

}

设p1指向65494单元,请写出上述程序运行结果

 

3、func(intm)

{intn;

if(m==0||m==1)return(3);

n=m-func(m-2);

returnn;

}

main()

{printf(“%d\n”,func(9));

}

4、main()

{charstr[]={“1a2b3c”};

intk;

for(k=0;str[k]!

=‘\0’;k++)

if(str[k]>=’0’&&str[k]<=’9’)

printf(“%c”,str[k]);

printf(“\n”);

}

5、main()

{inta=5;

floatx=67.846;

staticchard[10]=“abc”;

printf(“%4d,%4.1f,%c”,a,x,d[2]);}

6、main()

{intt=3;

while(t++<=4)

printf(“%d\t”,t);

printf(“%d\n”.t);

}

7、main()

{chars1[]="12345",s2[]="1234";

printf(“%d\n”,strlen(strcpy(s1,s2)));

}

 

8、main()

{intx=3;

do

{printf(“%2d”,x--);

}while(!

x);

9、main()

{intfinal;

intm[7]={1,2,3,4,5,6,7};

int*p1,*p2;

p1=&m[2];

p2=&m[6];

final=p2-p1;

printf(“%d\n”,final);

}

10、main()

{intanswer,result;

answer=100;

result=answer-10;

printf(“Theresultis%i,%d\n”,result+5,result);

}

11、下列程序的执行结果是:

()

main()

 {ints=0,k;

for(k=7;k>=0;k--)

{switch(k)

{case1:

case4:

case7:

s++;break;

case2:

case3:

case6:

break;

case0:

case5:

s+=2;break;}}

printf(“s=%d\n”,s);

}

12、main()

{ints=0,i=4;

do

{if(i==0)

break;

else

{s=s+i;

printf(“%d\t”,s);

}

}while(--i);

}

13、以下程序的输出结果是:

main()

{inta[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0;

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

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

s=s+a[i][j];

printf(“%d\n”,s);

}

14、main()

{inti,j,i1=0,j1=0,m;

ints[3][3]={{101,201,301},{11,18,30},{60,20,70}};

m=s[0][0];

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

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

if(s[i][j]

{m=s[i][j];i1=i;j1=j;

printf(“%d,%d,%d”,m,i1,j1);}

15、

main()

{inti,x;

for(i=1,x=1;i<=20;i++)

{if(x>=10)

break;

if(x%2==1)

{x+=5;

continue;}

x-=3;}

printf(“%d,%d”,x,i);

}

三、编写程序:

1、编程实现求百钱买百鸡的方法。

设公鸡每只5钱,母鸡每只3钱,

小鸡3只1钱。

2、对用户输入的所有整数进行累加,直到输入0为止

3、编写一个程序,判定1+2+3+4+5+…+n大于1000的最小整数值n

4、编程:

用一维数组计算Fibonacci数列的前20项,该数列为:

1,1,2,3,5,8,13,21,34,

5、某市不同车牌的出租车3公里的起步价和计费分别是:

夏利7元,3公里以外2.1元/公里;富康8元,3公里以外2.4元/公里;桑塔纳9元,3公里以外2.7元/公里。

编程:

从键盘输入乘车的车型及公里数,输出应付的车资。

6、输入某年和相应的月份,输出该月的天数。

7、从键盘输入一个整数,判断这个数是奇数还是偶数.

8、从键盘输入一位整数,当输入是1至7时,显示对应的英文星期名称的略写(如下所示).

1Mon2Tue3Wed4Thu

5Fri6Sat7Sun

9、编写程序,求1!

+2!

+3!

+……+10!

10、编写程序,用公式π/4=1-(1/3)+(1/5)-(1/7)+…

求π的近似值,直到最后一项的绝对值小于10-6为止。

11、编写程序,求任意整数的各个数位上的数字之和,如输入整数67401,结果为18(因为1+0+4+7+6=18)。

12、定义一个5×4(5行4列)的二维数组,存储5个学生4门课的成绩,录入成绩,并求每一个学生的最低成绩。

13、从键盘输入10个互不相同的数并存放在一维数组中,找出最大值并将其从数组中删除。

14、编写一个程序显示ASCII码65~90(十进制)的字符对照表.

15、某班级有40名同学,请编程从键盘输入三名同学的姓名、学号、年龄、语文成绩、数学成绩、英语成绩。

求40名同学的平均年龄;每名同学的平均分。

并输出结果。

四、程序填空:

1、

•wwww

•wwww

•wwww

•wwww

•wwww

•voiddraw(intn)

•{inti,j,k,r,m

•for(i=1;____________;i++)

•{for(j=1;j<=2;j++)

•{for(r=1;r<=i;r++)

•printf(“”);

•printf(“w”);

•for(k=1;____________;k++)

•printf(“”);

•printf(“w”);

•for(m=1;m<=i;m++)

•printf(“”);

•}

•____________________;

•}

•}

•#include

•main()

•{intn;

•printf(“inputanumber:

”);

•_______________;

•draw(n);

•}

2、请在横线上填入合适的表达式,使数组元素按大小顺序排列。

main()

{inta[12]={2,14,16,20,9,21,86,75,17,30,11,99},i,j,k;

for(k=0;k<12;k++)

for(i=k;i<12;i++)

if(a[i]>___________)

{j=a[i];

a[i]=_______________;

_______________=j;

}

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

printf(“%4d”,a[i]);

printf(“\n”);

}

3、请在横线上填入合适的表达式,使程序完成将字符串“Hello”逆序显示。

main()

{

pt(“Hello”);

}

pt(charstr[])

{

inti=0,j=0;

while(_______________)

{j++;i++}

for(;j>=0;j--)

printf(“%c”,______________);

}

4、下列程序的功能是统计从键盘输入的字符中大写字母的个数。

输入时用“*”作为输入结束的标记。

#include

#include

main()

{charc1;

inti,count=0;

while(()!

=‘*’)

if(isupper(c1))count++;

printf(““,count);

}

5、以下函数的功能是求x的y次方,请填空。

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i

z=z*___________;

returnz;

}

 

2、航空公司规定在旅游的旺季7~9月份,如果订票数超过20张,票价优惠15%,20张以下,

优惠5%;在旅游的淡季1~5月份、10月份、11月份,如果订票数超过20张,票价优惠30%,

20张以下,优惠20%;其他情况一律优惠10%。

设计程序,根据月份和订票张数来计算总的订票

金额,假设每张飞机票单价为600元。

main()

{intmonth,x;

floaty;

scanf(“%d,%d”,&month,&x);

switch(month)

{case7:

case8:

case9:

if(x>=20)y=x*600*0.85;

elsey=x*600*0.95;

break;

case1:

case2:

case3:

case4:

Case5:

case10:

case11:

if(x>=20)y=x*600*0.7;

elsey=x*600*0.8;

break;

case6:

case12:

y=x*600*0.9;break;

}

printf(“y=%f”,y);

}

3、编写程序,用公式π/4=1-(1/3)+(1/5)-(1/7)+…

求π的近似值,直到最后一项的绝对值小于10-6为止。

 

#include

main()

{floatn,t,pi;

intf;

t=1,pi=0;n=1;f=1;

while(fabs(t)>1e-6)

{pi=pi+t;

n=n+2;

f=-f;

t=f/n;

}

pi=pi*4;

printf(“pi=%10.6f\n”,pi);

}

 

4、银行换零钱。

假定你拿1张百元钞票到银行换零,要求是必须换成若干张20元、10元和5元。

请编写程序,找出所有可能的找零组合,如1张20元,5张10元,6张5元。

main()

{

inta,b,c;

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

{

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

{

for(c=0;c<=20;c++)

{

if(a*20+b*10+c*5==100)

printf(“%d张20元,%d张10元,%d张5元\n”,

a,b,c);

}

}

}

}

5、编写一个统计某班3门课程成绩的程序,3门课程分别是语文,数学和英语。

先输入学生人数,

然后按学号输入学生成绩,最后统计每门课全班的总成绩和平均成绩及每个学生课程的总成绩和

平均成绩。

main()

{intscore[50][5],total[3],avg[3];

inti,j,n;

printf(“学生人数:

“);

scanf(“%d”,&n);

printf(“输入成绩:

\n”);

for(i=0;i

{printf(“第%d个学生:

”,i+1);

scanf(“%d%d%d”,&score[i][0],&score[i][1],&score[i][2]);

}

for(i=0;i

{for(j=0,score[i][3]=0;j<3;j++)

score[i][3]+=score[i][j];

score[i][4]=score[i][3]/3;

}

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

{for(i=0,total[j]=0;i

total[j]+=score[i][j];

avg[j]=total[j]/n;

}

printf(“\n学号语文数学英语总分平均分\n”);

for(i=0;i

{printf(“%5d:

”,i+1);

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

printf(“%7d”,score[i][j]);

printf(“\n”);

}

printf(“全班总分:

”);

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

printf(“%7d”,total[i]);

printf(“全班平均分:

”);

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

printf(“%7d”,avg[i]);

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1