c语言实验报告 (2)
c语言第二次实验报告

c语言第二次实验报告摘要:本次实验主要是关于C语言的指针和数组的实验。
通过这次实验,我对C语言的指针和数组有了更深入的理解和应用能力。
一、实验要求:1.编写一个程序,实现对10个整数的输入、输出、求和、求平均数等操作。
2.编写一个程序,实现对10个学生的成绩进行排序并输出。
二、实验过程及结果:1.程序一:对10个整数进行输入、输出、求和、求平均数等操作。
步骤:(1)定义整型数组a[10],用for循环对其进行输入。
(2)定义sum变量并用for循环对数组元素进行求和运算。
(3)定义double类型的avg变量,计算数组元素的平均数。
(4)输出数组元素和平均数。
结果:输入10个整数:1 2 3 4 5 6 7 8 9 1010个数字的和为:5510个数字的平均数为:5.502.程序二:对10名学生的成绩进行排序并输出。
步骤:(1)定义数组grade[10],用for循环进行输入。
(2)用冒泡排序法进行排序。
(3)用for循环进行打印输出操作。
结果:输入10名学生的成绩:99 60 88 72 65 92 78 84 70 95排序后的成绩为:60 65 70 72 78 84 88 92 95 99三、实验总结:通过本次实验,我深刻认识到指针和数组对于C语言程序设计的重要性。
指针和数组是C语言中非常重要的概念,其掌握程度直接影响着程序的设计和效率。
在实验过程中,我充分体会到了C语言指针和数组的使用方法,并加深了其中的应用技巧。
在以后的编程过程中,我会更加熟练的使用指针和数组,努力提高自己的编程能力,为今后的学习和工作打下坚实的基础。
C语言综合实验2报告_

