C语言实验一
- 格式:docx
- 大小:35.86 KB
- 文档页数:3
C语言实验报告范例
实验题目:C语言实现银行家算法
实验目的:掌握C语言实现银行家算法的基本思想,并能熟练应用矩阵处理实现银行
家算法的功能。
实验内容:
1. 利用C语言实现银行家算法的核心思想,利用矩阵处理实现其核心功能模块。
2. 银行家算法是一种负责实现“当前分配”的基于矩阵的编程模型。
该算法可以通
过利用安全状态来识别一次可行解,从而解决请求和分配资源的冲突问题。
3. 根据上述信息,我们设计了C语言实现银行家算法的基本框架,包括初始化步骤、可行性检查步骤、回滚步骤以及主步骤。
4. 在初始化步骤中,我们采用矩阵存储技术,将银行家算法中的各个参数保存起来,具体过程中采用数组存储。
5. 在可行性检查步骤中,我们判断当前系统状态是否处于安全状态,如果处于安全
状态,则继续完成下一步余额检查;否则,处理发生冲突时,回滚处理。
6. 在主步骤中,我们过程中判断若系统处于可行状态,则继续分配资源;否则,则
执行回滚操作,将系统恢复到上一状态。
实验结果和结论:
通过实验,我们学会了如何使用C语言来实现银行家算法,进而通过实现矩阵处理,
实现了该算法的核心功能模块。
此外,我们还学习了安全状态机制,进行系统可行性检查,和完成系统的分配工作,以达到有效地实现银行家算法的目的。
本次实验结论如下:
1. 通过C语言实现银行家算法中的核心功能模块,使系统的可行性检查得以有效实现;
2. 利用矩阵存储来实现系统的可行性检查,从而有效地节省时间和提高资源分配的
效率;
3. 通过回滚处理,有效地解决资源请求和分配冲突问题,使系统能够有效地实现安
全状态。
实验⼀熟悉C语⾔的开发环境和C程序的上机步骤实验⼀熟悉C语⾔的开发环境和C程序的上机步骤⼀、实验⽬的和要求:1. 了解C程序设计的编译系统,熟悉各菜单的功能,掌握在该系统上编辑、编译、连接和运⾏⼀个C程序的⽅法。
2. 通过调试、运⾏简单的C程序,初步了解C语⾔源程序的特点⼆、实验内容:1. 编写C程序,运⾏时输出:Hello world!。
#include <stdio.h> //这是编译预处理指令int main() //定义主函数{ //主函数体开始printf("Hello world\n"); //输出return 0; //返回函数值为0}2. 编写C程序,运⾏时输出以下图形:********************#include <stdio.h>int main(){printf("*****\n");printf(" *****\n");printf(" *****\n");printf(" *****\n");return 0;}3. 编写C程序实现:输⼊两个整数a、b,输出它们的和。
#include<stdio.h>int main(){int a,b;printf("请输⼊两个整数:a,b\n");scanf("%d%d", &a,&b);printf("%d\n",a+b);return 0;}4. 编写C程序实现:输⼊两个整数a、b,输出它们中的最⼤者。
#include<stdio.h>int main(){int a,b;printf("请输⼊两个整数:a,b\n");scanf("%d%d", &a,&b);printf("%d\n",a>b?a:b);return 0;}5. 编写C程序实现:求三个数中的最⼤者。
C语言实验题――大小写转换一、实验背景大小写转换是C语言中常见的操作之一,可以实现将字符串中的所有小写字母转换成大写字母,或者将所有大写字母转换成小写字母。
在本实验中,我们将通过编写C语言程序实现大小写转换的功能。
二、实验目的通过本实验,我们可以达到以下目的:1.熟悉C语言的基本语法和基本函数的使用。
2.掌握字符串的处理方法及大小写转换的逻辑。
3.提升编程能力和解决实际问题的能力。
三、实验内容1.大小写转换函数的设计首先,我们需要设计一个函数,用于实现大小写转换的功能。
函数的原型如下:v o id co nv er tC as e(c h ar*s tr);该函数接受一个字符串作为参数,将字符串中的所有小写字母转换成大写字母,或者将所有大写字母转换成小写字母。
2.主函数的编写接下来,我们需要编写主函数,完成以下操作:1.提示用户输入一个字符串。
2.调用大小写转换函数,将用户输入的字符串进行大小写转换。
3.输出转换后的字符串。
3.程序测试最后,我们需要对程序进行测试,检查是否正确实现了大小写转换的功能。
四、实验步骤1.在本地的C语言集成开发环境(I DE)中创建一个新的C文件。
2.编写大小写转换函数`c on ve rt Ca se`,实现大小写转换的逻辑。
3.编写主函数,完成用户输入、大小写转换和输出的功能代码。
4.编译并运行程序,进行测试。
五、实验代码示例#i nc lu de<s td io.h>v o id co nv er tC as e(c h ar*s tr){i n ti=0;w h il e(st r[i]!='\0'){i f(s tr[i]>='a'&&s t r[i]<='z'){s t r[i]=s tr[i]-32;//转换为大写字母}e ls ei f(st r[i]>='A'&&s tr[i]<='Z'){s t r[i]=s tr[i]+32;//转换为小写字母}i++;}}i n tm ai n(){c h ar st r[100];p r in tf("请输入一个字符串:");s c an f("%s",s tr);c o nv er tC as e(st r);p r in tf("转换后的字符串:%s\n",st r);r e tu rn0;}六、实验结果与分析通过以上代码,我们可以实现将输入的字符串进行大小写转换并输出转换后的结果。
实验一顺序程序设计【实验目的】1、熟悉C语言数据类型的概念,熟悉如何定义整型、字符型和实型变量2、掌握C语言中的算术运算符3、熟悉C语言表达式语句、空语句和复合语句4、能编写简单的顺序结构的程序【预习内容】1、C语言中类型定义的标志符int 、short、unsigned 、char、float 、double……2、C语言中的运算符所能实现的操作3、输入输出函数的调用语句getchar()、putchar()、scanf()、printf()【实验内容及步骤】1.上机改错题#include <stdio.h>int main(){ int a, b;scanf("%d%d", &a, &b);printf("%d\n", a/b); return 0;}程序纠错后,若从键盘输入15,4,则程序的运行结果为( 3)。
#include <stdio.h>int main(){ float r, s;scanf("%f",&r);s=3.14159*r*r;printf("%f\n", s); //s是float型,%d打印的是整形。
数据不一致会出错 return 0;}程序纠错后,若从键盘输入3.5,则程序的运行结果为( 38.484477)。
2.上机验证题int main(){ char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');return 0;}程序运行结果:( )int main(){ int x=10, y=3, z;printf("%d %d\n", x/y, x%y); return 0;}程序运行结果:( )int main(){ int sum=5, pad=5;pad = sum ++, pad ++, ++ pad; printf("%d\n", pad);return 0;}程序运行结果:( )int main(){short int n=65536;n++;printf("%d\n",n);return 0;}程序运行结果:( )3.上机编程题1、从键盘上任意输入三个整型数据a、b和c,要求将其交换输出a、b和c的值。
实验一:简单的C程序设计(2学时)一、实验方式:一人一机二、实验目的:1、了解C语言程序的编译环境和编写过程。
2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。
3、初步了解C语言程序的特点。
4、掌握C语言的数据类型。
三、实验内容:1、计算两个数x和y的和。
(教材P5【例1-2】)2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。
(实验教材P18)3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。
(实验教材P27)4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。
(实验教材P21)5、输入并运行以下程序,分析运行结果。
(实验教材P27)#include <stdio.h>void main( ){int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}四、实验程序代码:五、实验运行结果(截图):实验二:顺序结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、掌握标识符、常量、变量的定义及使用。
2、掌握C语言的常用运算符及表达式。
3、掌握单分支if语句的使用方法。
4、掌握双分支if-else语句的使用方法。
三、实验内容:1、从键盘输入一个3位整数,请输出该数的逆序数。
(实验教材P27)2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
(实验教材P27)3、判断箱子是正方体还是长方体。
(实验教材P33)4、有一函数: x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10) 编写程序,输入x值,输出y值。
计算机软件技术基础实验报告实验一:线性表的排序与查找一.实验内容a)键盘输入一组无序数据,添加到线性表中;b)排序线性表并输出排序结果;c)键盘输入一个数,并插入到排好序的线性表中(要求插入后的表仍为有序表),输出结果;d)键盘输入一个数,并从线性表中删除相应的数据,输出结果。
二,源程序// Experiment1。
cpp :定义控制台应用程序的入口点。
//#include "stdafx.h”#include "iostream”#include 〈conio。
h〉// 程序实现有各种方法,这里给出一个实例。
// 定义一个线性表const int nMaxSize = 15;// 最大值int nLen = 0; // 表中元素个数int nLinearList[nMaxSize];// 定义操作void LSort();void LOut();void LInsert(int n);void LDelete(int n);int main(int argc,TCHAR*argv[]){// 输入数据并放入线性表中printf(”Pleas e input data\n"); // std::cout 〈< "Please input data\n”;int nIn = 0;for (int i = 1; i <= 10;i++){scanf(”%d”,&nIn);// std::cin >〉nIn;nLinearList[i] = nIn;nLen++;}LSort();// 排序线性表LOut();// 输出结果printf(”Please input a data to i nsert \n”);scanf(”%d”,&nIn);LInsert(nIn);// 输入一个数字,并插入到线性表中LOut();printf(”Please input a data to delete \n");scanf("%d”,&nIn);LDelete(nIn);// 输入一个数字,并从线性表中删除LOut();char chTmp;printf(”Please input a char to finish this program.");chTmp = getch();return 0;}void LSort()// 冒泡排序,由大到小{int j,F,k,M;F=nLen;while(F〉0){k=F-1;F=0;for(j=1;j<=k;j++){if(nLinearList[j]〈nLinearList[j+1]){M=nLinearList[j];nLinearList[j]=nLinearList[j+1];nLinearList[j+1]=M;F=j;}}}}void LOut(){printf("\n”);for (int i = 1;i 〈= nLen;i++){printf( "%d, ", nLinearList[i]);}printf(”\n”);}void LInsert(int n){int i,j;i=1;while (i<nLen){ if(nLinearList[i]〈=n){nLen++;for(j=nLen;j>=i;j—-)nLinearList[j+1]=nLinearList[j];nLinearList[i]=n;break;}i++;}}void LDelete(int n){int i,j;for(i=1;i<=nLen;i++){if(nLinearList[i]==n){for(j=i;j〈=(nLen—1);j++)nLinearList[j]=nLinearList[j+1];nLen—-;break;}}}三运行结果实验2:栈与队列的应用一.实验内容a)键盘输入算数表达式,并放入队列当中;b)应用栈的概念设计表达式求值算法;输出表达式求值结果二.源程序// Experiment2。
-前言-/*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。
本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。
为回报度娘及众网友的帮助,本文档免费下载。
*//*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*//*努力吧,骚年以及学妹们!*//*整理ed by 口玉刀一 of GUET.*/=====================实验一 C语言程序初步=====================1.----------------------------已知a=5,b=4,c=6,求出s并换行#include"stdio.h"main(){int a,b,c,s;a=5;b=4;c=6;s=(a+b+c)/3;printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s);}2.-------------------------------输入一个数字求他的平方#include<stdio.h>main(){int r,s;scanf("%d",&r);s=r*r;printf("s=%d\n",s);}3.--------------------------------(1)#include<stdio.h>main(){printf(" *\n");printf("***\n");printf(" *\n");}(2)#include<stdio.h>{int v;int a,b,c; //a,b,c aer sides,v is volume of cubea=3;b=3;c=5;v=a*b*c;printf("v=%d\n",v);}=================================实验二数据类型、运算符和表达式=================================1.(1)--------------------------------------------------//总觉得打印结果怪怪的,DO YOU THINK SO?main(){char s1='3',s2='4',s3='5';int c1=101,c2=102;printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%cprintf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形 %ld 长整型 %hd短整型 %hu无符号整形 %u %lu%s:输入输出为字符串 %c字符%f:输入输出为浮点型 %lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型}(2)//运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算main(){float x=8.3,y=4.2,s;int a=7;s=x+a%5*(int)(x-y)%2/3;printf("s=%f",s);}main(){int i,j,p,q;i=3;j=6;p=i++;q=--j;printf("%d,%d,%d,%d\n",i,j,p,q);p=i--+3;q=++j-4;printf("%d,%d,%d,%d",i,j,p,q);}(4)main(){int m=15,n=9,s;m*=3+2;printf("%d",m);n+=n-=n*=n;printf("%d",n);printf("%d\n",(s=6*5,m+n+s));printf("%d\n",s);}2.---------------------------------------------------- (1)#include<stdio.h>#define MM 40main(){int a=3,b=6,t;t=MM/(3+6);printf("%d%d",t,MM);}//原来printf语句打成了print,printf语句中少了一个%d.(2)#include<stdio.h>{int m;double x;scanf("%d",&m);x=3.14*m*m;printf("%f",x);}//注意分号,%f转义(3)main(){int m=8,n=5;printf("%d",m*=m-n);printf("%d,%d,%d",m=m+1,n-1,m+n);}3.---------------------------------------------------- main(){int a=9,b=5;a+=b;b=a-b;a-=b;printf("%d%d",a,b);}4.---------------------------------------------------- //4.输入a,b,c三个变量,计算数学公式(a*b)/cmain(){int a,b,d;float s,c;scanf("%d%d%f",&a,&b,&c);d=a*b;s=d/c;printf("%f",s);}=================================实验三顺序结构和输入输出方法=================================1.---------------------------------------------------(1)main(){int m=345,t;float n=2.56;t=2.56*100;printf("m=%d,n*100=%d\n",m,t);}(2)main(){int a,b,c,s,v;scanf("%d%d%d",&a,&b,&c);s=a*b;v=a*b*c;printf("%d,%d,%d\n",a,b,c);printf("s=%d,v=%d\n",s,v);}2.----------------------------------------------------(1)main(){int m,n;float x=3.5,y=6.2;scanf("%d,%d",&m,&n);printf("%6d,%6d",m,n); /*每个数的输出宽度为6,两个数之间逗号建个。
⼤⼀C语⾔上机实验实验报告《C语⾔程序设计》实验报告指导教师纪良浩学院通信与信息⼯程专业通信类班级0101022 学号2010210722 姓名曾⼩兵实验室S319实验题⽬:实验⼀:⽤选择法对10个整数进⾏由⼤到⼩的排序实验⼆:判断闰年实验三:求1到100的和实验四:求π的近似值实验要求:1.掌握⽤C语⾔解决实际问题的步骤;2.掌握C语⾔的语法规则及算法的表⽰;3.通过上机实验,加深对《计算机程序设计基础》课程中基本概念的理解;4.提⾼对计算机程序的编写和应⽤能⼒;实验内容及步骤:1.问题的提出与分析;2.建⽴计算模型;3.算法的确定与表⽰;4.编写程序代码;5.调试程序;6.整理结果(实验结果及分析)。
具体实验步骤实验⼀:实验步骤1.问题的提出与分析⽤选择法对10个整数进⾏由⼤到⼩的排序。
2.确定数学模型a>b>c>d>e>f>j>h>i>k4.程序编码#includevoid main(){void sort(int x[ ],int n);int*p,i,a[10];p=a;for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++){printf("%d",* p);p++;} }void sort(int x[],int n){int i,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k]) k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}5.调试程序Enter dataa[1]=10↙a[2]=25↙a[3]=45↙a[4]=66↙a[5]=88↙a[6]=110↙a[7]=119↙a[8]=114↙a[9]=86↙a[10]=88610 25 45 66 88 110 119 114 86 886The sorted numbers:886 119 114 110 88 86 66 45 25 10 6.整理结果通过验算结果正确。
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
南京信息工程大学 实验(实习)报告
实验(实习)名称 C语言开发环境使用 日期 2019/10/9 得分 指导教师 李
含光
学院 电子与信息工程 专业 电子信息类 年级 2019 班次 1 姓名 陆君峰 学号
201883270168
1.实验目的
(1)熟悉C语言集成开发环境。
(2)掌握C语言程序的书写格式和C语言程序的结构。
(3)掌握C语言上机步骤,了解C程序的运行方法。
(4)能够熟练地掌握C语言程序的调试方法和步骤。
2.实验内容
输入如下程序,实现两个数的乘积。
#include
int main()
{
x=10,y=20
p=prodct(x,t)
printf("The product is : ",p)
int prodct(int a ,int b )
int c
c=a*b
return c
}
(1)在编辑状态下照原样输入上述程序。
(2)编译并运行上述程序,记下所给出的出错信息。
(3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。
3.实验步骤和实验结果
(1)修改后的程序
#include
#include
int main()
{ int product(int,int);
int x=10;
int y=20;
int p;
p=product(x,y);
printf("The product is :%d",p);
system("pause");
return 0;
}
int product(int a ,int b )
{ int c ;
c=a*b ;
return c ;
}
南京信息工程大学 实验(实习)报告
实验(实习)名称 C语言开发环境使用 日期 2019/10/9 得分 指导教师 李
含光
学院 电子与信息工程 专业 电子信息类 年级 2019 班次 1 姓名 陆君峰 学号
201883270168
(2)实验的结果
4.分析与讨论
#include
x=10,y=20----------------------x,y没有定义
p=prodct(x,t)-----------------t没有定义,prodct函数没有声明
printf("The product is : ",p)
-------缺少%d
int c
c=a*b
return c-------------------函数的定义部分缺少大括号
x=10,y=20
p=prodct(x,t)
printf("The product is : ",p)
int c
c=a*b
return c-------------------
整个程序缺少若干个分号
南京信息工程大学 实验(实习)报告
实验(实习)名称 C语言开发环境使用 日期 2019/10/9 得分 指导教师 李
含光
学院 电子与信息工程 专业 电子信息类 年级 2019 班次 1 姓名 陆君峰 学号
201883270168