c语言实验题目(新)

合集下载

c语言实验题目

c语言实验题目

实验3 顺序结构编程 (2)实验4 if分支结构编程 (3)实验5 if分支结构和switch分支结构编程 (5)实验6 分支结构嵌套和for循环编程练习 (10)实验7和while和do-while练习 (13)实验8 for循环嵌套练习 (16)实验9 函数设计编程练习 (19)实验10函数设计编程练习 (21)实验11 数组编程练习 (24)实验3 顺序结构编程实验题目1 输入两个整型数x,y,求x,y之和、差、积、x/y的商和余数提示: (1)定义整形变量变量int x,y;(2)和、差、积、商和求余数的运算符分别是+、-、*、/、%(3)输入两个整型数可以调用scanf()函数scanf("%d %d", &x,&y);实验题目2 按下列要求编写程序,对变量a,b,c进行unsigned int型说明,将65赋给a,66赋给b,67赋给c,对变量a,b,c用%c格式输出显示提示: (1)定义变量unsigned int a ,b,c;(2)字符型数据输出的格式控制符是%c(3)C语言中的赋值符号是=“65赋给a”表示为a = 65;实验题目3 输入三角形的三条边的边长,求三角形的面积从键盘输入三个整数,判断能否构成三角形的三边,如果能就计算输出三角形面积,按照下图给出的公式计算三角形的面积:s=(a+b+c)/2a,b,c代表三角形的三条边提示1、开根号的数学库函数是sqrt,例如y=sqrt(x),表示求变量x开根号,并把结果赋值给变量y。

2、调用数学库函数必须用如下命令#include <math.h>要求:(1)存储三角形三边的变量用double型(2)打印三角形面积时小数保留两位%.2lf实验题目4 已知半径r=3.4cm,编程求圆的周长和面积:提示: (1)定义浮点型变量使用关键字float;(2)浮点型数据输出的格式控制符是%f(3)C语言中没有∏这个符号,编写程序时直接使用3.14159。

C语言实训题及参考答案

C语言实训题及参考答案

C语言实训题及参考答案第一题:编写一个程序,将输入的两个整数进行加法运算,并输出结果。

参考答案:```c#include <stdio.h>int main() {int num1, num2, result;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);result = num1 + num2;printf("加法结果:%d", result);return 0;}```第二题:编写一个程序,判断输入的整数是否为偶数,并输出“是”或“否”。

参考答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("是");} else {printf("否");}return 0;}```第三题:编写一个程序,计算输入字符串的长度,并输出结果。

参考答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];int length;printf("请输入一个字符串:");scanf("%s", str);length = strlen(str);printf("字符串长度:%d", length);return 0;}```第四题:编写一个程序,将输入的字符串反转,并输出结果。

