文档库 最新最全的文档下载
当前位置:文档库 › C语言上机作业5 2013.4.8

C语言上机作业5 2013.4.8

C语言上机作业5  2013.4.8
C语言上机作业5  2013.4.8

C语言程序设计上机作业5

2013.4.8.

上机编程

1.完成书后111页5.6和5.8题

要求:使用switch语句

分别保存为5_6.c和5_8.c

2.完成书后129页6.2至6.8题

要求:使用while ,do while 或for均可。

保存为6_2.c至6_8.c

3. 书后129页6.9至6.15,我已经写好程序,请大家读懂程序,在程序的关键语句后加上必要的说明,重新保存后上交,文件名不变。

要求:弄清各变量含义,给其加上注释。

弄清各循环含义,给其加上注释。

6.9

#include

main()

{

float sn=100.0,hn=sn/2;

int n;

for(n=2;n<=10;n++)

{

sn=sn+2*hn;

hn=hn/2;

}

printf("第10次落地时共经过%f米\n",sn);

printf("第10次反弹%f米.\n",hn);

}

6.10

#include

main()

{

int day,x1,x2;

day=9;

x2=1;

while(day>0)

{

x1=(x2+1)*2;

x2=x1;

day--;

}

printf("桃子总数=%d\n",x1);

}

6.11.

#include

#include

void main()

{float a,x0,x1;

printf("enter a positive number:");

scanf("%f",&a);

x0=a/2;

x1=(x0+a/x0)/2;

do {x0=x1;

x1=(x0+a/x0)/2;

}while(fabs(x0-x1)>=1e-5);

printf("the square root of%5.2f is %8.5f\n",a,x1); }

6.12

#include

#include

main()

{float x1,x0,f,f1;

x1=1.5;

do

{x0=x1;

f=((2*x0-4)*x0+3)*x0-6;

f1=(6*x0-8)*x0+3;

x1=x0-f/f1;

}

while(fabs(x1-x0)>=1e-5);

printf("x=%6.2f\n",x1);

}

6.13

#include

#include

main()

{float x0,x1,x2,fx0,fx1,fx2;

do

{scanf("%f,%f",&x1,&x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}

while(fx1*fx2>0);

do

{x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fx1)<0)

{x2=x0;

fx2=fx0;

}

else

{x1=x0;

fx1=fx0;

}

}

while(fabs(fx0)>=1e-5);

printf("x0=%6.2f\n",x0);

}

6.14.

#include

main()

