最新实验五-参考答案--计算机C语言
C语言实验册完整答案

实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。
c c++语言程序设计教程 实验指导与习题解答 第五章答案

第六次实验实验1#include"stdlib.h"#include"stdio.h"int main(int argc,char *argv[]){FILE *fp;char string[81],*filename=string;if(argc!=2||(fp=fopen(argv[1],"r"))==NULL){printf("can't open file");exit(0);}while(fgets(string,81,fp)!=NULL)fp=fopen(filename,"r");fclose(fp);}#include<stdio.h>#include<stdlib.h>main(){FILE *fp;char str[100];int i;if((fp=fopen("test.dat","w"))==NULL){printf("Cannot open the file!");exit(0);}printf("Input a string:");gets(str);for(i=0;str[i]&&i<100;i++){if(str[i]>='a'&&str[i]<='z') str[i]=str[i]-32;fputc(str[i],fp);}fclose(fp);fp=fopen("test.dat","r");fgets(str,100,fp);printf("%s\n",str);fclose(fp);}#include<stdio.h>#include<stdlib.h>#define SIZE 3struct student{long num;char name[10];int age;char address[10];} stu[3],out;void fsave(){FILE *fp;int i;if((fp=fopen("student.dat","wb"))==NULL){printf("Cannot open file!");exit(1);}for(i=0;i<3;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("File write error.\n");fclose(fp);}void main(){FILE *fp;int i;for(i=0;i<3;i++){printf("Input student%d:",i+1);scanf("%ld%s%d %s",&stu[i].num,&stu[i].name,&stu[i].age,&stu[i].address);}fsave();fp=fopen("student.dat","rb");printf(" No. Name Age Address\n");while(fread(&out,sizeof(struct student),1,fp))printf("%4ld%-10s%4d %-15s\n",out.num,,out.age,out.address);fclose(fp);}。
计算机C语言实验报告含答案

高级语言程序设计(C语言)实验报告。
………………………………………………………………………………………………一、实验题目:语句与顺序结构控制程序设计1)编写程序,已知圆半径radius=1.25,求圆周长和面积。
源代码:运行结果:#include <stdio.h> d=7.853981#define PI 3.1415926 s=4.908735void main(){float r=1.25,d,s;d=2.0*PI*r;s=PI*r*r;printf("d=%f\n",d);printf("s=%f\n",s);}2)编写程序完成大写字母的小写转换。
源代码:运行结果:#include <stdio.h> 请输入一个大写字母:H void main() H h{char ch1,ch2;printf("请输入一个大写字母:");ch1=getchar();ch2=ch1+32;printf("%c %c\n",ch1,ch2);}3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
源代码:运行结果:#include <stdio.h> 请输入一个整数 :123 void main() b=1,s=2,g=3{int a,g,s,b;printf("请输入一个整数:");scanf("%d",&a);b=a/100;s=(a%100)/10;g=a%10;printf("b=%d,s=%d,g=%d\n",b,s,g);}二、实验题目:选择结构程序设计程序设计1)设变量a、b、c分别存放从键盘输入的3个整数。
编写程序,按从大到小的顺序排列这3个整数,使a成为最大的,c成为最小的,并且按序输出这3个整数。
C语言实验报告题及答案

《C程序设计实验》实验一C程序开发环境(2学时)1.实验目的熟悉C语言的集成开发环境,了解菜单的使用方法;掌握C语言程序上机的编辑、编译、连接、运行的基本步骤;了解C语言程序的结构。
2.实验内容(1)熟悉C语言程序上机的编辑、编译、连接、运行的基本步骤;(2)输入并调试、运行下面的程序。
#include <stdio.h>int main( ){printf ("This is a C program.\n");return 0;}(3)输入并调试、运行下面的程序。
#include <stdio.h>int main( ){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c = max(a,b);printf("max=%d\n",c);return 0;}int max(int x,int y){int z;if (x > y) z = x;else z = y;return(z);}3.实验仪器设备微型计算机一套,配置Windows系统和VC++6.0/Turbo C3.0 软件。
4.问题讨论将printf函数改为print,调试并分析结果。
实验二数据类型、运算符与表达式(2学时)1.实验目的掌握整型、字符型和实型变量的定义和使用;掌握算术运算符的使用;掌握C语言表达式的运算规则。
2.实验内容(1)输入并调试、运行下面的程序。
#include <stdio.h>int main(){char c1,c2;c1=97;c2=98;printf("%c %c\n",c1,c2);printf("%d %d\n",c1,c2);return 0;}(2)输入并调试、运行下面的程序。
#include <stdio.h>int main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);return 0;}3.实验仪器设备微型计算机一套,配置Windows系统和VC++6.0/Turbo C3.0 软件。
C语言实验报告第5章答案