C语言综合实验2报告_实验名称小型学生信息管理系统实验项目编写一学生信息管理系统,用来管理学生基本信息及成绩信息专业班级姓名学号指导教师成绩日期一、试验目的本实验为学生提供了一个既动手又动脑,上机实践的机会。
学生通过分析和解决该实验,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生编写综合系统程序的能力。
二、实验内容编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。
系统功能模块如下图:显示主菜单数据输入数据修改数据输出退出数据处理查询排序统计平均分不及格科目具体要求为:1. 建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩;2. 数据输入:输入学生的各项信息;3. 数据修改:根据输入学生的学号可以选择修改该学生的信息;4. 数据处理:可以选择处理方式为:排序、查询、统计。
其中:a) 排序:按学号排序b) 查询:根据学号查询成绩c) 统计:可以选择统计各学生的平均成绩或统计所有存在不及格科目的学生;5. 数据输出:输出学生的相应结果信息;三、程序组织结构图、函数调用关系图main( ) if(choice==4) if(choice==3) if(choice==2) if(choice==1) if(choice==5) switch(choice) switch(choice) switch(choice) switch(choice) switch(choice) main():程序的总体控制if(choice==1):输入数据if(choice==2):修改数据if(choice==3):处理数据switch(choice):数据处理项目的选择;统计平均分、统计不合格学生if(choice==4):输出数据if(choice==4):退出系统四、程序清单#includestdio.h int sum=0; struct student { int num; char name; char sex; int classes; float fenshu1; float fenshu2; float fenshu3; }stu; struct student temp; void main() { int a=1,choice; do { printf(“*****************************************\n“); printf(“ 1:输入数据2:修改数据3:处理数据\n“); printf(“ 4:输出数据5:退出系统\n“); printf(“*****************************************\n“); printf(“请选择具体的统计内容1~5 scanf(“%d“,choice); if(choice!=1choice!=2choice!=3choice!=4choice!=5) printf(“输入错误\n“); if(choice==5) { printf(“谢谢使用\n“);break; } else { switch(choice) { case 1: { int a; for(a=0;aa++) { printf(“请输入第%d学生的学号输入0结束:“,a+1); scanf(“%d“,stu[a].num); if(stu[a].num==0) break; printf(“请输入第%d学生的姓名:“,a+1); scanf(“%s“,stu[a].name); printf(“请输入第%d学生的性别:“,a+1); scanf(“%s“,stu[a].sex); printf(“请输入第%d学生的班级:“,a+1); scanf(“%d“,stu[a].classes); printf(“请输入第%d学生的语文成绩:“,a+1); scanf(“%f“,stu[a].fenshu1); printf(“请输入第%d学生的数学成绩:“,a+1); scanf(“%f“,stu[a].fenshu2); printf(“请输入第%d学生的英语成绩:“,a+1); scanf(“%f“,stu[a].fenshu3); sum=a+1; } } printf(“\n“); break; case 2: { int a,number1,number2,number3=0,flag=0; printf(“请输入需要修改信息的学生的学号:“); scanf(“%d“,number1); printf(“\n“); for(a=0;aa++) { if(number1==stu[a].num) { number3++; printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~\n“); printf(“1.学号 2.姓名 3.性别 4.班级\n“); printf(“5.语文成绩 6.数学成绩7.英语成绩8.退出修改\n“); printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n“); printf(“请选择需要进行的操作1~8 scanf(“%d“,number2); switch(number2) { case 1:printf(“请输入该学生的新学号:“); scanf(“%d“,stu[a].num); break; case 2:printf(“请输入该学生的新姓名:“); scanf(“%s“,stu[a].name); break; case 3:printf(“请输入该学生的新性别:“); scanf(“%s“,stu[a].sex); break; case 4:printf(“请输入该学生的新班级:“); scanf(“%d“,stu[a].classes); break; case 5:printf(“请输入该学生的新语文成绩:“); scanf(“%f“,stu[a].fenshu1); break; case 6:printf(“请输入该学生的新数学成绩:“); scanf(“%f“,stu[a].fenshu2); break; case 7:printf(“请输入该学生的新英语成绩:“); scanf(“%f“,stu[a].fenshu3); break; case 8:break; } printf(“\n“); printf(“修改后该学生的信息为:\n“); printf(“学号姓名性别班级语文数学英语\n“); printf(“-----------------------------------------------------------------\n“); printf(“%-9d%-10s%-9s%-9d%-9.1f%-9.1f%-9.1f\n“,stu[a].num,stu[a].name,stu[a].sex,stu[a].classes,stu[a].fenshu1,stu[a].fenshu2,stu[a].fenshu3); flag=1; break; } if(flag=0) { printf(“无该学号学生记录!\n“); break; } } } printf(“\n“); break; case 3: { printf(“\n“); int a,number1,number2,i,j,index=1;printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n“); printf(“1:按学号排序2:查询\n“); printf(“3:统计4:返回主菜单\n“); printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n“); printf(“请选择具体的处理内容1~3 scanf(“%d“,number1); switch(number1) { case 1: { printf(“排序后结果:\n“); printf(“学号姓名性别班级语文数学英语\n“); printf(“-----------------------------------------------------------------\n“); for(j=1;j=sum;j++) for(i=0;isum-j;i++) if(stu[i].numstu[i+1].num) { temp=stu[i]; stu[i]=stu[i+1]; stu[i+1]=temp; } for(a=0;aa++)printf(“%-9d%-9s%-9s%-9d%-9.1f%-9.1f%-9.1f\n“,stu[a].num,stu[a].name,stu[a].sex,stu[a].classes,stu[a].fenshu1,stu[a].fenshu2,stu[a].fensh u3); break; } case 2: { printf(“请输入要查询的学生的学号:“); scanf(“%d“,number2); printf(“\n“); for(a=0;aa++) if(number2==stu[a].num) { printf(“学号姓名性别班级语文数学英语\n“); printf(“-----------------------------------------------------------------\n“); printf(“%-9d%-9s%-9s%-9d%-9.1f%-9.1f%-9.1f\n“,stu[a].num,stu[a].name, stu[a].sex,stu[a].classes,stu[a].fenshu1,stu[a].fenshu2,stu[a].fensh u3); } break; } case 3: { int choice,a; printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~\n“); printf(“1:统计平均分2:统计不及格学生信息3:返回\n“); printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~\n“); printf(“请再选择具体的统计内容1~3 scanf(“%d“,choice); switch(choice) { case 1: { printf(“所有学生的平均成绩是:\n“); printf(“学号姓名平均\n“); printf(“------------------------\n“); for(a=0;aa++) printf(“%-9d%-9s%-9.1f%\n“,stu[a].num,stu[a].name,((stu[a].fenshu1+stu[a].fenshu2+stu[a].fenshu3)/3)); break; } case 2: printf(“有不及格科目的学生是:\n“); printf(“学号姓名性别班级语文数学英语\n“); printf(“-----------------------------------------------------------------\n“); for(a=1;a=sum;a++)if(stu[a].fenshu160||stu[a].fenshu260||stu[a].fenshu360) printf(“%-9d%-9s%-9s%-9d%-9.1f%-9.1f%-9.1f\n“,stu[a].num,stu[a].name, stu[a].sex,stu[a].classes,stu[a].fenshu1,stu[a].fenshu2,stu[a].fensh u3); break; case 3: break; } } break; case 4: break; } } printf(“\n“);break; case 4: { int a; printf(“\n“); printf(“学号姓名性别班级语文数学英语\n“); printf(“-----------------------------------------------------------------\n“); for(a=0;aa++) printf(“%-9d%-9s%-9s%-9d%-9.1f%-9.1f%-9.1f\n“,stu[a].num,stu[a].name,stu[a].sex,stu[a].classes,stu[a].fenshu1,stu[a].fenshu2,stu[a].fenshu3); } printf(“\n“); break; } } }while(1); } 五、运行结果六、实验总结(调试分析和体会)调试分析:在编写这个实验源程序的过程中遇到了不少问题。
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C语言实训报告2

