c++上机模板
C程序设计上机指导共10页word资料
C语言上机指导手册目录第一章C语言上机环境第二章数据类型、运算符和表达式第三章顺序结构程序设计第四章选择结构程序设计第五章循环结构程序设计第六章数组第七章函数第八章编译预处理第九章指针第十章结构体和共用体第十一章文件第一章C语言上机环境一、实验目的与要求1、了解TC集成环境的进入和退出;2、了解TC集成环境的设置;3、掌握C语言源程序的编辑、编译、连接和运行操作;4、掌握C语言源程序的程序结构和书写风格。
二、实验内容1、进入TC集成环境。
2、熟悉TC集成环境以及菜单的使用。
3、利用TC的集成环境,完成下面的程序。
(1)输入下面的程序,保存后编译、运行,查看程序的输出结果。
#include "stdio.h"main()printf("Hello,everyone!\n");(2)自己编写程序,输出下面的图形。
My name is TC4、退出C的集成环境。
5、再次进入C的集成环境,分别载入上面的程序,观察程序的运行结果。
三、实验分析和总结第二章数据类型、运算符和表达式一、实验目的与要求1、进一步熟悉TC集成环境的进入、退出和菜单操作;2、初步了解C程序调试过程和方法;3、掌握C语言数据类型的定义方法;4、掌握C语言运算符的正确使用;5、掌握C语言运算符的优先级和结合性。
二、实验内容1、上机前人工分析下列程序,写出运行结果,上机运行后对比结果。
(1)#include "stdio.h"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",c4,c5);输出结果:(2)#include "stdio.h"main()int i, j, m, n;i=8; j=10;m=++i; n=j++;printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);输出结果:2、设原来a=12, 用printf函数输出下列表达式运算后a的值。
C语言集中上机报告模板
C语言集中上机报告学生成绩管理程序院系:计算机学院班级:0401111学号:20112 11849姓名:易琴指导教师:谢竞博2012年5 月21日目录一.概述 (3)二.总体方案设计 (3)三.详细设计 (3)四.程序的调试与运行结果说明 (3)五.课程设计总结 (4)六.后记 (4)七.附录 (4)参考文献 (4)“目录”要求必须自动生成一概述(宋体,三号,加粗,居中)1.课程设计的目的(小标题,宋体,四号,加粗,左对齐顶格)2.课程设计的要求需要的基本知识与技能,尚未掌握的知识点,需要查阅相关资料。
教师对本题目所提出的要求等。
(正文宋体,小四,行间距固定值20磅)3.课程设计的主要设计思想正文二总体方案设计本次设计在具体设计过程中的整体设计思路,算法的整体思路、主要特点,具备功能。
你所承担部分的设计工作,主要解决的关键性问题整体框图三详细设计所完成的具体功能及用到的算法(详细分析)。
程序流程图主要部分的详细流程图四程序的调试与运行结果说明五课程设计总结是否达到了要求、功能完善、特点、不足、进一步设想困难及解决途径六后记谈谈自己的心得,编写历程等可向给予帮助的老师及同学致谢七附录全部代码及注释附录正文用宋体,五号,行间距固定值20磅参考文献格式:序号作者,书名,出版地点,出版社,年月。
序号作者,论文题目,期刊名称,卷,期,年,起止页码(如33—35)。
序号网址,文章题目,作者,年月。
(宋体,五号,行间距固定值20磅)如:[1] 谭浩强,C程序设计题解与上机指导(第二版),北京,清华大学出版社,2000年9月。
心得体会:通过这几天的学习,我进一步强化了对C语言的运用能力,熟悉了各操作的具体步骤。
刚接到题目时,觉得这是一个几乎不可能完成的任务,知道自己慢慢静下心来,一步步的努力,一次次的尝试,当自己的程序在电脑上成功运行时,那是怎样的激动与欣喜啊!总的来说,通过这次实习,有以下感触:1.与同学之间交流学习。
C语言上机考试模拟演练
NCRE--计算机等级考试考前模拟演练二级C语言和三级C语言上机考试使用VC++6.0开发环境,在新的开发环境下,考生做题的时候可能会遇到的问题相对增加。
注意:本画面是真实的上机考试环境截图,不是模拟系统。
考生应单击“开始登陆”按钮,注意:有的考场监考老师已经单击这个按钮了,直接出现下面的画面:在“准考证号”输入框中正确输入你自己的准考证号码,输入正确无误后单击“考号验证”按钮,出现如下的画面:认真核对你的准考证、身份证和姓名是否正确,如果不正确,单击“否”,重新输入,或者举手问监考老师。
如果正确,单击“是”,出现下面的画面:单击“抽取试题”,出现如下画面:单击“开始答题并计时”,出现如下画面:这个时候系统开始计时。
在系统中,上面有一个工具栏,单击“隐藏窗口(或者显示窗口)”可以隐藏或者显示下面的题目窗口。
题目窗口中的有三个按钮,分别单击这些按钮,可以查看相关的题目要求。
单击题目窗口中的“答题”菜单中的“启动 Microsoft Visual C++”菜单,可以直接启动VC,如下图所示:启动后的VC6开发工具如下图:单击“文件”菜单,选择“打开”菜单,如下图:此时会出现一个打开菜单,如下图所示:这时会打开考生文件夹,在这个打开对话框中会出现3个文件,分别是blank1.c(程序填空题)、modi1.c(程序修改题)和prog1.c(程序编写题)。
如果没有打开考试文件夹,则用鼠标单击“查找范围”后面的编辑框,选择考生文件夹。
考生文件夹的具体路径写在考试系统题目界面的“考生文件夹”下方,在我的图像上就是“k:\exam\24010001”,每个考生的考生文件夹均不相同。
我们在做题的时候,选择相应的文件,例如要做程序填空题,就在打开文件对话框中选择blank1.c文件,然后单击“打开”按钮,出现如下图所示的界面:在做程序填空题的时候,将填写的答案填写到类似于___1___的地方,填写完毕后,必须将___1___删除。
顺序结构上机
顺序结构上机1、输出“Hello World!”,或其他的一句话。
提示:printf函数,注意C程序的基本结构。
2、输出如下图所示的图形:*********************************Hello World!*********************************提示:printf函数,转义字符的使用’/n’3、输入以下的程序,观察输出结果#include<stdio.h>main(){//各种格式字符指定或不指定输出宽度的不同效果printf("%d\n",42);printf("%5d\n",42);printf("%f\n",123.54);printf("%10f\n",123.54);printf("%12f\n",123.54);printf("%e\n",123.54);printf("%13e\n",123.54);//各种指定精度的输出结果printf("%.5d\n",42);printf("%8.3f\n",123.55);printf("%8.1f\n",123.55);printf("%.5s\n","abcdefg");//各种左对齐的输出结果printf("%6d##\n",123);printf("%-6d##\n",123);printf("%13.8lfd##\n",1.3455);printf("%-13.8lfd##\n",1.3455);//数据前加前导0输出与普通输出的对照printf("%6d\n",12);printf("%06d\n",12);printf("%10.5f\n",3.1415);printf("%014.5f\n",3.1415);}4、问题1:要使下面程序的输出语句在屏幕上显示1,2,34,则从键盘输入的数据格式应为以下备选答案中的哪一个#includemain(){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',34 D) 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,2,34↙(以逗号作为分隔符)第二种输入方式:1 2 34↙(以空格作为分隔符)第三种输入方式:1 2 34↙(以T ab键作为分隔符)第四种输入方式:1↙2↙34↙(以回车符作为分隔符)5、请编写一个程序,计算一个圆形的面积。
C程序设计实用上机实验文本
a0=b%10; //剥出数字b的个位数
if(____________________) //判断是否满足水仙花数的条件
cout<<b<<'\t'; //满足条件,输出这个数
}
cout<<endl;
}
要求:完善程序,编译运行。
3.仿照样例程序编写程序
else
cout<<year<<" isn't a leap year"<<endl; //否则,输出否定信息
}
要求:
(1)完善程序;
(2)将该源文件编译运行后,若输入2000(,输出结果是_____________;若输入2200(,输出结果是_____________。结合程序流程分析原因。
(二)编写一个简易的计算器,能根据输入的具有两个操作数的表达式计算加、减、乘法。将文件命名为S2_3.cpp。
break;
cout<<i<<endl;//输出结果
}
要求:
(1)完善程序;
(2)编译运行程序,当输入24 48 64(时,输出为________;当输入25 24 23(时,输出为_________。
(二)编写程序,判断从键盘输入的正整数是否为素数。将文件命名S4_3.cpp。
#include<iostream.h>
文件名:S2_1.cpp
#include<iostream.h>
void main(void)
{float a,b,c;//定义变量,存放三角形的三边数据
C语言上机报告模板
实验X XXXXXXXX姓名班级1 题目:给出一段程序,要求得到程序输出结果(1)给出预期结果以及分析(上机前)(3)调试过程记录及原因分析(上机)(2)给出上机验证结果,如有不同,分析原因(上机)2 题目:给定一个任务或者功能(1)定义程序目标:包括程序需要什么输入信息;程序需要执行哪些计算和操作;程序输出什么信息(上机前)(2)设计程序:需要用到哪些变量,变量的类型是什么,需要什么精度;如果组织程序;(上机前)(3)写出代码(上机前)(4)给出预期结果以及分析(上机前)(5)调试过程记录及原因分析(上机)(6)给出上机验证结果,如有不同,分析原因(上机)举例:计算从1加到100的结果(1)定义程序目标:程序输入:无执行操作:从1开始,逐个整数相加,直到100程序输出:从1加到100的结果(2)设计程序:变量:1)待处理数据(加数),类型:整数,精度:整型2)输出结果,类型:整数,精度:整型程序结构:1)需要用到循环结果,执行从1到100的取数与加法(3)写出代码#include <stdio.h>void main(){int i;int sum=0;for(i=1;i<=100;i++){sum+=i;}printf("1+2+3+...+100=%d",sum);}(4)给出预期结果以及分析(上机前)预期输出结果为:1+2+3+...+100=5050(5)调试过程记录及原因分析(上机)经分析,是由于int sum = 0语句未加;导致。
(6)给出上机验证结果,如有不同,分析原因(上机后)第二周❝程序编写要求输入年份,判断其是否为闰年,输出结果给出半径(浮点型),如果属于范围[1 2),则求圆周长、圆面积、圆球表面积、圆球体积,并输出;否则输出半径值。
输出结果保留3位小数 输入一个华氏温度,要求输出摄氏温度。
公式为c=5(F-32)/9。
取2位小数。
C语言程序设计教程上机实验--学生版(精品)
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
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.课内上机内容
1)用"*"号输出一个菱形
2)已知圆的半径为50,求圆的周长和面积
3)目前,定期一年的存款利率是3.3%,利息税是5%,请问把1万元存成一年定期,每月的利息是多少?
4)已知一元二次方程3.5 X2+40.8 X + 68 = 0,编程输出它的两个根。
2.课外上机内容
1)以下是目前我国个人收入所得税的上税办法,编程输入月工资,输出应纳税额。
三、代码实现
四、上机总结
成绩教师签名年月日
信息技术与传媒学院上机报告
班级
信管111
学生学号
学生姓名
课程名称
程序设计基础
实验室
信传楼108机房
上机时间
1~2周
上机项目
项目一、C语言IDE的使用及其编程基础
上机学时
4学时
一、上机目的
1.掌握TC环境下程序的调试(输入,保存,运行,修改错误,再运行,直至正确)。
2.熟悉常量、变量、运算符和表达式等编程基础知识。
全月收入超过3500部分Байду номын сангаас率
--------------------------------
1500元以下3%
1500元至4499元10%
4500元至8999元20%
9000元至34999元25%
35000元至54999元30%
55000元至79999元35%
80000元以上45%。
2)从键盘输入圆柱体的底面半径和高度,输出圆柱体的面积和体积。
C语言上机手册1
上机注意事项:
1、严禁上课时间玩游戏,聊天等与课程无关内容。
2、上课主要任务是在老师安排下完成课后习题,调试每章后的程序举例。
3、上课前应该先定好自己的上机任务,并写好程序,然后上机调试以节省时间。
4、出现错误要及时向老师提问,并且自己课后要适当安排上机练习。
5、根据国家等级考试安排,上机一律将VC6.0作为上机编程软件。
6、VC上机步骤:
(1)下载软件,先把下载到电脑中的D盘,然后单击右建将该文件解压缩到D盘,
如图D盘,然后打开文
件夹VC,再选择Common\MSDev98\Bin目录下
的MSDEV文件.
(2)打开后关闭提示对话框
(3)下面开始新建C程序:
a.(可以直接进入b步骤)文件->新建->工
程->选择工程”WIN32 Console Application”->输入工程名称->新建空工
程->完成->确定
b.文件->新建->文件->C++ Source File->
输入文件名
c.输入程序.
d.输入程序结束后可以利用工具栏,
第一个按钮实现对程序的编译,第二个按钮
连接,第四个按钮运行程序,也可以直接按第
四个按钮运行(不提倡)
e.如果在下面的输出窗口中提示 0 error,
则程序正确,否则肯定程序有错误.
f.如果输出窗口提示 1 warnning,则可以忽
略,程序还是正确的。
c_上机面试题目(3篇)
第1篇一、题目背景C语言作为一种经典的编程语言,广泛应用于系统软件、嵌入式系统、游戏开发等领域。
为了考察应聘者对C语言的掌握程度,以下列出了一份C上机面试题目,涵盖了C语言的基本语法、数据结构、算法和编程实践等方面。
二、题目内容1. 编写一个C程序,实现以下功能:(1)定义一个结构体`Person`,包含以下成员变量:- 姓名(字符数组,长度不超过50)- 年龄(整数)- 性别(字符,'M'代表男性,'F'代表女性)(2)编写一个函数`printPerson`,用于打印`Person`结构体变量的信息。
(3)在主函数中,创建一个`Person`数组,包含3个元素,并使用`printPerson`函数打印每个元素的信息。
2. 编写一个C程序,实现以下功能:(1)定义一个函数`reverseString`,用于将字符串反转。
(2)在主函数中,定义一个字符串`str`,调用`reverseString`函数,并打印反转后的字符串。
3. 编写一个C程序,实现以下功能:(1)定义一个函数`isPalindrome`,用于判断一个字符串是否为回文。
(2)在主函数中,定义一个字符串`str`,调用`isPalindrome`函数,并打印结果。
4. 编写一个C程序,实现以下功能:(1)定义一个函数`findMax`,用于在整数数组中查找最大值。
(2)在主函数中,定义一个整数数组`arr`,调用`findMax`函数,并打印最大值。
5. 编写一个C程序,实现以下功能:(1)定义一个函数`sum`,用于计算两个整数之间的所有整数之和。
(2)在主函数中,定义两个整数`a`和`b`,调用`sum`函数,并打印结果。
6. 编写一个C程序,实现以下功能:(1)定义一个函数`isPrime`,用于判断一个整数是否为素数。
(2)在主函数中,定义一个整数数组`arr`,调用`isPrime`函数,并打印每个元素是否为素数。
江苏省二级c语言上机考试例题集1-20模板
江苏省二级c语言上机考试例题集1-20模板回文数#include "stdio.h"int ispal(int n){int m=0;int t=n;while(t){m=m*10+t%10;t/=10;}return m==n;}void main(){int i;int cnt=0;for(i=1;i<10000;i++){if(ispal(i)){cnt++;printf("%d\n",i);}}printf("合计:%d个\n",cnt);}。
水仙花数#include "stdio.h"void main(){int a,b,c,i;for(i=100;i<1000;i++){a=i/100;b=i%100/10;c=i%10;if(a*a*a+b*b*b+c*c*c==i)printf("%d\t",i);}}1、取出一个十进制正整数中的所以奇数数字,用这些数字构成一个最小数。
#include#includevoid sort(int a[], int n){int i, j, t;for (i = 0;i < n - 1;i++)for (j = 0;j < n - 1 - i;j++) /*利用双重循环,将数组按从小到大排列*/if (a[j] > a[j + 1]){t = a[j];a[j] = a[j + 1];a[j + 1] = t; }}long arrange(long s) /*arrange函数的功能是取出十进制整数s 中的所有奇数数字,用这些数字构成一个最小数,函数返回该数*/ { int d, b[10], i, j = 0;long s1 = 0;while (s > 0) /*利用循环对s数位分离,分离出个位、十位、百位等各位上的数*/{ d = s % 10;if (d % 2 != 0) /*判断每一位上的数字是否为奇数*/b[j++] = d; /*若为奇数则存放到b数组中*/s /= 10;}sort(b, j); /*调用sort函数,将数组b从小到大排列*/for (i = 0;i < j;i++)s1 = s1 * 10 + b[i]; /*求得用各位上的奇数组成的最小数 */return s1; /*返回求得的数*/}void main(){long m, n;FILE *fp; /*定义文件指针fp*/if ((fp = fopen("myf2.out", "w")) == NULL) /*涉及文件的打开*/{printf("The file can not open!");exit(0);}scanf("%ld", &n); /*接收键盘输入的整型数据*/m = arrange(n); /*键盘输入的数据作为实参调用arrange 函数*/ printf("%ld\n", m); /*将得到的最小数输出到屏幕及结果文件中*/ fprintf(fp, "%ld\n", m);printf("\nMy exam number is:WLJY001\n"); /**/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}2、按要求合并两个字符串#include#include#includevoid fun(char *a, char *b, char *c) /*函数功能是先将b指向的字符串逆序存放,然后按a[0] ,b[0], a[1], b[1]…的顺序合并a字符串和b 字符串到c指向的数组中,将a 或b中剩余的字符拼接在c数组的尾部*/{int i, j;char ch;i = 0;j = strlen(b) - 1;while (i < j) /*利用while循环将数组b中的字符逆序存放*/{ch = b[i];b[i] = b[j];b[j] = ch;i++;j--;}while (*a || *b) /*利用while循环,通过判断*a || *b,将a、b数组间隔存放在c数组中*/{ if (*a){*c = *a;c++;a++;}if (*b){*c = *b;c++;b++;}}*c = '\0';}void main(){FILE *fp; /*定义文件指针fp*/char s1[80], s2[80], s[200]; /*声明3个一维数组*/if ((fp = fopen("myf2.out", "w")) == NULL){printf("can't open file");exit(0);}printf("\nEnter s1 string:");gets(s1);printf("\nEnter s2 string:");gets(s2); /*s1、s2 接收键盘输入的字符*/fun(s1, s2, s); /*调用change函数,对字符串s2进行逆序变换,再合并s1字符串和s2字符串并保存到s数组中*/printf("\nThe result is:%s\n", s);/*将合并后产生的数组s中的字符串输出到屏幕及结果文件中*/ fprintf(fp, "%s", s);fprintf(fp, "\n");printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}3、先判断一个m×n矩阵为Monge矩阵,在对该矩阵进行交换处理#include#include#define N 5void change(int a[][N], int n) /*该函数的功能是,对a指向的n行5列数组中的矩阵进行变换*/{int i, j, t;for (i = 0;i < n / 2;i++) /*通过两重for循环对数组各行的位置进行交换*/for (j = 0;j < N;j++){t = a[i][j];a[i][j] = a[n - 1 - i][j];a[n - 1 - i][j] = t;} /*变换形式:第一行与最后一行交换,第二行与倒数第二行交换……*/}int Monge(int a[][N], int n){int i, j;for (i = 0;i < n - 2;i++) /*利用for循环和if语句对数组元素进行矩阵判断,判断是否为Monge矩阵*/ { for (j = 0;j < N - 2;j++) if (a[i][j] + a[i + 1][j + 1] > a[i][j + 1] + a[i + 1][j])return 0;/*若矩阵不是Monge矩阵,函数返回0*/}return 1;/*若矩阵是Monge矩阵,函数返回1*/}void main(){int a[][N] = {{10, 17, 13, 28, 23}, {17, 22, 16, 29, 23},{24, 28, 22, 34, 24}, {11, 13, 6, 17, 7}, {45, 44, 32, 37, 23}}; /*数组初始化*/ int monge, i, j;FILE *fp;fp = fopen("myf2.out", "w"); /*以只写"w"方式打开文件*/if (fp == NULL)exit(0);monge = Monge(a, 5); /*调用Monge函数对a数组进行判断*/ for (i = 0;i < N;i++) /*将a数组变换前中的元素输出到屏幕及结果文件中*/{for (j = 0;j < N;j++){printf("%4d", a[i][j]);fprintf(fp, "%4d", a[i][j]);}printf("\n");fprintf(fp, "\n");}if (monge){printf("a is Monge\n");fprintf(fp, "a is Monge\n");} /*将a数组变换前的判断结果输出到屏幕及结果文件中*/else{printf("a is not Monge\n");fprintf(fp, "a is not Monge\n");} change(a, 5); /*调用change函数对a数组进行变换处理*/for (i = 0;i < N;i++){for (j = 0;j < N;j++){ printf("%4d", a[i][j]);fprintf(fp, "%4d", a[i][j]);}printf("\n");fprintf(fp, "\n");} /*将a数组变换后的元素输出到屏幕及结果文件中*/monge = Monge(a, 5); /*调用Monge函数对经过变换的a数组进行判断*/if (monge) /*将a数组变换后的判断结果输出到屏幕及结果文件中*/{printf("a is Monge\n");fprintf(fp, "a is Monge\n"); }else{ printf("a is not Monge\n");fprintf(fp, "a is not Monge\n"); } printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}4、用一组整数验证命题#include#include#define N 100int fun (int a[], int b[], int n){int i, x, y, z, s, t, m, k = 0;for (i = 0;i < n;i++) /*按题目要求的步骤进行交换,直到得到所要求的结果停止循环*/ if (a[i] / 1000 < 1){x = a[i] / 100;y = a[i] / 10 % 10;z = a[i] % 10; /*对数a[i]进行数位分离*/if (x != z){s = z * 100 + y * 10 + x; /*交换a[i]的百位数字与个位数字得到s*/t = s > a[i] ? (s - a[i]) : (a[i] - s); /*求a[i]和s的绝对值得到t*/x = t / 100;y = t / 10 % 10;z = t % 10;m = z * 100 + y * 10 + x; /*交换 t的百位数字与个位数字得到m*/if (t + m == 1089) /*判断t与m的和是否为1089*/b[k++] = i;}}return k; /*函数返回数组b中数据的个数*/}void main(){int a[N] = {123, 765, 1, 45, 121, 1345, 131, 67, 696, 3589}, b[N], n, i;FILE *fp; /*定义文件指针*/if ((fp = fopen("myf2.out", "w")) == NULL) /* 以只写"w"方式打开文件 */{printf("The file call not open!");exit(0);}n = fun (a, b, 10); /*用a数组作为实参调用fun函数*/for (i = 0;i < n;i++){printf("%5d", a[b[i]]);fprintf(fp, "%5d", a[b[i]]);} /*将a数组中所有符合命题的整数输出到屏幕及结果文件中*//*将考生准考证号输出到屏幕及结果文件中*/printf("\nMy exam number is:WLJY001\n");fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件 */}5、找出7个默森尼数#include#include#define N 7void Mersenne(long a[], int m);int prime(long);void main(){long a[N];int i;FILE *fp; /*定义文件指针*/fp = fopen("myf2.out", "w"); /*以只写"w"方式打开文件*/if (fp == NULL)exit(0);Mersenne(a, N); /*调用Mersenne 函数,找出并保存前7个Mersenne 数*/for (i = 0;i < N;i++){ printf("%8ld", a[i]);fprintf(fp, "%8ld", a[i]);} /* 将运行结果输出到屏幕及结果文件中*/ printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");}void Mersenne(long a[], int m) /*该函数的功能是,求出前m个Mersenne数*/{long f, n, k;int i = 0;a[i++] = 3;for (n = 3;i < m;n += 2){f = 1;for (k = 1;k <= n;k++)f *= 2; /*求2的n次方*/if (prime(n) && prime(f - 1)) /*当n和2的n次方减1均为素数时,该数为Mersenne 数*/ a[i++] = f - 1; /*将找到的Mersenne 数保存到数组a中*/}}int prime(long n) /*该函数的功能是,判断整数a是否是素数*/ {long i;for (i = 2;i <= n / 2;i++)if (n % i == 0) return 0;return 1; /*若是素数函数返回值1*/}6、从一个指定的自然数#include#includeint linkrun(int a, int b, int *p);void main(){int i, a, b, max, p[100];FILE *fp;if ((fp = fopen("myf2.out", "w")) == NULL) /*以只写"w"方式打开文件*/{printf("The file call not open!");exit(0);}printf("Enter a,b:(a<b)");< bdsfid="349" p=""></b)");<> scanf("%d,%d", &a, &b); /*接收从键盘输入的a和b*/max = linkrun(a, b, p); /*以a、b、p作为实参调用函数*/for (i = 0;i <= b - a;i++){printf("%3d", p[i]);fprintf(fp, "%3d", p[i]);}printf("\nmax=%d", max);fprintf(fp, "\nmax=%d", max); /*将运行结果输出到屏幕及结果文件中*/printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}int linkrun(int a, int b, int *p){int i, k, m, n, num;num = 0;for (i = 0, k = a;k <= b;i++, k++) /*通过for循环,以[a,b]中所有自然数作为n*/{n = k;p[i] = 1;while (n != 1){++p[i]; /*将数列的长度保存到数组p中*/if(n % 2) /*n为奇数时,按相应公式求解*/n = n * 3 + 1;else /*当n为偶数时,按相应公式求解*/n /= 2;}if (p[i] > num)num = p[i]; /*求出数组中最大值*/}return num; /*返回最大值*/}7、将一个十进制整数m转换成r进制整数的字符串表示形式#include#includevoid trdec(char *str, int idec, int ibase) /*该函数的功能是,将十进制整数idec转换为ibase进制的字符串表示形式*/{char ch;int i, idr, k = 0;while (idec != 0){idr = idec % ibase; /*idec对ibase求余*/if (idr >= 10) /*判断余数,根据余数的值对其进行变换*/str[k++] = idr - 10 + 'A';elsestr[k++] = idr + '0';idec /= ibase;}for (i = 0;i < k / 2;i++) /*转换成ibase进制数的字符串形式后,将字符串保存到str指向的字符数组 */ {ch = str[i];str[i] = str[k - i - 1];str[k - i - 1] = ch;}str[k] = '\0';}void main(){int x;char str[20];FILE *fp; /*变量声明,定义文件指针fp */if ((fp = fopen("myf2.out", "w")) == NULL){printf("The file can not open!");exit(0);}printf("Enter a number"); scanf("%d", &x); /*接收从键盘输入的x*/trdec(str, x, 2); /*调用函数将该整数转换为二进制并输出到屏幕及结果文件中*/printf("%sB,", str);fprintf(fp, "%sB,", str);trdec(str, x, 8); /*调用函数将该整数转换为八进制并输出到屏幕及结果文件中*/printf("%sQ,", str);fprintf(fp, "%sQ,", str);trdec(str, x, 16); /*调用函数将该整数转换为十六进制并输出到屏幕及结果文件中*/printf("%sH\n", str);fprintf(fp, "%sH\n", str);printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}8、将以为数组中的所有素数移到该数组的前端部分#include#includeint N;void insert(int *p, int x, int n){int i = 0, j;while (x > p[i] && i < n) /* ① p是指针类型,引用形式不对*/ i++;for (j = n;j > i;j--)p[j] = p[j - 1];p[j] = x; /* ②此语句的作用是将x插入到元素p[j]的位置 */}int *create(){int *head, *p, i;printf("\n N=");scanf("%d", &N);head = (int *)malloc(N * sizeof(int)); /* ③分配内存空间函数malloc的调用形式错误,正确的为:(类型说明符*)malloc(size) */ printf("Enter numbers:");p = head;for (i = 0;i < N;i++)scanf("%d", &p[i]); /* ④接收从键盘输入的数值要用取址运算符*/for (i = 1;i < N;i++)insert(p, p[i], i);return head;}void main(){int *head, *p, i, x;head = create();p = head;for (i = 0;i < N;i++)printf("%3d", *p++);free(head);}9、用以下展开式求#include#include#include /* ①后续程序调用了字符函数isalpha,所以要加#include */#includevoid replace_word(char s[]){char word_tab[4][10] = {"sad", "happy", "accuse", "forgive"};char t[10], tmp[80]; /* ②由后面的t[k]=s[j]知,此处定义的t不是一个字符变量,而是一个字符型数组*/int i, j, k, n;for (i = 0;s[i];i++){for (j = i, k = 0;isalpha(s[j]);k++, j++)t[k] = s[j];t[k] = 0;if (k > 0){for (n = 0;n < 4;n++)if (strcmp(t, word_tab[n]) == 0)break;if (n < 4){strcpy(tmp, s + i + strlen(t));strcpy(s + i, word_tab[(n + 1) % 4]);strcat(s, tmp); /* ③strcpy(str1,str2)是把字符串str2复制到str1中,会覆盖str1中的内容,此处应用strcat函数 */i = i + strlen(word_tab[(n + 1) % 4]);}elsei = i + strlen(t);}}}main(){char line[80] = "I am very sad.";replace_word(line);puts(line); /* ④输出字符串应调用函数puts,putchar只能输出单个字符 */}10、找出满足下列条件的整数对#include#include#includeint factor(int n) /*该函数的功能是,求整数n的所有因子之和*/ { int i, s = 0;for (i = 1;i <= n;i++)if (n % i == 0)s = s + i; /*各因子累加求和*/return s; /*返回和值*/}int fun(int n, int a[][2]) /*该函数的功能是,在[1,n] 中查找满足题目条件的整数对*/{ int i, j, g1, g2, k = 0;for (i = 2;i <= n;i++){g1 = factor(i); /*调用factor函数求得g1的因子之和*/for (j = 1;j < i;j++){g2 = factor(j); /*调用factor函数求得g2的因子之和*/if (g1 == g2 && g1 == i + j + 1) /*比较两因子之和,若符合要求,则将其存入数组a中*/{a[k][0] = j;a[k++][1] = i;}}}return k; /*返回数组a中元素个数*/}void main(){FILE *fp;int i, n, m, a[100][2];if ((fp = fopen("myf2.out", "w")) == NULL){printf("The file call not open!");exit(0);}scanf("%d", &n); /*接收键盘输入的n*/m = fun(n, a); /*用n,a作为实参调用fun函数*/for (i = 0;i < m;i++){printf("(%d,%d)\n", a[i][0], a[i][1]);fprintf(fp, "(%d,%d)\n", a[i][0], a[i][1]);} /*将a数组中的结果数据输出到屏幕及结果文件中*/printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp);}11、验证3~2008的所有素数中存在这样两个素数a=5,b=2003 a+b=2008#include#include#include#includeint prime(int n) /*该函数的功能是,判断整数a是否素数*/{ int i;for (i = 2;i <= n / 2;i++)if (n % i == 0) return 0; /*若不是素数,函数值返回0*/return 1; /*若是素数,函数值返回1*/}int fun(int n, int *a, int *b) /*该函数的功能是,在3~n之间寻找符合要求的一对素数*/{ int n1, n2;for (n1 = 3;n1 < n;n1 += 2){if (prime(n1))n2 = n - n1;if (prime(n2) && n1 + n2 == n) /*n1和n2均为素数,且和为n */{*a = n1;*b = n2; return 1;} /*将找到的两个素数分别保存到数组a和b中,函数返回1*/ }return 0; /*若找不到,函数返回0*/}void main(){FILE *fp; /*定义文件指针fp*/int n = 2008, a, b, c;if ((fp = fopen("myf2.out", "w")) == NULL){printf("Create File myf2.out failed!\n");exit(0);}c = fun(n, &a, &b); /*调用fun函数找出3~n之间和值为n的一对素数*/if (c) /*将找到的素数输出到屏幕并用写文件函数保存到结果文件中*/{printf("a=%d b=%d a+b=%d\n", a, b, a + b);fprintf(fp, "%d+%d=%d\n", a, b, a + b);}elsefprintf(fp, "not found!");printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}12、数组部分元素逆置#include#include#includeint prime(int a) /*该函数的功能是,判断整数a是否是素数*/{int i;if (a == 1) return 0;if (a == 2) return 1; /*a等于1和2时单独考虑*/for (i = 2;i < a;i++)if (a % i == 0) return (0);return (1); /*若是素数,函数返回1*/}void reverse(int *a, int n, int m){int i, k = -1, *b, *p, t; /*定义变量b和p为指针变量*/for (i = 0;i < n;i++)if (prime(a[i]))k = i; /*找到数组a中的最后一个素数*/p = a + k - 1;if (k - m < 0)b = a; /*判断最后一个素数之前的元素个数与m的大小*/else b = a + k - m;while (b < p) /*将最后一个素数之前的m个元素逆置*/{t = *b;*b = *p; *p = t;b++;p--;}}void main(){int a[20] = { 4, 3, 6, 7, 8, 13, 9, 19, 21, 26}, i, m, n = 10;FILE *fp; /*定义文件指针 */if ((fp = fopen("myf2.out", "w")) == NULL){printf("Create File myf2.out failed!\n");exit(0);}printf("Please input m:\n");scanf("%d", &m); /*接收从键盘输入的m值*/reverse(a, n, m); /*调用reverse函数变换数组a*/for (i = 0;i < n;i++) /*将变换后的数组a输出到屏幕并用写文件函数保存到结果文件中*/ {printf("%4d", a[i]);fprintf(fp, "%4d", a[i]);}printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}13、取出一个正整数中的所有偶数数字#include#include#includevoid sort(int a[], int n) /*将数组a中的n个整数进行从大到小排列*/{ int i, j, k, t;for (i = 0;i < n - 1;i++) /*利用双重for循环*/{k = i;for (j = i + 1;j < n;j++)if (a[j] > a[k])k = j;if (k != i){t = a[k];a[k] = a[i];a[i] = t;}/*利用中间变量t交换两者的值,最后将数组按从大到小的顺序进行排列*/ }}long fun(long s){int d, b[10], i, j = 0;long s1 = 0;while (s > 0) /*利用while循环对数据s进行各位数字各位的分离*/{ d = s % 10;if (d % 2 == 0) /*判断各位是否为偶数,若是偶数则将其保存到数组b中*/b[j++] = d;s /= 10;}sort(b, j); /* 调用函数sort对b数组中存放的j个偶数进行排序*/ for (i = 0;i < j;i++)s1 = s1 * 10 + b[i]; /* 利用j个偶数,构成一个最大的整数*/return s1; /* 返回构成的最大数*/}void main(){long m, n;FILE *fp; /*定义文件指针*/if ((fp = fopen("myf2.out", "w")) == NULL) /*以只写方式"w"打开文件*/{printf("The file call not open!");exit(0);}scanf("%ld", &n); /*接收从键盘输入的n */m = fun(n); /*调用fun函数求出整数n的所有偶数数字构成的一个最大数*/printf("%ld\n", m); /*将所得结果输出到屏幕并用写文件函数保存到结果文件中*/fprintf(fp, "%ld\n", m);printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}14、找出符合以下条件的Troitsky数#include#include#include#include#define N 10int Troitsky(long a[]) /*该函数的功能是,求出1000000以内所有的Troitsky数*/{int count = 0, b;long n, n1;for (n = 1;n <= 1000000;n++) /*利用for循环对1~1000000的数进行变换*/{n1 = n;b = 0;while (n1 > 0){b++;n1 /= 10;} /*确定数n的位数,求得数n的首位数字*/n1 = n % (long)pow(10, b - 1) * 10 + n / (long)pow(10, b - 1); /*将首位作为个位,其他三位数乘以10组成新的整数*/if (n1 / n == (double)n1 / n && n1 / n > 1) /*判断新的整数是否是原数n的整数倍*/ a[count++] = n; /*将符合要求的数存入数组a 中*/}return count; /*函数返回Troitsky数的个数*/}void main(){long a[N], i;int k;FILE *fp; /*定义文件指针*/fp = fopen("myf2.out", "w"); /*以只写方式"w"打开文件*/if (fp == NULL)exit(0);k = Troitsky(a); /*调用Troitsky函数*/for (i = 0;i < k;i++) /*将运行结果输出到屏幕并用写文件函数保存到结果文件中*/{printf("%10ld", a[i]);fprintf(fp, "%10ld", a[i]); }printf("\n"); /*换行*/fprintf(fp, "\n");printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}15、产生Fibonacci 生兔子#include#include#include#includeint Fibonprime(long f[], int n){int i, m = 0;long a[40] = {1, 1}, j, k;for (i = 2;i < n;i++)a[i] = a[i - 2] + a[i - 1]; /*利用for循环生成数列的前n项*/for (i = 2;i < n;i++){k = (long)sqrt(a[i]);for (j = 2;j <= k;j++)if (a[i] % j == 0)break; /*判断其是否是素数*/if (j >= k + 1)f[m++] = a[i]; /*将素数存放到数组k中*/}return (m); /*数组中素数的个数作为函数值返回*/}main(){int i, m;long f[40];FILE *fp; /*定义文件指针 */fp = fopen("myf2.out", "w"); /*以只写方式"w"打开文件*/if (fp == NULL){ printf("Can not open de file!\n");exit(0);}m = Fibonprime(f, 30); /*调用函数Fibonprime 求出Fibonacci 数列前30个数中的素数 */ for (i = 0;i < m;i++) /*将找到的素数输出到屏幕并用写文件函数保存到结果文件中*/ printf("%ld\t", f[i]);for (i = 0;i < m;i++)fprintf(fp, "%ld\t", f[i]);printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}16、在数列中查找、移动#include#include#includevoid sumfac(int x[], int n);int fac(int n);main(){int i, a[10] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512};FILE *fp; /*定义文件指针*/if ((fp = fopen("myf2.out", "w")) == NULL){ printf("Creat File myf2.out failed!\n");exit(0);}sumfac(a, 10); /*调用函数sumfac对一维数值中的数列进行变换操作*/printf("\n");fprintf(fp, "\n");for (i = 0;i < 10;i++) /*将变换后的数列输出到屏幕并用写文件函数保存到结果文件中*/ {printf("%6d", a[i]);fprintf(fp, "%6d", a[i]);} printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}int fac(int n) /*该函数的功能是,求得n的所有因子之和*/{int i, sum = 0;for (i = 1;i <= n;i++)if (n % i == 0)sum += i; /*求出n的所有因子及因子之和*/return sum; /*函数返回和值*/}void sumfac(int x[], int n){int i, j, k, m, sum;for (i = n - 1, k = 0;i >= k;i--) /*利用循环,从后向前遍历数列查找超完全数*/{sum = fac(x[i]); /*调用fac函数求得各元素的所有因子之和*/if (fac(sum) == x[i] *2) /*利用if判断其是否是超完全数*/{m = x[i];for (j = i;j > 0;j--)x[j] = x[j - 1]; /*移动超完全数之前需将数列所有数依次后移*/x[0] = m; /*将超完全数移动到数列的第一个位置*/k++;i++;}}}17、编写函数int Del-findged (int a[],int n,int *f)#include#include#includeint Del_findgcd(int a[], int n, int *f){int i, k, g;for (i = 0, k = 0;i < n;i++)if (i % 2 == 0)a[k++] = a[i]; /*利用循环判断数组元素的下标,若是奇数则将其删除*/ if (n % 2 == 0)n = n / 2; /*判断数组中剩余元素的个数 */else n = n / 2 + 1;k = a[0];for (i = 1;i < n;i++) /*通过循环找到能被所有数整除的最大的数即为最大公约数*/{g = a[i];while (k != g){if (k > g)k = k - g;else g = g - k;}}*f = k; /*保存最大公约数到f指向的变量中*/return n; /*函数返回数组中剩余的整数个数*/}void main(){FILE *fp; /*定义文件指针*/int i, a[10] = { 6, 8, 9, 11, 12, 13, 15, 16, 18, 19}, f, n;if ((fp = fopen("myf2.out", "w")) == NULL){ printf("can't open file!");exit(0);}n = Del_findgcd(a, 10, &f); /*调用Dle_findgcd函数删除数组中的所有满足条件的整数并求出剩余整数的最大公约数*/for (i = 0;i < n;i++) /*将数组中剩余的整数和这些整数的最大公约数输出到屏幕并用写文件函数保存到结果文件中*/{printf("%d,", a[i]);fprintf(fp, "%d,", a[i]);}printf("max common divisor=%d\n", f);fprintf(fp, "max common divisor=%d\n", f);printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}18、找出给定范围内的和亲数#include#include#includeint heqinmath(int m, int n, int a[][2]){int i, j, m1, s1, s2, count = 0;for (m1 = m;m1 < n;m1++) /*通过循环对m~n的整数进行依次判断*/{ s1 = 1;s2 = 1;for (i = 2;i < m1;i++)if (m1 % i == 0)s1 = s1 + i; /*找到某一整数m1的全部真因子并求和*/ for (j = 2;j < s1;j++)if (s1 % j == 0)s2 = s2 + j; /*找到和值s1的真因子并求和*/if ((s2 == m1) && (m1 != s1))/*判断是否为和亲数*/{a[count][0] = m1;a[count++][1] = s1; /*将和亲数对保存到a指向的数组中*/}}return count; /*函数返回a数组中和亲数对的个数*/}main(){int count, i, m, n, a[10][2];FILE *fp; /*定义文件指针*/fp = fopen("myf2.out", "w"); /*以只写方式"w"打开文件*/if (fp == NULL){printf("Can not open the file!\n");exit(0);};printf("Please input m,n:\n");scanf("%d%d", &m, &n); /*从键盘输入m和n*/count = heqinmath(m, n, a); /*调用函数heqinmath,求出m~n 之间所有的和亲数对*/for (i = 0;i < count;i++) /*将计算结果输出到屏幕并用写文件函数保存到结果文件中*/ printf("(%d,%d)\n", a[i][0], a[i][1]);for (i = 0;i < count;i++)fprintf(fp, "(%d,%d)\n", a[i][0], a[i][1]);printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}19、编写函数int prime-m(int n,int x[],long y[])nclude#includeint prime_m(int n, int x[], long y[]){int j, m, count;long k = 0, q, k1, k2, k3;for (m = 2;m <= n;m++) /*通过循环在2~n之间查找符合条件的整数*/{k1=(pow(2, m)-1);q = sqrt(k1);for (j = 2;j <= q;j++)if (k1 % j == 0)break;if (j <= q)continue; /*判断2m-1是否为素数*/count = 0;k3 = k1;k2 = 0;while (k3 > 0){int w = k3 % 10;if (w == 1) /*判断2m-1的十进制表示中是否包含数字1*/{count++;}k2 = k2 * 10 + w;k3 = k3 / 10;}if (k2 % 2 == 0)continue; /*判断2m-1的反序数是否为奇数*/ if (count > 0){x[k] = m;y[k++] = k1;} /*符合条件的所有整数m保存到x指向的数组中,将与m对应的整数2m-1保存到y指向的数组中*/ }return k; /*函数返回x数组中保存的整数个数*/}void main(){FILE *fp; /*定义文件指针*/long a[20];int i, j, n, b[20], m;if ((fp = fopen("myf2.out", "w")) == NULL){printf("Open file myf2.out failed!\n");exit(1);}printf("input n:");scanf("%d", &n); /*接收从键盘输入的参数n*/m = prime_m(n, b, a); /*调用search函数分别求得满足上述条件的所有三位正整数和所有四位正整数*/ for (i = 0;i < m;i++) /*将满足条件的三位正整数和四位正整数输出到屏幕并用写文件函数保存到结果文件中*/{ printf("%5d%15ld\n", b[i], a[i]); fprintf(fp, "%5d%15ld\n", b[i], a[i]);}printf("\nMy exam number is:WLJY001\n"); /*将考生准考证号输出到屏幕及结果文件中*/fprintf(fp, "\nMy exam number is:WLJY001\n");fclose(fp); /*关闭文件*/}20、编写函数int find(int n,long x[])#include#include#define min(x,y) ((x)<(y)?(x):(y)) /* ①宏定义的格式为:#define 标识符(形参表)形参表达式,形参表中的形参无需声明类型*/ int min_dist(int a[], int b[], int m, int n) /* ②由后面程序知,函数的前两个形参均为数组,所以此处应改为min_dist(int a[],int b[],int m,int n) */{int min = INT_MAX;int ia = 0, ib = 0;while (ia < m && ib < n) /* ③循环限制条件应是ia,ib都不能大于数组元素的个数,两者是"与"的关系*/if (a[ia] >= b[ib]){min = min(min, a[ia] - b[ib]);ib++;}else{min = min(min, b[ib] - a[ia]);ia++;}return min;}main(){int a[] = {2, 4, 8, 11, 16}, b[] = {1, 5, 7, 13, 24};int i, m, n;m = sizeof(a) / sizeof(int);n = sizeof(b) / sizeof(int);printf("\n");for (i = 0;i < m;i++)printf("%5d", a[i]);printf("\n");for (i = 0;i < n;i++) printf("%5d", b[i]);printf("\n min distance=%d", min_dist(a, b, m, n)); /* ④此处需要输出函数的返回值,printf 函数格式控制符应为 "%d"*/ getch();}。
《C语言集中上机》报告参考模板
C语言集中上机报告学生记录管理系统院系:通信与信息工程学院班级:0101110姓名:黄滟洪合作者:无指导教师:冯潇2011 年12 月18 日目录一.概述 (2)二.总体方案设计 (3)三.详细设计 (4)四.程序的调试与运行结果说明 (4)五.课程设计总结 (4)六.后记 (5)七.附录 (5)参考文献 (10)一概述1.课程设计的目的学会运用C语言的知识,实现学生记录管理。
检验我们是否学会运用所学知识,解决实际问题。
巩固C语言知识。
为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。
希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。
2.课程设计的要求(1)题目要求:a、设一个通信录由以下几项数据信息构成:数据项类型姓名字符串地址字符串邮政编码字符串电话号码字符串试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。
b、要求:界面友好,易于操作(2)知识和技能的要求:A.能熟练运用结构体和指针B.掌握函数调用的知识C.能灵活使用输入输出函数课程设计的主要设计思想运用所学的C语言知识,查阅书籍,询问老师同学等方式编写代码实现“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”等功能。
二总体方案设计运用所学C语言知识实现“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”的功能。
编写输入函数input、输出函数output、删除函数delete、查找函数search,在主函数中通过对编写函数的调用实现实验要求功能。
在本次设计工程中我所承担的设计工作是,编写代码实现实现“学生记录存取”、“学生记录显示”、“学生记录删除”、“学生记录查询”功能、编写完成后进行调试、调试后出现错误就进行修改错误、最后运行整个程序。
三详细设计1、功能一:学生记录存取主要用到函数input,还有for循环,最后用到函数调用。
C语言上机答案终结版 完美排版
C语言上机程序题全解//vc1//prog1.cpp//设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。
#include <stdio.h>main(){int a,b,c,temp;scanf("%d%d%d",&a,&b,&c);if(a>b){temp=a;a=b;b=temp;}if(b>c){temp=b;b=c;c=temp;}if(a>c){temp=a;a=c;c=temp;}printf("%d %d %d\n",a,b,c);}//vc1//prog2.cpp//求1+3+5+...+95+97+99的和。
#include <stdio.h>main(){int i,s=0;for(i=1;i<100;i=i+2)s+=i;printf("%d",s);}//vc1//prog3.cpp//写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。
(注:要求从主函数输入整数)#include <stdio.h>int fun(int m){int i,j=1;for(i=2;i<=m/2;i++){if(!(m%i)){j=0;break;}elsej=1;}return j;}main(){int m;while(1){scanf("%d",&m);if(fun(m))printf("此整数为素数");elseprintf("整数非素数");}}//vc2//prog1.cpp//从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。
#include <stdio.h>main(){int a[10],i,s=0;for(i=0;i<10;i++){scanf("%d",&a[i]);s+=a[i];}for(i=9;i>=0;i--)printf("%d ",a[i]);printf("\n%d",s);C语言上机程序题全解}//vc2//prog2.cpp//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。
上机报告模板
《标准C语言程序设计》上机报告实验四数组程序设计专业:电信工程班级:电信1102学号:U201113117姓名:胡莎完成日期:2012/5/81【注意:下面标注阴影的文本段是按要求填入代码或文字描述的地方,提交的A4打印稿上不得出现这些字样!】一、实验目的1.熟悉变量的各种存储类型的定义和申明2.理解各种存储类型变量的作用域和生存期;3.掌握局部变量和全局变量;4.掌握动态存储和静态存储;5.进一步熟悉循环、分支流程设计;6.掌握C++开发环境中调试、跟踪各种存储类型变量值和地址的使用二、实验内容及要求1.上机指导实验三实战训练6(求开平方),要求考虑负数开平方问题。
…….这里是代码和解答(运行测试数据要考虑负数、正数和0),针对负数情况,完成两种设计:给出错误输入提示并退出运行、给出错误输入提示并要求重新输入直至输入正确。
…….2.上机调试跟踪复合语句中的同名变量,掌握理解复合语句中局部变量的作用域以及变量存储空间的生存期。
在报告中写出你对同名变量使用的深入理解。
…….这里是代码和解答(通过上网或打开MSDN帮助了解符号::的含义,并谈谈你的理解)…….3.上机运行下面程序,调试跟踪static变量a和其它存储类型变量b、c的取值变化,加深理解不同存储类型变量的作用域和生存期语法概念,并给出你对静态局部和自动变量这两种局部作用域存储类型的深入理解:…….这里是代码和解答(如果VC6.0不能跟踪static变量的取值,你准备用什么办法?)…….4.教材习题四的第三题,给出运行结果,单步跟踪了解调试器对函数内部auto和static两种局部变量x和y的附带初值的定义语句执行过程有何区别?进一步深入理解两种局部变量auto、static的区别。
…….这里是代码和解答…….5.理解符号常量的作用域…….代码中条件编译请参考教材chapter10第三节,也可参考MSDN得到更多理解,报告中给出你对条件编译的深入理解(不仅限于本题题目要求)…….注:源代码(附详细注释),且要求版式规范化;代码复杂一点的要给出数据描述和各函数模块的接口描述(通过原型说明语句可以描述输入接口和输出接口定义信息)。
全国计算机等级考试二级C上机模拟
第一套:请补充main函数,该函数的功能是:先以只写方式打开文件,再把字符串s 中的字符保存到这个磁盘文件中。
# include <stdio.h># include <stdlib.h># define N 100main(){FILE *f;int i=0;char ch;char s[N]="Welcome!";if((f=fopen("___1___ ","w"))==NULL){printf("cannot open file.dat\n");exit(0);}while(s[i]){ch=s[i];___2___;putchar(ch);i++;}___3___;}下列给定程序中,函数fun的功能是:求三个数的最小公倍数。
例如,给变量a、b、c分别输入15、11、2,则输出结果应当是330。
# include <stdio.h>int fun(int x,int y,int z){int i,temp,n,m;/*******error*********/i=1;temp=m=n=1;/********error********/while(temp!=0 && m!=0 && n!=0){i=i+1;temp=i%x;m=i%y;n=i%z;}return i;}main(){int a,b,c,i;printf("Input a b c: ");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d \n",a,b,c);i=fun(a,b,c);printf("The minimal common multiple is : %d\n",i);}编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机改错部分:
1 “#”开头的语句行最后有分号的必定删除!
2 for(.....;.....;⊿++) ⊿++改为⊿+=2,如p++改为p+=2
3 pmax=&t改为pmax=pmin
4 cout<<p1<<’\t’;改为cout<<*p1<<’\t’
cout<<*p1<<’\t’;改为cout<<p1<<’\t’
5 c(字符)=t%2改为c=t%2+’o’
6 *p++=c 改为*p--=c *p--=c 改为*p++=c
7 return *p;改为return p;
8 if(....==....)改为if(...=....) 或=改为==
9 t[k+1]改为t[k-1] 或者颠倒
10 return len1改为return len2 或者颠倒
11 *t+i改为*(t+i)
12 如果某个函数定义在某个函数后,则要注意是否漏掉函数原型说明,漏掉要补上
上机编程部分编程模板:
模板1:
#include<iostream.h>
#include<iostring.h>
class STR
{ private:
char *s;
int a,b;
public :
STR(char *p , ....)
{
s= new char[strlen(p)+1];
strcpy(s,p);
a= 0 ;b= 0 ;}
void fun(){
注:根据具体题目写(6—8分)一定要写上点char *p0;
p0=s;
while(*p0){
if( ){......}
if( ){... }
............}
void print( ){
cout<<s<<’\n’;
cout<<”a=”<<a<<’\n’;
cout<<”b=”<<b<<’\n’;}
~STR( ){
if(s) delete[]s;
} };
void main( ){
char s0[40];
cin.getline(s0,40);
STR st(s0);
st.fun( ):
st.print( );}
模板2:
#include<iostream.h>
#include<iostring.h>
class STR{
char *s1,*s2;
int a,b; 注:此行可能没有,具体有题目定public :
STR(char *p , ....){
s1= new char[strlen(p)+1];
s2= new char[strlen(p)+1];
strcpy(s1,p);
a= 0 ;b=0 ;} 注:此行可能没有,具体有题目定void fun(){
注:根据具体题目写(6—8分)一定要写上点char *p0;
p0=s;
if( ){......}
............}
void print( ){
cout<<”s1=”<<s1<<’\n’;
cout<<”s2=”<<s2<<’\n’;
cout<<”a=”<<a<<’\n’;
cout<<”b=”<<b<<’\n’;} ~STR( ){
if(s1) delete[]s1;
if(s2) delete[]s2;}
};
void main( ){
char s0[40];
cin.getline(s0,40);
STR st(s0);
st.fun( ):
st.print( );}
模板3:
#include<iostream.h> #include<iostring.h> class STR{
private:
char p[40];
int m,n;
public :
STR(char *s , ...){
p=s;
n= 0 ;m= 0 ;
.......;}
void fun(){
注:根据具体题目写(6—8分)一定要写上点
char *p0=p;
while(*p0){
if(*p0==’,’)m++;
if(*p0==’.’)n++;
if( ){......}
............;}
void print( ){
cout<<”n=”<<n<<’\n’;
cout<<”m=”<<m<<’\n’;
cout<<p<<’\n’;}
void main( ){
char s1[40];
cin.getline(s1,40);
STR st(s1);
st.fun( ):
st.print( );}
仅作参考,具体由题目决定,祝各位同学都能顺利通过。