5.2基础实验一、程序分析1.以下程序的运行结果是a=3,b=7↙。
#include <stdio.h>intmain( ){ int a=2,b=8;while(b--<0)b-=a ;a++ ;printf(“a=%d,b=%d\n”,a,b);return 0;}2.以下程序的运行结果是sum=14。
#include <stdio.h>intmain( ){ int n,sum= 0 ;n=2345;do{ sum = sum +n%10;n=n/10;} while(n);printf(“sum=%d ”,sum);return 0;}3.以下程序的运行结果是2550。
#include <stdio.h>intmain( ){ int i,s=0;for(i=0;i<=100;i++)if(i%2==0)s=s+i;printf(“%d”,s);return 0;}4.以下程序的运行结果是#↙。
#include <stdio.h>intmain( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf(“#”);break;}printf(“*”);}printf(“\n”);return 0;}5.以下程序的运行结果是#*#*#↙。
#include <stdio.h>intmain( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf(“#”);continue;}printf(“*”);}printf(“\n”);}6.以下程序的运行结果是。
#include <stdio.h>intmain( ){ int i,j;for(i=1; i<=4;i++){ for(j=1;j<=2*i-1;j++)printf(“”);for(j=1;j<=4-i;j++)printf(“*”);printf(“\n”);}return 0;}5.3拓展实验一、程序分析2.⊙以下程序的运行结果是:x=5 y=3 z=0↙。
西北农林科技大学c语言上机实习5答案

西北农林科技大学c语言上机实习5答案第一篇:西北农林科技大学 c语言上机实习5答案实习五答案1、用指针实现排序/* exer 5-1 由键盘输入10个整数,将它们按由小到大顺序排列*/ #include void main(void){int a[10],*p = NULL;/* 说明数组和指针 */int i, j, temp;for(p = a;p < a + 10;p++)/* 指针从数组首到尾 */{scanf(“%d”, p);/* 利用指针依次输入 */}p = a;for(i = 0;i < 9;i++)/* 利用指针依次比较 */{for(j = i + 1;j < 10;j++)if(*(p + i)> *(p + j)){temp = *(p + i);*(p + i)= *(p + j);*(p + j)= temp;}}for(p=a;p < a + 9;p++)printf(“%d ”, *p);printf(“%dn”, *p);}2、用指针实现字符串排序/*exer 5-2 将10个长度小于20的字符串排序*/ #include #include void main(void){char szStr[10][20],*psz[10],szTemp[20];int i,j;for(i = 0;i < 10;i++){psz[i] = szStr[i];/*指针数组的每个元素指向各行串*/}for(i = 0;i < 10;i++){gets(psz[i]);/*输入10个字符串*/}for(i = 0;i < 9;i++)/*字符串排序*/{for(j = i + 1;j < 10;j++){if(strcmp(psz[i], psz[j])> 0){strcpy(szTemp, psz[i]);strcpy(psz[i], psz[j]);strcpy(psz[j], szTemp);}}}for(i = 0;i < 10;i++){puts(psz[i]);/*输出字符串*/} }3、数据倒置/*exer 5-3 将具有10个元素的一维数组中的数据倒置 */ #include void main(void){int a[10], iTemp, *p, *q;int i;for(i = 0;i < 10;i++){scanf(“%d”, a + i);/*输入数组*/}p = a;q = a + 9;for(p = a, q = a + 9;p < q;p++, q--)/*首尾交换*/{iTemp = *p;*p = *q;*q = iTemp;}for(i = 0;i < 10;i++){printf(“%d ”, *(a + i));/*输出*/} }4、用指针实现数据位置调整 /*exer 5-4 输入 10个整数,将最大的调到最后,最小的调到最前*/ #includevoid swap(int *px, int *py);int main(void){int a[10], iTemp, *pMax, *pMin;int i;for(i = 0;i < 10;i++){scanf(“%d”, a + i);/*输入数组*/}pMax = a;/*最大值指针指向数组首地址*/pMin = a;/*最小值指针指向数组首地址*/for(i = 1;i < 10;i++){if(*(a+i)> *pMax)pMax = a + i;if(*(a+i)< *pMin)pMin = a + i;}/*最大值是第1个元素,最小值是最后一个元素*/ if(pMax == a && pMin == a + 9){swap(pMax, pMin);}else{/*最小值与第一个元素交换*/swap(a, pMin);/*最大值与最后一个元素交换*/swap(a + 9, pMax);for(i = 0;i < 10;i++){printf(“%d ”, *(a + i));/*输出*/}return 0;}void swap(int *px, int *py){int temp;temp = *px;*px = *py;*py = temp;}5、用指针实现查找二维数组中最大数及其位置/*exer 5-5 找出二维数组(设3行4列)中的最大数及其位置 */ #include void main(void){int a[3][4],(*p)[4], iCol, iRow;int i, j;p = a;for(i = 0;i < 3;i++){for(j = 0;j < 4;j++)scanf(“%d”, *(p + i)+ j);/*输入数组*/}iCol = 0;/*设最大数及其位置 */iRow = 0;for(i = 0;i < 3;i++){for(j = 0;j < 4;j++)if(*(*(p + i)+ j)> *(*(p + iRow)+ iCol)){iRow = i;iCol = j;/*修改位置*/}}}printf(“%d %d %dn”, iRow, iCol, a[iRow][iCol]);}6、用指针实现子字符串提取/*exer 5-6 由键盘输入一串字符,从字符串下标为m开始取出n个字符(m和n由键盘输入),形成一个新的字符串*/ #include #include void main(void){char szStrSour[80], szStrDest[80], *pszSour, *pszDest; int i, m, n;gets(szStrSour);/* 输入字符串 */scanf(“%d%d”, &m, &n);/* 输入位置和长度 */pszSour = szStrSour + m;/* 确定起始位置 */pszDest = szStrDest;for(i = 0;i < n;i++)/* 依次取n个字符 */{*pszDest = *pszSour;pszDest++;pszSour++;}*pszDest = '';puts(szStrDest);}/* 在字符串末尾追加结束标志 */第二篇:西北农林科技大学C语言上机实习4答案实习四答案1、字符串连接/* exer 4-1 两串字符连接 */由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。
C语言实验五最简单的C语言程序设计

