C语言实验课题目
《C语言程序设计》实验四

电子科技大学计算机学院标准实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告四学生姓名:学号:指导教师:王瑞锦实验地点:实验日期:年月日一、实验室名称:软件实验室二、实验项目名称:函数的应用及预处理三、实验学时:2四、实验原理:使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。
Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。
通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。
五、实验目的1.掌握C语言中定义函数的方法;2.掌握函数传值调用的方法;3.掌握函数传址调用的方法;4.掌握递归函数的设计方法;5.掌握命令行参数的使用方法;6.掌握函数在不同文件中的编译、链接方法。
六、实验内容编程实验,完成以下上机内容,调试运行程序并完成报告1)、教材第七章习题7.4;2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出;3)、教材第七章习题7.11;4)、教材第七章习题7.15;5)、教材第七章习题7.24;6)、求解汉渃塔(tower of Hanoi)问题。
在一块平板上立有3根立柱,从左到右分别标记为A,B,C。
最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。
要求将这些盘从A移到C(可以借助B柱)。
条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。
(提示:利用函数的递归调用);七、实验器材(设备、元器件):pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。
软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。
八、实验步骤:实验编程与运行结果⑴编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。
程序文件名为7_4.c,源程序清单如下:#include<stdio.h>lcd(int a,int b){int temp,num1,num2;num1=a;num2=b;while(num2!=0){temp=num1%num2;num1=num2;num2=temp;}return(a*b/num1);}main(){int t,x,y;printf("Please input two integers:");scanf("%d,%d",&x,&y);if(x>y){t=x;x=y;y=t;}printf("lcd(%d,%d)=%d\n",x,y,lcd(x,y));}运行结果:⑵编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。
c语言课程设计参考题目

c语言课程设计参考题目
以下是一些可以作为C语言课程设计参考的题目:
1. 编写一个简单的C程序,实现一个计算器的功能,包括按键输入、按位运算、结果输出等。
2. 设计一个C语言的数据结构,例如链表、树、图等。
3. 实现一个简单的程序,用于检测一个字符串是否包含某个特
定的字符集。
4. 设计一个C程序,实现一个文件管理系统,包括文件读取、修改、删除、创建等操作。
5. 编写一个C程序,模拟一个简单的计算机操作系统,例如进程
管理、内存管理等。
6. 设计一个C程序,用于处理一个字符串,包括查找特定字符、
替换特定字符、翻译文本等。
7. 实现一个简单的编译器,用于编译C程序。
8. 设计一个C程序,用于实现一个网络应用程序,包括用户登录、数据发送、数据接收等。
9. 编写一个C程序,用于实现一个简单的图形用户界面,例如窗口、菜单、按钮等。
10. 设计一个C程序,用于处理一个音频播放器,包括音频读取、播放、暂停、中断等。
这些题目都是相对来说比较难的,但也都是C语言编程中比较经
典的应用场景。
通过这些题目的训练,可以帮助学生更好地掌握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语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

