搜档网
当前位置:搜档网 › 扬州大学C语言上机作业1-9整理

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

扬州大学C语言上机作业1-9整理
扬州大学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);

printf("enter second integer : ");

scanf("%d",&b);

printf("enter third integer : ");

scanf("%d",&c);

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

d=c;

c=b;

b=a;

a=d;

printf("a=%d,b=%d,c=%d",a,b,c);

getch();

}

4.编写程序,读入3个双精度数,求它们的平均值输出到屏幕。

#include

void main()

{

double sum=0;

double a,b,c,d;

printf("enter first integer : ");

scanf("%lf",&a);

printf("enter second integer : ");

scanf("%lf",&b);

printf("enter third integer : ");

scanf("%lf",&c);

sum=a+b+c;

d=sum/3.0;

printf("d=%lf",d);

getch();

}

5.下列程序中,要求main函数实现如下功能:从键盘上输入3个正整数,求出它们中的最大值。请完善程序,并在程序最后用注释的方式给出你的测试数据及在这组测试数据下的运行结果。

#include

void main()

{

int a ,b ,c ,d ,max;

printf(“Enter three integers:”);

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

if(a>b)

max=a;

else

max=b;

if(c>max)

max=c;

printf(“max of the three numbers is %d”,max);

grtch();

}

6. 请编程序:对从键盘上输入的x值,根据以下函数关系计算出相应的y值(设x,y 均为整型量)。

x值的范围计算y的公式

x<0 0

0<=x<10 x

10<=x<20 10

20<=x<40 -5x+20

#include

void main()

{

int x,y;

printf("x=");

scanf("%d" ,&x);

if (x<0)

y=0;

else if (x<10&&x>=0)

y=x;

else if (x>=10&&x<20)

y=10;

else if (x>=20&&x<40)

y=(-5)*x+20;

printf("%d" ,y);

getch();

}

实验三

1. 下列程序想求出满足如下条件的三位数n:(1)n除以11(整数相除)所得到的商等于n的各位数字的平方和;(2)n中至少有二位数字相同。如:131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个;又如550,也是满足条件的三位数。源程序中有些错误,请你改正并最终使程序得到如下的运行结果:131 550 900

#include

void main()

{ int n , a , b , c;

for(n=1; n<1000; n++)

{ a=n/100; b=n/10%10; c=n%10;

if(n/11==a*a+b*b+c*c&&(a==b||a==c||b==c))

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

getch();}

2. 请编程序,实现从键盘上输入任意一个整数n,求出n的各位数字之和。例如,当n 为263时,各位数字之和为11。下面是一个可以实现逐位数字累加功能的程序段,试理解后应用到自己的程序中。

k=0;n=263;

do{ k+=n%10;

n/=10;

}while(n);

#include

void main()

{ int n,k;

scanf("%d",&n);

k=0;

do{ k+=n%10;

n/=10;

}while(n);

printf("%d",k);

getch();

}

3. 试找出符合下列条件的正整数:(1)该数是一个三位数;(2)该数是37的倍数;(3)该数循环左移后得到的另两个数也是37的倍数。例如148是37的倍数,481和814也是37的倍数。

#include

void main()

{

int n,a,b;

for(n=100;n<1000;n++)

if(n%37==0)

{a=n/10+n%10*100;

b=n/100+n%100*10;

if(a%37==0&&b%37==0)

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

}

getch();

}

4.请编程序利用下列公式求π的近似值。公式为:

要求:先求出前2n 项的π值,再求出2n+2项的π值,直至二者之差小于10-

5为止。

#include void main() {int n; float a,b; a=1,b=4.0/3; n=1;

while(b-a>=1e-5) {a=b; n++;

b=b*4*n*n/(2*n-1)/(2*n+1); }

printf("%f,%f",2*a,2*b); getch(); }

5. 请编程序求出满足如下条件的四位数n :(1)n 的范围为[5000,8000];(2)n 千位上的数

减百位上的数减十位上的数减个位上的数大于零。编程要求:以每行5个输出满足条件的数及该类数的个数。

#include void main()

{int n,a,b,c,d,k=0;

for(n=5000;n<=8000;n++) {a=n/1000; b=n/100%10; c=n/10%10; d=n%10;

if((a-b-c-d)>0) {printf("%5d",n); k++;

if(k%5==0) printf("\n"); } }

printf("k=%d",k); getch(); } 6.请编程序求出满足如下条件的一个四位整数,它的9倍恰好是其反序数(例如,1234与4321互为反序数)。