{int i,j,k;

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

{for(j=0;j<=2-i;j++)

printf(" ");

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

printf("*");

printf("\n");

}

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

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

printf(" ");

for(k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

}

6.15.

#include

void main()

{char i,j,k;

for (i='x';i<='z';i++)

for(j='x';j<='z';j++)

if(i!=j)

for(k='x';k<='z';k++)

if(i!=k&&j!=k)

if(i!='x'&&k!='x'&&k!='z')

printf("a--%c\tb--%c\tc--%c\n",i,j,k);

}

题目做完之后,请接着看下面的练习题,这些练习题都是历年有关选择结构的真题或者模拟题,请认真完成,仔细揣摩。

第二章选择结构

2.1 选择题

1.已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是()。

A.6 B.0 C.2 D.1

2.设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n的值为()。

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

3.设x、y和z都是int类型变量,且x=3,y=4,z=5, 则下面的表达式中,值为0的表达式为()。

A.’x’ && ’y’B.x<=y

C.x||y+z && y-z D.!((x

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

5.逻辑运算符两侧运算对象的数据类型()。

A.只能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

6.以下关于运算符优先顺序的描述中正确的是()。

A.关系运算符<算术运算符<赋值运算符<逻辑与运算符

B .逻辑与运算符<关系运算符<算术运算符<赋值运算符

C .赋值运算符<逻辑与运算符<关系运算符<算术运算符

D .算术运算符<关系运算符<赋值运算符<逻辑与运算符 7. 下列运算符中优先级最高的是()。

A .<

B .&&

C .+

D .!= 8. 选择出合法的if 语句(设int x ,a ,b ,c ;)()。 A .if(a=b) c++; B .if(a=b) c++; D .if(a=>b) c++;

9. 能正确表示“当x 的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是()。 A .(x>= -58) && (x<= -40) && (x>=40) && (x<=58) B .(x>= -58) || (x<= -40) || (x>=40) || (x<=58)

C .(x>= -58) && (x<= -40) || (x>=40) && (x<=58)

D .(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)

10.判断char 型变量s 是否为小写字母的正确表达式是()。

A .’a ’ <= s<=’z ’

B .(s>=’a ’) & (s<=’z ’)

C .(s>=’a ’) && (s<=’z ’)

D .(’a ’<=s) and (’z ’>=s) 11.若希望当x 的值为奇数时,表达式的值为“真”,x 的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是()。

A .x%2==1

B .!(x%2==0)

C .!(x%2)

D .x%2

12.已知 x=45, y=’a ’, z=0; 则表达式(x>=z && y<’z ’ || !y)的值是()。 A .0 B .语法错 C .1 D .“假” 13.指出下列程序段所表示的逻辑关系是()。

if(a

x=10; } else

x=-10;

A .??

?≠≥=<-=d c b a d

c b a x 且且10

10

B .??

?≥=<-=b a d

c b a x 且10

10

C .??

?≠<=<-=d c b a d

c b a x 且且10

10

D .??

?≠=<-=d

c d

c b a x 且10

10

14.有一函数:??

?

??>=<-=0

100

1x x x y ,以下程序段中不能根据x 值正确计算出y 值的是()。

A .if (x>0) y=1;

else if (x==0) y=0; else y= -1; B .y=0;

if (x>0) y=1;

else if (x<0) y= -1; C .y=0; if (x>=0)

if(x>0) y=1; else y= -1; D .if (x>=0) if (x>0) y=1; else y=0; else y= -1;

15.执行以下语句后,y 的值为()。

int x,y,z; x=y=z=0;

++x || ++y && ++z;

A .0

B .1

C .2

D .不确定值 16.已知int a=1,b=2,c=3; 以下语句执行后a,b,c 的值是()。

if(a>b)

c=a; a=b; b=c;

A .a=1, b=2, c=3

B .a=2, b=3, c=3

C .a=2, b=3, c=1

D .a=2, b=3, c=2 17.请阅读以下程序:该程序()。

#include ”stdio .h ” main()

{ int x=-10, y=5, z=0;

if (x=y+z) printf(”***\n ” ); else printf(”$$$\n ”); }

A .有语法错不能通过编译

B .可以通过编译但不能通过连接

C .输出***

D .输出$$$

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

#include ”stdio.h ”

main() { int a=1;

if (a++>1) printf(”%d\n”, a);

else printf(”%d\n”, a--);

}

A.0 B.1 C.2 D.3 19.当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。

if (a

if (c

else

if (a

if (b

else x=3;

else x=4;

else x=5;

A.1 B.2 C.3 D.4 20.执行以下程序段后,变量x,y,z的值分别为()。

int a=1,b=0, x, y, z;

x=(--a==b++)?--a:++b;

y=a++;

z=b;

A.x=0,y=0,z=0 B.x= -1,y= -1,z= 1

C.x=0,y=1,z=0 D.x= -1,y= 2, z= 1

21.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。

a=1;b=2;c=3;d=4;

w=(a

w=(w

w=(w

A.1 B.2 C.3 D.4 22.以下程序的输出结果是()。

#include ”stdio.h”

main()

{

int a=5, b=4, c=6, d;

printf(”%d\n”, d=a>b? a>c?a:c :b);

}

A.5 B.4 C.6 D.不确定23.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。

A.switch (a+b); B.switch a

{ case 1: y=a+b; break; { case c1: y=a-b; break;

case 0: y=a-b; case c2: x=a*d; break;

break; default: x=a+b;

} }

C.switch (a*a+b*b) D.switch(a-b)

{ case 3: { default: y=a*b; break;

case 1: y=a+b; break; case 3: x=a+b; break;

case 3: y=b-a; break; case 10: case 11: y=a-b; break;

} }

24.执行下列程序,输入为3的数出结果是()。

#include ”stdio.h”

main()

{

int k;

scanf(”%d”, &k);

switch(k)

{ case 1: printf(”%d\n”, k++);

case 2: printf(”%d\n”, k++);

case 3: printf(”%d\n”, k++);

case 4: printf(”%d\n”, k++);

break;

default: printf(”Full!\n”);

}

}

A.3 B.4 C.3 D.4

5 4 25.假定等级和分数有以下对应关系:

等级:A 分数:85——100

等级:B 分数:60——84

等级:C 分数:60以下

对于等级grade输出相应的分数区间,能够完成该功能的程序段是()。

A.switch (grade)

{ case ’A’:printf(”85——100\n”);

case ’B’:printf(”60——84\n”);

case ’C’:printf(”<60\n”);

default:printf(”grade is error!\n”);

}

B.switch (grade)

{ case ’A’:printf(”85——100\n”);

break;

case ’B’:printf(”60——84\n”);

case ’C’:printf(”<60\n”);

default:printf(”grade is error!\n”);

}

C.switch (grade)

{ case ’A’:printf(”85——100\n”);

break;

case ’B’:printf(”60——84\n”);

break;

case ’C’:printf(”<60\n”);

default:printf(”grade is error!\n”);

}

D.switch (grade)

{ case ’C’:printf(”<60\n”);

break;

case ’B’:printf(”60——84\n”);

break;

default:printf(”grade is error!\n”);

break;

case ’A’:printf(”85——100\n”);

}

26.有如下程序,写出该执行结果()。

#include ”stdio.h”

main()

{

float x=2.0, y;

if (x<0.0) y=0.0;

else if (x<10.0) y=1.0/x;

else y=1.0;

printf(”%f\n”,y);

}

A.0.000000 B.0.250000 C.0.500000 D.1.000000 27.以下程序的运行结果是()。

#include ”stdio.h”

main()

{

int a=2,b= -1,c=2;

if (a

if (b<0)

c=0;

else c++;

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

}

A.0 B.1 C.2 D.3 28.运行以下程序后,如从键盘上输入china#,则输出为()。

#include ”stdio.h”

main()

{

int v1=0,v2=0;

char ch;

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

switch (ch)

{ case ’a’:

case ’h’:

default: v1++;

case ’o’: v2++;

}

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

}

A.2,0 B.5,0 C.5,5 D.2,5

29.有以下程序,若输入为字符s,则程序运行结果为()。

#include ”stdio.h”

main()

{

char ch;

ch=getchar();

switch (ch)

{ case ’a’: printf(”a=%c\n”,ch);

default: printf(”end!\n”);

case ’b’: printf(”b=%c\n”,ch);

case ’c’: printf(”c=%c\n”,ch);

}

}

A.end! B.end! C.有语法错误D.a=s b=s end!

c=s

30.有以下程序,程序运行后的输出结果是()。

#include ”stdio.h”

main()

{

int a=15, b=21, m=0;

switch (a%3)

{ case 0: m++; break;

case 1: m++;

switch (b%2)

{ default: m++;

case 0: m++; break;

}

}

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

}

A.1 B.2 C.3 D.4 2.2 填空题

1.若从键盘输入58,则输出结果是________。

#include ”stdio.h”

main()

{

int a;

scanf(”%d”, &a);

if (a>50) printf(”%d”, a);

if (a>40) printf(”%d”,a);

if (a>30) printf(”%d”,a);

}

2.设int x=9,y=8;表达式x==y+1的结果是________。

3.定义int x,y;执行y=(x=1,++x,x+2);后, y的值是________。

4.定义int x=10,y,z; 执行y=z=x; x=y==z;后,x的结果是________。5.设int a=1,b=2,c,d,e; 执行

c=(-a++)+(++b);

d=(b--)+(++a)-a;

e=(a/(++b))-(a/(--a));

请问a,b,c,d,e的结果是:________。

6.设int a=2,b=3,c,d,e,f; 执行

c=(a++>= --b);

d=(a==++b);

e=(a--!=b);

f=(++a>b--);

请问a,b,c,d,e,f的结果是:________。

7.以下程序的运行结果是________。

#include ”stdio.h”

main()

{

int a,b,c,s,w,t;

s=w=t=0;

a= -1; b=3; c=3;

if (c>0) s=a+b;

if (a<=0)

{ if (b>0)

if (c<=0) w=a-b;

}

else if (c>0) w=a-b;

else t=c;

printf(”%d %d %d”, s,w,t);

}

8.以下程序的运行结果是________。

#include ”stdio.h”

main()

{

int a,b,c,d,e;

a=c=1;

b=20;

d=100;

if (!a) d=d++;

else if (!b)

if (d) d= --d;

else d= d--;

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

}

9.以下程序的运行结果是________。

#include ”stdio.h”

main()

{

int a, b= 250, c;

if ((c=b)<0) a=4;

else if (b=0) a=5;

else a=6;

printf(”\t%d\t%d\n”,a,c);

if (c=(b==0))

a=5;

printf(”\t%d\t%d\n”,a,c);

if (a=c=b) a=4;

printf(”\t%d\t%d\n”,a,c);

}

10y值。请在【】内填空。

#include ”

main()

{

int x,y;

scanf(”%d”, &x);

if (【1】) y=x*(x+2);

else if (【2】) y=1/x;

else if (x<=-1) y=x-1;

else 【3】;

if (y!= -1) printf(”%d”,y);

else printf(”error”);

}

11.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。请在【】内填入正确内容。

#include ”stdio.h”

#include ”math.h”

main()

{

float a,b,c,t,disc,w,term1,term2;

printf(”enter a,b,c:”);

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

if (【1】)

if (【2】) printf(”no answer due to input error\n”);

else printf(”the single root is %f\n”, - c/b);

else

{ disc=b*b-4*a*c;

w=2*a;

term1= -b/w;

t=abs(disc);

term2=sqrt(t)/w;

if (【3】)

printf(”complex root\n real part=%f imag part =%f\n”, term1,term2);

else

printf(”real roots\n root1=%f root2=%f\n”, term1+term2,term1-term2);

}

}

12.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。请在【】内填入正确内容。

#include ”math.h”

#include ”stdio.h”

main()

{

float a,b,c,s,area;

printf(”please input three edges of a triangle:”);

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

if (【1】)

{ s=(a+b+c)/2;

area=sqrt(s*(s-A*(s-B*(s-c));

printf(”\nthe area of the triangle is: %f”,area);

if ((a==b)&&(b==c))

printf(”等边三角形”);

else if (【2】)

printf(”等腰三角形”):

else if (【3】)

printf(”直角三角形”):

else printf(”一般三角形”):

}

else printf(”不能组成三角形”);

}

13.以下程序的功能是判断输入的年份是否是闰年。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

int year, flag;

printf(”please input the year to jude whether it is a leap year:”);

scanf(”%d”,&year);

if (year%400==0) flag=1;

else if (【1】) flag=1;

else 【2】;

if (flag) printf(”%d is a leap year\n”,year);

else printf(”%d is not a leap year!\n”,year);

}

14.以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

char ch;

printf(”please input a letter:”);

scanf(”%c”,&ch);

if (【1】) ch=ch+32;

else if (ch>=’a’ && ch<=’z’)

【2】;

printf(” the converted letter is: %c\n”,ch);

}

15.以下程序是对从键盘输入的任何三个整数,求出其中的最小值。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

int a,b,c,min;

printf(”please input three numbers:”);

scanf(”%d%d%d”,&a,&b,&c);

if (【1】)

min=b;

else

min=a;

if (min>c)

【2】;

printf(”min=%d\n”,min);

}

16.以下程序实现这样的功能:商店卖西瓜,10斤以上的每斤0.15元,8斤以上的每斤0.3元,6斤以上的每斤0.4元,4斤以上的每斤0.6元,4斤以下的每斤0.8元,从键盘输入西瓜的重量和顾客所付钱数,则输出应付款和应找钱数。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

float weight, money, rate;

printf(”the paid money of the client is:”);

scanf(”%f”,&money);

printf(”the weight of the watermelon is:”);

scanf(”%f”,&weight);

if (【1】)

rate=0.15;

else if (weight>8)

rate=0.3;

else if (weight>6)

【2】;

else if (weight>4)

rate=0.6;

【3】

rate=0.8;

printf(”the account payable of the watermelon is %f\n”, weight*rate);

printf(”the change for client is %f\n”,money-weight*rate);

}

17.以下程序段的运行结果是________。

#include ”stdio.h”

main()

{

char ch1=’a’,ch2=’A’;

switch (ch1)

{ case ’a’:

switch (ch2)

{case ’A’: printf(”good!\n”); break;

case ’B’: printf(”bad!\n”); break;

}

case ’b’: printf(”joke\n”);

}

}

18.y值。请在【】内填入正确内容。

#include ”

main()

{

int x, rate;

float y;

printf(”please input the value of x:”);

scanf(”%d”,&x);

if (【1】) rate= -1;

else rate=【2】;

switch(rate)

{ case –1: y=0; break;

case 0: y=x; break;

case 1: y=10; break;

case 2:

case 3: y=-0.5*x+20; break;

default: y= -2;

}

if (【3】) printf(”y=%f\n”,y);

else printf(”the value of x is invalid!\n”);

}

19.以下程序实现的功能是:从键盘输入某年某月,输出该年份该月的天数。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

int year, month, days, leap;

printf(”please input both year and month:”);

scanf(”%4d/%2d”,&year,&month);

switch (【1】)

{ case 1:

case 3:

case 5;

case 7:

case 8:

case 10:

case 12: days=31;

【2】

case 4:

case 6:

case 9:

case 11: days=30;

break;

case 2: if (year%400==0) leap=1;

else if (year%4==0 && year%100!=0) leap=1;

else 【3】;

if (leap)

days=29;

else

days=28;

}

printf(”%d年%d月的天数为%d\n”, year, month, days);

}

20.以下程序完成两个数的四则运算。请在【】内填入正确内容。

#include ”stdio.h”

main()

{

float x,y;

char operator;

printf(”please input the expression:”);

scanf(”%f%c%f”,&x,&operator,&y);

switch (【1】)

{ case ’+’: printf(”%g%c%g=%g\n”, x, operator, y, x+y);

【2】;

case ’-’: printf(”%g%c%g=%g\n”, x, operator, y, x-y);

break;

case ’*’: printf(”%g%c%g=%g\n”, x, operator, y, x*y);

break;

case ’/’: if (y==0.0)

printf(”除零错误!\n”);

else

printf(”%g%c%g=%g\n”, x, operator, y, x/y);

break;

【3】: printf(”表达式存在错误!\n”);

}

}

21.以下程序运行后的输出结果是_____________。

#include ”stdio.h”

main()

{

int x=10, y=20, t=0;

if (x==y) t=x; x=y; y=t;

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

}

22.执行以下语句后,x、y和z 的值分别为_____________。

int x,y,z;

x=y=z=0;

++x || ++y && ++z;

2.3 答案及部分解析

一.选择题答案

1.D 2.B 3.D 4.C 5.D 6.C

7. C 8. A 9. C 10.C 11.C 12.C 13.B 14.C 15.A 16.B 17.C 18.C 19.B 20.B 21.A 22.C 23.D 24.C 25.D 26.C 27.C 28.C 29.A 30.A 2. 解析:当条件1:m=a>b 的值为假时, 便已经确定整个表达式的值为假,所以不必再

继续判断第二个表达式的逻辑值。由于没有执行第二个表达式n=c>d ,所以n 的值仍为2。

17.解析:if 的条件表达式x=y+z 为赋值语句,x=5为非零值,即为if (1) printf(”***\n ”); 23.解析:A .的错误在于switch(a+b);其后有一个“;”,B 的错误在于switch a 的条件表达

式a 没有括号,应该为switch(a),C 的错误在于有两个case 具有相同的入口值。

28.解析:当输入c 时,switch 语句执行情况为:

当继续输入h 时,switch 语句的执行情况为:

?

??=+==+=21222

111v v v v

重复上述过程,输入5个有效字符,则v1和v2执行5次自加操作,所以: v1=5, v2=5 二.填空题答案 1.答案:585858

解析:虽然三个if 语句按照嵌套方式书写,但是程序仍然是依顺序运行的,会分别对每

一个if 的条件表达式进行判断,若其条件表达式为真,就执行其后的语句,否则,不执行。 2.答案:1

解析:注意该表达式是关系表达式的双等号,所以其结果只能为1或0。 3.答案:4 4.答案:1

5.答案:在Turbo C 编译系统下,结果为a=2,b=3,c=2,d=3,e=-1;若在Visual C++下,

结果为a=2,b=3,c=2,d=3,e=-0。

解析:①在Turbo C 编译系统下,解题过程如下:

第一个赋值语句“c=(-a++)+(++b);”可分解为如下的几个语句:

211,231,31211=+==+-==+=???

?

??

+=+-=+=a c b a a b a c b b 因为没有break 语句

因为没有break 语句

此时a=2,b=3,c=2。

第二个赋值语句“d=(b--)+(++a)-a;”可分解为如下的几个语句:

213,3333,31211=-==-+==+=???

?

??

-=-+=+=b d a b b a a b d a a 此时a=3,b=2,c=2,d=3。

第三个赋值语句“e=(a/(++b))-(a/(--a));”中由于自加、自减运算符的优先级高于其它运算符,故先运算++和--,令a=2,b=3,然后该等式中a 的值都取2参与运算,故该等式等价与:“e=2/3-2/2;”,因此e 的值等于0。 此时a=2,b=3,c=2,d=3,e=0

②在Visual C++编译系统下,解题过程如下: 前两条赋值语句“c=(-a++)+(++b);”、“d=(b--)+(++a)-a;”的运算过程和在Turbo C 编译系统一样,第三个赋值语句“e=(a/(++b))-(a/(--a));”可按步骤分解为如下的几个语句

2,02/33/3,3121)1/(/1

==-==+=???

?

??-=--=+=a e b a a a a b a e b b

因此,其结果为a=2,b=3,c=2,d=3,e=-0

6.答案:a=3,b=2,c=1,d=1,e=0,f=0

解析:第一个赋值语句c=(a++>= --b);可以分解为如下的语句:

312,1)22(,2131)(1=+==>===-=???

?

??

+=>==-=a c b a a b a c b b 第二个赋值语句d=(a==++b);可以分解为如下的语句:

1)33(,312)(1=====+=??

??

===+=d b b a d b b

第三个赋值语句e=(a--!=b);可以分解为如下的语句:

213,0)3!3(1)!(=-====??

??

-===a e a a b a e

第四个赋值语句f=(++a>b--);可以分解为如下的语句:

213,0)33(,311)(1=-==>==+=???

?

??

-=>=+=b f a a b b b a f a a 由以上各步,可以得到:a=3,b=2,c=1,d=1,e=0,f=0

7.答案:2 0 0

解析:参看如下的注释语句。

if (c>0) s=a+b; /* c=3>0为真,所以执行s=a+b 语句;即:s=2*/

if (a<=0) /*由于a= -1, 故a<=0为真,所以执行其后的大括号内的语句*/ { if (b>0) /*由于b=3, 故b>0为真,可以继续下面的语句*/

if (c<=0) w=a-b; /*由于c=3,c<=0为假,其后w=a-b不会执行*/

}

else if (c>0) w=a-b;/*这一对if-else因a<=0为真,所以没有机会执行到*/ else t=c;

8.答案:100

9.答案:6 250

5 1

00

10.答案:【1】x>2 && x<=10 【2】x>-1 && x<=2 【3】y= -1

11.答案:【1】a==0 【2】b==0 【3】disc<0

12.答案:【1】(a+b>c) && (b+c>a) &&(a+c>b)

【2】(a==b) || (b==c) || (a==c)

【3】(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)

13.答案:【1】(year%4==0)&&(year%100!=0) 【2】flag=0

14.答案:【1】ch>=’A’ && ch<=’Z’【2】ch=ch-32 15.答案:【1】a>b 【2】min=c;

16.答案:【1】weight>10 【2】rate=0.4 【3】else

17.答案:good!

joke

18.答案:【1】x<0 【2】x/10 【3】y!= -2

19.答案:【1】month 【2】break; 【3】leap=0; 20.答案:【1】operator 【2】break 【3】default 21.答案:20,0

22.答案:1,0,0

C语言上机作业

1.输入十个整数,分别输出这10个数再计算并输出它们的和。 源程序: #include void main() { int i,sum=0; int a[10]; printf("input 10 intergers:\n"); for(i=0;i<=9;i++) { scanf("%d",&a[i]); } for(i=0;i<=9;i++) { sum+=a[i]; printf("%d ",a[i]); } printf("sum=%d\n",sum); } 运行结果: 2.输入10个不同的数,将它们存入数组a中,在输入一个数x。然后在数组中查找x。如果找到,则输出相应下标,否则输出“not found”。 源程序:#include void main() { int a[10],i,j,x; printf("Input data of a[10]:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]);

} printf("Input x:"); scanf("%d",&x); for(j=0;j<10;j++) { if(x==a[j]) { printf("%d\n",j); goto L1; } } printf("not found\n"); L1: ; } 运行结果:

3.输入一个整数n(1 void main() { int n,i,s,min,a[10]; printf("Input a interger n(1a[i]) min==a[i]; } for(i=0;i

C语言上机作业题及答案

实验一: 1、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误

差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include #include main() { float A,a,H,h,b; printf("父亲身高(厘米)\n"); scanf("%f",&A); printf("母亲身高(厘米)\n"); scanf("%f",&a); printf("孩子实际身高(厘米)\n"); scanf("%f",&H); printf("请选择孩子性别:女=0,男=1\n"); scanf("%f",&b); if(b) h=(A+a)*1.08/2; else h=(A*0.923+a)/2; if(fabs(H-h)<=3) printf("实际身高符合该公式\n"); else

C语言上机练习题

上机练习题 完成 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 完成 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 完成 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。完成 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 完成 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 完成 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 完成 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 完成 8.输入1~10之间的一个数字,输出它对应的英文单词。 完成 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 完成 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 完成 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境;

5-6次C语言上机作业

实验5 函数(1) 【实验题5-1】以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上。调试运行程序,观察出现了什么错误,提出两种修改方案。 【实验题5-2】下程序的功能:输出3~1000之的间的素数。请选择合适的内容填入程序的空白处,并调试运行程序。

【实验题5-3】从键盘输入一个整数n,计算n^3,并将结果输出在屏幕上。要求计算n^3用函数实现。 【实验题5-4】从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数

实现。 注意写计算表达式的时候3*n之间的乘号不要丢掉,否则会提示:invalid suffix “n” on integer constant. 调用用户自定义函数是只写ifun=fun(n); 就可以了,不要在括号里加上int。Ifun=fun(int n) × 【实验题5-5】编写程序,计算Cmn=n!/(n-m)!m!。要求如下: 1)编写一个函数计算n!; 2)编写主函数,输入n和m, 调用第1)项中的函数完成计算; 3)输出并计算C58、C712的结果。

【实验题6-1】以下程序功能:用已知三角形三边,求三角形面积。但程序有错,请上机调试并改正错误。

【实验题6-2】以下程序运行的结果应该是a=14, b=15,temp=0。在程序空白处填写适当的编译预处理命令。 【实验题6-3】用for循环输出20个0~99之间的随机数。要求没输出五个随机数换一行。 【实验题6-4】从键盘输入一个字母,如果是大写字母就转换成小写字母输出;如果是小写字母就转换成大写字母输出。要求用库函数实现。

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

7~8次C语言上机作业

实验7 数组(1) 【实验题7-1】此程序的功能:给数组元素赋值并进行输出。但程序中有错误,请查找原因,并调试程序以实现程序功能。 【实验题7-2】以下程序的功能:求整型数组中元素的最大值及其下标。请选择合适的内容填入程序中空白处。 【实验题7-3】以下程序的功能:把整型数组里的元素按逆序进行排序并输出。请选择合适的内容填入程序中空白处。 【实验题7-4】编写一个程序,定义一个有五个元素的一维数组,从键盘对该数组的元素进行赋值后再显示在屏幕上。 【实验题7-5】编写程序对整型数组iA的各元素进行从大到小排序。 【实验题7-6】在数组iA和数组iB中分别存放了na和nb个由小到大的有序数。编写程序,完成把两个数组中的元素按从小到大的顺序归并存放在数组iC中。 【实验题7-7】假设数组iA中的元素按由小到大的顺序存放。编写程序把数组iA中相同的元素删除至一个,然后按照每行六个元素的形式输出数组iA中的各个元素值。 【实验题7-8】在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素为该二维数组的一个鞍点。编写程序要求从键盘输入一个二维数组,当鞍点存在时,把鞍点找出来。 #include #define M 3 #define N 4 int main(){ int a[M][N],i,j,k; printf("\n请输入二维数组的数据:\n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i for(j=0;j

printf("M",a[i][j]); printf("\n"); } for(i=0;i k=0; for(j=1;j if(a[i][j]>a[i][k]) k=j; for(j=0;j if(a[j][k] break; if(j==M) printf("%d,%d,%d\n",a[i][k],i,k); } return 0; } 上面这个题代码运行不了,可又找不到问题所在,头疼!!! 实验8 数组(2) 【实验题8-1】此程序的功能:过滤字符数组中数字并进行输出。但程序中有错误,请查找原因,并调试程序以实现程序功能。 【实验题8-2】此程序的功能:统计字符数组中出现字符“s”的次数,并进行输出。但程序中有错误,请查找原因,并调试程序以实现程序功能。 【实验题8-3】以下程序的功能:连续输入一批“#”结束的字符串,遇“##”则全部结束,统计并输出每个字符串的有效长度。请选择适当的内容填入空白处。 【实验题8-4】

扬州大学C语言上机作业1-9整理

答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a; a=b; b=c; printf("%d,%d\n",a,b); getch(); } 5.设计main函数实现从键盘上输入两个整型变量a、b的值,并将b的值加入到a中,输出a的值。 #include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a+b; a=c; printf("a=%d,b=%d\n",a,b); getch(); } 6.从键盘输入整数x的值,根据公式y=x3+3x2+x-10求y的值,输出x和y的值。 #include void main() { int x,y; printf("enter first integer : "); scanf("%d",&x); y=x*x*x+3*x*x+x-10;

printf("x=%d,y=%d\n",x,y); getch(); } 实验二 1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 #include void main() { int a,b,hour,min; printf("enter first integer : "); scanf("%d",&a); b=60; hour=a/b; min=a%b; printf("hour=%d,min=%d\n",hour,min); getch(); } 2.编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输出。 #include void main() { int a,b,c,d; a=1500,b=350; c=a/b; d=a%b; printf("%d,%d",c,d); getch(); } 3.编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。 #include void main() { int a,b,c,d; printf("enter first integer : "); scanf("%d",&a);

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言上机练习题

C语言上机练习题 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1.阅读以下程序,说出其功能和运算结果。 #include<> intmain() { intn; intfactorial(intn); scanf("%d",&n); printf("%d\n",factorial(n)); return0; } intfactorial(intn) { inti,fact=1; for(i=1;i<=n;i++) fact=fact*i; returnfact; } 若输入5↙ 2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。 #include<> intmian() { printf("WelcometoYou!\n") return0; } 3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。 #include<> main() { intx,y; scanf("%d",&x); if(x<1) {y=x;

printf("x=%d,y=x=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } } 4.当输入19,2,21时下列程序运行的结果是()。 #include<> main() {inta,b,c,max; printf("pleasescanthreenumbera,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

大连理工c语言第五次上机作业参考答案

第五次上机作业:(请用指针实现) 1.数据移位 有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。 SAMPLE OUTPUT Input n(n<=10):10 Input 10 integers:1 2 3 4 5 6 7 8 9 10 Output the original:1 2 3 4 5 6 7 8 9 10 Input m(m<=10):4 Output the shifted:7 8 9 10 1 2 3 4 5 6 #include #define N 10 void shift(int a[ ],int n,int m); void main( ) { int i,n,m; int a[N]; printf("Input n(n<=10):"); scanf("%d",&n); printf("Input %d integers:\n",n); for(i=0;i=0;j--) a[j+1]=a[j]; a[0]=t; } } n

c语言上机操作题

实验一上机操作初步(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的特点与基本结构。 2、了解C语言程序的编译环境。 3、掌握使用C语言编写和调试程序的流程:编辑-保存-编译-构建(组件)-执行。 4、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 5、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,第四题为选做题目。 1、编辑实验教材P2程序,掌握C语言程序在Visual C++6.0环境下的编译流程和调试过程。(实验教材P2) 2、在屏幕上实现下列图案的输出: **************************** hello,welcome to china! good bye! **************************** (实验教材P11) 3、计算两个数x和y的和。(教材P5【例1-2】) 4、求两个数的最大值。(教材P5【例1-3】) 四、实验步骤与过程: 1、#include "stdio.h" void main( ) { printf("Hello,World!"); printf("\n"); } 2、 五、实验调试记录: 1、 2、 实验二简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握C语言的数据类型。 2、掌握标识符、常量、变量的定义及使用。 3、掌握C语言的常用运算符及表达式。 三、实验内容:

说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教材P18) 2、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 3、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。(实验教材P21) 4、输入并运行以下程序,分析运行结果。(实验教材P27) #include “stdio.h” void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验步骤与过程: 五、实验调试记录: 实验三选择结构程序设计(一)(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握单分支if语句的使用方法。 2、掌握双分支if-else语句的使用方法。 3、掌握多分支语句的一般形式和使用方法。 三、实验内容: 说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教材P27) 3、判断箱子是正方体还是长方体。请根据注释将程序填写完整。(实验教材P33) 4、编写程序,通过输入x的值,计算阶跃函数y的值。(教材P70【例5-4】)

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

C语言上机练习题_828701982

C语言上机考试练习题(1) 说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。 1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求: (1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。 (2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include #include void main() { int cmpsubstr(char *s1,char *s2); char str1[20],str2[50]; char *s1=str1,*s2=str2; gets(str1); gets(str2); printf("%d",cmpsubstr(s1,s2)); } int cmpsubstr(char *s1,char *s2) { int i,d,a=0,situation=0; d=strlen(s1); for(i=0;*(s2+i)!='\0';i++) {

if(*(s1+a)==*(s2+i)) { a++; if(a==d) { situation=1; break; } } else { a=0; } } if(situation==0)return(-1); else return(i-d+2); } 2、输入一个字符串,有数字和非数字字符,如:a123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数,并输出这些整数。要求:(1)在主函数中输入字符串,并输出结果。调用子程序处理字符串。 (2)子函数的返回值为整数的个数。 #include #include void main() { int search(char *str,int *sum); char str[100]; int d,sum[20],i;

C语言作业3

撞球

#include #include #include int main() { double length,wide,x0,y0,x1,y1; int i; char towards[1500]; while(1) { memset(towards,0,sizeof(towards)); if(scanf("%lf %lf",&wide,&length)==EOF) break; scanf("%lf %lf",&x0,&y0); scanf("%lf %lf",&x1,&y1); scanf("%s",towards); for(i=0;i

x0=-x0; if(towards[i]=='R') x0=2*wide-x0; } printf("%.4lf\n",sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1))); } return(0); } 20. 整数问题 成绩: 0 / 折扣: 0.8 请求输出满足以下条件的n 位正整数的个数: 要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该 整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。即该整数前k位都可被k 平方整除。 例如:n=1,则符合条件的1位正整数为1~9,输出答案9。n=2,符合条件的正整数为:12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96,则输出答案22。当n=4时,2432就是一个符合题意的整数。第一位2可以被1整除; 前2为24可以被4整除;前3位243可以被9整除;整个4位2432可以被16整除。 输入: n(0<=n<9) 输出: 符合该条件的n位正整数的数量 (本题目为软件学院2007年保研学生初试上机试题。本题可以不用数组) 测试输入期待的输出时间限制内存限制额外进程 测试用例 1以文本方式显示 1.1? 以文本方式显示 1.9? 无限制64M 0 测试用例 2以文本方式显示 1.2? 以文本方式显示 1.22? 无限制64M 0 测试用例 6以文本方式显示以文本方式显示无限制64M 0