C语言实训报告2C语言实训报告2一、实训概述本次实训是为了提高学生的C语言编程实践能力,培养学生解决实际问题的能力。
通过本次实训,学生可以熟悉C语言的基本语法和常用的控制结构,掌握C语言程序设计的基本思想和方法,提高编程实践的能力。
二、实训目标1.掌握基本的C语言语法和常用的控制结构;2.培养学生解决实际问题的能力;3.加强学生的编程实践能力。
三、实训步骤1.学习基本的C语言语法和常用的控制结构;2.编写实际问题的C语言程序;3.调试程序并运行;四、实训过程本次实训采用了以下步骤:1.阅读并理解实训要求及题目要求;2.熟悉C语言基本语法和常用控制结构;3.分析问题,设计算法;4.根据算法,编写C语言程序;5.调试并运行程序,测试算法的正确性;6.优化程序的性能,并进行汇总分析;7.进行报告撰写。
五、实训成果本次实训中,我根据题目要求,设计了一系列的C语言程序,包括求解阶乘、斐波那契数列等实际问题。
通过编写这些程序,我深入理解了C 语言的语法和控制结构,并提高了自己的编程实践能力。
六、实训反思通过本次实训,我进一步加深了对C语言的理解与熟练程度。
在编写程序的过程中,我遇到了一些问题,如编译错误、逻辑错误等,但我通过调试和分析,解决了这些问题。
此外,我在实践中也发现了自己的不足之处,如对一些语法的理解还不够深入,需要进一步学习和实践。
在今后的学习中,我会继续提高自己的C语言编程实践能力,不断深化对C语言的理解。
同时,我也会加强对其他编程语言的学习,以提升自己的综合编程能力。
七、总结通过本次实训,我掌握了C语言的基本语法和常用的控制结构,提高了自己的编程实践能力。
在实践中,我不仅学会了如何分析问题,设计算法,还学会了调试程序,优化性能。
这些都对我今后的学习和工作具有重要意义。
我将继续深入学习C语言,提高自己的编程能力。
同时,我也希望能够通过实践,学习更多的编程语言,不断提升自己的综合编程能力。
总之,本次实训对我来说是一次很有意义的经历。
c语言程序设计实验报告