#include void main() {int n,e,a,b,c,d;

1

22122 (7656543432122)

+?-???????=

n n n n π

for(n=1000;n<=9999;n++)

{ a=n/1000;

b=n/100%10;

c=n/10%10;

d=n%10;

e=d*1000+c*100+b*10+a;

if(9*n==e)

printf("%d",n);}

getch();

}

7.请编程序求出从键盘上输入的两个正整数a和b的最大公约数和最小公倍数。

#include

void main()

{

int m,n,r,x;

scanf("%d,%d",&m,&n);

x=m*n;

while(n!=0)

{

r=m%n;

m=n;

n=r;

}

printf("%d %d",m,x/m);

getch();

}

8.请编程序计算1!+2!+3!+…+n!的前10项之和。

#include

void main()

{

long sum,k;

int i,j;

sum=0;

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

{

for(j=1,k=1;j<=i;j++)

{ k*=j; }

sum+=k;

}

printf("%ld\n",sum);

getch();

}

实验四

1. 反序数。例如,123的反序数是321。请设计程序,从键盘上输入一个整数,求其反序数

并输出。

#include "stdio.h"

main()

{ int n,k;

printf("n=");

scanf("%d",&n);

k=0;

while(n!=0)

{k=k*10+n%10;

n/=10;}

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

getch();

}

2. 完备数。完备数是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)之和

恰好等于该数本身。例如,6=1+2+3,故6是一个完备数。请设计程序,找出500以内的所有完备数。

#include "stdio.h"

void main()

{ int n,i,k;

for(n=1;n<=500;n++)

{ k=0;

for(i=1;i<=n-1;i++)

{if(n%i==0)

k+=i;}

if(n==k)

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

}

getch();

}

3.回文数。一个数如果正读和倒读(即反序数)相同,称该数是回文数。例如,121、1331

均为回文数。请设计程序,找出200~300之间的所有回文数,并以每行8个数输出至屏

#include "stdio.h"

void main()

{ int n,k,i,m=0;

for(n=200;n<=300;n++)

{ k=0;

i=n;

while(i!=0)

{k=k*10+i%10;

i/=10;}

if(n==k)

{m++;

printf("%8d",n);

}

if(m%8==0) printf("\n");

}

getch();

}

4. 回文质数。一个数如果是回文数,同时又是质数,则该数被称为回文质数。请设计程序,

找出100~500之间的所有回文质数,并以每行5个输出至屏幕。

#include "stdio.h"

#include "math.h"

void main()