c语言上机模拟题1

1.按照计算机应用领域分类,学校使用的成绩管理系统属于_______。 A. 实时控制 B. 计算机辅助设计 C. 数据处理 D. 科学计算 参考答案:C 2.下面关于计算机系统的叙述中,完整的计算机系统通常是指______。 A. 计算机的硬件系统 B. 计算机上配置的操作系统 C. 计算机的软件系统 ! D. 由硬件系统和软件系统组成 参考答案:D 3.微型计算机的微处理芯片上集成的主要组件包括______。 A. 控制器和运算器 B. 内存和控制器 C. 控制器和存储器 D. 运算器和I/O接口 参考答案:A 的对话框窗口不可以______。 A. 关闭

【 B. 移动 C. 任意改变大小 D. 最小化 参考答案:C 5.某用户在域名为的邮件服务器上申请了一个账号,账号名为xing,那么该用户的电子邮件地址为______。 A. xing%参考答案:D 6.下列对C语言程序的描述中,正确的是_______。 A. C语言程序总是从第一个定义的函数开始执行 B. C语言程序总是从最后一个定义的函数开始执行 C. C语言程序总是从main()函数开始执行 < D. C语言程序中的main()函数必须放在程序的开始部分 参考答案:C 7.设有char ch='\\';,则变量ch包含______个字符。 A. 1 B. 2 C. 3 D. 4 参考答案:A 8.以下选项中合法的字符常量是____________。 A. '\101' {

B. '\97' C. '\xyz' D. '\019' 参考答案:A 9.下面用户标识符中合法的是____________。 A. iPhone# B. 13a C. char D. _int 参考答案:D ( 10.已知int c1=5,c2=2,c3;,则执行c3=c1/c2后,c3的值是 _______。 A. 5 B. C. 3 D. 2 参考答案:D 11.设有定义int b=0;,表达式_______与其它表达式的值不相同。 A. b+=1 B. b++ C. ++b

C语言上机试题答案

//vc1 //prog1.cpp //设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。#include"stdio.h" main() { int a[3],i,j,t; for(i=0;i<3;i++) { scanf("%d",&a[i]); } for(i=0;i<9;i++) /*此处的i可以小于任意一个大于6的整数*/ { for(j=0;j<2;j++) { if(a[j]>a[j+1]) t=a[j],a[j]=a[j+1],a[j+1]=t; } } printf("The three data from small to big is:"); for(i=0;i<3;i++) printf("%d ",a[i]); } //vc1 //prog2.cpp //求1+3+5+...+95+97+99的和。 #include"stdio.h" main() { int i,sum=0; for(i=1;i<100;i=i+2) sum+=i; printf("1+3+5+....+99=%d\n",sum); } //vc1 //prog3.cpp //写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此

整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数)#include"stdio.h" main() { int i,j,k,l=2; printf("输入一个大于3的整数:"); scanf("%d",&i); for(j=2;j=0;i--) printf("%d ",a[i]); for(i=0;i<10;i++) sum+=a[i]; printf("The total is:%d\n",sum); } //vc2 //prog2.cpp //输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

相关文档