c语言程序设计实验报告一、实验目的本次实验旨在通过设计C语言程序来加深对于C语言的理解和掌握,同时也可以掌握一些实用的编程技巧和方法。
通过编写程序实现对于输入输出的处理、循环语句和条件语句的运用以及函数调用等内容的练习。
二、实验内容本次实验涉及以下三个方面的内容:1. 程序的的输入输出我们通过编写程序来实现一个简单的输入输出功能,即用户输入任意一个整数,程序输出该整数的两倍。
2. 循环语句和条件语句的运用我们通过编写程序来实现以下两个功能:(1)输入一个正整数,计算该数的阶乘。
(2)输入一个正整数n,输出n行的杨辉三角形。
3. 函数调用我们通过编写程序来实现以下两个功能:(1)输入三个整数a、b和c,求其中最大的一个数。
(2)输入一个字符串,程序输出该字符串中每个字母在字符串中出现的次数。
三、实验过程1. 程序的输入输出我们通过使用scanf函数来实现输入一个整数的功能:int n;scanf("%d", &n);然后我们可以通过printf函数来输出该整数的两倍的值:printf("%d", n*2);2. 循环语句和条件语句的运用(1)计算阶乘我们可以利用for循环语句来实现计算阶乘的功能:long long ans = 1;for(int i = 1; i <= n; i ++){ans *= i;}printf("%lld", ans);(2)输出杨辉三角我们可以利用嵌套的for循环语句来实现输出杨辉三角的功能:for(int i = 1; i <= n; i ++){for(int j = 1; j <= i; j ++){if(j == 1 || j == i)printf("1 ");elseprintf("%d ", a[i-2][j-2]+a[i-2][j-1]);}printf("\n");}3. 函数调用(1)求最大值我们可以利用函数调用来实现求最大值的功能:int max(int a, int b, int c){int temp = a > b ? a : b;return temp > c ? temp : c;}然后我们可以通过调用该函数来求解三个数中的最大值:int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%d", max(a, b, c));(2)计算字符次数我们可以利用一个数组来记录每个字母出现的次数,然后通过遍历输入的字符串来对应更新数组。
C语言实验报告范文

C语言实验报告范文一、实验目的本实验旨在通过编写C语言程序,加深对C语言基本语法的理解,并运用所学的知识实现基本的程序控制结构。
二、实验内容1.编写一个程序,实现两个整数之间的数值互换。
2.编写一个程序,实现计算学生的平均成绩并输出。
3.编写一个程序,实现一个简单的计算器,能够实现加、减、乘、除四则运算。
三、实验步骤1.实现整数互换程序(1)首先定义两个整数变量a和b,并且分别赋予初值。
(2)使用第三个变量temp作为中间变量,将a的值赋给temp。
(3)将b的值赋给a,即执行a=b。
(4)将temp的值赋给b,即执行b=temp。
(5)输出交换后的a和b的值。
(6)编译并运行程序,验证结果。
2.实现计算学生平均成绩程序(1)首先定义学生的姓名和成绩的变量。
(2)使用scanf函数依次输入学生的姓名和成绩,并将其保存在定义好的变量中。
(3)使用循环控制将所有学生的成绩进行累加。
(4)计算平均成绩,使用累加的成绩除以学生人数。
(5)输出平均成绩。
(6)编译并运行程序,验证结果。
3.实现简单计算器程序(1)定义两个操作数和运算符的变量。
(2)使用scanf函数依次输入两个操作数和运算符,并将其保存在定义好的变量中。
(3)根据运算符的不同,使用不同的控制结构实现加、减、乘、除四则运算。
(4)输出运算结果。
(5)编译并运行程序,验证结果。
四、实验结果1.整数互换程序输入:a=10,b=20输出:交换后:a=20,b=10验证结果正确。
2.计算学生平均成绩程序输入:学生1:姓名:张三,成绩:85学生2:姓名:李四,成绩:90学生3:姓名:王五,成绩:78输出:平均成绩:84.33验证结果正确。
3.简单计算器程序输入:操作数1:10操作数2:5运算符:*输出:运算结果:50验证结果正确。
五、实验总结通过本次实验,我进一步熟悉了C语言的基本语法和程序控制结构,并成功实现了整数互换、计算平均成绩和简单计算器的功能。
C语言程序设计实验报告

