c语言实验答案
计算机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语言实验册完整答案
实验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程序设计实验》实验一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语言课后实验设计题目及答案
设 total:桃子的总数
x1 :前一天的桃子数
x2 : 后一天的桃子数
day: 天数
计算公式:x1=(x2+1)*2 第1天的桃子数是第2天桃子数加1后的2倍。
(2)求1-1/2+1/3-1/4+⋯⋯,输入1个正整数n(n<=100),计算并输出1-1/2+1/3-1/4+⋯⋯的前n项和(保留3位小数)。
实验项目四 分支结构程序设计
题目
(1)输入四个整数,输出其中的最小值。
实验报告
1、主程序:
// zx.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
}
2、主程序:
// s.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
x=x*x*x*x;return(x);
}
int main(int argc, char* argv[])
{
float x;
printf("请输入X=");
scanf("%f",&x);
double s;
C语言实验参考答案
C语言实验参考答案实验一5、输入并运行自已编写的程序(教材第一章P14 三编程题)。
实验二1、编写一个程序,从键盘接收3个实数(分别为10.0、20.0、5.0),输出这3个数的和s、乘积t和平均值a。
#include <stdio.h>main(){float x,y,z,s,t,a;printf(“x,y,z=”);scanf(“%f,%f,%f”,&x,&y,&z);s=x+y+z;t=x*y*z;a=s/3;printf(“s=%f,t=%f,a=%f\n”,s,t,a);}2、编程。
要求用户输入两个整数a、b(分别为20、10),读取用户从键盘输入的值,然后:1)用整数输出这两个数的和、差;2)用长整型输出这两个数的积,用float输出商;3)用整数输出这两个数的余数,用float输出平均值。
#include <stdio.h>main(){int a,b,he,cha,yu;long ji;float shang,aver;printf(“a,b=”);scanf(“%d,%d”,&a,&b);he=a+b;cha=a-b;ji=(long)a*b;shang=1.0*a/b;yu=a%b;aver=(a+b)/2.0;printf(“a+b=%d,a-b=%d,a*b=%ld\n”,he,cha,ji);printf(“a/b=%f,a%%b=%d,aver=%f\n”,shang,yu,aver);}实验三1、编写一个程序,从键盘接收一个一位的整型数,经转换,用字符函数putchar输出。
例如,输入整数5,程序运行后输出字符5。
#include <stdio.h>main(){int a;char c;printf(“a=”);scanf(“%d”,&a);c=a+48;putchar(c);}2、编程。
c语言实验报告答案
一、结构化程序设计1、#include<stdio.h>#include<math.h>void main(){float a,b,c,d,area;scanf("%f,%f",&a,&b);area=a*b;c=2.0*(a+b);d=1.0*sqrt(a*a+b*b);printf("%f,%f,%f",c,d,area);getch();}2、#include <stdio.h>#include<math.h>void main(){ float f,c;scanf("%f",&f);c=5.0*(f-32)/9;printf("%.5f",c);getch();}3、#include <stdio.h>#include<math.h>void main(){ float a,b,c,area,s;scanf("%f,%f,%f",&a,&b,&c);if(a<=0||b<=0||c<=0)printf("三角形不存在\n");else if(a+b<=c||a+c<=b||b+c<=a)printf("三角形不存在\n");else if(fabs(a-b)>=c||fabs(b-c)>=a||fabs(a-c)>=b) printf("三角形不存在\n");else{s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("%f\n",area);}getch();}4、#include <stdio.h>void main(){ float s;scanf("%f",&s);if(s>=100&&s<300)s=s*0.9;else if(s>=300&&s<500)s=s*0.8;else if(s>=500&&s<700)s=s*0.7;else if(s>=700&&s<900)s=s*0.6;else if(s>=900)s=s*0.5;printf("%f\n",s);getch();}二、数组1、冒泡法#include <stdio.h> void main(){ int a[10];int i,j,t;printf("input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]<a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");getch();}选择法#include <stdio.h>void main(){ int i,j,min,temp,a[11];printf("enter data:\n");for(i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");printf("The original numbers:\n");for(i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");for(i=1;i<=9;i++){min=i;for(j=i+1;j<=10;j++)if(a[min]<a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThe sortde numbers:\n");for(i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");getch();}2、#include<stdio.h>void main(){int i,j,k,a[4][5],max,maxj,flag;printf("please input matrix:\n ");for(i=0;i<4;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=0;j<5;j++)if(a[i][j]>max){max=a[i][j];maxj=j;}flag=1;for(k=0;k<4;k++)if(max>a[k][maxj]){flag=0;continue;}if(flag){printf("a[%d][%d]=%d\n",i,maxj,max); break;}if(!flag)printf("It is not exist!\n");getch();}3、#include<stdio.h>void main(){int i,j,upp,dig,spa,oth;char text[3][5];upp=dig=spa=oth=0;for(i=0;i<3;i++){printf("\n please input line%d:\n",i+1);gets(text[i]);for(j=0;j<5&&text[i][j]!='0';j++){if(text[i][j]>='A'&&text[i][j]<='Z'||text[i][j]>='a'&&text[i][j]<='z') upp++;else if(text[i][j]>='0'&&text[i][j]<='9')dig++;else if(text[i][j]=='')spa++;elseoth++;}}printf("\n upper case:%d\n",upp);printf("digit:%d\n",dig);printf("space:%d\n",spa);printf("other:%d\n",oth);getch();}4、#include<stdio.h>#include<string.h>void main(){ char a[10],b[10],c[20],s;int i=0,j;scanf("%s",a);scanf("%s",b);j=strlen(a)-1;while (i<=j/2){s=a[j-i];a[j-i]=a[i];a[i]=s;i++;}j=strlen(b)-1;while(i<=j/2){s=b[j-i];b[j-i]=b[i];b[i]=s;i++;}i=j=0;while(a[i]!='\0')c[i]=a[i++];while(b[j]!='\0')c[i+j]=b[j++];c[i+j]='\0';puts(c); getch();}三、函数1、#include <stdio.h>void main(){ float mysin(float x);float x,z;scanf("%f",&x);z=mysin(x);printf("mysin(x)=%4f\n",z);getch();}float mysin(float x){long b=1,i,j,k;float a=x,sum=x;for(i=3,j=-1;a/b>=0.000001;i=i+2,j=j*(-1)) { a=a*x*x;for(k=1,b=1;k<=i;k++)b=b*k;sum=sum+(float)a/b*j;}return(sum);}2、#include<stdio.h>void main(){char s1[80],s2[40];int i=0,j=0;printf("\n input string1:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("The new string is:%s\n",s1); getch();}3、#include <stdio.h>void main(){ int prime(int);int n;printf("\n input an integer:"); scanf("%d",&n);if(prime(n))printf("\n %d is a prime.\n",n); elseprintf("\n %d is not a prime.\n",n); getch();}int prime(int n){int flag=1,i;for(i=2;i<n/2&&flag==1;i++)if(n%i==0)flag=0;return (flag);}4、#include <stdio.h>void main(){ float fac(int n);int n;float y;printf("input an integer number:"); scanf("%d",&n);y=fac(n);printf("%d!=%10.0f\n",n,y);getch();}float fac(int n){float f;if(n<0){printf("n<0,datarror!");}elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}5、#include<stdio.h>float Max=0,Min=0;void main(){float average(float array[],int n);float ave,s[10];int i;for(i=0;i<10;i++)scanf("%f",&s[i]);ave=average(s,10);printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave); getch();}float average(float array[],int n){ int i;float aver,sum=array[0];Max=Min=array[0];for(i=1;i<n;i++){if(array[i]>Max)Max=array[i];else if(array[i]<Min) Min=array[i];sum=sum+array[i];}aver=sum/n;return(aver);}四、指针1、# include <stdio.h>int max(int *p1, int *p2){ int p;p=*p1;*p1=*p2 ;*p2= p;return 0;}void main(){int a,b,c,*p1,*p2,*p3;printf("请输入a,b,c的值:\n");scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(*p1>*p2) max(p1,p2);if(*p1>*p3) max(p1,p3);if(*p2>*p3) max(p2,p3);printf("a=%d,b=%d,c=%d\n",*p1,*p2,*p3); }2、# include <stdio.h>void main(){ int a[10],*p;for(p=a;p<a+10;p++)scanf("%d",p);for(p--;p>=a;p--)printf("%3d",*p);}3、#include <stdio.h>int strcmp(char *p1,char *p2){int i=0;while(*(p1+i)==*(p2+i))if(*(p1+i++)=='\0') return(0);return(*(p1+i)-*(p2+i));}void main(){ int f;char a[20],b[20],*p1=a,*p2=b;printf("请输入两个字符串\n");scanf("%s",a);scanf("%s",b);f=strcmp(p1,p2);printf("%d",f);}4、# include <stdio.h>int max(int *x,int n){ int m=*x;for( ;n>0;n--,x++)if(m<*x)m=*x;return m;}void main(){int a[10],*p;int m;printf("请输入数组元素的值:\n");for(p=a;p<a+10;p++)scanf("%d",p);p=a;m=max(p,10);printf("数组a中最大元素是:%d\n",m); }。
C语言实验答案
scanf("%f,%f",&a,&b);
if(fabs(a*a+b*b-1)<1e-3)
printf("Y\n");
else printf("N\n");}
}
[题目1017:求数的位数]
由键盘输入一个不多于9位的正整数,要求输出它是几位数。
[第一组自测数据] [第二组自测数据]
}
[题目1020:正负奇偶判断]
由键盘输入非零整数x,判断该数正负,正数输出positive,负数输出negative,接着判断该数的奇
偶性,奇数输出odd,偶数输出even。
[第一组自测数据] negative
[键盘输入] odd
-43↙[第二组自测数据]
[正确输出] [键盘输入]
98↙positive
阅读下面程序,写出运行结果:
void main()
{ float a;
int b, c;
char d, e;
a=3.5;
b=a;
c=330;
d=c;
e='\\';
printf("%f,%d,%d,%c,%c", a,b,c,d,e);
}
运行结果为:
3.500000,3,330,J,\
[提示]赋值语句具有类型转换的功能,但可能会改变数据。
[正确输出] [正确输出]
Y N
[提示] 1)平面上的点与圆的关系分为在圆内、在圆上、在圆外三种,本题要求判断是否在圆上;2)
判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度(本题为0.001)的方法实现。
C语言程序设计实验指导书课后答案
实验一(1)编程求37+29得值,实习VC环境。
#include<stdio、h>void main(){ﻩ int a,b,sum;a=37;ﻩ b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio、h>void main(){int a,b,c,y;ﻩint max(int x,inty);ﻩ printf("input a,b,and c:");ﻩ scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);ﻩ y=max(y,c);ﻩ printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio、h>void main(){char ch='a';ﻩprintf("%c对应得ASCII码就是:%d\n",ch,ch); ﻩ }程序输出结果:a对应得ASC||码就是:97B 程序代码#include<stdio、h>voidmain(){int a=168;ﻩ float b=123、456;float x=35、567,y;printf("a=%5d\n",a);ﻩprintf("a=%-5d\n",a);printf("b=%6、2f\n",b);ﻩprintf("b=%e\n",b);ﻩ y=(int)(x*100+0、5)/100、0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123、46b=1、234560e+002x=f,y=35、567001C程序代码#include<stdio、h>voidmain(){int a=168;printf("十进制数%d对应得八进制数就是%o\n",a,a);printf("十进制数%d对应得十六进制数就是%x\n",a,a);}程序输出结果:十进制数168对应得八进制数就是250十进制数168对应得十六进制数就是a8实验二2、1顺序结构2、1、1已知a=1、5,b=5、3,c=2、9,计算s=-4ac得结果并输出。
C语言实验答案
C语言实验答案实验1: C语言基础1. a) 此程序的输出结果是:10 15 20int x = 10;printf("%d ", x++);printf("%d ", ++x);printf("%d", x++);b) 解释:- 在第一个printf语句中,x的值被打印后才执行自增操作,所以输出结果为10;- 在第二个printf语句中,x先自增再打印,所以输出结果为15;- 在第三个printf语句中,x先打印再自增,所以输出结果为20。
2. 此程序的输出结果是:6int a = 10, b = 4, c = 6;printf("%d", ++c + a / --b);解释:- 在表达式中,++c表示先将c自增1,--b表示先将b自减1;- a/--b会先执行除法操作,即10/3,结果为3;- ++c + 3的结果为9;- 因此,最终的输出结果为6。
实验2: 控制结构1. a) 此程序的输出结果是:odd even odd even odd evenfor (int i = 1; i <= 6; i++) {if (i % 2 == 0) {printf("even ");} else {printf("odd ");}}b) 解释:- 在for循环中,i从1逐渐增加到6;- 当i为奇数时,输出"odd ",当i为偶数时,输出"even "; - 因此,最终的输出结果为"odd even odd even odd even"。
2. a) 此程序的输出结果是:1 3 5 7 9int i = 0;while (i < 10) {i++;if (i % 2 == 0) {continue;}printf("%d ", i);}b) 解释:- 在while循环中,i从0逐渐增加到9;- 当i为偶数时,遇到"continue"语句,跳过后续的代码,继续下一次循环;- 当i为奇数时,打印i的值;- 因此,最终的输出结果为"1 3 5 7 9"。
C语言实验题及参考答案
C语⾔实验题及参考答案实验⼀1、计算整数各位数字之和(10 分)输⼊⼀个3位正整数,将其每⼀位的数字相加,输出和。
输⼊格式:输⼊⼀个3位正整数。
变量数据类型为unsigned。
输出格式:输出整数每⼀位相加后的整数和。
输⼊样例:输出样例:【参考答案】#include ""int main(){ unsigned int a,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return 0;}2、计算代数表达式(10 分)求:输⼊格式:输⼊⾓度x。
变量数据类型为double。
π为。
输出格式:输出y的值,精确到⼩数点后2位。
输⼊样例:输出样例:#include <>#include <>#define PIint main(){double x,y;scanf("%lf",&x);y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return 0;}3、逆序的三位数(10 分)程序每次读⼊⼀个正3位数,然后输出按位逆序的数字。
注意:当输⼊的数字含有结尾的0时,输出不应带有前导的0。
⽐如输⼊700,输出应该是7。
输⼊格式:每个测试是⼀个3位的正整数。
输出格式:输出按位逆序的数。
输⼊样例:输出样例:【参考答案】#include ""int main(){ int a,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return 0;}4、求整数均值(10 分)本题要求编写程序,计算4个整数的和与平均值。
C语言程序设计实验与习题答案
2.程序填空(1) 以下程序的功能是计算1~50之间能被7整除的整数之和。
#include<stdio.h>void main(){int i,sum= 0 ;for(i=1; 50 ;i++)if( i%7==0 ) sum+=i;printf("sum=%d\n",sum);}(2) 下面程序接收来自键盘的输入,直到输入<Ctrl>+Z( 值-1) 键为止。
这些字符被原样输出,但若有连续一个以上的空格为时只输出一个空格。
请填空。
#include <stdio.h>void main(){char cx;char front= ’’;while ( (cx=getchar())!= ’\n ’){if (cx!= ’’)putchar(cx);if (cx= = ’’)if (front!= ’’)putchar(cx);front=cx;}}3.程序改错(1) 下列程序的功能是求1+3+5+, 99 的和。
#include <stdio.h>void main( ){ int s, i; ★//int s=0,i;i=1;while(i<=99) s=s+i; ★//{s=s+i;i++;}printf("1+3+5+ , 99 的和是:%d\n",s);}(2) 下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。
#include <stdio.h>void main(){ int i,x, y=0; ★//y=1scanf("%d",&x);for(i=2;i<=x/2&&y;i++)if ((x%i)!=0 ) y=0; ★//x%i==0printf("%d\n",y); }4.设计性实验(1)题/* 方法(1)精度控制*/#include <stdio.h>#include <math.h>main(){ int s;...float n,t,pi;t=1; pi=0; n=1.0; s=1;while((fabs(t))>=1e-6){ pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}/* 方法(2)次数控制*/#include <stdio.h>#include <math.h>main(){ int s;long times;float n,t,pi;t=1; pi=0; n=1.0; s=1;for(times=1;times<=1e9;times++){ pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}(2)题main(){int i,j,frame;double wheattal=0;double wheatfnu=1;printf("Please input frame ’s numbers:"); scanf("%d",&frame);for(i=0;i<frame;i++){wheattal+=wheatfnu;wheatfnu+=wheatfnu;}n Total wheattatol ’s timeter\=n%",weheattal/1.40e8); }(3)题/*方法一:使用递推公式n=n+2*/main(){int i,n=1;double s=0,t=1;for(i=1;i<=20;i++){t*=n;s+=t;n+=2;}printf("s=%lf",s);getch();}/*方法二:使用通项公式2*i+1*/main(){int i;double s=0,t=1;for(i=1;i<=20;i++){t*=2*i+1;s+=t;}printf("s=%lf",s);getch();}/*方法三*/#include "stdio.h"main(){long total,sum,m,n,t;total=0;for(m=1;m<=20;m++){sum=1;t=1;for(n=1;n<=m;n++) { sum=sum*t; t=t+2;}total=total+sum;}printf("total=%ld",total);}2.程序填空(1) 以下程序的功能是计算1~50之间能被7整除的整数之和。
《c语言程序设计》实验指导书答案
《c语言程序设计》实验指导书答案《C语言程序设计》实验指导书答案实验一:C语言环境搭建与基本语法1. 问题:如何在计算机上搭建C语言开发环境?答案:搭建C语言开发环境通常需要安装编译器和集成开发环境(IDE)。
常见的编译器有GCC,而IDE如Visual Studio Code、Code::Blocks等。
安装完成后,配置好编译器路径,即可开始编写和编译C语言程序。
2. 问题:C语言的基本数据类型有哪些?答案:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及更复杂的结构体(struct)和联合体(union)等。
3. 问题:如何定义一个变量?答案:定义变量的基本语法是:`类型名变量名;`。
例如,定义一个整型变量a:`int a;`。
4. 问题:如何实现变量的输入和输出?答案:使用`scanf`函数进行输入,使用`printf`函数进行输出。
例如,输入一个整数并输出:`scanf("%d", &a); printf("%d", a);`。
实验二:控制结构1. 问题:C语言中的条件语句有哪些?答案:C语言中的条件语句主要有`if`语句和`switch`语句。
2. 问题:如何使用`if`语句?答案:`if`语句的基本语法是:`if (条件) { 语句 }`。
例如,判断一个数是否为正数:`if (a > 0) { printf("正数"); }`。
3. 问题:如何使用`switch`语句?答案:`switch`语句用于多条件分支选择。
基本语法是:`switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... default: 默认语句; }`。
4. 问题:C语言中的循环语句有哪些?答案:C语言中的循环语句主要有`for`循环、`while`循环和`do-while`循环。
c语言程序设计实验指导书答案
c语言程序设计实验指导书答案C语言程序设计实验指导书是帮助学生理解和掌握C语言编程技能的重要工具。
本指导书旨在通过一系列实验,引导学生从基础语法到高级编程技巧,逐步提高编程能力。
以下是一些实验题目和相应的答案示例,以供参考。
实验一:C语言基础语法实验目的:- 熟悉C语言的基本语法结构。
- 掌握变量声明、数据类型和运算符的使用。
实验内容:1. 编写一个程序,输入两个整数,输出它们的和、差、积和商。
实验答案:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("和是:%d\n", num1 + num2);printf("差是:%d\n", num1 - num2);printf("积是:%d\n", num1 * num2);if (num2 != 0) {printf("商是:%d\n", num1 / num2);} else {printf("除数不能为0。
\n");}return 0;}```实验二:控制结构实验目的:- 掌握条件语句和循环语句的使用。
实验内容:1. 使用循环语句计算1到100的和。
实验答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum); return 0;}```实验三:数组和字符串- 掌握数组和字符串的声明、初始化和使用。
实验内容:1. 编写一个程序,输入一个字符串,然后反转该字符串并输出。
C语言实验题及参考答案
C语言实验题及参考答案1. 编写一个程序,要求用户输入一个整数n,然后输出1到n的所有整数。
```c#include <stdio.h>int main() {int n;printf("请输入一个整数n:");scanf("%d", &n);int i;for (i = 1; i <= n; i++) {printf("%d ", i);}return 0;}```2. 编写一个程序,要求用户输入一个整数n,然后输出1到n的所有奇数。
```c#include <stdio.h>int main() {int n;printf("请输入一个整数n:");scanf("%d", &n);int i;for (i = 1; i <= n; i += 2) {printf("%d ", i);}return 0;}```3. 编写一个程序,要求用户输入一个整数n,然后计算1到n的所有整数的和。
```c#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);int i;for (i = 1; i <= n; i++) {sum += i;}printf("1到%d的和为%d\n", n, sum);return 0;}```4. 编写一个程序,要求用户输入一个整数n,然后计算1到n的所有奇数的和。
```c#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);int i;for (i = 1; i <= n; i += 2) {sum += i;}printf("1到%d的奇数的和为%d\n", n, sum);return 0;}```5. 编写一个程序,要求用户输入一个整数n,然后判断n是否为素数。
C语言实验报告参考答案完整版
C语言实验报告参考答HEN system office room [HEN 16H-HENS2AHENS8Q8-HENH1688]长沙理工大学2010C 语言实验报告参考答案实验一熟悉c 语言程序开发环境及数据描述四、程序淸单1. 编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#include<>main(){printf (Z/The dress is longArT); printf (zz The shoes are big\rT); printf (zzThe trousers are black'n"); } 2. 改错题(将正确程序写在指定位置)正确的程序为:#include <>main(){printf (,z商品名称 printf CTCL 电视机 printf (”美的空调 printf ("SunRose 键盘 2.编写程序:&二150, b 二20, c 二45,编写求 a/b 、a/c (商)和 a%b 、 3%C (余数)的程序。
答案:#include<>main(){int a, b, c, x, y;d 二150;b 二 20;c=45;x=a/b;y=a/C;printf Ca/b 的商=%d\n", x);价格\『);¥7600\n z/):¥2000\n z ,);Y\n z/);printf ("a/c 的商=%d\n", y);x=a%b;y=a%c;printf Ca/b 的余数=%d\n", x);printf Ca/c 的余数=%d\rT,y);}4.设变量a的值为0, b的值为-10,编写程序:当a>b时,将b赋给C;当乳二b时,将8赋给C。
c语言程序设计实验教程课后答案
c语言程序设计实验教程课后答案C语言程序设计实验教程课后答案C语言是一种广泛使用的计算机编程语言,以其高效、灵活和功能强大而著称。
学习C语言不仅能够帮助学生理解计算机程序设计的基础,而且能够为学习更高级的编程语言打下坚实的基础。
以下是一些常见的C语言程序设计实验教程课后问题及其答案。
问题1:编写一个C程序,计算并输出两个整数的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum);return 0;}```问题2:编写一个C程序,判断一个整数是否为素数。
答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num);}return 0;}```问题3:编写一个C程序,实现简单的学生成绩管理系统。
答案:```c#include <stdio.h>struct Student {char name[50];int score;};int main() {struct Student students[3] = {{"Alice", 85},{"Bob", 90},{"Charlie", 78}};int i;printf("学生成绩列表:\n");for (i = 0; i < 3; i++) {printf("%s: %d\n", students[i].name, students[i].score);}return 0;}```问题4:编写一个C程序,实现字符串的反转。
2024C语言实验报告参考答案
2024C语言实验报告参考答案2024C语言实验报告参考答案实验名称:C语言实现学生信息管理系统实验目的:1、掌握C语言的基本语法和编程规范2、熟悉控制台界面的设计和输出3、理解并实现简单的用户交互和数据操作实验内容:本次实验要求用C语言实现一个简单的学生信息管理系统。
系统需要实现以下功能:1、添加学生信息2、查询学生信息3、修改学生信息4、删除学生信息5、显示所有学生信息实验步骤:步骤1:打开Visual Studio,创建一个新的控制台应用程序项目。
步骤2:在项目中添加一个名为“student_management_system.c”的源文件,并在这个文件中编写程序代码。
步骤3:在代码中定义一个结构体来表示学生信息,包括学号、姓名、年龄等信息。
步骤4:在主函数中创建一个学生信息管理系统,并实现以下功能:1、添加学生信息:提供一个用户界面,让用户输入学生信息,并将信息保存到一个数组中。
2、查询学生信息:提供一个用户界面,让用户输入要查询的学号,并在数组中查找对应的学生的信息并输出。
3、修改学生信息:提供一个用户界面,让用户输入要修改的学号和新的学生信息,并在数组中修改对应学生的信息。
4、删除学生信息:提供一个用户界面,让用户输入要删除的学号,并将该学生信息从数组中删除。
5、显示所有学生信息:提供一个用户界面,将所有学生的信息输出到控制台。
步骤5:在代码中添加必要的输入输出和错误处理代码,确保程序的正确性和健壮性。
步骤6:编译并运行程序,测试每个功能的正确性。
实验结果:本次实验成功实现了一个简单的学生信息管理系统。
通过控制台界面,用户可以添加、查询、修改、删除和显示学生信息。
程序运行稳定,错误处理效果良好。
实验总结:本次实验让我更加熟悉了C语言的基本语法和编程规范,同时也让我了解了如何实现简单的用户交互和数据操作。
通过这次实验,我不仅提高了自己的编程技能,还对控制台界面的设计和输出有了更深入的理解。
C实验报告答案完整版
C实验报告答案完整版实验1简单判定性问题求解⼀、实验学时完成本实验需4学时。
⼆、实验⽬的1、阅读程序题(1)掌握C语⾔数据类型,熟悉如何定义⼀个整型、字符型的变量,以及对它们赋值的⽅法;(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储⽅式;(4)学会输⼊、输出函数的基本格式和使⽤⽅法;(5)学会使⽤有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。
2、编程题(1)如何运⽤if-else判定性结构进⾏程序设计;(2)如何运⽤switch判定性结构进⾏程序设计。
3、调试题(1)熟悉C程序的编辑、编译、连接和运⾏的过程。
三、实验指导为了达到最佳的实验效果,以下提供⼏条适于编程的指导意见,可供参考。
1、阅读程序题应先运⽤⾃⼰在课堂所学的知识,推导出结果,在上机时输⼊计算机,印证⾃⼰推导的结果,注意观察数据在内存中的存储⽅式、含不同种运算符表达式的输出结果。
2、编程题必须⾸先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。
要注意简单判定性问题的结构选择。
3、调试题应明确程序的调试、测试是⼀项⾮常烦琐的⼯作,也是⾮常重要的⼯作。
对于初学者来说应该建⽴良好的习惯,在调试程序的时候,应该尽可能考虑到程序运⾏时各种可能情况。
四、实验内容1、阅读程序题(1)main( ){ /*定义字符型变量*/char c1,c2; /*向字符变量赋以整数*/c1=97;c2=98;printf("%c %c\n",c1,c2); /*以字符形式输出*/printf("%d %d\n",c1,c2); /*以整数形式输出*/}思考:可否改成int c1,c2;输出结果是?相同(2)main(){int a=7,b=5;printf("%d\n",b=b/a);}思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() {int a=9;a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/printf("%d\n",a);}思考:赋值表达式a+=a-=a+a的求解步骤?第⼀步:a=a-(a+a)=-9 第⼆步a=a+a=18(4)main(){int k=-1;printf("%d,%u\n",k,k);}思考:-1在内存中的存储形式?取反加⼀11111111111111111111111111111111(32个)(5)main(){unsigned x1;int b=-1;x1=b; /*有符号数据传送给⽆符号变量*/printf("%u",x1);}(6)main(){int a=3,b=4,c=5;printf("%d\n",(!(aprintf("%d",c);}思考:若将第⼀个1(换⾏)6(7)main(){ int a=1,b=2,c=3;if(c=a) ; printf("%d\n",c);else printf("%d\n",b);}2、编程序并上机调试运⾏(包括题⽬及要求、流程图、程序清单、测试数据及结果)(1)将⼀个百分制成绩转换成等级制成绩,百分制与等级制的对应具体要求如下:1)⽤switch语句实现该功能;2)⽤键盘输⼊百分制成绩,输⼊前要有提⽰信息,对于不合理的数据应输出错误信息;3)输出结果应包含百分制成绩和成绩等级;4)分别输⼊成绩-10,30,60,68,75,83,95,102,查看记录运⾏结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=%d\n",a,b,a+b); printf("%d-%d=%d\n",a,b,a-b); printf("%d*%d=%d\n",a,b,a*b); printf("%d+%d=%f\n",a,b,*a/b); .+1/n!的值。
#include<> void main() { int n,p=1,i; float sum=0; printf("please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) { p=p*i; sum+=p; } printf("sum=%f\n",sum); } .14 p=j; switch(p) umber); for(j=0;j<3;j++) printf("%",stu[i].score[j]); printf(" ave=%.2f\n",average(stu[i]));umber); printf("score:"); for(j=0;j<3;j++) scanf("%f",&(stu[i].score[j])); } } void main() { struct student stu[3]; //定义结构体数组 input(stu); //数组名做参数,传递的是地址 output(stu); } //静态链表的建立,有三个学生,包括学号(sno char(8)),姓名(sname char(20)),分数(grade float[]), //定义结构体类型数组存学生信息,使用链表所有学生,实现链表的输入输出。
//静态的书上有原题目,我写成动态的了,用子函数的方式实现 #include <> #include<> #include <> struct stu //定义全局结构体 { char sno[8]; char sname[20]; float grade; struct stu *next; } ; //////////////////////////////////////////////////////// void main( ) { struct stu *creat(struct stu *); void print(struct stu*); struct stu *head; head=NULL; head=creat(head); print(head); } ///////////////////////////////////////////////////////// struct stu *creat(struct stu*head) //建立链表 { struct stu *p,*q; q=(struct stu*)malloc(sizeof(struct stu)); //分配空间 printf("please input sno:"); scanf("%s",q->sno); printf("please input sname:"); scanf("%s",q->sname);
printf("please input grade:"); scanf("%f",&q->grade); head=q; while(q->grade!=0) //当分数为0时结束 { p=(struct stu*)malloc(sizeof(struct stu)); printf("please input sno:"); scanf("%s",p->sno); printf("please input sname:"); scanf("%s",p->sname); printf("please input grade:"); scanf("%f",&p->grade); q->next=p; q=p; } q->next=NULL; return head; //返回链表的头指针 } ////////////////////////////////////////////////////////// void print(struct stu *head) //输出链表 { struct stu *p; //设游标指针 p=head; //取得链表的头指针 printf("data:\n----------------------\n"); while(p->next!=NULL) { printf("%s\n",p->sno); printf("%s\n",p->sname); printf("%f\n",p->grade); printf("----------------------\n"); p=p->next; } } //递归方法实现快速排序算法。
快速排序的基本原理是: //(1)选择一个充当划分较小和较大元素的界限的元素,称其为基准值。
//(2)将数组中的元素重新排列使得较大元素向数组尾端移动,较小元素向数组首端移动。
//如此在形式上将数组分成两部分,界限左边元素都小于基准值,而界限右边元素都大于基准值,此过程称为分解。
//在分解完成后,充当界限的数组首元素可能需要和中间某元素对调。
//(3)排序两个子数组中元素。
因为基准值左边元素都小于基准值右边元素,所以将两个子数组分别排序后即使得整个数组有序。
#include<> #define N 10 void main() { void fun(int *,int,int); int i,a[N]; printf("please input array:"); for(i=0;i<N;i++) scanf("%d",&a[i]); fun(a,0,N-1); //调用fun 函数对数组排序 for(i=0;i<N;i++) printf("%3d",a[i]); printf("\n"); } void fun(int *p,int left,int right)
{ int i=left,j=right,middle,temp; middle=p[(left+right)/2]; //求中间值 while(i<=j) //如果两边扫描的下标交错,就停止 { while((p[i]<middle)&&(i<right)) //从左扫描大于中值的数 i++; while((p[j]>middle) && (j>left))//从右扫描小于中值的数
j--;
if(i<=j) //找到了一对值,交换
{
temp=p[j];
p[j]=p[i];
p[i]=temp;
i++;
j--;
}
}
if(left<j) //当左边部分有
值(left<j),递归左半边
fun(p,left,j);
if(right>i) //当右边部分有
值(right>i),递归右半边
fun(p,i,right);
}。