{ int n,k,i,m;

for(n=100;n<=500;n++)

{ k=0;

i=n;

while(i!=0)

{ k=k*10+i%10;

i/=10;}

if(n==k)

{ for(m=2;m<=sqrt(n);m++)

{ if(n%m==0)

break;

}

if(m>sqrt(n))

{

printf("%4d",n);

account++;

if(account%5==0)

printf(“\n”);

}

}

getch();

}

5. 绝对质数。如果一个数和其反序数均为质数,则该数被称为绝对质数。如,13是质数,

其反序数31也为质数,则13和31是一对绝对质数。请设计程序,找出200以内的绝对质数。

#include "stdio.h"

#include "math.h"

void main()

{ int n,k,i,m,a;

for(n=1;n<=200;n++)

{ for(a=2;a<=sqrt(n);a++)

{if(n%a==0)

break;

}

if(a>sqrt(n))

{ i=n,k=0;

while(i!=0)

{ k=k*10+i%10;

i/=10;}

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

{if(k%m==0)

break;

}

if(m>sqrt(k))

printf("%5d",n);

}

}

getch();

}

6. 平方镜反数。如果一个数的平方数,是其反序数的平方数的反序数,则称该数和其反序

数是一对平方镜反数。例如,12的平方数是144,其反序数为21,21的平方数是441,其反序数是12的平方数144,故12和21是一对平方镜反数。请设计程序找出200以内的所有平方镜反数对。

#include "stdio.h"

#include "math.h"

void main()

{ int n,k,i,a,b;

for(n=1;n<=200;n++)

{ k=0;

i=n;

while(i!=0)

{ k=k*10+i%10;

i/=10;}

a=k*k;

b=0;

while(a!=0)

{b=b*10+a%10;

a/=10;}

if(b==(n*n))

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

}

getch();

}

7.黑洞数。黑洞数又称陷阱数,是类具有奇特转换特性的整数。任何一个数字不全相同整数,经有限“重排求差”操作,总会得到某个数,这些数即为黑洞数。“重排求差”操作即把组成该数的数字重排后得到的最大数减去重排后得到的最小数。

随便造一个四位数,如a1=1231,先把组成部分1231的四个数字由大到小排列得到a2=3211,再把1231的四个数字由小到大排列得a3=1123,用大的减去小的a2-a1=3211-1123=2088。把2088按上面的方法再作一遍,由大到小排列得8820,由小到大排列得288,相减8820-288=8532。把8532按上面的方法再作一遍,由大到小排列得8532,由小到大排列得2358,相减8532-2358=6174。如果再往下做,奇迹就出现了!

7641-1467=6174,又回到6174。6174便是一个4位黑洞数。

请编写程序,用上述方法找出3位黑洞数。

暂无答案

实验五

1. 有一张足够大的纸,厚0.09毫米,问将它对折多少次后可以达到珠穆朗玛峰的高度(8848

米)?

#include "stdio.h"

void main()

{double a=9e-2;

int n=0;

while(a<=8848)

{a=a*2;

n++;

}

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

getch();

}

2. 请设计程序采用递推法计算下列级数的近似值,当n 取某一值使得|x (2n+1)/n!|<0.000001时停止计算(x 从键盘输入)。级数如下:

#include "stdio.h"

#include "math.h " void main()

{double sum,x,p,n,q,m,k; printf("x="); scanf("%lf ",&x); sum=x;p=x; m=1;q=1;n=1;k=1; while(fabs(p/n)>=1.0e-6) {m=-m; p*=(x*x); q+=2; k++; n*=k;

sum+=((m*p)/(q*n)); }

printf("%lf",sum); getch(); }

3. 请设计程序,根据下列公式计算cos(x)的近似值。精度要求:当通项的绝对值小于等于10-6为止。 cos (x)=1-x 2/2!+x 4/4!-x 6/6!+……+(-1)n x 2n /(2n)!

#include "stdio.h" #include "math.h " void main()

{ double x,k,sum,term,a,b,m; printf("x="); scanf("%lf",&x); sum=1; m=1; a=0; k=1; b=1; term=1;

while(fabs(term)>1.0e-6) {k*=(x*x);

!

*)12(...!3*7!2*5!1*31

2753n n x x x x x n +++-+-+

a+=2; b*=(a*(a-1)); sum+=((m*k)/b); term=(m*k)/b; }

printf("cos(x)=%lf",sum); getch(); }

4. 请设计程序采用递推法计算∑=+-10

1

2!)