参考答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];int i, length;printf("请输入一个字符串:");scanf("%s", str);length = strlen(str);for (i = length - 1; i >= 0; i--) {printf("%c", str[i]);}return 0;}```第五题:编写一个程序,将输入的数组元素按从小到大的顺序排序,并输出结果。

C语言实验报告范例

C语言实验报告范例

C语言实验报告范例
实验题目:C语言实现银行家算法
实验目的:掌握C语言实现银行家算法的基本思想,并能熟练应用矩阵处理实现银行
家算法的功能。

实验内容:
1. 利用C语言实现银行家算法的核心思想,利用矩阵处理实现其核心功能模块。

2. 银行家算法是一种负责实现“当前分配”的基于矩阵的编程模型。

该算法可以通
过利用安全状态来识别一次可行解,从而解决请求和分配资源的冲突问题。

3. 根据上述信息,我们设计了C语言实现银行家算法的基本框架,包括初始化步骤、可行性检查步骤、回滚步骤以及主步骤。

4. 在初始化步骤中,我们采用矩阵存储技术,将银行家算法中的各个参数保存起来,具体过程中采用数组存储。

5. 在可行性检查步骤中,我们判断当前系统状态是否处于安全状态,如果处于安全
状态,则继续完成下一步余额检查;否则,处理发生冲突时,回滚处理。

6. 在主步骤中,我们过程中判断若系统处于可行状态,则继续分配资源;否则,则
执行回滚操作,将系统恢复到上一状态。

实验结果和结论:
通过实验,我们学会了如何使用C语言来实现银行家算法,进而通过实现矩阵处理,
实现了该算法的核心功能模块。

此外,我们还学习了安全状态机制,进行系统可行性检查,和完成系统的分配工作,以达到有效地实现银行家算法的目的。

本次实验结论如下:
1. 通过C语言实现银行家算法中的核心功能模块,使系统的可行性检查得以有效实现;
2. 利用矩阵存储来实现系统的可行性检查,从而有效地节省时间和提高资源分配的
效率;
3. 通过回滚处理,有效地解决资源请求和分配冲突问题,使系统能够有效地实现安
全状态。

C语言课后实验设计题目及答案

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语言程序设计实验精选报告含答案

注:在 Visual C++ 6.0 编译环境中亲身调试经过,但不保证在Turbo C 中经过。

实验二选择构造的程序设计(题目当初没抄下来,这是依据程序整理的)4 x 8 1 x 01. 编程实现分段函数210x 1 0 x 1y 3x8x4 3x2 2 x 1 1 x 2#include<stdio.h>main(){float x,y;printf("Please input x:");scanf("%f",&x);if (x<-1||x>=2)printf("Data Error\n");else{if (x>=-1&&x<0)y=4*x-8;if (x>=0&&x<1)y=3*x*x+10*x-1;if (x>=1&&x<2)y=8*x*x*x*x-3*x*x+2*x-1;printf("\ny=%f\n",y);}}2.苹果有三个等级,一级 5.50 元 /斤,二级3.00 元/ 斤,三级 2.50 元 /斤。

编写程序,输入苹果的等级,购置的数目和所付的钱数,输出等级,购置的数目、对付钱数和找零。

#include<stdio.h>main(){int level;double weight,pay,money,charge;printf("Please input the level:");scanf("%d",&level);printf("Please input the weight you want:");scanf("%lf",&weight);printf("Please input the money you pay:");scanf("%lf",&pay);if (level<1||level>4||weight<0)else{printf("Data Error\n");if (level==1)else if (level==2) else if (level==3) else if (level==4) charge=pay-money; money=weight*5.50; money=weight*4.20; money=weight*3.00; money=weight*2.50;printf("\nLevel:%d\nweight:%g\n",level,weight);printf("money:%g\ncharge:%g\n\n",money,charge);}}实验三循环构造1.编程计算 1!+2! +3! +4! +5 !分别用单层循环和双层循环实现1020i!和i !考虑i 1i 1#include<stdio.h>main(){int i,x;double j,k,sum;printf("Please input a number:");scanf("%d",&x);//用单层循环for(sum=0,j=1,i=1;i<=x;i++){j*=i;sum+=j;}printf("The result is %lf\n",sum);//用双层循环for(sum=0,i=1;i<=x;i++){for(k=1,j=1;j<=i;j++) k*=j;sum+=k;}printf("The result is %lf\n",sum);}2. 共 20 个评委给选手评分,去掉1 个最高分,去掉 1 个最低分,其余18 名评委的均匀分即选手最后得分#include <stdio.h>main(){double score,min,max,avg=0;int i;//下边是为了输入第一个数printf("Please input 20 scores...\n");printf("Score 1:");min=score;max=score;avg+=score;//下边为了输入节余 19 个数 for(i=2;i<=20;i++){do{printf("Score %d:",i);scanf("%lf",&score);}while(score<0);if(score>max) max=score;avg+=score;}avg=avg-min-max;avg/=18;printf("\nThe average score is %lf:\n",avg);}实验四数组和指针的应用1. 定义一个有 10 元素的一位数组 count,从键盘上输入 8 个整数,将其按从大到小的次序摆列,并将排序后的数组输出( 1)数组方法#include<stdio.h>main(){int count[10],t,i,j;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&count[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (count[i]<count[j]){t=count[i];count[i]=count[j];count[j]=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d",count[i]);}( 2)指针方法#include<stdio.h>main(){int count[10],t,i,j,*p=count;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&p[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (*(p+i)<*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d",count[i]);}2.输入 2 个字符串,将两者连结并输出,再将连结后的字符串反向摆列并输出,并求连结后字符串的长度#include<stdio.h>#include<string.h>main(){int i,len;char a1[51],a2[26],t[51];printf("Please input 2 strings:\n");gets(a1);gets(a2);strcat(a1,a2);printf("The joint string is: %s",a1);len=strlen(a1);printf("\nThe length of the linked string is: %d\n",len);for(i=0;i<len;i++)t[i]=a1[len-i-1];t[len]=0;strcpy(a1,t);printf("The reversed string is: %s\n",a1);}实验五函数应用的程序设计1.要求是:编写一函数,统计字符串中字母、数字、空格和其余字符的个数在主函数中输入字符串并输出统计结果值传递:#include<stdio.h>void fun(char a,int *b){if(a>='A'&&a<='Z'||a>='a'&&a<='z')b[0]++;else if(a>='0'&&a<='9')b[1]++;else if(a==32)b[2]++;else b[3]++;}main(){char a[50];int b[4],i,j,k;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);k=0;while(a[k]!=0){fun(a[k],b);k++;}printf("The string have %d letters, %d numbers, %d spaces, %d other chars\n",b[0],b[1],b[2],b[3]);}}地点传达:#include<stdio.h>void fun(char *a,int *b){int i=0;while(a[i] != 0){if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z')b[0]++;else if((a[i]>='0')&&(a[i]<='9'))b[1]++;elseif(a[i]==32)b[2]++;else b[3]++;i++;}}main(){char a[50];int b[4],i,j;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);fun(a,b);printf("\nThe string have %d letters, %d numbers, %dspaces, %d other chars",b[0],b[1],b[2],b[3]);}}。

c语言上机实验题及参考答案

c语言上机实验题及参考答案
4、编写程序,求1-3+5-7+...-99+101的值。(文件名为44.c。备注:程序运行结果为51,关于符号转换的问题可以参考教科书上的例6.6)
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}

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,输入格式:每个测试是一个3 位的正整数。

输出格式:输出按位逆序的数。

输入样例:输出样例:注意:当输入的数字含输出应该是7。

【参考答案】#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语言培训上机实验题目

C语言培训上机实验题目

安装Visual C ++6.0下载请从群里下载Microsoft Visual Studio.rar。

将下载的文件Microsoft Visual Studio.rar解压后即可使用。

请直接运行文件“Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE”实验一认识C语言【实验目的】1.熟悉C程序设计编程环境Visual C ++,掌握运行一个C程序设计的基本步骤,包括编辑、编译、连接和运行。

编辑:编写源程序文件.c编译:生成目标文件.obj连接:生成可执行文件.exe运行:执行.exe文件。

2.掌握C语言程序设计的基本框架,能够编写简单的C程序。

3.了解程序调试的思想,能找出并改正C程序中的语法错误。

【实验内容】1-1 在磁盘上新建一个文件夹,用于存放C程序,文件夹的名字可以是学号,如D:\3050888。

1-2 编程示例,在屏幕上显示一个短句“Hello World!”。

源程序# include <stdio.h>void main( ){printf("Hello World! \n");}运行结果Hello World!作为第一个实验,在Visual C++编程环境下,以上述C语言源程序为例,介绍运行一个C 程序的基本步骤,请读者按照以下步骤操作。

(1)启动VC++执行“开始”—>“程序”—>“Microsoft Visual Studio 6.0”—> “Microsoft Visual C++ 6.0”,进入VC++编程环境(如图1.1所示)。

图1.1 VC++窗口(2)新建文件执行“文件/File”—>“新建/New”,单击“文件/Files”选项卡(如图 1.2所示),先在“文件/File name”栏中输入test,把C源(程序)文件命名为test.cpp,在“目录/Location”框中选择你已经建立的文件夹,如,D:\3050888,然后选中“C++ Sourse Files”,单击“确定”按钮,在D:\3050888下就新建了文件test.cpp,并显示编辑窗口和信息窗口(如图1.3所示)。

C语言实验题——三个数排序

C语言实验题——三个数排序

C语言实验题——三个数排序第一篇:C语言实验题——三个数排序述:输入三个整数x,y,z,请把这三个数由小到大输出。

输入: 输入数据包含3个整数x,y,z,分别用逗号隔开。

输出:输出由小到大排序后的结果,用空格隔开。

样例输入2,1,3样例输出2 3#includeint main(){int *p1,p,*p2,*p3,a,b,c;scanf(“%d,%d,%d”,&a,&b,&c);p1=&a;p2=&b;p3=&c;if(*p1>*p2){p=*p1;*p1=*p2;*p2=p;}if(*p1>*p3){p=*p1;*p1=*p2;*p2=p;}if(*p2>*p3){p=*p2;*p2=*p3;*p3=p;}if(*p1>*p3){p=*p1;*p1=*p2;*p2=p;}if(*p2>*p3){p=*p2;*p2=*p3;*p3=p;}printf(“%d %d %dn”,a,b,c);return 0;}第二篇:《语言连贯:排序》教案海湾中学语文组《排序专项训练》教案一、学习目标:掌握句子排序的几种方法;灵活准确地解答各类排序题。

二、考点解读:排序即“排列正确的顺序”,就是要求语言具有“合理的语序”,也就是要求句间排列要合乎语法规范和语言表达习惯。

语段内部的句子排列次序是根据语言表达的需要进行的正确组合,这种组合具有不可随意更改的逻辑性。

三:中考回放(2007深圳中考题)请选出下列句子排序正确的一项()(2分)⑴他们对社会的发展做出了突出贡献,他们的事迹生动感人,广为流传。

⑵在人类历史的长河中,曾经出现过许多杰出人物。

⑶学习他们的精神,有利于我们的成长。

⑷他们中有叱咤风云的政治家,有决胜千里的军事家,有博学睿智的科学家……A ④③①②B ②④①③C ①②④③ 四:方法技巧:一般来说,语段的排序主要涉及到以下一些因素:①空间顺序:或从上到下,或从左到右,或从里到外。

C语言上机实验例题

C语言上机实验例题

实验一 C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2、了解在该系统上如何编辑、编译、连接和运行一个C程序。

3、通过运行简单的C程序,初步了解C源程序的特点。

4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、实验例题【例1】编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键入如下源文件。

敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c文件名改为任意文件名。

程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。

按回车键重新返回Turbo C的编辑环境。

注意,在运行程序之前最好先存盘。

【例2】输入并运行程序,写出运行结果。

main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运行方法同上,最后结果为:sum is 579。

【例3】输入并运行程序,写出运行结果。

main(){int a,b,c;int max(int,int);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}这个程序的功能是对于任意输入的两个整数,输出较大的那个数。

C语言编程实例100题

C语言编程实例100题

C语言程序实例100个(一)【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

?2.程序源代码:main(){int?i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/? for(j=1;j<5;j++)for?(k=1;k<5;k++){if?(i!=k&&i!=j&&j!=k)?/*确保i、j、k三位互不相同*/? printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long?int?i;int?bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*;bonus2=bonus1+100000*;bonus4=bonus2+200000*;bonus6=bonus4+200000*;bonus10=bonus6+400000*;if(i<=100000)bonus=i*;else?if(i<=200000)bonus=bonus1+(i-100000)*;else?if(i<=400000)bonus=bonus2+(i-200000)*;else?if(i<=600000)bonus=bonus4+(i-400000)*;else?if(i<=1000000)bonus=bonus6+(i-600000)*;elsebonus=bonus10+(i-1000000)*;printf("bonus=%d",bonus);}?==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

C语言程序设计综合实训题目

C语言程序设计综合实训题目

一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号, 姓名, 年龄, 性别, 出生年月, 政治面貌, 籍贯, 家庭住址, 电话, E-mail等。

试设计一学生信息管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序, 可以按学号, 按姓名, 按性别, 按出生年月日, 按籍贯进行查询(5)信息统计a) 可以按性别, 按出生年, 按籍贯统计学生人数b) 可以按班级统计学生人数c) 可以按政治面貌统计学生人数按班级统计学生党员人数, 团员人数, 以及所占比例, 设计并输出统计报表。

(6)学生信息的删除与修改●设计要求:●界面比较美观;有一定的容错能力, 比如输入的成绩不在0~100之间, 就提示不合法, 要求重新输入;●最好用链表的方式实现。

算法分析:首先, 一个学生包括这么多的属性, 应该考虑定义一个结构, 其次, 我们应该考虑数据的存储形式:是定义一个数组来存储, 还是定义一个链表呢?在这里假如我们以数组的方式来存储, 当然可以, 但是我们知道, 假如我们定义一个数组的话, 我们首先必须知道学生人数大概是多少, 以便我们确定数组的大小, 但是题目中没有给出, 而且题目要求中有大量的删除、插入操作, 所以用链表的方式比较方便。

对于菜单的实现, 其实也比较简单, 首先我们用printf语句把程序的功能列出来, 然后等待用户输入而执行不同的函数, 执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

(2)、学生综合测评系统每个学生的信息为: 学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%。

C语言程序设计实验二

C语言程序设计实验二

C语言程序设计实验(二)[实验1]1.实验题目下列各题的算法用传统流程图及N-S流程图两种方式表示:(1)输出图形(顺序结构)★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★(2)判断用户输入的字符是数字字符、字母字符还是其它字符。

(选择结构)(3)运用循环结构打印如下图形(for循环结构)。

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆(4)输入任意数N,求P的值(P=N!)(当型循环结构)(5)输出1~N间20个不能被3整除的数列(直到型循环结构)(6)计算并打印九九表。

(直到型循环结构)2.实验目标(1)熟练掌握流程图表示算法的方法。

(2)熟练掌握结构化程序设计的三种基本结构。

[实验2]变量的变化情况。

1.实验题目有以下程序#include<stdio.h>#define a 3*2+1#define A a*a+a#define b (3*2+1)#define B (b)*(b)+(b)main(){int x1,x2;int y1,y2;x1=a*a;y1=A*A;x2=b*b;y2=B*B; //换为y2=(A)*(A) 结果是否相同printf("x=%d \t\ty=%d\n",x1,y1);printf("x=%d\t\ty=%d\n",x2,y2);}用逐行断点测试方法,体会程序运行时各变量值的变化情况。

2.实验要求(1)在上机实验之前先将每执行一条语句后变量x1、x2和y1、y2的预期结果写在相应语句旁。

(2)设置4个监视项x1、x2和y1、y2,断点逐行测试执行程序。

(3)每执行一条语句后,对比Watch窗口中变量x1、x2和y1、y2的值与预期的值是否一致,若不一致,请解释原因。

(4)将语句“y2=B*B;”换为“y2=(A)*(A)”,测试结果是否相同,为什么?(5)运行结束后查看输出结果,确认该结果是否与预期的值一致。

C语言实验题及参考答案

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语言课程设计新颖题目

c语言课程设计新颖题目

c语言课程设计新颖题目一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力和良好的编程习惯。

具体分解为以下三个方面的目标:1.知识目标:(1)掌握C语言的基本语法和关键字;(2)理解数据类型、运算符和表达式;(3)熟悉函数、数组、指针、字符串、结构体等数据结构;(4)掌握基本的输入输出、文件操作和动态内存分配;(5)了解常用算法和编程思想。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备调试和排查程序错误的能力;(3)掌握基本的算法分析和设计方法;(4)能够独立完成中等难度的编程任务。

3.情感态度价值观目标:(1)培养学生的团队合作意识和沟通能力;(2)增强学生解决问题和创新的能力;(3)培养学生具有良好的编程习惯和职业道德。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.C语言基本语法和关键字;2.数据类型、运算符和表达式;3.函数、数组、指针、字符串、结构体等数据结构;4.输入输出、文件操作和动态内存分配;5.常用算法和编程思想;6.编程实践和案例分析。

三、教学方法为了达到教学目标,本课程将采用以下教学方法:1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和数据结构;2.讨论法:鼓励学生参与课堂讨论,培养团队合作意识和沟通能力;3.案例分析法:分析实际编程案例,使学生了解编程思想和方法;4.实验法:上机实验,让学生动手编写程序,提高编程能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:PPT课件、编程案例视频等;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

C语言实验题

C语言实验题
printf("%c",a[i]);}
return 0;
}
矩阵转置
题目描述:输入N*N的矩阵,输出它的转置矩阵。
输入:第一行为整数N(1≤N≤100)。
接着是一个N*N的矩阵。
输出:转置矩阵。
样例输入:2
1 2
1 2
样例输出:1 1
2 2
代码:#include<stdio.h>
int main()
{int a[100][100];
输入:输入三边a、b、c
输出:输出面积,保留3位小数。
样例输入:1 2 2.5
样例输出:0.950
代码:int main()
{
float f,c;
scanf("%f",&f);
c=5*(f-32)/9;
printf("%.2f",c);
return 0;
}
一元二次方程
题目描述:解一元二次方程ax2+bx+c=0的解。
scanf("%d",&a[i][j]);}
for(i=0;i<n;i++)
{for(j=0;j<=i;j++)
s=s+a[i][j];}printf("%d",s);return 0;
}
单词统计
题目描述:从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。
输入:输入只有一行句子。仅有空格和英文字母构成。
输出:输出数据只有一个,即摄氏温度,保留2位小数。
样例输入:32.0
样例输出:0.00

C语言 实验

C语言 实验

2.2.1 实验1:熟悉上机环境和顺序结构编程练习1. 键盘输入与屏幕输出练习问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的。

#include <stdio.h>main(){char a,b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);}A)1 2 34 B)1, 2, 34C)’1’,’2’,34D)12 34问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改?问题3 要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?问题4 要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改?[提示:利用转义字符输出字符单引号字符。

]问题5 要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果都为'1', '2',34,则程序应修改程序中的哪条语句?怎样修改?第1种输入方式:1,2,34↙(以逗号作为分隔符)第2种输入方式:1 2 34↙(以空格作为分隔符)第3种输入方式:1 2 34↙(以Tab键作为分隔符)第4种输入方式:1↙2↙34↙(以回车符作为分隔符)2. 计算定期存款本利之和设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。

要求定期存款的年利率rate、存款期n和存款本金capital 均由键盘输入。

c语言程序设计实验题目

c语言程序设计实验题目

c语言程序设计实验题目标题:学生成绩管理系统介绍:学生成绩管理系统是一款基于C语言开发的学生信息管理系统。

通过该系统,管理员可以方便地管理学生成绩和学生信息,并提供查询、修改、删除和添加学生信息的功能,以及成绩统计、报表生成等功能。

该系统可以有效地提高学校教学管理的效率,简化繁琐的手工数据管理。

设计思路和功能:1. 学生基本信息管理- 学生信息包括学号、姓名、性别、年龄、班级等信息。

- 管理员可以通过菜单选择进行查询、修改、删除和添加学生信息的操作。

- 管理员可以查看所有学生的信息,也可以按照学号或姓名进行搜索。

2. 学生成绩管理- 学生成绩包括各科目的考试成绩和综合评价等信息。

- 管理员可以通过菜单选择进行查询、修改和删除学生成绩的操作。

- 管理员可以按照学号或姓名查询学生的成绩,并可以对成绩进行修改和删除操作。

3. 成绩统计和排序- 管理员可以对所有学生的成绩进行统计,包括总分、平均分、最高分、最低分等。

- 管理员可以按照总分、平均分等指标对学生进行排序。

4. 报表生成- 系统可以生成各种报表,如班级成绩单、学生成绩排名表等,方便管理员进行教学管理。

- 报表可以以文本文件或Excel表格的形式保存,方便打印和分享。

5. 导入和导出数据- 系统可以支持导入和导出学生基本信息和成绩数据,方便与其他系统进行数据交互。

6. 用户权限管理- 系统支持用户登录和权限管理,管理员可以设置不同的角色和权限。

设计实现:1. 数据结构设计- 使用结构体存储学生信息,包括学号、姓名、性别、年龄、班级等字段。

- 使用数组或链表存储学生信息和成绩数据。

2. 菜单设计- 使用菜单实现对学生信息和成绩的操作,提供查询、修改、删除和添加的选项。

3. 文件读写操作- 使用文件读写函数实现数据的导入和导出功能,可以使用文本文件或二进制文件进行存储和读取。

4. 排序算法实现- 使用冒泡排序、快速排序等算法对学生成绩进行排序,实现成绩的统计和排名功能。

c语言实验一

c语言实验一

实验一:熟悉Turbo C运行环境【目的与要求】1、了解TC环境下C语言的运行环境,熟悉编译系统的操作环境。

2、了解在该系统上如何编辑和运行一个C程序。

3、通过运行简单的C程序,初步了解运行C语言程序的操作过程。

【实验内容】1、题目:由键盘输入两个整数,计算并输出两个数之和。

2、程序代码:#include “stdio.h”void main(){int a,b,sum;printf(“Please input two integer numbers:\n”);scanf(“%d%d”,&a,&b);sum=a+b;printf(“%d+%d=%d”,a,b,sum);}3、具体操作:(1)输入程序,按Ctrl+F9。

若在运行后有词法或语法错误,则根据提示进行修改,再进行调试,直到没有语法错误。

(2)运行后,依下列不同的方式输入数据,查看程序执行结果。

① 12<Spacebar>34 ↙② 12 ↙34 ↙③ 12<Tab>34 ↙【实验分析与讨论】1、总结C程序的基本结构和书写规则。

2、分析调试过程中常见的错误提示和解决策略。

3、掌握调试过程中问题解决的方法和思路【DIY】一、改错:实现求三个数的平均值。

#include <stdio.h>void main(){ float a,b,c,sum;float average;a=10; b=20; c=35;average==sum/3;printf(“the average is %4d”,average);}二、填空:实现从键盘中读取两个浮点型数据,相乘之后输出结果,要求结果须保留4位小数。

#include“stdio.h”void main(){ ___1___ a,b,c;printf(“please enter two numbers”); scanf(“%f%f”,&a,&b);c=___2___;printf(“c=___3___”,c);}三、编程1、编写程序,实现对两个整数进行四则运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:基本数据类型和结构化程序设计实验目的:1、熟悉编译软件vc++或tc;掌握编辑、编译、连接、调试和运行一个c语言程序。

2、通过运行简单的c语言程序,学习c语言程序的顺序结构、选择结构和循环结构的特点。

3、掌握c语言中的库函数的使用。

第1节(2学时)实验内容:顺序结构:1、求任意两数之和。

2、以下程序的输出结果为:main(){ int a=4,b=7;printf(“%d\n”,(a=a+1,b+a,b+1));}3、编程求)y+=。

要求a和x从键盘输ax+ln(a)sin(x入。

当a=6.4,x=3.4时,求y的值。

(必做)4、编程求ax2+bx+c=0的解。

若a=2.5,b=9.4,c=4.3,则输出结果为?(只考虑有实根的情况)②选择结构:从键盘任意输入0----100之间的整数作为学生的成绩,要求根据以下的条件判断并输出等级。

大于等于90,小于等于100: A 等大于等于70,小于等于89: B 等大于等于60,小于等于69: C 等小于60 : D 等要求:1、分别用单分支if语句、多分支if语句(或if语句的嵌套)、switch语句分别实现。

(必做)2、如果输入成绩为实数,应如何修改源程序。

③课外练习题:1、若x、i、j和k都是int型变量,计算下面表达式后,x的值为()x=(i=4,j=16,k=32)A)4 B)16 C)32 D)522、有以下程序,程序运行后的输出结果是。

main( ){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 33、下面程序的输出结果是main(){int x=2,y=-1,z=2;if(x<y)if(y<0)z=0;else z=-1+x;printf(“%d\n”z);}A) 3 B) 2 C) 1 D)04、下列程序段中,有错误的行是()列定行号 int x=0,y=10;2 switch(x)3 { case 3:4 case –1:y=y-2;break;5 case y+1:x+=5;6 default:printf(“%d,%d”,x,y);}A) 4 B) 3 C) 5 D)无错误第2节(2学时)实验内容:①: 1+2+3+4+……+n (必做)要求:1、用while语句实现。

2、用do----while语句实现3、用for语句实现。

②: 1!+2!+………+n!要求:1、用while语句实现。

2、用do----while语句实现3、用for语句实现。

③:编写程序,按下列公式计算e的值:(精度为1e-6)e=1+1/1!+1/2!+1/3!+……+1/n!④:从键盘输入一个正整数n,计算该数的各位数字之和并输出。

例如:输入为5246,则计算5+2+4+6=17并输出。

⑤:课外练习题1、若i为整型变量,则以下循环执行次数是()。

#include"stdio.h"void main(){ int i;for(i=2;i==0; )printf("%d",i--); }A) 无限次 B)0次 C) 1次 D) 2 次2、以下描述正确的是()A)continue语句的作用,是结束整个循环语句的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)多层循环嵌套中不可以使用break语句3、下面程序的输出结果是()#include <stdio.h>void main(){ int i,j,x=0;for(i=0;i<=2;i++){ x++;for(j=0;j<=2;j++){ if(j%2)continue; x ++;}x ++; }printf("%d\n",x); }A)4 B)6 C)8 D)124、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()int a[10];for(i=0;i<=9;i++) scanf(“%d”, );A) a B) &a[i] C) a[i] D) &a[0]5、下列程序的输出结果为()#include “stdio.h”main( ){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1) { b+=3;continue;}b+=5; }printf(“%d, %d”, a, b); }A) 8,20 B) 8,22 C) 7,20 D) 7,226、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main( ){ int n,k;float score ,sum,ave;sum=0.0;for(n=1;n<=10;n++){ for(k=1;k<=4;k++){ scanf(“%f”,&sc ore); sum+=score;}ave=sum/4.0;printf(“NO%d:%f\n”,n,ave); }}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。

这条语句是()A) sum=0.0; B) sum+=score;C) ave=sun/4.0; D) printf(“NO%d:%f\n”,n,ave);实验二:构造型数据类型和模块化程序设计第1节(2学时)实验内容:①:用冒泡法把10个数排序并按要求输出。

(必做) 1)从大到小 2)从小到大②:对于二维数组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321,1)求元素中最大、最小值。

2)求各行元素之和。

3)求各列元素之和。

4)求主对角线元素之和。

5)输出该数组的下三角阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987541。

(必做)③:改正下列程序的语法错误,写出程序的执行结果,并总结程序的功能。

main( ){ int i, j, temp, d[4][4]={1,2,3,4,5,6,7,8,4,3,2,1,1,2,3,4,}; for(i=0;i<4;i++) for(j=0;j<4;j++)if(d[i][j]>d[j][i]) d[j][i]=d[i][j]; for(i=0;i<4;i++) { printf("\n");for(j=0;j<4;j++)if(j>=i) printf("%6d",d[i][j]); else printf("%6c",' '); } }④:程序填空。

在 处填写合适的语句,完善下列程序。

从键盘输入一个数,将其插入到一个升序数组中,保持数组任然按升序排列。

main( ){ int data, k, temp, a[9]={-10,2,4,8,10,15,25,50};printf("\nEnter a data:");scanf("%d",&data);;for(k=8; ;k--)if(a[k]<a[k-1]){ ; a[k]=a[k-1];a[k-1]=temp;}else ;for(k=0; ;k++)printf("%7d",a[k]);}⑤:课外练习题1、以下对二维数组进行正确初始化的是()。

A)int a[2][3]={{1,2},{3,4},{5,6}};B)int a[][3]={1,2,3,4,5,6};C)int a[2][]={1,2,3,4,5,6};D)int a[2][]={{1,2},{3,4}};“int a[3][4];”,则对数组元素的正确引用格式是()2、若有说明语句:A)a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1)3、定义数组a和b的语句是:char a[ ]=“ABCDEF”;char b[ ]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};则以下叙述正确的是()A)a和b数组完全相同 B)a与b数组元素个数相同C)a和b中都存放字符串 D)a数组比b数组元素个数多4、有以下程序#include "stdio.h"void main(){int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++)s+=a[i][i];printf("%d\n",s);}程序运行后的输出结果是程序的功能为5、以下程序运行后的输出结果是#include <stdio.h>void main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]); }6、有以下程序,则程序运行后的输出结果是()main( ){ int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p ;for(p=&a[9];p>=a;p--)printf("%d,",*p); }A)0 1 2 3 4 5 6 7 8 9B)2,3,4,5,6,7,8,9,10,1C)0,1,2,3,4,5,6,7,8, 9,D)9,8,7,6,5,4,3,2,1, 0,第2节(2学时)实验内容:①:运行以下程序:(必做)main( ){ long y, n,;long f1(long n);scanf(“%ld”,&n);y=f1(n);printf(“%ld\n”,y); }long f1(long n){ long x=1,i;for(i=1;i<=n;i++)x*=i;return x; }1、问以上程序的功能是什么?2、把F1函数用递归实现。

3、如果实现以下功能:1!+2!+………+n!问以上参考程序如何改写?②:课外练习题1、以下说法中正确的是()A) C语言程序总是从第一个的函数开始执行B) C语言程序总是从main()函数开始执行C)在C语言程序中,要调用的函数必须在main()函数中定义D) C语言程序中的main()函数必须放在程序的开始部分2、有以下函数定义:void fun(int n, double x){ …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()A)fun(int y,double m); B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);3、在C语言中,若对函数类型未加说明,则函数的隐含类型为类型。

相关文档
最新文档