程序的设计习题与答案.docx

上传人:b****1 文档编号:1166563 上传时间:2023-04-30 格式:DOCX 页数:28 大小:26.93KB
下载 相关 举报
程序的设计习题与答案.docx_第1页
第1页 / 共28页
程序的设计习题与答案.docx_第2页
第2页 / 共28页
程序的设计习题与答案.docx_第3页
第3页 / 共28页
程序的设计习题与答案.docx_第4页
第4页 / 共28页
程序的设计习题与答案.docx_第5页
第5页 / 共28页
程序的设计习题与答案.docx_第6页
第6页 / 共28页
程序的设计习题与答案.docx_第7页
第7页 / 共28页
程序的设计习题与答案.docx_第8页
第8页 / 共28页
程序的设计习题与答案.docx_第9页
第9页 / 共28页
程序的设计习题与答案.docx_第10页
第10页 / 共28页
程序的设计习题与答案.docx_第11页
第11页 / 共28页
程序的设计习题与答案.docx_第12页
第12页 / 共28页
程序的设计习题与答案.docx_第13页
第13页 / 共28页
程序的设计习题与答案.docx_第14页
第14页 / 共28页
程序的设计习题与答案.docx_第15页
第15页 / 共28页
程序的设计习题与答案.docx_第16页
第16页 / 共28页
程序的设计习题与答案.docx_第17页
第17页 / 共28页
程序的设计习题与答案.docx_第18页
第18页 / 共28页
程序的设计习题与答案.docx_第19页
第19页 / 共28页
程序的设计习题与答案.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序的设计习题与答案.docx

《程序的设计习题与答案.docx》由会员分享,可在线阅读,更多相关《程序的设计习题与答案.docx(28页珍藏版)》请在冰点文库上搜索。

程序的设计习题与答案.docx

程序的设计习题与答案

2011-2012年度第一学期“C语言程序设计”期末考试复习提纲

一、考试题型

序号

题型

每题得分

题量

总分

选择题

2

15

30

填空

2

5

10

程序阅读

4

5

20

编程题

10

1

10

15

2

30

二、题例:

(一)项目二数据类型、运算符和表达式

选择题:

1.不合法的C语言整型常量是A。

A.–012B.0x35C.123LD.8E2

2.不合法的C语言实型常量是A。

A.E3B..123C.–6.2E4D.5.0

3.不合法的C字符常量是C。

A.’2’B.’\101’C.’AB’D.’\n’

4.下列四组选项中,均是不合法的用户标识符的选项是B。

A.WP_0do

B.b-agotoint

C.floatla0_A

D.-123abcTEMP

5.下列四组选项中,均是合法转义字符的选项是A。

A.’\”’’\\’’\n’

B.’\’’\017’’\”’

C.’\018’’\f’’xab’

D.’\\0’’\101’’xlf’

6.定义三个变量a、b、c,并分别赋初值为5。

能实现该功能的语句是C。

A.inta=b=c=5;B.inta,b,c=5;

C.inta=5,b=5,c=5;D.inta=5;b=5;c=5;

7.若x,y,t均为int类型,则执行语句x=y=3;t=++x||++y;后,y的值是D。

A.不定值B.4C.1D.3

8.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为C。

x=(i=4,j=16,k=32)

A.4B.16C.32D.52

9.设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为D。

A.floatB.charC.intD.double

10.设以下变量均为int类型,则值不等于7的表达式是C。

A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)

填空题:

1.若有定义intm=5,y=2;,则计算表达式y+=y-=m*=y后的y值是-16。

2.若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为1。

3.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。

4.若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为12,计算表达式x=a=4,6*2后的x值为4。

5.若a是int型变量,则计算表达式a=25/3%3后a的值为2。

6.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为10,n的值为6。

7.若有定义:

charc=‘\010’;则变量c中包含的字符个数为1。

8.若有定义:

intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为1。

(x+y)%2+(int)a/(int)b

9.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-’3’的值为102。

阅读题:

