C程序设计教程与实验 吉顺如主编 语言实验7报告参考

时间:2019-05-13 21:52:05下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C程序设计教程与实验 吉顺如主编 语言实验7报告参考》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C程序设计教程与实验 吉顺如主编 语言实验7报告参考》。

第一篇:C程序设计教程与实验 吉顺如主编 语言实验7报告参考

C语言实验报告参考:(以下都是改正后的,童鞋们时间忙的话可直接照抄!)仅作参考,欢迎大虾补充完善!....

一、、for(i=0;i

T[2*d]=''

Scanf(“%s”,&s)、#define ARR-SIZE 80;

Inverse(char a);

Str[i]=str[j];

3、int f=1;

二、1、i<=n

S+x[i]

i2—i1+12、#include

String

strTemp[i]

J++;

3、待续。。。

第二篇:C程序设计教程课后习题答案吉顺如版

第1章习题

一、选择题

1、A

2、D

3、C

4、D

5、B

6、C

7、C

8、B

9、B

10、A

二、填空题

1、一,函数体

2、main(主),main(主)

3、编译,目标

4、.c,.obj,.exe

5、缩进,无影响,/* */

三、程序分析题

1、***************** Very good!*****************

2、a=12,b=5 a=17,b=22

3、r= 5.50,s=95.033098

四、编程题

1.用printf()函数在屏幕上输出自己的班级、学号、姓名。#include“stdio.h” void main(){ printf(“班级:BX1109n”);printf(“学号:111003530901n”);printf(“姓名:王孟荣n”);}

2.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。

#include void main(){ int x,y,a,b,c;float d;printf(“Please Input Two Integers:n”);scanf(“%d%d”,&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf(“a=%dnb=%dnc=%dnd=%fn”,a,b,c,d);}

第2章习题

一、选择题 1~5 BCDCD 6~10 DBBCA

二、填空题

1.单精度浮点型、双精度浮点型、字符型 2.0 3.x%10*10+x/10 4.5.5 5.5.7 20 6.sin(sqrt(x*x))/(a*b)7.,8.1111011 173 7B 9.3 3 10.3

三、程序分析题 1. 7,8,10 2. 1,3 3.5 F 4.(int)i=12, 12.50 5. 4 61 57 9 112

四、编程题

1.编写程序,求表达式c=21%9-(float)a+4/b*b的值,假设表达式中a和b的值分别由键盘输入。

#include void main(){ int a,b;float c;printf(“Please input data a,b: ”);scanf(“%d%d”,&a,&b);c=21%9-(float)a+4/b*b;printf(“c=%5.2fn”, c);} 2.编写程序,从键盘输入两个整数存入变量a和b中,求a2-b2的值并输出。#include void main(){ int a,b,c;printf(“Please input data a,b: ”);scanf(“%d%d”,&a,&b);c=a*a-b*b;printf(“c=%dn”, c);}

第3章习题

一、选择题 1 D 2 C 3 A、B A B B B、C B D D

二、填空题

1.有穷性 确定性 可行性 2.# 3.从终端(键盘)输入一个字符 4.m d 5.97,g 6.123.456000, 123.46, 123 7.格式控制符不正确(输入数据时不能控制列宽和小数位数)8.63,63,77,3f 9.%f%f &x,&y 10. ch ch

三、程序分析题 1.c=11 2.a=123 f=457 3.x=345 y=3.460000 4.a=1,b=3 a=3,b=1 5.(题目需修改为:从键盘输入一个除a和z以外的小写字母)

程序的功能:从键盘输入一个除a和z以外的小写字母,求出该字母对应的大写字母的前趋和后继字母,然后顺序输出此三个大写字母,每个字母所占列宽为3。运行结果: 假如输入:f ' 输出: E F G

四、编程题

1.编写程序,计算的值并输出(保留3位小数),其中a、b的值由键盘输入。#include #include void main(){ float a, b,x;scanf(“%f%f”, &a, &b);x=(a*a+b*b)/sqrt(3*(a+b));printf(“x=%.3fn”,x);}

2.编写程序,从键盘输入一个梯形的上底a、下底b和高h,输出梯形的面积s。

#include #include void main(){ float a, b,h,s;scanf(“%f,%f,%f”, &a,&b,&h);s=(a+b)*h/2;printf(“梯形面积s=%.2fn”,s);}

3.编写程序,在屏幕上输入你姓名的第一个字母,显示出该字母以及下面的信息: Hello!This is a c program.My name is [第一个字母]

#include void main(){ char name;name=getchar();putchar(name);printf(“nHello!n”);printf(“This is a c program.n”);printf(“My name is %cn”,name);}

第4章习题

一、选择题 1 B 2 B 3 C B C A C B A C C

二、填空题 1.!&& || 2.1 3.a b 4.1 5.0 6.x%4= =0 && x%100!=0 7.5 6 8.A 9.x<0 || x>10 && x<50 10.-1

三、程序分析题 1. No 2.-2 3.5 3 2 4. #& 5.(1)2(2)3 CC a=2,b=2,c=4

四、编程题

1.有一个函数如下: x2-2(x<5)y= 3x+5(5≤x<50)x-(x≥50)

编写程序,输入x的值,计算相应的y值输出(保留3位小数)。#include #include void main(){ float x,y;scanf(“%f”, &x);if(x<5)y=x*x-2;else if(x<50)y=3*x+5;else y=x-sqrt(4*x-1);printf(“x=%f, y=%.3fn”, x,y);}

2.编写一个程序,根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出它的面积和三角形类型(等边、等腰、直角、一般三角形)。#include #include void main(){ float a, b, c, s, area;scanf(“%f,%f,%f”, &a,&b,&c);if(a+b>c && b+c>a && a+c>b){ s=(a+b+c)/2;area=sqrt(s*(s*(s-a)*(s-b)*(s-c)));printf(“area=%fn”,area);if(a==b && b==c)printf(“等边三角形n”);else if(a==b || a==c || b==c)printf(“等腰三角形n”);else if((a*a + b*b== c*c)||(a*a + c*c== b*b)||(b*b + c*c == a*a))printf(“直角三角形n”);else printf(“一般三角形n”);} else printf(“不能组成三角形n”);}

3.设奖金税率r有如下的要求(n代表奖金): 0 n<1000 5% 1000≤n<2000 r= 8% 2000≤n<3000 10% 3000≤n<6000 15% 6000≤n

用switch多分支选择语句编写程序,输入奖金值,计算并输出相应的税率和实际应得奖金值。

#include void main(){ float n, r, s;int m;printf(“请输入奖金值:”);scanf(“%f”, &n);if(n>=6000)m=6;else m=n/1000;switch(m){ case 0: r=0;break;case 1: r=0.05;break;case 2: r=0.08;break;case 3: case 4: case 5: r=0.1;break;case 6: r=0.15;break;} s=n-r*n;printf(“税率r=%.0f%%, 奖金值n=%.2f, 实际应得奖金值s=%.2fn”,r*100, n, s);}

4.从键盘输入任意4个数a、b、c、d,按照从大到小的顺序排列后重新输出。#include void main(){ int a, b, c, d,t;scanf(“%d,%d,%d,%d”, &a,&b,&c,&d);if(a

5.给出一个不超过4位数的正整数,判断它是几位数,并按逆向输出各位数字。例1234,输出为4321。#include void main(){ int num,i,j,k,m;printf(“输入一个少于4位的正整数:”);scanf(“%d”,&num);if(num>=0 && num<=9999){ if(num>1000 && num<=9999){ printf(“是一个4位数n”);m=num%10;/*求个位上的数字*/ k=num/10%10;/*求十位上的数字*/ j=num/100%10;/*求百位上的数字*/ i=num/1000;/*求千位上的数字*/ printf(“逆序数为:%d%d%d%dn”,m,k,j,i);} else if(num>=100){ printf(“是一个3位数n”);m=num%10;/*求个位上的数字*/ k=num/10%10;/*求十位上的数字*/ j=num/100;/*求百位上的数字*/ printf(“逆序数为:%d%d%dn”,m,k,j);} else if(num>=10){printf(“是一个2位数n”);m=num%10;/*求个位上的数字*/ k=num/10;/*求十位上的数字*/ printf(“逆序数为:%d%dn”,m,k);} else {printf(“是一个1位数n”);printf(“逆序数为:%dn”,num);} } else printf(“是一个无效的数n”);}

第5章习题

一、选择题 1 B 2 C 3 B C A B D B A B

二 填空题

1.循环 switch 2.4,7 3.6 4.# # 5.0 2 6.18 7.1 8.sum=80 9.c=getchar()n:m 10.i %13= =0 break 三 程序分析题 1.output1:21 6 output2: 5 6 output3: 5 7 7 2.n=7 3.Max=18 Min=3 4.1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 5.0 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2

四、编程题

1.从键盘上输入若干字符,以按Enter键结束,统计其中字符A或a的个数。#include “stdio.h” main(){ char ch;int k=0;while((ch=getchar())!='n'){ if(ch=='A' || ch=='a')k=k+1;} printf(“%dn”,k);} 2.利用=×…的前100项之积计算p的值。#include main(){ double term, result = 1;/*累乘项初值应为1*/ int n;for(n=2;n<=100;n = n + 2){ term=(double)(n * n)/((n-1)*(n+1));/*计算累乘项*/ result = result * term;} printf(“result = %fn”, 2*result);} 3.用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚? #include main(){ int x,y,z,count=0;for(x=1;x<=28;x++)for(y=1;y<=73;y++){ z=100-x-y;if(5*x+2*y+z==150){ count++;printf(“%d,%d,%dn”,x,y,z);} } printf(“count=%dn”,count);} 4.鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。#include main(){ int x, y;for(x=1;x<=97;x++){ y=98-x;if(2*x+4*y==386)printf(“鸡=%d,兔=%d”,x,y);} } 5.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。#include main(){ int n,i;printf(“nplease input a number:n”);scanf(“%d”,&n);printf(“%d=”,n);for(i=2;i<=n;i++)while(n!=i){ if(n%i==0){ printf(“%d*”,i);n=n/i;} else break;} printf(“%d”,n);6.从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。例如,输入x为1234,则由1234分离出其千位

1、百位

2、十位

3、个位4,然后计算1+2+3+4=10,并输出10。#include #include main(){ int i1,i2,i3,i4,k,n;printf(“Inputdatais:”);scanf(“%d”,&n);k=fabs(n);/*取绝对值*/ i1=k/1000;/*分离出千位*/ i2=(k-i1*1000)/100;/*分离出百位*/ i3=(k-i1*1000-i2*100)/10;/*分离出十位*/ i4=k%10;/*分离出个位*/ printf(“The sum of the total bit is %dn”,i1+i2+i3+i4);}

7.打印出所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。#include void main(){ int i,j,k,n;printf(“parcissus numbers are:n”);for(n=100;n<1000;n++){ i=n/100;j=n/10-i*10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf(“%dn”,n);} }

8.利用泰勒级数sin(x)≈计算sin(x)的值。要求最后一项的绝对值小于10-5,并统计出此时累加了多少项(x由键盘输入)。#include #include main(){ int n=1,count=1;float x;double sum,term;/*因为位数多,所以定义为双精度 */ printf(“Input x: ”);scanf(“%f”, &x);sum=x;term=x;/*赋初值*/ do { term=-term*x*x/((n+1)*(n+2));sum=sum+term;/*累加 */ n=n+2;count++;}while(fabs(term)>=1e-5);printf(“sin(x)=%.1f,count=%dn”,sum,count);} 9.编写一个猜数游戏:任意设置一个整数,请用户从键盘上输入数据猜想设置的数是什么,告诉用户是猜大了还是小了。10次以内猜对,用户获胜;否则,告诉用户设置的数据是什么。

#include void main(){int num=123,x,n;printf(“hint:0num)printf(“bigger!n”);if(x

10.编程输出以下图案。* *** ***** ******* ***** *** * #include main(){ int i,j;for(i=1;i<=4;i++){ for(j=20-i;j>=1;j--)printf(“%c”,' ');for(j=0;j<2*i-1;j++)printf(“*”);printf(“n”);} for(i=3;i>=1;i--){ for(j=20-i;j>=1;j--)printf(“%c”,' ');for(j=0;j<2*i-1;j++)printf(“*”);printf(“n”);} }

第6章习题

一、选择题 1 D 2 A 3 D B D C B D B D

二 填空题 1.0 2.14 m 3.10 7 4.数据类型

5.strcpy(S2,S1)#include 6.0 3 7.7,6 8.sum=0 i==j a[i][j] 9.4 10.Tony 三 程序分析题 1.max=85 min=5 sum=180 aver=30.00 2.a=2 b=2 c=2 d=2 e=1 f=2 g=2 3.j=45 4.Ti_saCPorm Tss_Pgm 5.1 1 1 5

四、编程题

1.从键盘输入15个整数,存放在数组中,找出其中最小数并指出其所在的位置。#include #define N 15 main(){int min,i,j,a[N];printf(“Enter N integers:n”);for(i=0;ia[i]){ min=a[i];j=i;} printf(“%d,%d”,min,j);}

2.将输入的十进制正整数化为十六进制数。#include main(){ int i,x,j,a[20];printf(“请输入一个正整数:”);while(1){ scanf(“%d”,&x);if(x<0)printf(“数据输入错误,请重新输入一个正整数:”);else break;} i=0;while(x){ a[i]=x%16;x=x/16;i++;} for(j=i-1;j>=0;j--)if(a[j]<=9)printf(“%d”,a[j]);else if(a[j]<=15)printf(“%c”,a[j]+'A'-10);printf(“n”);}

3.从键盘输入一行字符,统计其中有多少单词,假设单词之间以逗号分隔。#include void main(){ char string[81];int i,num=0,word=0;char c;gets(string);for(i=0;(c=string[i])!='';i++)if(c==',')word=0;else if(word==0){ word=1;num++;} printf(“There are %d words in the line.n”,num);}

4.从键盘输入一字符串,放在字符数组a中,将字符数组a中下标值为偶数的元素按从小到大排序。

#include #include void main(){ char a[80],t,m;int i,j,k;printf(“请输入一字符串:”);gets(a);k=strlen(a);for(i=0;i<=k-2;i+=2){ m=i;for(j=i+2;j<=k;j+=2)if(a[m]>a[j])m=j;if(m!=i){t=a[i];a[i]=a[m];a[m]=t;} } puts(a);printf(“n”);}

5.编写程序输出以下杨辉三角形(要求输出10行)。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 … … … … … …

#include #include void main(){ int i,j,a[10][10];for(i=0;i<10;i++){ a[i][0]=a[i][i]=1;for(j=1;j

6.编程将s数组中的字符串的正序和反序进行连接,形成一个新串放在t数组中。例如,当s数组中字符串为“ABCD” 时,则t数组中的内容应为:“ABCDDCBA”。#include #include main(){ char s[100], t[100];int i,d;printf(“Please enter string S:”);scanf(“%s”,s);d=strlen(s);for(i=0;i

7.某公司在传输数据过程中为了安全要对数据进行加密,若传递的是四位的整数,对其进行加密的规则为:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。如:输入数字7659,则加密后的数字为4012 #include main(){ int a,i,aa[4],t;printf(“输入一个需加密的四位数整数:”);scanf(“%d”,&a);aa[0]=a%10;aa[1]=a%100/10;aa[2]=a%1000/100;aa[3]=a/1000;for(i=0;i<=3;i++){aa[i]+=5;aa[i]%=10;} for(i=0;i<=3/2;i++){ t=aa[i];aa[i]=aa[3-i];aa[3-i]=t;} printf(“加密后的数字为:”);for(i=3;i>=0;i--)printf(“%d”,aa[i]);printf(“n”);}

8.编写程序查找数值18在以下二维数组中第一次出现的位置。3 4 5 18 8 12 16 54 43 34 18 7

#include main(){ int i,j,a[3][4]={{3,4,5,18}, {8,12,16,54}, {43,34,18,7}};for(i=0;i<3;i++){ for(j=0;j<4;j++)if(a[i][j]==18)break;if(j<4)break;} printf(“数值18第一次出现的位置在%d行,第%d列n”,i+1,j+1);}

9.设有4行4列的数组a,其元素a[i][j]=3*i+2*j-6。编写程序,实现如下功能:(1)求第二行4元素的累加和;(2)求第四列4元素的平均值;

(3)求主对角线4元素中负数的个数。#include void main(){ int a[4][4],i,j,s=0,m=0;float n=0;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=3*i+2*j-6;printf(“原始数组为:n”);for(i=0;i<4;i++){ for(j=0;j<4;j++)printf(“%3d”,a[i][j]);printf(“n”);} for(j=0;j<4;j++)s+=a[1][j];printf(“第二行4元素累加和为:%dn”,s);for(j=0;j<4;j++)n+=a[j][3];printf(“第四列4元素平均值为:%.2fn”,n/4.0);for(i=0;i<4;i++)if(a[i][i]<0)m++;printf(“主对角线4元素中负数的个数为:%dn”,m);}

10.约瑟夫环问题:编号为1,2,3,...,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。

分析:设整型数组a中保存n个人的密码,对应的人出列后,数组元素置0作为标志。顺时针确定下一个人的方法,可将下标加1,再对n求余。#include #define N 100 main(){ int a[100];int i,j,m,n,k=0;printf(“输入人数n和任选的一个正整数m:”);scanf(“%d%d”,&n,&m);printf(“输入n个人的密码: ”);for(i=0;i

第7章习题

一、选择题 1 A 2 D 3 D B A D C D B A

二 填空题 1.main()2.main()3.函数首部

4.解决函数必须“定义在前,使用在后”的原则问题 5.int 6.定义 调用

7.地址传递 值传递 8.return void 9.void f(float a,float b)float f(float a,float b)10.static 三 程序分析题 1.a=48 2.8,17 3.2721 4.BASIC C COBOL FORTRAN PASCAL Smalltalk 5.6 1 2 3 6 5 4

四、编程题

1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。#include #include void main(){int prime(int);int n;printf(“Input an integer:”);scanf(“%d”,&n);if(prime(n))printf(“n %d is a prime.n”,n);else printf(“n %d is not a prime.n”,n);}

int prime(int n){int flag=1,i;for(i=2;i

2.写一个函数,用于实现函数strcmp()的功能,能将两个字符串进行比较,将两个字符串中第一个不相同字符的ASCII码值之差作为函数的返回值。#include int MyStrcmp(char s[], char t[]);main(){ char str1[20],str2[20];printf(“Input string:”);gets(str1);printf(“Input another string:”);gets(str2);if(MyStrcmp(str1,str2)>0)printf(“str1>str2n”);else if(MyStrcmp(str1,str2)<0)printf(“str1

int MyStrcmp(char s[], char t[]){ int i;for(i=0;s[i]==t[i];i++)if(s[i]=='')return 0;return(s[i]-t[i]);}

3.写一个函数,用于实现函数strcat()的功能, 能将两个字符串连接。#include void main(){void concatenate(char string1[],char string2[],char string[]);char s1[100],s2[100],s[100];printf(“input string1:”);scanf(“%s”,s1);printf(“input string2:”);scanf(“%s”,s2);concatenate(s1,s2,s);printf(“nThe new string is %sn”,s);}

void concatenate(char string1[],char string2[],char string[]){int i,j;for(i=0;string1[i]!='';i++)string[i]=string1[i];for(j=0;string2[j]!='';j++)string[i+j]=string2[j];string[i+j]='';}

4.从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。#include #define ARRSIZE 10 void MaxMinExchang(int a[], int n){ int maxValue=a[0], minValue=a[0], maxPos=0, minPos=0;int i, temp;for(i=1;i maxValue){ maxValue = a[i];maxPos = i;} else if(a[i] < minValue){ minValue = a[i];minPos = i;} } temp = a[maxPos];a[maxPos] = a[minPos];a[minPos] = temp;} main(){ int a[ARRSIZE],i;printf(“Input %d Numbers:n”,ARRSIZE);for(i=0;i

5.写一函数,能对给定的一个二维数组(3×3)进行转置(即行列互换)。#include #define N 3 int array[N][N];void main(){ void convert(int array[][3]);int i,j;printf(“input array:n”);for(i=0;i

void convert(int array[][3]){int i,j,t;for(i=0;i

6.写一函数,能用“起泡法”对输入的10个字符按由小到大顺序排序。#include #include #define N 10 char str[N];void main(){void sort(char str[]);int i,flag;for(flag=1;flag==1;){printf(“input string:n”);scanf(“%s”,str);if(strlen(str)>N)printf(“string too long,input again!”);else flag=0;} sort(str);printf(“string sorted:n”);for(i=0;i

void sort(char str[]){int i,j;char t;for(j=0;jstr[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;} }

7.编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数。

#include int letter,digit,space,others;void main(){void count(char str[]);char text[80];printf(“input string:n”);gets(text);printf(“string:”);puts(text);letter=0;digit=0;space=0;others=0;count(text);printf(“nletter:%dndigit:%dnspace:%dnothers:%dn”,letter,digit,space,others);}

void count(char str[]){int i;for(i=0;str[i]!='';i++)if((str[i]>='a'&& str[i]<='z')||(str[i]>='A' && str[i]<='Z'))letter++;else if(str[i]>='0' && str [i]<='9')digit++;else if(str[i]==32)space++;else others++;}

8.编写程序输出3~10000内的可逆素数。可逆素数是指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。如157和751均为素数,它们是可逆素数。要求调用两个子函数实现。

#include #include #include int invert(int a){ int s=0;while(a>0){ s=10*s+a%10;a/=10;} return s;} int prime(int a){ int i;for(i=2;i<=(int)sqrt(a);i++)if(a%i==0)return 0;return 1;}

main(){ int i;for(i=3;i<10000;i++)if(prime(i))if(prime(invert(i)))printf(“%5d”,i);printf(“n”);}

9.编写一个函数,实现将一个十进制数转换成八进制数。#include #include void main(){ int i,n;char a[33];void trans10_8(char x[],int m);printf(“nInput a positive integer:”);scanf(“%d”,&n);trans10_8(a,n);for(i=strlen(a)-1;i>=0;i--)printf(“%c”,a[i]);printf(“n”);}

void trans10_8(char x[],int m){ int r,i=0;while(m>0){ r=m%8;x[i]=r+48;m=m/8;i++;} x[i]='';}

10.编写一个函数,实现对由实参传来的一个字符串,将其字符顺序颠倒后重新存放。#include #include void main(){void inverse(char str[]);char str[100];printf(“input string:”);scanf(“%s”,str);inverse(str);printf(“inverse string:%sn”,str);}

void inverse(char str[]){char t;int i,j;for(i=0,j=strlen(str);i<(int)(strlen(str)/2);i++,j--){t=str[i];str[i]=str[j-1];str[j-1]=t;} }

第八章编程题答案

1.输入2个字符串,每个字符串的长度均不超过80字符,用自己实现的cmpstr()函数完成这两个字符串的大小比较,cmpstr()函数的功能和字符串比较函数strcmp()的功能相同。#include #include int cmpstr(char *s1, char *s2){ char *p, *q;p=s1;q=s2;while(*p!='' && *q!=''){ if(*p==*q){ p++;q++;} else break;} return *p-*q;}

void main(){ char str1[81], str2[81];int c;printf(“请输入第1个字符串:”);gets(str1);printf(“请输入第2个字符串:”);gets(str2);c=cmpstr(str1,str2);if(c>0)printf(“字符串%s 大于 字符串%sn”,str1,str2);else if(c<0)printf(“字符串%s 小于 字符串%sn”,str1,str2);else printf(“字符串%s 等于 字符串%sn”, str1, str2);} 3.定义一个函数delSubstr(),删除字符串中第k个字符开始的m个字符,例如删除字符串abcde第2个字符开始的3个字符,则删除后结果为ae;又如删除字符串abcde第4个字符开始的5个字符,则删除后结果为abc。#include #include int delSubstr(char *str, int k, int m){ char *p, *q;if(k<=0||m<=0)return-1;else if(k>strlen(str))return-2;else if(k+m>strlen(str)){ str[k-1]='';return 1;} else { p=str+k-1;q=str+k+m-1;while(*q!='')*p++=*q++;*p='';return 1;} }

void main(){ char str[81];int k, m, state;printf(“请输入字符串:n”);gets(str);printf(“请输入要删除的子串起始字符的序号和子串长度:n”);scanf(“%d%d”, &k, &m);state = delSubstr(str, k, m);if(state<0)printf(“要删除子串起始字符的序号或子串长度输入错误!n”);else printf(“删除指定子串后的字符串为:%sn”, str);} 4.定义一个函数delSpechar(),使用字符指针删除字符串中的所有指定字符(如把字符串“I love you!”中的o字符删除,得到“I lve yu!”)。#include #include void delSpechar(char *str, char ch){ char *p, *q;p=str;while(*p!=''){ if(*p==ch){ q=p;while(*q!=''){ *q=*(q+1);q++;} } else p++;} }

void main(){ char str[81], ch;printf(“请输入一个字符串:”);gets(str);printf(“请输入要从字符串中删除的字符:”);ch = getchar();delSpechar(str, ch);printf(“删除所有指定字符后的字符串为:%sn”, str);} 5.求整型二维数组a[M][N]中的最大元素值及最大元素的位置(用指针法引用数组元素)。#include #define M 3 #define N 4 void max(int(*pa)[N], int *pRow, int *pCol){ int i, j;for(i=0;ipa[*pRow][*pCol]){ *pRow = i;*pCol = j;} }

void main(){ int a[M][N]={{4,2,7,9},{1,3,13,0},{-5,6,-11,10}};int row=0, col=0;max(a, &row, &col);printf(“二维数组中的最大元素值为a[%d][%d]=%dn”, row, col, a[row][col]);} 6.已知字符串str[80],编写函数lstrchar(),实现在数组str中查找字符ch首次出现的位置,如果字符串中找不到该字符,则返回-1。#include #include int lstrchar(char *str1, char ch1){ char *p,i=1;p=str1;while(*p!=''){ if(*p==ch1)break;else { p++;i++;} } if(*p=='')return-1;else return i;}

void main(){ char ch,str[80];int poi;printf(“请输入字符串:”);gets(str);printf(“请输入待查找的字符:”);scanf(“%c”,&ch);poi=lstrchar(str,ch);if(poi==-1)printf(“字符串中不存在指定字符!n”);else printf(“该字符在字符串中出现的第一个位置为%dn”, poi);} 7.定义一个整型二维数组并初始化,编程求该数组所有元素的和。要求:分别用数组下标法、一级指针法、二级指针法实现。/*数组下标法*/ #include #define M 3 #define N 4 int sum(int b[M][N]){ int i, j, s=0;for(i=0;i

void main(){ int a[M][N]={{4,2,7,9},{1,3,13,0},{-5,6,-11,10}};printf(“二维数组中的所有元素之和为%dn”, sum(a));}

/*一级指针法*/ #include #define M 3 #define N 4 int sum(int *pa){ int i,s=0;for(i=0;i

/*二级指针法*/ #include #define M 3 #define N 4 int sum(int(*pa)[N]){ int i,j,s=0;for(i=0;i

return s;} void main(){ int a[M][N]={{4,2,7,9},{1,3,13,0},{-5,6,-11,10}};printf(“二维数组中的所有元素之和为%dn”, sum(a));} 8.输入一行数字字符存入字符数组str[80]中,用num[10]中的数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符“0”的个数,用下标为1的元素统计字符“1”出现的次数,„„。输出每个奇数字符出现的次数。#include void count(char *str, int num[]){ int i=0;while(str[i]!=''){ switch(str[i]){ case '0': num[0]++;break;case '1': num[1]++;break;case '2': num[2]++;break;case '3': num[3]++;break;case '4': num[4]++;break;case '5': num[5]++;break;case '6': num[6]++;break;case '7': num[7]++;break;case '8': num[8]++;break;case '9': num[9]++;break;} i++;} } void main(){ char str[80],*p=str;int num[10]={0}, i;printf(“请输入一行数字字符:”);gets(p);count(p,num);for(i=1;i<10;i+=2)printf(“数字串中%d出现的次数为%dn”,i,num[i]);} 9.在主函数中输入10个不等长字符串,用另一函数sort()对它们排序,然后在主函数中输出已排好序的字符串。要求:每个字符串长度均不超过30字符,用指针数组进行处理。#include #include #define M 10 #define N 31 void sort(char *pstr[]){ int i,j;char *t;for(i=0;i0){ t = pstr[j];pstr[j] = pstr[j+1];pstr[j+1] = t;} } } void main(){ char str[M][N], *pstr[M]={NULL};int i;printf(“请输入10个字符串,每个字符串均不超过30个字符:n”);for(i=0;i #include void main(){ char ch[1000],*p=ch;int a[50],*q=a,num=0,i;gets(ch);for(;*p!='';p++)if(*p>='0' && *p<='9'){ *q=(*p)-'0';p++;while(*p>='0' && *p<='9')*q=(*q)*10+(*(p++)-'0');num+=1;q+=1;} for(i=0,q=a;i

第三篇:C语言程序设计实验指导及报告

太原理工大学现代科技学院

C语言程序设计课程 实验报告

专业班级

指导教师

C语言程序设计 实验指导及报告

实验说明:

1、共4次实验,每次实验完成1个内容。

2、实验报告命名统一为:C语言_专业班级_学号_姓名

3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。

实验一

C语言开发工具VC6.0和顺序结构程序设计

1、实验目的:熟练掌握VC6.0开发工具进行程序设计及调试,能编写简单的C程序并完成调试。

2、实验内容1:结合课堂讲授学习VC6.0开发工具及调试方法。

单文件编辑运行方法:

打开VC++6.0,如图1所示

(图1)

选择“文件”→“新建”,打开如图2所示

(图2)

选择“文件”项,如图3所示

(图3)

选择“C++ Source File”项,并在“文件名”项目下输入“sum.c”如图4所示

(图4)

单击“确定”,打开如图5所示

(图5)

输入如上源代码,如图6所示

(图6)

选择“组建”→“编译”(或按Ctrl+F7组合键),打开如图7所示

(图7)

在下端的输出窗口会有错误和警告的提示,如果没有错误选择“组建”→“执行”(或按Ctrl+F5组合键)即可出现运行结果,如图8所示

(图8)

程序调试常用方法:

检查错误:

用鼠标单击调试信息窗口中右侧的向上箭头,可以看到出错的位置和性质, 进行改错时, 双击调试信息窗口中的报错行, 这时在程序窗口中出现一个粗箭头指向被报错的程序行,一般在箭头的当前行或上一行,可以找到出错语句。

修改错误后必须重新进行编译链接。从第一个错误开始修改,每修改一个错误就重新进行编译链接。

设置断点、单步跟踪、查看变量等,详细使用方法见下:

按快捷键F5或点击以下图片上标记的图标进入调试模式。

打开调试工具条,一般情况下当你按F5键后会自动弹出,如果没有弹出的话,右击工具栏空白处,会弹出下图,选中调试,就会出现调试工具条。

接下来,在监视窗口中添加你要监视数据变化的变量。

按F11逐语句的调试代码,如果某一语句是一函数,你不希望进入该函数时,F10逐过程来查看,在代码的调试过程中,通过监视窗口查看变量值的变化,从而确定代码是否有问题。

如果希望跳出某一函数时,按快捷键Shift+F11,或者直接点击调试工具条上的按钮就可以跳出该函数了。

如果只是希望调试某一部分代码的话,可以设置断点来调试,调试方法如上,只是在要调试的代码之间用断点来分开。设置断点时,光标放在你要设置断点的那行,按F9或点击编译微型条上面的类似手状的按钮即可。

3、实验内容2:以下程序有错误,请调试改正错误,使之能正常运行。

程序:

/* 登陆密码三次验证程序*/ #include void mian(void){ int nPwd=0;

/* 用于保存输入的密码*/ int i;

/*循环控制变量*/ int nFlag=1

/*密码匹配成功的标志*/

for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)

{ /* 默认设定密码为87569,可以根据需要进行设定*/

printf(“please input the password:”);

scanf(“%d”,&nPwd);}

if(nFlag=0)

printf(“the password is right!n”);

else

printf(“over the times and the password you input is error!n ”);}

修改程序及运行结果:#include void main(void){ int nPwd=0;

/* 用于保存输入的密码*/ int i;

/*循环控制变量*/ int nFlag=1;

/*密码匹配成功的标志*/

for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)

{ /* 默认设定密码为87569,可以根据需要进行设定*/

printf(“please input the password:”);

scanf(“%d”,&nPwd);}

if(nFlag=0)

printf(“the password is right!n”);else

printf(“over the times and the password you input is error!n ”);}

4、实验内容3:习题第三章第1题:假如国民生产总值的年增长率为9%,计算10年后国民生产总值与现在相比增长多少百分比,计算公式为

p(1r)n

r为年增长率,n为年数,p为与现在相比的倍数。源程序及运行

5、实验总结

实验二

选择结构和循环结构

1、实验目的:理解和掌握选择结构和循环结构的语法知识,理解自顶向下、逐步细化的结构化程序设计思想,并能熟练应用。

2、实验内容1:习题第四章第4题:有3个整数a,b,c,由键盘输入,输出其中最大的数。源程序及运行结果:

3、实验内容2:习题第五章第8题:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各数字立方和等于该数本身。如:153是一个水仙花数153=13+53+33。源程序及运行结果

4、附加内容(非必做,供学有余力的同学):习题第五章第17题:两个乒乓球队进行比赛,各出3人,甲队为A,B,C,乙队为X,Y,Z。已抽签决定比赛名单,有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程找出比赛名单。源程序及运行结果:

5、实验总结

实验三

数组和函数

1、实验目的:理解和掌握数组和函数的语法知识,理解模块化编程思想,并能熟练应用。

2、实验内容1:习题第六章第3题:求一个3  3的整型矩阵对角线元素之和。源程序及运行结果:

3、实验内容2:习题第七章第3题:写一个判断素数的函数,在主函数中输入一个整数,输出是否为素数的信息。源程序及运行结果:

4、附加内容(非必做,供学有余力的同学):习题第六章第2题:用选择法对10个整数排序。

源程序及运行结果:

5、实验总结

实验四

指针和结构体

1、实验目的:理解和掌握指针和结构体的语法知识,并能熟练应用。

2、实验内容1:习题第八章第1题:输入3个整数,按由小到大的顺序输出。源程序及运行结果:

3、实验内容2:习题第九章第5题:有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生的数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)。源程序及运行#include #include #define SIZE 10