C语⾔实验五最简单的C语⾔程序设计实验5:最简单的C语⾔程序设计⼀、实验⽬的:(1)掌握C语⾔中使⽤最多的⼀种语句——赋值语句的使⽤⽅法。
(2)掌握各种类型数据的输⼊输出的⽅法,能正确使⽤各种格式转换符。
(3)进⼀步掌握编写程序和调试程序的⽅法。
⼆、实验内容和步骤:1、通过下⾯的程序掌握各种格式转换符的正确使⽤⽅法。
(1)输⼊以下程序:/* Note:Your choice is C IDE */# includeint main( ){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61,b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d\np=%u,q=%u\n",f,g,m,n,p,q);显⽰结果:(2)运⾏此程序并分析结果。
(3)在此基础上,将程序第10~14⾏改为c1=a,c2=b;f=3157.890121;g=0.123456789;d=f;e=g;运⾏程序,分析结果。
/* Note:Your choice is C IDE */#include"stdio.h"int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);}显⽰结果:(4)⽤sizeof运算符分别检测程序中各类型的数据占多少字节。
(最新版)C语言实验报告(答案)

《C程序设计》实验报告学期:教师姓名:教研室:实验1 熟悉C语言程序的运行环境,掌握数据描述1.1 实验目的1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。
2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。
1.2 实验预习1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。
2.了解下列命令及函数:include<stdio.h>、main、printf、scanf。
3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。
4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。
int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。
6.常量与变量的区别和联系。
运行环境:1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio 6.0——> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。
2.单击“文件”菜单的“新建”命令。
3.在打开的“新建”对话框中选择“文件”标签。
4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。
如图所示:5.在源窗口中输入源程序,如图所示。
应工具进行编译编译连接运行若程序有错则找到出错行修改程序。
7.连接:若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h>
#include<math.h>
int main()
{
int a[3][3];
int i,j,t;
for(i=0;i<3;i++) //双重循环逐一遍历每个元素a[i][j]
for(j=0;j<4;j++)
if(min>a[i][j]) //如果当前值a[i][j]比最小值还要小
{min=a[i][j];row=i;colum=j;} //用a[i][j]改写最小值,并记下他们的下标
printf("矩阵中最小元素是:%d,行下标是:%d,列下标是%d\n",min,row,colum);
//rand()%20产生一个20以内的整数
printf("%5d",a[i][j]);
}
printf("\n");
}
printf("请输入n:");
scanf("%d",&n);
for(i=0;i<3;i++) //i表示每一行
for(j=0;j<=i;j++) //j从0到i,即每行的对角线及前面的数的列下标
return 0;
}
运行结果:
(3)设计程序sy5-3.c,定义一个3×3的二维数组,通过随机函数自动赋值。然后输入一个整数n,使数组左下三角(含对角线元素)元素中的值乘以n。例如:若n的值为3,a数组中的值为
| 1 9 7 |则程序运行后a数组中的值应为| 3 9 7 |
| 2 3 8 | | 6 9 8 |
123
456
789
计算结果为
312
645
978
算法分析:
二维数组的移动,类似于一维数组的元素移动;只是在一维数组移动的外面加上外循环。即:对每一行元素(i行),首先把最后一列即a[i][2]用中间变量t保存;然后就从第1列到第0列,每个元素向后移动一列(a[i][j]=a[i][j-1]);最后再给a[i][0]赋值为t(以前的a[i][2])。
int i,j,sum=0;
for(i=0;i<3;i++)
sum=sum+a[i][i]+a[i][2-i]; //a[i][i]当前行的主对角线元素
//a[i][2-i]当前行的反对角线元素
printf("矩阵的正、反对角线元素之和为:%d\n",sum);
return 0;
}
运行结果:
(2)设计程序sy5-2.c,找出一个3×4的矩阵中的最小值及其位置。
#include<stdio.h>
void main()
{
int a[10][10],i,j,m;
printf("Input m:");
scanf("%d",&m);
for(i=0;i<m;i++)/*初始化第一列元素*/
a[i][0]=i+1;
for(i=0;i<m;i++)/*处理其余元素:为第0列元素*(j+1)*/
实验四参考答案(参考答案)
(1)设计程序sy5-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。
算法分析:
对角线上的元素,1维和2维下标相同,反对角线元素,如果行下标为i,列下标就为2-i;
参考答案:
#include<stdio.h>
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
a[i][j]=a[i][j]*n;
printf("\n数组左下三角元素乘以n后值为:");
for(i=0;i<3;i++)
{for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
运行结果:
(4)设计程序sy5-4.c,输入一个整数m(2≤m≤9〕,在m行m列的二维数组中存放如下所示规律的数据。例如,若输入2,则输出: ,若输入4,则输出:
参考答案:
#include<stdio.h>
#include<math.h>
int main()
{
int a[3][3];
int i,j,n;
printf("原来a的值:");
for(i=0;i<3;i++) //生成数组元素,并按矩阵形式输出
{ for(j=0;j<3;j++)
{a[i][j]=rand()%20; //rand()参看教材385页
算法分析:
分析:m的值是不定的,所以可以申明一个二维数组int a[10][10],当m=2时,只用前两行两列,当m=4时,就只用前四行四列;元素a[i][j]的值和他的行列下标可找到规律如下:每行的第0列元素a[i][0]=i+1;除第0列元素其它元素a[i][j]=a[i][0]*(j+1)。
参考答案:
for(j=1;j<m;j++)
a[i][j]=a[i][0]*(j+1);
for(i=0;i<m;i++)/*输出矩阵*/
{ for(j=0;j<m;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
运行结果:
(5)设计程序sy5-5.c,将3×3矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,有下列矩阵
| 4 5 6 | | 12 15 18 |
算法分析:
主要理解到对角线即以下元素包含哪些元素,即他们的下标变化。对每一行i来说,对角线以下的元素,他们的列下标是0,1,2,---,i;所以用外循环i遍历行,内循环j(从0到i),逐一遍历每一个a[i][j],并给a[i][j]赋值为他的n倍。最后输出矩阵。
int i,j,row,colum,min;
printf("数组a:\n");
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%5d",a[i][j]);
printf("\n");
}
min=a[0][0];row=0;colum=0; //首先把第一个数a[0][0]看成0][0]看成最小值,然后逐行逐列的去遍历每个元素,逐一判断每一个元素是否比最小值还好小,如果是,就改写最小值,并记录他的下标。
参考答案:
#include<stdio.h>
#include<math.h>
int main()
{
int a[3][4]={{10,21,41,5},{12,15,46,35},{40,21,26,30}};