C语言实验一到实验八答案

更新时间:2023-12-25 07:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一:

1、录入如下C源程序: main( )

{ printf(\ printf(\; } main()

{printf(\printf(\}

2、编写一个C程序,第一行显示你的名字,第二行显示你所在的街道地址,第三行显示你所在的城市和邮政编码。 #include int main()

{ printf(\

printf(\ printf(\ return 0; }

3、编写一个C程序,输出以下信息: **************************** Hello,World!

**************************** #include main() {

printf(\printf(\ Hello, World!\\n\

printf(\}

4、编程序,输出如下图形: * * ** ** *** *** ********

#include main() {

printf(\printf(\printf(\printf(\}

5、遵循良好的编程习惯重新编写下列程序 #include int main( ){ printf (

“The time has come” ); }

#include int main()

{printf(\}

6、输入以下程序,查找错误并改正,输出正确的运算结果 #include void main() {int a,b

a=123;b=456; sum=a+b

print(sum is %d\\n,sum); }

#include void main() {int a,b,sum; a=123;b=456; sum=a+b;

printf(\}

7、编写一个C程序,显示表达式3.0*5.0,7.1*8.3-2.2和3.2/(6.1*5)的结果。 #include int main() {

printf ( \

printf ( \ printf ( \ return 0; }

实验二:

1、编写程序,在程序中定义a=5,b=7,c=71,x=31.19,y=-31.2 实现下面的输出格式和结果(U表示空格):

a=U5,b=U7,a-b=-2,c=U71%

x=31.19,y=U-31.2,z =-31.2U,k=31.1900 #include main()

{int a=5,b=7,c=71;

float x=31.19,y=-31.2,z,k;

printf(\ printf(\}

2、编写程序,显示下面的提示: Enter the length of the room: Enter the width of the room:

在显示每个提示后,你的程序应该使用scanf()函数调用为所显示的提示接受来自键盘的数据。在输入长度和宽度后,程序应该计算和显示面积,要求结果只保留两位小数。 #include main()

{float l,w,a;

printf(\ scanf(\

printf(\ scanf(\ a=l*w;

printf(\}

3、编写程序,将小写字母转换成大写字母。要求通过scanf()函数接受来自键盘的字母。(ASCII码中小写字母比它相应的大写字母ASCII码大32) #include main() {

char c;

scanf(\c=c-32;

printf(\}

#include main() {char c,C;

printf(\ scanf(\ C=c-32;

printf(\}

4、编写一个程序,计算和显示一年中分钟的数量。 #include main() {

long int a,b,c,sum; a=60;b=24;c=365;; sum=a*b*c;

printf(\}

5编写一个程序,首先显示下面的提示:

Enter the temperature in degrees Fahrenheit:

程序接收一个从键盘输入的数值并用公式

Celsius=(5.0/9.0)*(Fahrenheit-32.0)把输入的华氏温度转化为摄氏温度值,并输出摄氏温度值,要求结果只保留三位小数。 #include main() {float f,c;

printf(\ scanf(\

printf(\}

6、编写一个程序,使用%d转换控制序列符分别显示小写字母a,m,n的十进制整数值。 #include main()

{ printf(\}

实验三:

1、编写一个程序,要求用户输入两个数字。在程序使用一个或多个scanf()函数调用接收这些数字之后,用程序检查这些数字。如果第一个键入的数字大于第二个数字则输出消息“The first number is greater than the second”,否则输出消息“The first number is not greater than the second”. #include main() {

int x,y;

scanf(\

if (x>y) printf(\else printf(\}

2、输入3个数a,b,c,要求按由小到大的顺序输出。 #include main() {

int a,b,c,x;

scanf(\if(a>b) {x=a;a=b;b=x;} if(a>c) {x=a;a=c;c=x;} if(b>c) {x=b;b=c;c=x;}

printf(\ %d %d\\n\}

3、编写一个程序,用scanf()函数接收一个字符并确定这个字符是否是一个小写字母。如果输入的字符是一个小写字母,显示消息“The character just entered is a lowercase letter”,如果输入的字符不是一个小写字母,显示消息“The character just entered is not a lowercase letter”。 #include main() {

char c;

scanf(\if (c>='a'&&c<='z')

printf(\

else printf(\}

4、有一个函数 X (X<1) y= 2X-1 (1≤X<10) 3X-11 (X≥10) 要求输入x值,输出y值。 #include main() {

int x,y;

scanf(\

if(x<1) {y=x; printf(\ %d\\n\

else if(x<10) {y=2*x-1; printf(\ %d\\n\ else {y=3*x-11; printf(\ %d\\n\}

5、输入百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’, 60-69分为’D’,60分以下为’E’ #include main() {float s; char g;

scanf(“%f”,&s); while(s>100||s<0) {printf(“\\nPlease\\n”); scanf(“%f”,&s) }

switch((int)(s/10)) {case 10:

case 9:g=’A’;break; case 8:g=’B’;break; case 7:g=’C’;break; case 6:g=’D’;break; case 5: case 4: case 3: case 2: case 1:

case 0: g=’E’; }

printf(“%c”,g); }

实验四:

1、编写程序用while循环实现以2为增量输出数字2到10。程序输出应该是: 2 4 6 8 10 #include main() {int i=2; printf(\ while(i<=10) {printf(\ i=i+2; } }

2、求(用while语句编程)5050 #include main() {

int n=1,sum=0; while(n<=100)

{sum=sum+n;n=n+1;} printf(\}

3、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是“水仙花数”,因为153=13+53+33。153,370,371,407 #include main() {

int n,x,y,z; printf(\

for(n=100;n<1000;n++) {x=n/100;

y=(n/10)-(n/100)*10;或 y=n0/10; z=n;

if(n==x*x*x+y*y*y+z*z*z) printf(\ \ }

printf(\}

4、选择和显示可被3除尽的前20个整数 #include main()

{int n,x,y; printf(\

for(n=0,x=0;n<20;x++)

{if(x%3==0) {printf(\ }

printf(\}

5、把100-200之间的不能被3整除的数输出 #include main() {int n;

printf(\

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

{if(n%3!=0) printf(\printf(\}

实验五:

1、编写一个名为Ads()的函数,接收传递给它的一个单精度数,计算它的绝对值且显示这个绝对值。

#include float Ads(float x) {float y;

if (x>=0) y=x; else y=-x; return(y); }

main() {float x,y;

scanf(\y=Ads(x);

printf(\ %f\\n\}

2、写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。 #include abc(int); main() {int x,y;

scanf(\ printf(\ abc(x); }

abc(int a) {int i,j;

for(i=2,j=1;i

{if(a%i==0) {j=0;break;}} if(j==1) printf(\ else printf(\

}

3、编写一个函数。计算一个圆的面积a,已知它的周长为c。这个函数应该调用另一个返回这个给定周长c的圆半径r的函数。相关公式为:r=c/2∏和a=∏r2 #include #define PI 3.14 float radius(float l) {float rad; rad=l/(2*PI); return rad; }

float area(float c) {float a,r; r=radius(c); a=PI*r*r; return(a); }

main() {float c,r,a; printf(\ scanf(\ a=area(c);

printf(\}

4、编写一个名为whole()的函数,返回传递给这个函数的整数部分。 #include int inty(float y) {int n; n=y; return(n); }

main() {int x; float y;

scanf(\ x=inty(y);

printf(\}

5、xn的数值能够递归的定义为:

X0=1 Xn=X*Xn-1 编写一个递归函数,返回xn的值 #include int power(int x,int n) {int y;

if (n==0) return 1;

else y=x*power(x,n-1);

return(y); }

main() {int x,n,s;

scanf(\ s=power(x,n); printf(\}

实验六:

1、编写一个程序,输入5个整数数字到一个一维数组中,所有数字输入后,显示输入的这些数字,并且显示数组的平均值,最大值,最小值。 #include main()

{float sum=0,x; int a[5],i,max,min; for(i=0;i<5;i++)

scanf(\printf(\max=min=a[0]; for(i=0;i<5;i++)

{printf(\ sum=sum+a[i];

if(a[i]>max) max=a[i]; if(a[i]

printf(\ max=%d min=%d\\n\}

2、输入一串字符,计算其中空格的个数 #include main() {int i,j; char a[50]; gets(a);

for(i=0,j=0;i

3、求一个3*3 矩阵对角线元素之和 #include main()

{int i,j,a[3][3],sum=0; for(i=0;i<3;i++)

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

scanf(\ }

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

{sum=sum+a[i][i];} printf(\}

4、有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。 #include main()

{int i,j,a[3][4],max,x,y; for(i=0;i<3;i++) {for(j=0;j<4;j++)

scanf(\ }

max=a[0][0]; for(i=0;i<3;i++) {for(j=0;j<4;j++) if(a[i][j]>max)

{max=a[i][j];x=i;y=j;} }

printf(\}

5、将一个一维数组中的值按逆序重新存放。 #include main()

{int a[10],i,x; for(i=0;i<10;i++)

{scanf(\ }

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

{x=a[i];a[i]=a[9-i];a[9-i]=x;} printf(\

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

printf(\ \printf(\}

6、一篇文章,共有3行文字,每行有20个字符,要求分别统计出其中英文大写字母,小写字母,数字,空格以及其它字符的个数。 #include main()

{int i,j,x,y,s,k,q; char a[3][20];

x=0;y=0;s=0;k=0;q=0; gets(a);

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

for(j=0;j<20 && a[i][j]!='\\0';j++)

if(a[i][j]>='A' && a[i][j]<='Z') x=x+1; else if(a[i][j]>='a' && a[i][j]<='z') y=y+1; else if(a[i][j]>='0'&& a[i][j]<='9') s=s+1; else if(a[i][j]==' ') k=k+1; else q=q+1; }

printf(\}

实验七:

1、输入3个整数,按由大到小的顺序输出。

#include max(int *x,int *y) {int m;

m=*x;*x=*y;*y=m; }

main()

{int a,b,c,*p,*q,*r; printf(\

scanf(\ p=&a; q=&b; r=&c;

if(a

printf(\ %d, %d\\n\}

2、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长

度。

#include main() {int n,m=0; char a[50],*p; scanf(\p=a;

printf(\

for(n=0;n<50;n++,p++)

{if(*p!='\\0') {printf(\ else break; }

printf(\

}

3、将n个数按输入时顺序的逆序排列,用函数实现。 #include reverse(int *p) {int n,x,*p1,*p2; for(n=0;n<2;n++) { p1=p+n; p2=p+4-n;

x=*p1;*p1=*p2;*p2=x; } }

main() {int n,a[5]; printf(\

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

scanf(\ reverse(a); printf(\

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

printf(\ \}

4、编写一个程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出

“March”,要求用指针数组处理。

#include main() {int n; char

*p,*month[13]={\ptember\printf(\scanf(\

if((n>=1)&&(n<=12))

printf(\else printf(\}

5、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数

对换。写3个函数:①输入10个数;②进行处理;③输出10个数。

#include input(int *p) {int n;

for(n=0;n<10;n++,p++) scanf(\}

max_min(int *p)

{int *q,*max,*min,x,n; q=p;

max=min=p;p++; for(n=1;n<10;n++)

{if(*max<*p) max=p; if(*min>*p) min=p; p++; } p--;

x=*p;*p=*max;*max=x; x=*q;*q=*min;*min=x; }

out(int x[]) {int n;

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

printf(\ \}

main() {int a[10]; input(a); printf(\ out(a);

printf(\ max_min(a); printf(\ out(a);

printf(\}

实验八:

1、输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 #include main()

{char string[81];

int i,num=0,word=0; char c;

gets(string);

for(i=0;(c=string[i])!='\\0';i++) if(c==' ') word=0; else if(word==0) {word=1; num++; }

printf(\}

2、编写程序,将两个字符串连接起来,不要用strcat函数。 #include main()

{char s1[80],s2[40];

int i=0,j=0;

printf(\scanf(\

printf(\scanf(\while(s1[i]!='\\0') i++;

while(s2[j]!='\\0')

s1[i++]=s2[j++]; s1[i]='\\0';

printf(\}

3、编写一个程序,接收一个按名和姓的顺序输入的名字,然后按姓和名的方式显示这个名字。例如,如果用户输入Guo Zhong,则输出应该是Zhong Guo。 #define LSIZE 81 #define TRUE 1 #define FALSE 0 int main() { int i = 0; char name[LSIZE], first[LSIZE], last[LSIZE], c; printf(\ gets(name); // get the string splitName(name, first, last); printf(\ printf(\ return 0; }

void splitName(char name[], char first[], char last[]) { int spaceFnd = FALSE; int i = 0, j = 0, start; char c; while((c = name[i++]) != '\\0' && spaceFnd == FALSE) { if(c == ' ') { spaceFnd = TRUE; start = i; } else first[j] = c; j++; } first[j] = '\\0'; j = 0; while((c = name[start++]) != '\\0') { last[j] = c; j++; } last[j] = '\\0'; }

本文来源:https://www.bwwdw.com/article/3fyx.html

Top