河南城建学院《高级语言程序设计》课程设计报告设计题目:用一个字符数组保存一个英文句子专业:计算机科学与技术班级:设计人员:指导教师:计算机科学与工程学院2015年06 月25日一、课程设计题目13.用一个字符数组保存一个英文句子。
二、设计要求1)删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单词之间只留一个空格);2)统计该句子中,单词出现的频率;3)查找并替换某个单词。
三、程序介绍1.去除字符组中间空格。
void zhongjian(char a[]){int i,j,k; /*定义整形变量i,j,k。
i,j 作为函数内循环的控制变量。
定义k用于字符组长度存放。
*/ k=strlen(a); /*将字符组a的长度存放于k 中。
(字符组a即待处理的字符组)*/for(i=0;i<k;) /*循环控制,从第一位循环到字符组结束。
*/if(a[i]!=' 'i++; /*条件控制,若当前字符不为空格,跳到下一位再进行循环。
*/else if(a[i]==' ')if(a[i+1]==' ') /*当连续出现两个空格,需要去除一个空格*/{k=k-1; /*字符串总长度减一。
*/ for(j=i;j<k;j++)a[j]=a[j+1]; /*从第一个空格开始,后续所有字符前提一位,即去除第一个空格。
*/a[k]='\0'; /*去除空格后字符组长度减一,原字符组最后一位需要变为\0。
*/continue; /*去除空格后,继续从该位检测,直至不符合该循环条件。
*/}elsei++; /*若不是连续两个空格,则跳到下个字符再进行循环。
*/printf("%s\n",a); /*输出处理后的字符组。
*/ }2.导入及导出函数void daoru(){FILE *p; /*定义一个指针函数,用于指向需要打开的文件。
C语言课程设计参考题目

C语言课程设计参考题目C语言课程设计参考题目一、基本要求题目1、一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。
试编程推算肇事车的车牌号。
2、有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。
直到最后只剩下一个人为止。
问此人原来的位置是多少号。
3、编写一个程序,求3X4数组的转置矩阵。
要求在main函数里读数,在change 函数里把矩阵转置。
4、编写函数,求取两个整数m,n的最大公约数和最小公倍数。
5、用指向指针的方法对n个整数排序并输出。
要求将排序单独写成一个函数。
N 个整数在主函数中输入。
最后在主函数中输出。
6、有n个学生,每个学生的数据包括学号、姓名、年龄和两科成绩。
请编程用结构类型的数据处理方式实现如下目标:(1)在main 函数中输入原始数据;(2)在count 函数中输出各学生的总分和平均分;(3)输出总分最高的学生;(4)编写sort函数将各学生的数据按总分降序输出。
7、编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的子串8、文件加密程序:将待加密文件以二进制打开,读入32个字节,分别与口令异或,在将4、5、6三个字分别与0xaaaa异或,即完成加密,执行第二次就解密9、编写字串str1 中找出所有小写字母转成大写字母,大写字母转成小写字母后,结果依次存入字符数组 str2 中,str1 不变仍为原字串的程序。
例如,字符串str1 为 "91A2BC. a1bc",调用函数 fun 后,字符数组str2将存入"91a2bc. A1BC",str1仍然是"91A2BC. a1bc"。
10、编写一个将某个范围在-32768~32767之间的整数转换为R进制(R=2,5,8,16)的通用程序。
(完整)《C语言程序设计课程设计》题目——软件工程2班

1 一元稀疏多项式的运算问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理.实现要求:⑴输入并建立多项式;⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。
序列按指数降序排列;⑶多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式;⑹设计一个菜单,至少具有上述操作要求的基本功能。
测试数据:(1) (2x+5x8-3.1x11)+(7—5x8+11x9)(2) (6x-3—x+4。
4x2-1。
2x9)-(-6x-3+5.4x2+7。
8x15)(3)(x+x2+x3)+0(4)(x+x3)—(-x—x-3)2 成绩排序假设某年级有4个班,每班有45名同学。
本学期有5门课程考试,每门课程成绩是百分制。
假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求:⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩;⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中;⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表;⑹设计一个菜单,至少具有上述操作要求的基本功能。
(本题⑸由2人完成)3 迷宫问题问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
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语言编程实验课之选择结构

1.计算分段函数本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
输入格式:输入在一行中给出实数x。
输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。
输入样例1:10输出样例1:f(10.00) = 3.16输入样例2:-0.5输出样例2:f(-0.50) = -2.75(1)编程思路。
简单的if …else …结构。
(2)源程序。
#include <stdio.h>#include <math.h>int main (){double x,y;scanf("%lf",&x);if (x>=0){y=sqrt(x);}else{y=(x+1)*(x+1)+2*x+1/x;}printf("f(%.2f) = %.2f\n",x,y);return(0);}2.三天打鱼两天晒网中国有句俗语叫“三天打鱼两天晒网”。
假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。
输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34(1)编程思路。
按输入的N五天一个周期,因此分成两种情况:1)N%5等于1或2或3,打鱼;2)N%5等于4或0,嗮网。
写成简单的if…else …结构。
(2)源程序。
#include <stdio.h>int main(){int n;scanf("%d",&n);if (n%5>=1 && n%5<=3)printf("Fishing in day %d\n",n);elseprintf("Drying in day %d\n",n);return 0;}3.比较大小本题要求将输入的任意3个整数从小到大输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录实验1 输入输出 (2)实验2 选择语句 (4)实验3 循环语句 (5)实验4 函数 (6)实验5 指针 (8)实验6 数组 (9)实验7 结构体 (10)实验1 输入输出要求掌握:1、VC++平台的使用;2、C源程序的建立、保存、编译和运行;3、变量的定义、赋值和运算;4、printf函数的使用;5、scanf函数的使用;6、int、long、float、double、unsigned的含义;7、关键字、预定义标识符和用户标识符的区别;8、自加自减运算符的使用。
完成下列题目: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 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示12 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 均由键盘输入。
实验2 选择语句题目:1、编写程序,输入一个正整数,判断该数是奇数还是偶数,并输出判断结果。
2、有一函数:⎪⎪⎩⎪⎪⎨⎧--+++--=-13)12(log 3553131210123x x ex x y x ()()()()10101111>≤<≤≤--<x x x x 编写一个程序,用scanf 函数输入x 的值,输出y 值。
注意表达式的书写方法。
提示:此题要用到数学函数exp ()和log10(),因此应包含相应的头文件math.h 。
3、输入年号,判断并输出该年是否闰年。
所谓闰年,是指能被4整除,但不能被100整除;或能被400整除的年份。
算法提示:此题要注意条件的表达。
或者通过逻辑运算符构造复杂的条件表示;或者通过if 分支嵌套来完成所有条件的表示。
4、输入学生考试成绩,输出相应等级,其中等级A >=90,B>=80,C>=70,D>=60,E<60。
要求分别用if 语句和switch 语句解答,使用switch 语句时注意case 、break 、default 的语句编写。
掌握以下内容:1.关系运算符和逻辑运算符的使用; 2.非0即为真;&&和||的运算顺序和特殊情况(0&&非0、非0||0、if(5>4>3)); 3.if 语句的使用; 4. switch 语句的使用(注意switch 的判断表达式、case 的用法、有无break 的区别、default的位置);5. if 语句嵌套使用实验3 循环语句题目:1. 从键盘输入若干整数,以0结束,判断并输出其中的最大数。
2. 输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。
3. 分别用while 、do-while 和for 语句计算∑=201!n n (即求1!+2!+3!+…+20!),并试着简化程序。
掌握以下内容:1.while 语句、do-while 语句和for 语句格式三种循环语句的使用; 2.简单循环问题的分析和程序设计; 3.正确的构造循环条件; 4. 循环程序的调试方法和技巧。
实验4 函数题目:1、编写一个函数,输出语句:“I Love China!”。
2、调试下面的程序,记录系统给出的出错信息,并指出错误原因。
main( ){int x,y;printf("%d\n",sum(x+y));}int sum(a,b);{int a,b;return(a+b);}3、编写函数,判断指定的字符是否是数字字符,如果是返回1,不是则返回0。
在主函数中输入该字符,调用函数判断该字符并输出是否是数字字符。
4、编写一函数,计算整数m的n次幂,在主函数中输入m和n,在主函数中输出计算结果。
5、求1!+2!+…+n!,要求:编写两个函数,分别实现求n!功能,和1!+2!+…+n!功能,在主函数输入n值,并在主函数中输出计算结果。
6、指出下列各变量的存储属性,分析程序的应得结果,并上机验证。
#include <stdio.h>int n=1;void func( ){static int a=2;int b=5;a+=2;b+=5;n+=12;printf("a=%d,b=%d,n=%d\n",a,b,n);}main( ){int a=0,b= -10;printf("a=%d,b=%d,n=%d\n",a,b,n);func( );printf("a=%d,b=%d,n=%d\n",a,b,n);func( );printf("a=%d,b=%d,n=%d\n",a,b,n);}掌握以下内容:1、无参函数的定义和调用;2、有参无返回值函数的定义和调用;3、对于有返回值函数调用时的处理方法;4、有参函数调用时,实参和形参的概念理解和对应关系;5、有返回值函数调用时返回值的处理;6、函数的嵌套调用;7、函数的声明;8、全局变量和局部变量的定义及使用;9、函数的嵌套调用;10、全局变量的值传递和同名变量的理解。
实验5 指针题目:1、调试下面的程序,指出错误的原因。
main( ){int x=10,y=5,*px,*py;px=py;px=&x;py=&y;printf("*px=%d,*py=%d\n",*px,*py);}2、编写一个函数,交换主函数中变量x和y的数据。
3、完善下面的程序,功能是子函数将主函数中两个变量较小的变量地址返回,主函数中输出其数据。
int *fun(int *,int *)main(){int a,b,*p;scanf( );;printf (”a=%d,b=%d,*p=%d”, );}int (int *x,int *y){}掌握以下内容:1.指针变量的含义及定义、使用;2.指针作为函数参数的使用;3.指针参数的函数调用时实参形式要求;4.返回指针值的函数调用;5.指针参数的定义及调用时实参的形式;6.正确理解指针传递数据的过程。
实验6 数组题目:1、运行下面的程序。
根据运行结果,可以说明什么?main( ){int i,x[5]={1,2,3,4,5};for (i=0;i<=5;i++)printf("%4d",x[i]);}2、从键盘输入10个整数,找出最大的数并输出该数及其下标。
3、有一个一维数组包含10个元素,编写程序将其中的值按升序排序存放。
4、从键盘输入一个字符串,分别输出其完全大写和完全小写的形式。
5、有一个4×5的矩阵,编写程序找出值最大的那个元素,输出其值以及所在的行号和列号。
6、输入一个M行M列的二维数组,分别计算两条对角线上的元素之和。
M由下面的符号常量定义:#define M 5掌握以下内容:1.一维数组的定义、元素的引用;2.一维数组编程的循环控制特色;3.排序等相关算法的实现;4.一维数组编程的循环控制特色,程序调试时的数组越界问题;5.排序算法的理解和记忆;6.二维数组的定义、元素引用、使用方法;7.字符数组的定义、元素引用、使用方法;8.字符串的操作及常用程序设计方法。
实验7 结构体题目:1、定义一个结构体类型,用于存放职工信息,其中包括:职工号、姓名、性别、年龄、职称、家庭住址。
然后定义该类型的变量,从键盘输入具体数据,然后打印出来。
2、有10名学生,每个学生的数据包括:学号、姓名、成绩,从键盘输入10个学生的数据,输出成绩最高者的姓名和成绩。
掌握以下内容:1.结构体类型的定义、结构体变量定义、结构体变量的使用;2.结构体数组的使用;3.结构体指针;4.结构体类型作为函数参数。