1(i i i

i x 的值。即求x -!13

x +…+!

1021x 的值。其中x 为键盘输入的一个任意的单精度实数。

#include "stdio.h"

void main() {int i,p;

float x,m,q,sum; printf("x="); scanf("%f ",&x); sum=x; m=x; p=1; q=1;

for(i=1;i<=10;i++) {m*=(x*x); p=-p; q*=i;

sum+=(p*m/q); }

printf("%f",sum); getch(); }

5. 请设计程序,根据下列公式计算表达式的值。计算公式如下:

)!2()1(cos 220

n x x x n

n n ∑∞=--π

当通项绝对值小于等于10-6

时停止累加。

#include "stdio.h" #include "math.h " void main()

{ double x,k,sum,term,a,b,m;

scanf("%lf",&x);

sum=1;

m=1;

a=0;

k=1;

b=1;

term=1;

while(fabs(term)>1.0e-6)

{k*=(x*x);

m=-m;

a+=2;

b*=(a*(a-1));

sum+=((m*k)/b);

term=(m*k)/b;

}

sum=(-1)*sum*cos(x)/x;

sum+=3.14/2;

printf("%lf",sum);

getch();

}

实验六

3.水仙花数是指一个3位数,其各位数字的立方和等于该数本身。请完善下列程序中的函

数int daffodil(int n),其功能是判断整数n是否为水仙花数,如是,则该函数返回值1,否则返回值0。注意,不能更改main函数。

#include

int daffodil(int n)

{ int k=0,m;

m=n;

do

{k+=(m%10)*(m%10)*(m%10);

m/=10;}while(m);

if(n==k)

return 1;

else return 0;

}

main()

{ int m,i=0;

for(m=100;m<1000;m++)

if(daffodil(m)==1)

{ printf("%5d",m);

i++;

if(i%5==0)printf("\n");

}

getch();

}

4. 请编写程序,找出满足如下条件的整数m:(1)该数在[11,999]之内;(2) m、m2、m3均为

回文数。例如m=11,m2=121,m3=1331,11、121、1331皆为回文数,故m=11是满足条件的一个数。请设计函数int value(long m),其功能是判断m是否是回文数,如是,该函数返回值1,否则返回值0。编写main函数,求出[11,999]内满足条件的所有整数。#include

int value(long m)

{long s,n;

s=0;

n=m;

while(n)

{s=s*10+n%10;

n/=10;}

if(s==m)

return 1;

else

return 0;

}

main()

{ long m;

for(m=11;m<1000;m++)

if(value(m)==1&&value(m*m)==1&&value(m*m*m)==1)

{ printf("%5ld",m);

}

getch();

}

5.设n0是一个给定的正整数。对于i=0,1,2,…,定义:若n i是偶数,则n i+1=n i/2;若

n i是奇数,则n i+1=3n i+1;若n i是1,则序列结束。用这种方法产生的数称为冰雹数。请编写一个函数void hailstones(int n),其功能是显示由n产生的所要求的序列,按每行6个数输出该数列中的所有数。编写main函数,在main函数中定义一个整型变量n,从键盘上输入值77赋给n,用n作为实参调用函数hailstones。

测试数据:77↙

输出结果:

Hailstones generated by 77:

77 232 116 58 29 88

44 22 11 34 17 52

26 13 40 20 10 5

16 8 4 2 1

Number of hailstones generated:23

#include

void hailstones(int n);

void main()

{int n;

scanf("%d",&n);

hailstones(n);

getch();

}

void hailstones(int n)

{ int i;

printf("Hailstones generated by 77:\n");

i=0;

while(n!=1)

{printf("%5d",n);

i++;

if(n%2==0)

n=n/2;

else

n=3*n+1;

if(i%6==0)

printf("\n");

}

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

i++;

printf("Number of hailstones generated:%5d",i);

}

6. 请按要求编写程序。编程要求:

(1) 编写函数int twinborn(int m,int n),其功能是判断整数m和n是否为孪生质数对(相差为2的两个质数称为孪生质数),如是,则函数返回值1,否则返回值0。

(2) 编写main函数,求出[10,99]内的所有孪生质数对,使得程序的运行结果为:

11,13

17,19

29,31

41,43

59,61

71,73

#include

int prime(int m)

{int n;

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

if(m%n==0)

return 0;

return 1;

}

int twinborn(int m,int n)

{ if(prime(m)+prime(n)==2)

return 1;

else

return 0;

}

void main()

{int n,m;

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

{ m=n+2;

if(twinborn(m,n)==1)

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

}

getch();

}

实验七

1.用牛顿迭代法求方程3x3-3x2+x-1=0在x0=2附近的实根。要求:

①用函数float newtoon(float x)求方程在x附近的根;

②用函数float F(float x)求x处的函数值,用函数float F1(float x)求f(x)在x处的导数;

③在主函数中输入x0,调用函数求得方程的近似根,并输出结果。

请完善下列程序,使之完成上述功能。并请以注释的方式在程序的最后给出你在运行该程序时所选用的测试数据及在该测试数据下的运行结果。

#include

#include

float F(float x)

{

return x*(3*x*(x-1)+1)-1;

}

float F1(float x)

{

return 9*x*x-6*x+1;

}

float newtoon(float x)

{

float f,f1,x0;

do {x0=x;

f=F(x0);

f1=F1(x0);

x=x0-f/f1;

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

return x;

}

void main()

{

float x0;

scanf("%f",&x0);

printf("The result =%.2f\n",newtoon(x0));

getch();

}

2.请设计程序,用二分法求方程x3+1.1x2+0.9x-1.4=0在(0,1)内的近似根。直到|f(x)|<0.0001为止。

#include

#include

float f(float x)

{

return(x*x*x+1.1*x*x+0.9*x-1.4);

}

void main()

{

float m=0,n=1,r;

r=(m+n)/2.0;

while(1)

{if(fabs(f(r))<1e-4) break;

if(f(m)*f(r)<0) n=r;

else m=r;

r=(m+n)/2.0;

}

printf("x=%f",r);

getch();

}

3.以下程序的功能是从键盘上输入10个整数,并检测整数3是否包含在这些数据中,若包含3,则显示出第一个3出现的位置,程序有些错误,试改正之。

#include

void main()

{

int data[10],j=0;

while (j<10)

{ scanf("%d",&data[j]);

j++;

}

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

{ if(data[j]==3)

{printf("3 is in the position of %d\n ",j+1);

break;}

}

if(j==10) printf("not found!\n ");

getch();

}4.请编辑调试下列程序,观察其运行结果,理解数组名作为函数参数时的作用。该程序的功能是选出a数组中下标为奇数的并大于10的项并且输出满足条件的个数。

【源程序】

#include

int fun(int a[],int b[])

{

int i,j=0;

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

{ if(i%2==0)continue ;

if(a[i]>10)

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

}

return j;

}

void main()

{

int a[10]={3,15,32,23,11,4,5,9},b[10];

int i,x;

x=fun(a,b) ;

for(i=0;i

printf("%d\t",b[i]);

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

}

实验八

1.请编辑调试下列程序,观察、理解其运行结果,并叙述该程序的功能。

【源程序】

#include

int fun(int a[],int b[])

{

int i,j=0;

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

{ if(i%2==0)continue ;

if(a[i]>10)

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

}

return j;

}

void main()

{

int a[10]={3,15,32,23,11,4,5,9},b[10];

int i=0,x=0;

x=fun(a,b) ;

for(i=0;i

printf("%d\t",b[i]);

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

}

该程序的功能:选出a数组中下标为奇数的并大于10的项并且输出满足条件的个数。

2.以下程序在a数组中查找与x值相同的元素的所在位置。请完善程序。

【源程序】

#include

void main()

{

int a[11] ,x , i;

printf("Enter 10 Integers:\n");

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

scanf("%d",a+i);

printf("Enter x:"); scanf("%d",&x);

a[0]=x;

i=10;

while(x!=a[i]) i--;

if(i>0)

printf("%5d 's position is %4d\n",x,i);

else printf("%d is not found!\n",x);

getch();

}3.下列程序是利用插入排序法将n个数从大到小进行排序,插入排序的算法思想如下:从一个空表开始,将待排序的数一个接一个插入到已排好序的有序表中(空表视为有序),从而得到

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

《C语言通识教育》实训指导书 (第一次) (2学时) 何天成 2016年月日

前言 C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,采用VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C 语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。 本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。共计约14次实训课,其中每一讲内容分1、2两次上课。每个实验内容结构如下: (1)实验学时 (2)实验目的 (2)预习要求 (4)实验内容 (5)实验注意事项 (6)思考题 其中思考题属于扩展应用部分,学生可以根据自己的学习情况选择完成。 在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。一般要求准备好相关代码,实验课中最好以调试和讨论为主。 实验结束后,应及时先以电子版的形式填写实验报告,然后再以A4纸打印。第3次实训课上交前2次实训报告,要求源程序要以标准格式打印实验报告上都必须粘贴上每个程序的运行结果截图,并在每个程序的输出截图中添加上自己的姓名/学号/专业等信息,以表示程序执行结果确是自己调试,而不是copy 别人的运行结果。通报告具体内容可根据实验内容和实验要求进行增删。实验报告一般要求包含:(1)实验题目 (2)设计思路或算法分析 (3)流程图 (4)程序源代码 (5)程序运行结果及分析

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

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语言作业

提交作业规范: (1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“) (2)上传到文件夹:偶春生\班级。千万别传错。 注意: (1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。(2)如果不能联网,请改网关地址:252或253 (3)开机进入“basis” 第一次上机题目: (1)从键盘上输入四个整数,计算并输出四个数的平均值。 (2)输入球的半径,计算并输出球的体积和表面积。 (3)输入一个三位正整数,分别输出该数的个位、十位和百位。(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12) (4)请测试++、--、关系和逻辑运算符。 第二次上机题目: (1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。 (2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。”,如果是小写字符,请输出:“您输入的是小写字符。”, (3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。) (5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。 第三次上机题目: (1)输入十个数,分别计算出其中正数、负数的和。 (2)输出1—100内能被3整除或个位数是3的数。 (3)打印出大写英文字母,每行最多输出十个。 (4)输入十个数,求出其中的最小值。 (5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n! (n取10) 第四次上机题目: (1)输出100—1000之间的质数。 (2)任意输入一个数,输出这个数的所有因子。(如输入12,输出1,2,3,4,6,12) (3)输出1-100间的同构数,所谓同构数是指一个数出现在这个数平方的右侧(如6和25均为同构数)。 (4)求x2+y2=2009的整数解。(提示,x,y的范围在[1,45]之间,用双重循环枚举求解)(5)用嵌套循环打印如下图形:

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): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

国家开放大学C语言程序设计A第一次形考任务及答案

一、选择题(共40分,每小题2分) 题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。 A. main B. MAIN C. name D. function 题目2 C语言源程序文件的缺省扩展名为()。 A. cpp B. exe C. obj D. c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 A. cpp B. exe C. obj D. c 题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号

D. 空格或回车 题目5 每个C语言程序文件的编译错误被分为()。 A. 1类 B. 2类 C. 3类 D. 4类 题目6 不符合C语言规定的复合语句是()。 A. {} B. {;} C. {x=0;} D. {y=10} 题目7 C语言程序中的基本功能模块为()。 A. 表达式 B. 标识符 C. 语句 D. 函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。 A. 表达式 B. 语句 C. 参数表

D. 函数体 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。 A. 尖括号 B. 双引号 C. 单引号 D. 花括号 题目10 在C语言程序中,多行注释语句使用的开始标记符为()。 A. // B. /* C. */ D. ** 题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。 A. char B. int C. float D. double 题目12 在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。

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语言作业2

期待的输出时间限制内存限制#include main() { int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z; scanf("%1d",&a); scanf("%1d%1d%1d%1d%1d",&b,&c,&q,&e,&f); scanf("%1d%1d%1d%1d%1d",&g,&h,&i,&j,&k); x=a+c+e+g+i+k; y=b+q+f+h+j;

n=m-1; z=n%10; p=9-z; printf("%d\n",p); } H2:数制转换(选作) 成绩: 5 / 折扣: 0.8 我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。 这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如12 和 5 ,在十进制下它们是不等的,但若12 使用 3 进制而5 使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,12 和5 就可以是相等的。 程序的输入是两个数字M 和N( 其十进制的值不超过1000000000) ,它们的进制在2~36 之间。对于十以下的数字,用0~9 表示,而十以上的数字,则使用大写的A~Z 表示。 求出分别在2~36 哪种进制下M 和N 相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。 测试输入期待的输出 制 #include"string.h" #include"stdio.h"

{ char a[N],b[N],d[N],e[N],d0[N]; int i,j,o,r,g,h,w,t,l,k,max1,max2; double p[N],q[N]={0},u[N],v[N]={0},c[N],f[N],m,n; for(i=0;i='\x30') c[i]=b[i]-'0'; if(b[i]<='\x5A'&&b[i]>='\x41') c[i]=b[i]-'7'; } for(i=0;i='\x30') f[i]=e[i]-'0'; if(e[i]<='\x5A'&&e[i]>='\x41') f[i]=e[i]-'7'; } max1=c[0]; for(i=1;i

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 完成 满分1.00 标记题目 题干 选出正确的输入格式()。 int a; float b; char c; scanf("a = %d,b = %f,c = %c”,&a ,&b ,&c );选择一项: a. 1 2.0 n b. 1,2.0,n c. a = 1,b = 2.0,c = n d. 12.0n 题目2 完成 满分1.00 标记题目 题干 C语言编译程序的首要工作是()。选择一项: a. 检查C语言程序的语法错误 b. 生成目标文件

c. 检查C语言程序的逻辑错误 d. 检查程序的完整性 题目3 完成 满分1.00 标记题目 题干 假设变量a,b均为整型,则表达式 (a=2, b=5, b++, a+b) 的值是()。选择一项: a. 7 b. 6 c. 2 d. 8 题目4 完成 满分1.00 标记题目 题干 C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的()。选择一项: a. 兼容性 b. 适应性

c. 移植性 d. 操作性 题目5 完成 满分1.00 标记题目 题干 C语言规定,在一个源程序中,main函数的位置()。选择一项: a. 必须在系统调用的库函数的后面 b. 必须在最开始 c. 必须在最后 d. 可以任意 题目6 完成 满分1.00 标记题目 题干 下面正确的字符常量是()。 选择一项: a. ” b. 'W'

c. "c" d. '\\'' 题目7 完成 满分1.00 标记题目 题干 下列说法中正确的是()。 选择一项: a. C语言程序书写时,一个语句可分成几行书写 b. C语言程序书写时,一行只能写一个语句 c. C语言程序书写时每行必须有行号 d. C语言程序书写时,不区分大小写字母 题目8 完成 满分1.00 标记题目 题干 若变量a、i已正确定义,且i已正确赋值,则合法的语句是()。选择一项: a. ++i; b. a=a++=5;

大连理工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语言上机考试题

1.有以下程序 #include void main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2); } 执行后输出的结果是___D___。 A.2 B.编译时有错,无结果 C.4 D.3 2.设x为int型变量,则执行以下语句后,x的值为:int x = 10; x*=x/=-x; printf("%d\n", --x); --D--- A.10 B.1 C.-10 D.0 3.下面程序的输出是_C___。 main() { int x,i; for(i=1;i<=100;i++)

{ x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%d ",x); } } A.39 81 B.42 84 C.28 70 D.26 68 4.在C语言中,合法的字符常量是---B---- A."a" B.'\t' C.97 D.a 5.已知int x=12,y=3;执行下述程序后,变量x的值是_D___。do { x/=y--; }while(x>y); printf("%d\n",x);} A.2 B.1 C.3 D.程序运行有错误 6.有以下程序 #include void main() { int m=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是__C____。

C语言作业2

H1:计算通用产品代码(UPC)的校验位(选作) 许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码。这种被称为通用产品代码(Universal Product Code,缩写UPC)的条码可以识别生产商和产品。超市可以通过扫描产品上的条码来确定支付此项商品的费用。每一个条码由十二位数字构成,通常这些数字会显示在条码下面。例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:0 24600 01003 0 第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)。接下来的一组五位数字用来识别生产商。而第二组五位数字则用来区分产品类型(其中包括包装尺寸)。最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误。如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码。 下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。然后把第二位、第四位、第六位、第八位和第十位数字相加。接着把第一次加法结果乘以3后再加上第二次加法的结果。随后,再把上述结果减去1。减法后的结果除以10取余数。最后,用9减去上一步骤中得到的余数。现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9。把第一组加法值乘以3后再加上第二组加法值得到的结果是30。再减去1,结果变为29。再把这个值除以10取余数为9。9在减去余数结果9,最终值为0 输入 每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。 输出 UPC的校验位 页脚内容1

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语言第一次作业

1.运行如下程序,并改正错误。 /*Hello,World!的变形程序*/ #include int main( ) { printf("________________\n| Hello, |\n| World! |\n(\\(\\ /\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n(^?^)/\no_(\")(\")\n ");\\这里连成一排的 return 0; } 结果如下 2.用printf函数输出如下字符串:"abc\t123\r456\nabc\b123\\45",并分析输出结果。 " 解释: \t代表水平制表,每8个字符为一个输出区,所以首先是abc 123 \r代表将光标放回到行首,打出456将刚才的abc覆盖,现在是456 123 \n是换行 \b是退格,所以打出第二排的abc后退格成ab再打印成ab123, \\即代表\, 所以结果如上图。 3.将2147483648,(short)32768,-1用printf函数输出为十进制、八进制和十六进制形式, 并分析输出结果。 由于2147483648是2^31,所以转换为二进制是100000……0000(31个0),对于32bit的电

脑,ing最大是2^31-1,所以2^31好像是被认为成了最小值了,即-2^31 然后,又二进制转化为8进制,3位3位的变,转16进制则4位4位的变,结果如下 对于(short)32668,还是先转换为二进制111 111 110 011 100,转化为8进制是77634,111 1111 1001 1100转化为16进制是7f9c,结果如下 对于-1,转化为二进制是2^31-1,即为11111……11111(32个1),转化为8进制时,\o代表的是无符号的8进制数,32%3=2,所以第一位是3,后面是7,结果是37777777777, 由于32%4=0,所以是8个f,结果如下图 4.写程序把一个4位整数(比如qbsg)转换成另一个形式(sqgb)。 #include int main(int argc, char *argv[]) { int a,q,b,s,g,px ; printf("请输入一个正的4位数"); scanf("%d",&a); q=a/1000; b=(a-q*1000)/100; s=(a-q*1000-b*100)/10; g=(a-q*1000-b*100-s*10); px=1000*s+100*q+10*g+b; printf("转换结果是:%d",px);

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

相关主题