实验二数据类型、运算符和表达式实验时间:2机时一、实验目的1. 掌握C语言数据类型,熟悉各种类型变量的定义和含义。
2. 掌握C语言标准输入、输出函数的使用方法3. 进一步熟悉C程序的上机过程,积累调试经验。
二、实验意义通过上机实验,巩固本章所学基本知识-C语言的数据类型、变量的定义和使用、结合数据类型更深入地理解标准输入函数scanf()和标准输出函数printf ()的格式控制符的意义和使用。
通过简单程序设计的练习加深对运算符优先级和结合方向的理解,并正确求解表达式的值,这些必要的基础知识是后面深入学习C语言所必须的知识储备。
三、实验重点1. 数据类型、变量的定义和使用;2. 运算符、表达式的求解3. 简单顺序结构的C程序设计四、实验难点数据类型的转换、自增自减运算五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。
六、实验内容(一).完善程序题1.用scanf函数输入数据,使得x=1.23,y=67.1234。
#include <math.h>#include <stdio.h>int main(){double x,y,z;scanf ("%lf%lf",&x,&y);z=2*x+y/sin(3.1415/4);printf("z=%6.2f",z);return 0;}输入1.23 67.1234输出z= 97.392. #include <stdio.h>int main(){int str;str=getchar();putchar(str);return 0;}输入a输出a3.根据下面的输出结果,完善程序s1=C,ASCII is 67x=655.35,y=765.43#include <stdio.h>int main(){double x=655.3524,y=765.4271;char s1='C';printf("s1=%c,ASCII is %d\nx=%6.2f,y=%6.2f",s1,s1,x,y);return 0;}输出s1=C,ASCII is 67x=655.35,y=765.434.用scanf函数输入数据,使得程序运行结果为a=2,b=’x’,c=’z’。
c语言实验报告结果及分析

