实验7和实验8今天完成,主要是验证性实验,下次实验开始做考试系统
实验7 函数实验
完成实验1、2、3、5、6、8、9、11、12,其余选作
一、实验目的
(1) 理解函数定义的方法。
(2) 掌握函数实参与形参的对应关系,以及函数”参数传递”的方式。
(3) 掌握函数的嵌套调用和递归调用的方法;
(4) 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。
二、实验任务
1.基本内容
【题目1】以下程序是求3个数中的最大值,请完善程序并上机验证。
#include
void main()
{
int a,b,c,m;
int max(int x,int y); /* 函数声明*/
printf("input a,b,c=");
scanf("%d,%d,%d",&a,&b,&c);
m=max(max(a,b),c);
printf("最大值是:%d\n",m);
}
int max(int x,int y) /*函数定义*/
{
int z;
z=(x>y)?x:y;
return z;
}
【题目2】程序填空:子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。
#include
void main()
{
int number;
int prime(int number);
printf("请输入一个正整数:\n");
scanf("%d",&number);
if ( prime(number) )
printf("\n %d是素数:",number);
else
printf("\n %d不是素数:",number);
}
int prime(int number) /*请注意区别main函数和prime函数中的number变量*/
{
int flag=1,n;
for (n=2; flag==1 && n<=number/2;n++)
if ( number%n==0 )
flag=0;
return (flag);
}
【题目3】读程序,验证结果。
#include
void main()
{
int i=2,p;
int f(int a, int b);
p=f(i,i+=1);
printf("%d\n",p);
}
int f(int a, int b)
{
int c;
if(a>b)
c=1;
else if(a==b)
c=0;
else
c=-1;
return(c);
}
①将程序中第4行语句:p=f(i,i+=1); 改为以下语句,比较程序结果:
p=f(i+=1,i);
②实践说明,函数的参数求值顺序是:从右向左
【题目4】编程在主函数中输入和输出字符串,在子函数中实现一个字符串按反序存放。【题目5】用子函数计算4名学生的平均分。标注“error”处有错误,请改正。
#include
#define N 4
float average(float array[]) /* 注意数据类型的一致*/
{
int i; float aver,sum=0;
for (i=0;i sum+=array[i]; aver=sum/N; return (aver); } void main() { float score[N],aver; int i; printf("\n input %d scores:\n",N); for (i=0;i scanf("%f",&score[i]); aver=average(score); /* error */ printf("\n average score is %5.2f\n",aver); } 【题目6】改正标注“error”语句行的错误,理解本程序的功能。 #include void main() { int a[][3]={0,2,4,6,8,10,12,14,16},sum; int func(int a[][3]); /*函数声明*/ sum=func(a); /*error*/ printf("\n sum=%d\n",sum); } int func(int a[][3])/*error*/ { int i,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum+=a[i][j]; return sum; } 【题目7】在主函数中定义数组A[3][4]、B[4],用子函数对数组A每一行求和,其值放在数组B中,在主函数中输出数组B的值。 【题目8】输入两个正整数,求其中最大公约数和最小公倍数。将程序补充完整。 #include int fun1(int x, int y) { int temp; if (x { temp=x; x=y; y=temp; } while (y!=0) { temp=x%y; x=y; y=temp; } return x; } int fun2(int x, int y) { return x*y/fun1(x,y); } /*函数的嵌套调用*/ void main() { int a,b; printf("请输入两个正整数:\n"); scanf("%d,%d",&a,&b); printf("它们的最大公约数为:%d\n",fun1(a,b)); printf("它们的最小公倍数为:%d\n", fun2(a,b)); } 【题目9】阅读以下程序,若输入为ABCDE#时,写出程序的执行结果。 #include "stdio.h" void reverse( ) { char ch; ch=getchar( ); if ( ch=='#') printf ( "%c",ch); else { reverse( ); printf ("%c",ch); } } void main( ) { reverse( ); printf("\n"); } 【题目10】编程计算猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子了,求第一天共摘了多少桃子? 【题目11】阅读以下程序,该程序中,main函数的局部变量是:_______________,max函数的局部变量是:_______________,全局变量是:_____________,理解它们的使用方式。 #include int a=4,b=6; int max(int a,int b) { int c; c=a>b?a:b; return c; } void main() { int a=9; printf("%d\n",max(a,b)); } 【题目12】以下是一个求1-10累加和的错误程序,请改正。 #include void main() { int i,s; int sum(int j); for(i=1;i<=10;i++) s=sum(i); printf("s=%d\t",s); } sum(int j) { static int x=0;/* error */ x+=j; return(x); } 2.选择内容 【题目13】编写一个函数,判断一个整数是不是回文数。如:34543是回文数,个位与万位相同,十位与千位相同。 【题目14】在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素数的个数,在主函数中输出该素数的个数。 【题目15】用递归法将一个整数转换成字符串。例如,输入1234,应输出字符串”1234”。n的位数不确定,可以是任意的整数。请在注释行中添加注释,使程序易于理解。 #include void convert(int n) { int i; if ((i=n/10)!=0) /*__________________________________*/ convert(i); putchar(n%10+'0'); /*___________________________________*/ } void main() { int number; printf("\n输入整数:"); scanf("%d",&number); printf("\n输出字符是:"); if (number<0) /*______________________________________*/ { putchar('-'); number=-number; } convert(number); printf("\n"); } 三、实验结果(用截图说明) 四、调试心得(选作) 实验8 常用指针实验 完成实验1、2、3、4、5、6、7、8 一、实验目的 (1) 掌握指针的概念,指针变量的定义和使用。 (2) 熟练使用指针访问各种简单数据类型。 (3) 熟练掌握C语言指针的常见运算。 (4) 熟练使用指针访问一维数组。 (5) 理解和掌握指针作为函数参数的实质,学会使用指针作为函数参数。 二、实验任务 1.基本内容 【题目1】请改正程序中错误的地方,预测程序的运行结果,并上机调试验证。 #include void main() { int x=1,y=2, *p, *q; p=&x; /* error*/ q=&y; /* error*/ printf("x=%d,y=%d\n",x,y); printf("&x=%d,&y=%d\n",&x,&y); printf("p=%d,q=%d\n",p,q); printf("p=%d,q=%d\n",*p,*q); } 【题目2】请预测程序的结果,并上机运行程序,验证结果。 #include void main() { int a[]={1,3,5,7,9,11,13}; int *p=a; printf("1--%d\n",*p); printf("2--%d\n",*(++p)); printf("3--%d\n ",*++p); printf("4--%d\n ",*(p--)); printf("5--%d\n ",*p--); printf("6--%d\n",*p++); printf("7--%d\n",++(*p)); printf("8--%d\n",(*p)++); p=&a[2]; printf("9--%d\n ",*p); printf("10--%d\n",*(++p)); p++; printf("11--%d\n ",*p); } 【题目3】请预测程序的结果,并上机运行程序,验证结果。 #include void main() { int a[6]={1,2,3,4,5,6}; int *p,i,s=1; p=a; for(i=0;i<6;i++) s*=*(p+i); printf("%d\n",s); } 【题目4】请预测程序的结果,并上机运行程序,验证结果。 #include void main() { char a[]="abcdef"; char *b="ABCDEF"; int i; for(i=0;i<3;i++) printf("%c,%s\n",*a,b+i); printf("-------------------------------\n"); for(i=3;a[i];i++) { putchar(*(b+i)); printf("%c\n",*(a+i)); } } 【题目5】程序功能:输入一行字符(不超过100个),统计其中大写字母的个数?要求:阅读以下程序,将空格处补充完整,并上机调试运行。 #include void main() { int cle=0; char *p,s[101]; printf("请输入一行字符:"); gets(s); p=s; while(*p!=’\0’) { if((*p>='A')&&(*p<='Z')) ++cle; p++; } printf("大写字母个数=%d\n",cle); } 【题目6】编写程序:输入两个整数,通过函数swap交换这两个整数的值。 要求:在main函数中输入两个整数,在main函数中输出交换后的结果。分析程序,将空白部分补充完整,并上机验证。 #include void swap(int *p1,int *p2) { int i; i=*p1; *p1=*p2;*p2=i; } void main() { int n1,n2; printf("请输入两个整数:"); scanf("%d%d",&n1,&n2); swap(&n1,&n2); printf("%d,%d\n",n1,n2); } 【题目7】程序功能:求两个数中的最大值。 要求:阅读以下程序,将空格处补充完整,并上机调试运行。 #include int * max(int *x,int *y) { if(*x>*y) return x; else return y; } void main() { int a,b; printf("请输入两个整数a,b:"); scanf("%d,%d",&a,&b); printf("最大值是:%d\n", *max(&a,&b)); } 【题目8】将数组a中的10个整数按相反顺序存放,完善程序。 #include #define N 10 void inv(int *x, int n) /*理解掌握本函数的算法*/ { int t,i; for(i=0;i<=(n-1)/2;i++) { t=*(x+i); *(x+i)=*(x+n-1-i); *(x+n-1-i)=t; } } void main() { int i,a[N]; for(i=0;i scanf("%d",a+i); printf("原序为:\n"); for(i=0;i printf("%6d",a[i]); inv(a,n); printf("\n"); printf("逆序为:\n"); for(i=0;i printf("%6d",*(a+i)); printf("\n"); } 2.选择内容 【题目9】编写程序:输入10个整数到一个一维数组中,把该数组中所有为偶数的数,放到另一个数组中并输出。 要求:分析程序,将省略号的部分补充完整,并上机验证。 #include void main() { int num[10],i,dnum[10],di; int *p; p=num; for(i=0;i<=9;i++) /* 输入10个整数*/ { scanf("%d",p+i); } di=0; /* 偶数个数清0 */ for(i=0;i<=9;i++) { …… } p=dnum; for(i=0;i { …… } } 【题目10】编写程序:输入某班35个同学一门课程的成绩,计算并输出所有学生成绩的平均值,以及每个学生成绩与平均值之间的差值。 要求:用一维数组保存35个学生的成绩,用指针变量对学生成绩进行访问。 【题目11】编写程序:输入一行字符(不超过1024个),统计其中大写字母、小写字母、空格、数字及其它字符分别有多少个? 要求:用字符数组存放输入的字符,用指针对字符数组进行访问。 【题目12】编写函数len,求一个字符串的长度。 要求:在main函数中输入字符串,并输出其长度。分析下面的代码,将省略号的部分补充完整,并上机验证。 #include int len(char *str) { …… } void main() { char str[1024]; gets(str); printf("%d",len(str)); } 【题目13】编写函数convert,把字符串中的小写字母转换成大写字母。 要求:在main函数中输入字符串,并输出转换后的字符串。分析下面的代码,将省略号的部分补充完整并上机验证。 #include void convert(char *p) { …… } void main() { char str[100]; gets(str); convert(str); puts(str); } 三、实验结果(用截图说明) 四、调试心得(选作) 成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include (3)#include c语言实验答案 //1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include 游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】 嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇 目录 一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y 四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n); C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include 《C语言程序设计》 实 验 手 册 《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。 三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include 《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为: 2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结) 《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进 长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句 《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院 专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级) 二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n "); printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i 2010C语言实验报告参考答案 长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include 1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum); } c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30; f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为: 2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结) f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进 实验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); C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include 实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m =p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q 一1 #include #include 一5 #include 嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇 目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................ -前言- /*非常感谢度娘以及各位网上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 { int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=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和%c printf("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); } C语言程序设计报告 日 程序主要内容 任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。 程序如下: #include int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n); return n; } 任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。 :程序如下: #include C语言实验报告参考答 案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】 长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。大一上期C语言实验报告1熟悉实验环境
c语言实验答案
游戏C语言实验报告完整版
C语言实验报告参考答案 原
C语言实验报告参考答案
C语言实验报告合集
C语言实验报告参考答案
C语言实验报告
2010C语言实验报告参考答案
c语言实验习题及答案详解
C语言实验报告合集
哈工大(威海)c语言实验报告册答案
c语言实验报告
C语言实验报告参考源代码
C语言实验答案
游戏C语言实验报告
C语言程序设计实验-答案
c语言实验报告1
C语言实验报告参考答案完整版