struct student{ char id[20];char name[20];int score[3];float average;} stud[SIZE];

void input()/* 输入学生的信息 */ { int i;

for(i=0;i

{

printf(“第%d个学生的信息:n”,i+1);scanf(“%s%s%d%d%d”,stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;} }

void output()/* 输出学生的信息 */ { int i;

printf(“n”);for(i=0;i

void sortput()/* 排序输出最高分的学生信息 */ { int i,j;struct student temp;

for(i=0;i

void main(){ input();

output();sortput();} 结果:

4、附加内容(非必做,供学有余力的同学):习题第八章第6题:写一个函数,求一个字符串的长度,在主函数中输入字符串,并输出长度。源程序及运行结果:

5、实验总结

第四篇:C语言程序设计实验四(本站推荐)

C语言程序设计实验

(四)[实验1] scanf()、printf()函数的使用。

1.实验题目

输入1个学生学号和4门课程成绩,输出这个学生的学号、4门课程成绩和平均成绩。

2.实验要求

(1)按表格的形式输出,以行内输出一个学生的信息。

(2)学号用长整型,各科成绩用单精度型。

3.实验目标

(1)掌握实现人机对话形式的方法,scanf()输入。

(2)体会根据需要控制输出格式的方法,printf()输出。

4.实验指导

利用格式的数据宽度控制数据的对位输出。输出如下格式:

The number and score of a student is:

|---|

|number | score1 | score2 | score3 | sco re4 | average |

|---|

|10011| 67.5|88.0 |93.5 |78.0|81.75 |

|---|

[实验2] getchar()、putchar()函数的使用

1.实验题目

用getchar()函数读入a~v之间的一个字母,用putchar()函数输出一个5行5列的矩阵,该矩阵第一行为读入的字母,下一行为紧跟该字母后的字母,依此类推。如输入a,则输出的矩阵为:

aaaaa

bbbbb

ccccc

ddddd

eeeee

2.实验要求

(1)运用getchar()进行字符输入。

(2)运用putchar()进行字符输出。

3.实验目标

(1)体会根据需要控制输出格式的方法。

[实验3] 3.6 下面程序运行时在键盘上如何输入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,请写出对应每个scanf函数的输入情况。

main()

{ int a,b;float x,y;char c1,c2;

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

scanf(“□%f %e”,&x,&y);

scanf(“□%c %c”,&c1,&c2);

}

3.7编一程序,从键盘输入一个圆半径值,求圆周长、圆面积、圆球表面积、圆球体积。输出结果时,要求有文字说明,保留2位小数。

提示:设圆半径为r,则圆周长=2πr,圆面积=πr2,圆球表面积=4πr2,圆球体积= 4πr3/3。

第五篇:C语言程序设计实验安排

C语言实验指导

实验一 顺序结构程序设计(2学时)

一、实验目的熟悉在VC运行环境下,编辑调试C语言程序的一般步骤。掌握顺序结构程序设计的基本思想和基本方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴ 程序功能描述。

⑵ 程序版本号、创作日期。

⑶ 作者信息描述:班级、学号、姓名。

⑷ 问题分析描述。

⑸ 算法设计描述。

⑹ 关键语句注释说明。

⑺ 调试运行过程中出现的错误及改正方法。

⑻ 输入数据样例。

⑼ 输出数据样例。

三、实验内容

以下两题,任选其一解答。

你知道淄博到北京的地面距离是多少千米吗,淄博到纽约的地面距离又是多少千米呢?说不上来了吧。还是让我们编一个程序来计算一下吧。

1.已知地球的平均半径为6371千米,假设在地球的同一纬度上,有两个处于不同经度的城市A、B,编程序求出这两个城市之间的地面距离。

输入数据样例:例如,欲求北纬30度上东经10度到东经50度的距离,输入格式应为:30 10 50

参考测试数据:

输入:0 0 180 输出:20015.08

输入:30 0 90 输出:8397.7

2输入:60 0 45 输出:2453.20

2.地球的平均半径为6371千米,已知地球上两个城市A、B的经度和纬度,编程序求出这两个城市之间的地面距离。

提示:球面上两点之间的最短距离,等于过这两点以球心为圆心的圆上,这两点之间劣弧的长度。(即这两点与球心之间的连线构成的夹角所对球面劣弧的长度)。

建议你自己一步步推导出公式,而不要照搬网上的现成公式。

四、常见问题

疑问1:这分明是两道数学题啊,能否将数学公式提供给我们呢,我们的主要任务不是编写程序吗?

答:建立数学模型也是编程序的一部分。学会分析解决现实中遇到的问题,是我们学习的重要目标。

疑问2:这个问题好像属于球面几何的范畴,用平面几何可以求解吗?

答:这个问题的确涉及到球面几何,但是也的确可以利用投影以及平面几何方法来求解。

实验二 选择结构程序设计(2学时)

一、实验目的

掌握选择结构程序设计的一般方法及选择结构程序的调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

你知道你生日那天是星期几吗,还有你知道你爸爸生日那天是星期几吗?你可能会说:可以查万年历啊。那么,不查万年历你能计算出来吗?

以下两题,任选其一解答。

1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。

2.编程序实现:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。

四、常见问题

疑问1:闰年的规律是不是四年一闰?

答:四年一闰是儒略历(儒略也就是凯撒大帝)的置闰规则。我们现在使用的是格里高利历,置闰规则是每400年97闰。

疑问2:公元1年1月1日是星期几呢?

答:星期一。

疑问3:据说从儒略历改为格里高利历时,将1582年10月4日的下一天定为格里高利历的10月15日,中间销去了10天,这会不会影响星期几的计算?

答:这个调整是对儒略历误差的纠正,并不会影响总天数和星期几的计算。

疑问4:这里计算总天数,好像要用到循环程序吧?

答:其实根据闰年的置闰规则,不使用循环也可以计算出来总天数。当然,你想使用循环编写该程序也是可以的。

实验三 循环结构程序设计(2学时)

一、实验目的掌握循环结构程序设计的一般方法及循环结构程序的调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。

2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。

四、常见问题

疑问1:等额本息还款法每个月的还款额怎么计算,应该有个公式吧,要不然怎么计算出来每个月应还的利息与本金?

答:的确有一个计算公式。当然你可以自己推导出来(这样你会很有成就感!),要不然就从网上搜索出来。

实验四 循环程序综合应用(4学时)

一、实验目的:

掌握循环结构程序设计的一般方法及循环结构程序的调试方法,能够综合运用顺序、选择和循环结构解决一般难度的实际应用问题。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1.编程序实现如下功能:输入任意一个年份和月份,按以下格式输出该月份的公历日历。

要求由程序计算出来该月份的1日是星期几,并用循环控制打印。打印样例如下:

2012年日历

==========

9月

---------日 一 二 三 四 五 六2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30-------------------------

2.编程序实现如下功能:输入任意一个年份,按以下格式输出该年份全年的公历日历。要求由程序计算出来每个月份的1日是星期几,并用循环控制打印。

四、常见问题

疑问1:如何控制某个月1日的打印位置?

答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。

疑问2:如何控制每周和每月的打印换行?

答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的天数控制每月的打印换行。

实验五 字符串处理综合应用(4学时)

一、实验目的

掌握字符串处理的一般方法及字符串处理应用程序的调试方法,能够综合运用选择、循环结构和数组、指针解决一般难度的实际应用问题。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1.编程实现,输入一个整数的小写金额值(即不考虑角和分),转化为大写金额值并输出。先实现基本功能,如输入1002300,可以输出“壹佰零拾零万贰仟叁佰零拾零元整”。

2.编程实现,输入一个小写金额值,转化为大写金额值输出。要求实现相对完善的功能,如输入1002300.90,应该输出“壹佰万贰仟叁佰元零玖角整”。

四、常见问题

疑问1:如何才能分离出整数中的每一位数字?

答:可以利用整数的求余数和除法运算实现数字的分离,同时将分离出的数字存入到一个事先定义好的数组中,每个数组元素只存储一位数字。

疑问2:若不能确定整数的实际位数,如何控制分离过程?

答:可以通过循环控制数字的分离过程,每循环一次分离出来当前的最末一位,然后去掉最末一位,直至分离出所有的位。

疑问3:如何控制给某位数字添加合适的数量单位,如万、仟、佰、拾、元?

答:可以根据该数字在原小写数值中的位置进行控制,如第0位单位为“元”,第1位单位为“拾”,依此类推。

实验六 文件应用程序设计(2学时)

一、实验目的掌握文件应用程序设计的一般方法及其调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。

5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。

6.源程序注释信息可以包括以下几方面内容:

⑴程序功能描述。

⑵程序版本号、创作日期。

⑶作者信息描述:班级、学号、姓名。

⑷问题分析描述。

⑸算法设计描述。

⑹关键语句注释说明。

⑺调试运行过程中出现的错误及改正方法。

⑻输入数据样例。

⑼输出数据样例。

三、实验内容

以下两题,任选其一解答。

1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。

2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。

下载C程序设计教程与实验 吉顺如主编 语言实验7报告参考word格式文档
下载C程序设计教程与实验 吉顺如主编 语言实验7报告参考.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    《C语言程序设计》实验四

    电子科技大学 计算机 学院 标 准 实 验 报 告 (实验)课程名称C语言程序设计 电子科技大学教务处制表电 子 科 技 大 学 实 验 报 告四 学生姓名:学 号:指导教师:刘 勇 实验地点:......

    《C语言程序设计》实验四

    电子科技大学 计算机 学院 标 准 实 验 报 告 (实验)课程名称C语言程序设计 电子科技大学教务处制表电 子 科 技 大 学 实 验 报 告四 学生姓名:学 号:指导教师:王瑞锦 实验地点......

    C语言程序设计实验二

    C语言程序设计实验(二)[实验1] 1.实验题目 下列各题的算法用传统流程图及N-S流程图两种方式表示: (1)输出图形(顺序结构) ★★★★★★★★ ★★★★★★★★ ★★★★★★★★ ★★......

    C语言程序设计实验九

    C语言程序设计实验九——字符数组 【实验题目1】 写几个函数:(1)输入10个职工的姓名和职工号; (2)按职工号由小到大排序,姓名顺序也随之调整; (3)要求输入一个职工号,找出该职工的姓名......

    Java Web程序设计(04112560)--实验7

    实验项目七1、实验项目名称: 监听和过滤 2、实验项目性质:验证性 3、实验要求:必修 4、计划学时数:2学时 5、实验内容: . 实现网上书店项目后台管理用户的过滤功能。具体要求......

    《高级语言程序设计C》实验教学大纲

    《高级语言程序设计C》实验教学大纲 课程编号:1021742 总学时:56学时 适用专业:非计算机理工科各专业 总实验学时:24 实验次数: 12 次 应开实验个数:13 已开实验个数:13 实验开出......

    《C语言程序设计》实验教学大纲1

    《C语言程序设计实验》教学大纲 一、本大纲编写的依据是《C语言程序设计》教学大纲。实验总学时:32学时学分:1学分 二、适用专业:全院C语言公共课 三、考核方式及评定标准: 实验......

    实验教学大纲样本--C语言程序设计5篇范文

    《C语言程序设计》实验教学大纲 课程名称:C语言程序设计 课程属性:必修(限选) 实验属性:独立设课 适用专业:光伏发电技术及应用、光伏材料加工与应用技术、新能源应用专业 学时:(实......