(写出程序运行结果)

1.#include

main()

{intx=97;chary=’b’;

printf(“%c,%d ”,x,y) ;

}

答:

a,98

2.#include

main()

{intx=6;

x+=x-=x*x ;

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

}

答:

x=﹣60

3.#include

main()

{intx;

(x=4*5,x*5),x+25;

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

}

答:

x=20

4.#include

main()

{inti=1,j;

j=-i++;

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

}

答:

﹣1

编程题:

(顺序结构编程)

1.输入华氏温度,输出摄氏温度。

C=5/9*(F-32)

#include

main()

{

floatC,F;

printf("请输入华氏温度F:

");

scanf("%f",&F);

C=5.0/9*(F-32);

printf("%.2f℉=%.2f℃\n",F,C);

}

2.输入底面半径r和高度h,计算并输出圆柱体的体积v。

v=πr2h(π取3.14,v计算结果保留到小数点后两位)

#include

#definePI3.14

main()

{

floatr,h,V;

printf("请输入底面半径r和高度h:

");

scanf("%f%f",&r,&h);

V=PI*r*r*h;

printf("圆柱体的体积V=%.2f\n",V);

}

3.从键盘输入一扇形的半径和角度,求扇形的面积和周长。

#include

#definePI3.14

main()

{

floatr,n,S,C;

printf("请输入扇形的半径r和角度n:

");

scanf("%f%f",&r,&n);

S=(n*PI*r*r)/360;

C=(n*PI*r)/180+2*r;

printf("扇形的面积S=%.2f,周长C=%.2f\n",S,C);

}

4.从键盘输入学生的三门考试成绩,计算并输出平均成绩。

#include

main()

{

floata,b,c,avg;

printf("请输入学生三门考试的成绩:

");

scanf("%f%f%f",&a,&b,&c);

avg=(a+b+c)/3;/*求平均成绩*/

printf("平均成绩为:

%.2f\n",avg);

}

(二)项目三C语言程序控制结构

选择题:

1.下列for循环的循环次数是 D。

    inti=0,j;

    for(j=10;i=j=10;i++,j--)printf(”ok”);

A.0次B.1次C.10次D.无限次

2.下列for循环的循环次数是 B 。

    inti=0,j=0;

for(;!

j&&i<=5;i++)j++;

A.5次B.1次C.无限D.6次

3.语句for(i=0,j=0;i<=100;i++)j=j+i;运行后j的值为D 。

A.500B.100   C.5000D.5050

4、 有以下程序:

 

#include  

main() 

{char c; 

while((c=getchar())!

='?

') putchar(--c); } 

程序运行时,如果从键盘输入:

Y?

N?

<回车>,则输出结果为D。

A.YB.XYC.YXD.X

5.下面的程序段执行时,若从键盘输入5,则输出为 D 。

  inta;

  scanf(”%d”,&a);

  if(a-->5)printf(”%d\n”,a++);elseprintf(”%d\n”,a);

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

6.若inta=5;则执行下列语句后打印的结果为 A 。

do

{printf(“%2d\n”,a--);

}while(!

a);

A.5  B.不打印任何结果  C.4 D.陷入死循环

7.语句for(i=0,j=0;i<=100;i++)j=j+i;运行后j的值为 D 。

A.500   B.100   C.5000   D.5050

8.下面程序段的运行结果是C。

intn=0;

while(n++<=2);printf(“%d”,n);

A.2B.3C.4D.有语法错误

9.若i为整型变量,则以下循环执行次数是B。

for(i=2;i==0;)printf(“%d”,i--);

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

10.执行语句for(i=1;i++<4;);后变量i的值是C。

和第八题相似

A.3B.4C.5D.不定

填空题:

1、若输入字符串:

abcdef<回车>,则以下while循环体将执行____0____次。

While((ch=getchar())==’d’)printf(“**”);

2、下面程序段的运行结果是___a=-5______。

i=1;a=0;s=1;

do{a=a+s*i;s=-s;i++;}while(i<=10);

printf(“a=%d”,a);

3.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束

循环。

请填空。

intn=0,c;

c=getchar();

while(c!

=’\n’)

{

if(c>=’0’&&c<=’9’)n++;

c=getchar();

}

4.以下程序中,while语句的循环次数是无限次。

#include

main()

{inti=0;

while(i<10)

{if(i<1)continue;

if(i==5)break;

i++;

}

printf(“%d”,i);

}

5.下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。

请填空。

#include

main()

{intr,m,n;

scanf(“%d%d”,&m,&n);

if(m

r=m%n;

while(r){m=n;n=r;r=__m%n__;}

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

}

6.执行以下程序后,输出“#”的个数是___6____。

#include

main()

{inti,j;

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

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

putchar(‘#’);

}

阅读题:

(写出程序运行结果)

1.#include

main()

{inty=10;

do{y--;

}while(--y);

printf(“%d\n”,y--);

}

答:

0

2. #include

main() 

{int x=15; 

while(x>10&&x<50) 

{x++; 

if(x/3){x++;break;} 

else continue; 

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

答:

17

3.#include

main()

{inta=1,b=0;

for(;a<3;a++)

switch(a++)

{case1:

b--;break;

case2:

b++;

case3:

b+=3;

}

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

}

答:

﹣1

4.#include

main()

{ints,i;

for(s=0,i=1 ;i<3 ;i++,s+=i) ;

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

}

答:

5

编程题:

1.计算s=1+1/2+1/3+……+1/n

#include

main()

{

inti,n;

floats;

scanf("%d",&n);

for(s=0.0,i=1;i<=n;i++)

s=s+1.0/(i);

printf("s=%f\n",s);

}

2.求和:

从1加到100

#include

main()

{

intn,s;

for(s=0,n=1;n<=100;n++)

s=s+n;

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

}

3.如果0

#include

main()

{

intn,i;

longs;

printf("请输入整数n:

");

scanf("%d",&n);

if(n>0&&n<17)

{

for(i=2,s=1;i<=n;i++)

s=s*i;

printf("%d!

=%d\n",n,s);

}

elseprintf("输入错误!

请输入1-16中的整数!

\n");

}

4.如果0〈n<8,请计算s=1!

+2!

+3!

+……+n!

,并打印输出计算结果s。

(注:

n!

=1*2*3*……*n)

#include

main()

{

intn,i,s,fact;

printf("请输入整数n:

");

scanf("%d",&n);

if(n>0&&n<8)

{

for(i=1,s=0,fact=1;i<=n;i++)

{

fact=fact*i;/*求n!

*/

s=s+fact;/*求s=1!

+2!

+3!

+……+n!

*/

}

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

}

elseprintf("输入错误,请输入1-7中的整数!

\n");

}

5.从键盘输入一个大于1的整数,输入是否为素数,是,则输出“YES”,否则输出“NO”

#include

main()

{

intn,i;

printf("请输入整数n:

");

scanf("%d",&n);

if(n>1)

{

for(i=2;i

if(n%i==0)break;

if(i==n)printf("YES\n");

elseprintf("NO\n");

}

elseprintf("输入错误,请输入大于1的整数!

\n");

}

(三)项目四数组

选择题:

1.若二维数组a有m列,则在a[i][j]前的元素个数为____B____.(注意列)

A.j*m+IB.i*m+jC.i*m+j-1D.i*m+j+1

2.以下对二维数组a的正确说明是____C____.

A.inta[3][];B.floata(3,4);C.doublea[1][4];D.floata(3)(4);

3.若有说明:

intx[][3]={1,3,5,7,9,11};,则x数组的行数为___A____。

A.2B.3C.4D.无确定值

4.若有以下定义

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

charc1=’b’,c2=’2’;

则数值不为2的表达式是_____A_____。

A.c2-0B.a[1]C.’d’-c1D.a[‘3’-c2]

5.以下程序的输出结果是_____B______。

main()

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

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

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

s+=a[i][j];

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

}

A.18B.19C.20D.21

6.有两个字符数组a、b,则以下正确的输入语句是___B____.

A.gets(a,b);B.scanf(“%s%s”,a,b);

C.scanf(“%s%s”,&a,&b);D.gets(“a”),gets(“b”);

7.当执行下面的程序时,如果输入ABC,则输出结果为____A_____。

#include

#include

main()

{charss[10]=“1,2,3,4,5”;

gets(ss);strcat(ss,”6789”);printf(”%s\n”,ss);

}

A.ABC6789B.BC67C.12345ABC6D.ABC456789

8.判断字符串s1是否大于字符串s2,应当使用___D____.

A.if(s1>s2)B.if(strcmp(s1,s2))

C.if(strcmp(s2,s1)>0)D.if(strcmp(s1,s2)>0)

填空题:

1.下面程序以每行4个数据的形式输出a数组,请填空。

#defineN20

main()

{inta[N],i;

for(i=0;i

for(i=0;i

{if(___i%4==0____)__printf(“\n”);_

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

}

printf(“\n”);

}

2.若有定义:

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

则初始化后,a[1][2]的初值是___0____,a[2][1]的初值是____6___。

3.下面程序的运行结果是___7,3_____。

main()

{inta[10]={10,2,-13,21,11,67,-78,8,90,-53};

inti,x=0,y=0;

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

if(a[i]>0)x++;

elsey++;

printf(“%d,%d\n”,x,y);

}

4.下面程序的功能是:

输入50个数,按逆序输出,请填空。

main()

{inta[50],i;

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

scanf(“%d”,&a[i]);

for(__i=49__;i>=0;_i--__)

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

}

5.下面程序可求出矩阵a的主对角线上的元素之和,请填空。

main()

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

if(_i==j_)sum=sum+__a[i][j]__;

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

}

6.下面程序的功能是在三个字符串中找出最小的,请填空。

#include

#include

main()

{chars[20],str[3][20];

inti;

for(i=0;i<3;i++)gets(str[i]);

strcpy(s,__str[0]__);

if(strcmp(str[1],s)<0)strcpy(s,str[1]);

if(strcmp(str[2],s)<0)strcpy(s,str[2]);

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

}

阅读题:

1.#include

main()

{inta[10],i;

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

printf(“%d%d%d\n”,a[2],a[5],a[8]);

}

答:

852

2.#include

main()

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

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

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

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

}

答:

s=15

3.#include

main()

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

printf(“%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0]);

}

答:

0650

4.#include

#include

main()

{chars[][10]={“a”,”good”,”world”};

strcat(s[0],s[1]);

printf(“%s”,s[0]);

}

答:

agood

5.#include

main()

{chars[]=“abcdef”;

s[3]=’\0’;

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

}

答:

abc

编程题:

1.从键盘输入10个整数,存入数组a,从数组a的第二个元素起,分别将后项减前项之差存入数组b,按每行3个元素输出数组b。

#include

main()

{

inta[10],b[10],i,j;

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

scanf("%d",&a[i]);

for(i=0,j=0;i<9;i++,j++)

{

b[j]=a[i+1]-a[i];

printf("%5d",b[j]);

if(i%3==2)printf("\n");

}

}

2.输入一个字符串,将其中的大写字符转换成小写,其它的不做转换,然后输出得到的字符串。

#include

main()

{

inti;

chars[100];

scanf("%s",s);

for(i=0;s[i]!

='\0';i++)

{

if(s[i]>='A'&&s[i]<='Z')

s[i]=s[i]+32;

}

for(i=0;s[i]!

='\0';i++)

printf("%c",s[i]);

printf("\n");

}

3.读入20个整数,统计非负数个数,并计算非负数之和

#include

main()

{

inta[20],i,n,s=0;

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

scanf("%d",&a[i]);

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

if(a[i]>=0)

{

n++;

s=s+a[i];

}

printf("非

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2