c语言实验报告结果及分析#### 一、实验目的1. 学习如何使用函数;2. 了解函数的作用;3. 掌握C语言程序中函数的实现方法;4. 深入理解函数调用和参数传递。
#### 二、实验内容本次实验完成了一个函数factorial,它的作用是计算一个整数的阶乘。
实验代码:```c#include <stdio.h>int factorial(int n) //函数声明{int i; //定义变量int product = 1; //初始化变量for(i = 1; i<=n; i++) //循环语句{product *=i;}return product; //返回结果}int main(){int num;scanf("%d",&num); //输入变量printf("%d\n",factorial(num)); //调用函数return 0;}```#### 三、实验结果实验运行结果:实验结果验证了函数factorial的功能,它计算出了正确的结果:输入5,计算出120;输入4,计算出24。
#### 四、实验分析1. 在实验代码中,我们首先定义了一个函数factorial,并给出了它的参数n和返回值product。
然后,运用循环语句把参数n的各个数相乘,取得最终结果product,并用return语句把结果返回。
2. 然后,在进入main函数时,我们用scanf传入变量num,然后调用factorial函数计算num的阶乘,将结果用printf输出,这就完成了整个程序的工作。
3. 本实验验证了函数factorial的功能,完成了整数的阶乘计算任务,并且符合了性能要求,每次输入及计算结果都符合预期,可以满足实际使用需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计 页脚内容1 C语言实验报告
说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。
2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。
实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。
(2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。
(3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。
三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { 程序设计 页脚内容2 char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。 printf("%d %d\n",c1,c2); 再运行,并分析结果。
输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。
a,b没有定义,编译报错。 程序设计
页脚内容3 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。
以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%c b%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c %c\n",c4,c5); } #include void main() { int a,b; 程序设计 页脚内容4 unsigned c,d; long e,f; a=100; b=-100; e=50000; f=32767; c=a; d=b; printf("%d,%d\n",a,b); printf("%u,%u\n",a,b); printf("%u,%u\n",c,d); c=a=e; d=b=f; printf("%d,%d\n",a,b); printf("%u,%u\n",c,d); } 请对照程序和运行结果分析: ①将一个负整数斌给一个无符号的变t,会得到什么结果。画出它们在内存中的表 示形式。
②将一个大于32767的长整数斌给整型变t,会得到什么结果。画出它们在内存中 的表示形式。
③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。画出它们在内存中的表示形式。 程序设计
页脚内容5 ○1得到的是原来正数取存的数 ○2将一个大于32767的长整数斌给整型变t,造成溢出,数据丢失。 ○3可能会溢出,也可能正常。
(4)输人习题3. 10 #include void main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } ①运行程序,注意i,j,m,n各变量的值。分别作以下改动并运行: ②将第6,7行改为: m=i++; n=++j; 再运行。 ③将程序改为: #include void main() { int i,j; i=8; 程序设计 页脚内容6 j=10; printf("%d,%d\n",i++,j++); } ④在③的基础上,将printf语句改为: printf("%d,%d,%d,%d\n",i,j,++i,++j); ⑤再将printf语句改为: printf("%d,%d,%d,%d\n",i,j,i++,j++); ⑥将程序改为: #include void main() { int i,j,m=0,n=0; i=8; j=10; m+=i++; n-=--j; printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n); }
②将第6,7行改为: m=i++; n=++j; 再运行。
以上程序结果的不同均是由于自增自减运算符引起的,考虑到一个判断技巧,看自增自减运算符时,先将它们从原程序中拿出来,如果++或—在后,就先把值放回去,然后自增自减,如果在前,先自增自减,再把结果放进去。 程序设计 页脚内容7 printf("%d,%d,%d,%d\n",i,j,++i,++j); #include void main() { int i,j,m=0,n=0; i=8; j=10; m+=i++; n-=--j; printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n); }
实验5 循环控制 一、实验目的: (1)熟练掌握for 语句、while 语句、do-while 语句实现循环的方法; (2)理解循环嵌套及其使用方法; (3)掌握break 语句与continue 语句的使用; (4)掌握用循环实现一些常用算法(如穷举、迭代、递推等)。 二、实验内容: 1.输入两个正整数,求其中最大公约数和最小公倍数。 2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 程序设计 页脚内容8 3.用牛顿迭代法求方程 2X3- 4X2+ 3X- 6=0在 1.5附近的根。 4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了一
个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一 天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了 多少桃子。 三、程序调试与问题解决: 1.输入两个正整数,求其中最大公约数和最小公倍数。
编译无错误,运行如上图所示,使用了最简单的算法,清晰易理解,同时注意了编程的格式,在以往编程序时,往往不注意上下对齐等问题,容易出现缺标点等现象,将大括号一级一级对齐后,可以有效地避免出错。
发现一个技巧,打括号时一次打出一对括号,可以减少括号不配对的错误。 2. 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
编译无误,测试正确,写该程序时特意加了注释,以便阅读。 3.用牛顿迭代法求方程 2X3- 4X2+ 3X- 6=0在 1.5附近的根。
该程序缺少#include;是截图原因,原程序中是存在的。 最开始不知道fabs函数的用法,通过百度查询。
4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过痛,又多吃了程序设计 页脚内容9 一 个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一 天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了 多少桃子。
实验7 函数 一、实验目的: (1) 掌握定义函数的方法。 (2) 掌握函数实参与形参的对应关系及值传递的方式。 (3) 掌握函数的嵌套调用和递归调用的方法。 (4) 掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。 (5) 学习对多文件程序的编译和运行。 二、实验内容: 1.写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。
2.用一个函数来实现将一行字符串中最长的单词输出。此行字符从主函数传递给该函数。(1)把两个函数放在同一个程序文件中。
(2)将两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。 3.用递归法将一个整数n转换成字符串。例如输入483.应输出字符串“483”。n的位数不确定,可以是任意的整数。
4.求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数用另一个函数根据求出的最大公约数求最小公倍数。分别用下面的两种方法编程。
(1)不用全局变量,在主函数中输入两个数和输出结果。 (2)用全部变量的方法,数据的传递通过全部变量的方法。 5.写一个函数,输入一个十六进制数,输出相应的十进制数。 三、程序调试与问题解决: