第一篇:c语言上机实习报告
苏州科技大学上机实习报告 程序设计语言(C语言)
实验一: Visual C++实验环境
一、实验任务
实验一
二、实验目的
1.了解C程序结构,熟悉VC++ 6.0开发环境。
2.熟悉在VC++ 6.0开发环境中编辑、编译、连接、运行和调试C语言程序。3.通过运行简单的C语言程序,初步连接C语言源程序的特点。
三、实验环境
硬件:PC兼容机 CPU Core i5,内存4GB; 操作系统:中文版 Windows 7;
应用软件 Visual C++ 6.0程序开发环境。
四、实验准备及作业提交方法
1.提交位置
在计算机硬盘(E盘)上新建以学生“学号姓名”命名的文件夹,本次实验学生编写的程序文件先保存到上述文件夹中,待上机实验结束时,将文件夹通过校园网络提交到规定服务器位置上。2.提交内容
本次作业需提交2类文件:.c文件、上机实习报告.doc
五、实验内容(因实验内容较多,本实验报告中仅体现部分内容)
1.编写一个程序,输出以下信息:
*****************************
Welcome to the world of C!
***************************** 【源程序代码】
电子与信息工程学院上机实习报告
第1页 2.编写程序求两数之和
【源程序代码】
3. 编写程序。
【源程序代码
六、思考与实践
6.【修改后源程序代
】
码】 7.【源程序代码】
七、实验分析总结
有时候多个错误只要改第一个就行了。不能忘记尾部的‘;’。C语言要敢于动手尝试,不能逃避困难。
第二篇:C语言上机实习报告
一、实验目的
1.能够描述VC++6.0开发平台的使用过程,学会运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
2.能够使用算术表达式和赋值表达式书写正确的语句。3.能够使用输入/输出函数编写简单的程序。
二、实验环境
(调试程序所使用的软硬件环境)软件环境:VC++6.0 硬件环境:宏基
Intel 奔4 主频 2.8GHz,内存256MB
三、实验内容、结果及分析
1、题目1)求华氏温度150°F对应的摄氏温度。计算公式如下: 55cf32
其中:c表示摄氏温度,f表示华氏温度。源程序清单:(调试好的源程序代码)// work1.cpp : Defines the entry point for the console application.//
#include “stdafx.h” #include
} 主要标识符说明:(源程序中主要标识符含义说明)Double为双精度类型变量名表
实验结果:(程序运行结果)double f,c;cout<<“输入华氏温度,按Enter执行”< 实验中遇到的问题及解决的方法 源代码的粘贴出现乱码 解决:从Cpp文件中粘消除格式。 2、题目 已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。 源程序清单:(调试好的源程序代码)// work2.cpp : Defines the entry point for the console application.// #include “stdafx.h” #include double a,b,c,average;cout<<“请按顺序输入数学、英语、计算机三科成绩。”< 实验中遇到的问题及解决的方法 3、题目 当n为152时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。 源程序清单:(调试好的源程序代码)// work3.cpp : Defines the entry point for the console application.// #include “stdafx.h” #include int n,digit1,digit2,digit3;cout<<“请输入一个三位数n(100﹏999)”< //求个位数字 digit2=n/10%10; //求十位数字 digit3=n/100%10; //求百位数字 cout<<“个位数字(digit1)”< 实验中遇到的问题及解决的方法 四、实验体会(心得、收获) C语言对我们来说是一个崭新的学科。我想学习C语言就像学习其他学科一样,需要我们用心的去学习。它也是我们交流的一种新的方式。只不过是人机之间的。随着科学的进步,与社会的发展,计算机显得尤为重要。C语言又是学习计算机的基础,所以我们更应该该好好的学习C语言。通过这节实验课,我们学到了如何运用6.0来编辑代码,运行我自己编写的程序。虽然过程中会有错误,但在这犯错的过程中我学到了我所不知道的。在这纠错的过程中,我来了解到我还有很多的地方不足。如忘记写分号等。其实就错就是个学习的过程。 对于实验上的问题,如粘源代码时,就应先用记事本打开源代码,就可以。而不是在程序中直接粘,这样就不会出现乱码。还有,就是注意小处的错误,如分号和注意换行的使用。 文献检索实习报告(参考格式) 课程名称:文献检索日期: 学院:班号:姓名:学号: 实验名称:电子图书等资源检索。 实验目的:掌握图书资源如何检索和利用,熟悉人名录或机构名录的检索。实验内容: 1、用CALIS检索你们自己任课教师的编著发表情况。 2、用超星检索自己所在专业的某一方面的图书出版情况,并采集某一本书的一段文字,一个图。(以超星为例) (1).登陆四川理工学院图书馆主页。 (2).找到电子资源,点击进入图书馆电子资源界面。 (3).找到热门资源中的“超星数字图书馆”,并点击“本地”,进 入超星数字图书馆。 (4).找到“浏览器”,点击并下载超星星浏览器。 (5).下载好“超星星浏览器”后就可以浏览图书了。 (6).例如查 3、利用物竞化学品数据库检索某一具体化学物质的相关数据。 4、用万方数据库检索我国某一位院士/科学家/某学科领域著名学者的名录。 实习报告要求:用自己姓名作为文件名称,将作业发送给各班指定的同学。 班级:学号:姓名: 填空题 第一题 题目要求(11) 下列给定程序中,函数fun的功能是:将形参中,各位偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。例如,输入一个整数27638496,中。. #include int fun(char*source, char*target){FILE*fs,*ft;charch;/**********found**********/if((fs=fopen(source,“w”_))==NULL)return 0; if((ft=fopen(target, “w”))==NULL)函数返回值为64862 #include unsigned long fun(unsigned longn){ unsigned longx=0;intt;while(n){ t=n%10; /**********found**********/if(t%2==0) /**********found**********/x=10*x+t; /**********found**********/n=n/10;}returnx;} main() { unsigned longn=-1;while(n>99999999||n<0){ printf(“Please input(0 ”);scanf(“%ld”,&n);} printf(“nThe result is: %ldn”,fun(n));} 1、做题分析: ① 本题考查:已知某数,如何求该数各个 位数值,已知各个位数值,如何表示该数;除法运算。将十位取出数以用于下次运算故改为n/10 第二题(11) 1、题目要求 .给定程序的功能是;调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值是1,失败时返回值为O。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname return 0; printf(“nThe data in file :n”);ch=fgetc(fs); /**********found**********/while(!feof(fs)){putchar(ch); /**********found**********/fputc(ch,ft);ch=fgetc(fs);} fclose(fs);fclose(ft);printf(“nn”);return1;} main(){ char sfname[20] =“myfile1”,tfname[20]=“myfile2”; FILE*myf;inti;charc;myf=fopen(sfname,“w”);printf(“nThe original data :n”);for(i=1;i<30;i++){ c='A'+rand()%25;fprintf(myf,“%c”,c);printf(“%c”,c);} fclose(myf);printf(“nn”);if(fun(sfname,tfname))printf(“Succeed!”); elseprintf(“Fail!”);} 答案:【1】“r” 【2】fs【3】ft 2、做题分析 ① 对数据文件部分的知识掌握不透彻。首 先以读的方式打开文件看看是否有数据在里面,然后再进行操作,故应将“w”改为“r”。第三题 班级:学号:姓名: 1、题目要求 给定程序的功能是:从键盘输入若干行文件(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。#include {FILE*fp; if((fp=fopen(“myfile4.txt”,“w”))==NULL) {printf(“ open fail!n”);exit(0);} WriteText(fp);fclose(fp); if((fp=fopen(“myfile4.txt”,“r”))==NULL) {printf(“ open fail!n”);exit(0);} ReadText(fp);fclose(fp);} /**********found**********/ void WriteText(FILE___1___){charstr[81]; printf(“nEnter string with-1 to end :n”);gets(str); while(strcmp(str,“-1”)!=0){ /**********found**********/fputs(___2___,fw);fputs(“n”,fw);gets(str);} } void ReadText(FILE*fr){charstr[81]; printf(“nRead file and output to screen :n”); fgets(str,81,fr);while(!feof(fr)){ /**********found**********/printf(“%s”,___3___);fgets(str,81,fr);} } 2、做题分析 答案:【1】*fw【2】str【3】str ①本题考查:函数定义以及文件指针;fputs函数的功能是向指定的文件写入一个字符串,其调用形式为: fputs(字符串,文件指针)。 【解题思路】 填空1:定义函数,函数的形参是一个文件类型的指针。 填空2:此处考查fputs函数的形式,应填入str。 填空3:依据printf函数的格式,输出字符串内容,即printf(“%s”,str)。 班级:姓名:学号: 第一题 一、题目要求(11题) #include STRECfun(STREC*a, char *b){ int i; STREC str={“ ”,-1};/*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/ for(i=0;i if(strcmp(a[i].num,b)==0)/*找到指定学号的学生数据*/ str=a[i]; str=a[i]; return str;/*返回学生记录*/ }} main(){STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,91},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,91},{“GA012”,64},{“GA014”,91},{“GA011”,77},{“GA017”,64},{“GA018”,64},{“GA016”,72}};STRECh;charm[10]; inti;FILE *out; printf(“The original data:n”);for(i=0;i {if(i%4==0)printf(“n”); printf(“%s %3d”,s[i].num,s[i].s);} printf(“nnEnter the number:”);gets(m);h=fun(s,m); printf(“The data :”); printf(“n%s%4dn”,h.num,h.s);printf(“n”); out = fopen(“out.dat”,“w”);h=fun(s,“GA013”); fprintf(out,“%s%4dn”,h.num,h.s);fclose(out);} 第二题 编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程COS(x)-x=O的一个实根。Xn+1=COS(Xn)。迭代步骤如下:(1)取x1初值为0.0; (2)xO=xl,把xl的值赋给xO:(3)x1=COS(x0),求出一个新的x1;(4)若x0-xl的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程COS(x)-x=0的一个实根,作为函数值返回。程序将输出结果 Root=0.739085。#include printf(“Root=%fn”,fun());} 第三题 一、题目要求 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符 串中的前导*号全部移到字符串的尾部。例如,若字符串中的内容为*******A*BC*DEF*G**** 移动后,字符串中的内容应当是A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。 #include { char s[81],*p;int n=0; printf(“enter a string:n”);gets(s);fun(s); printf(“the string after moving:n”);puts(s);} 一、做题分析 【参考答案】 voidfun(char *a){ int i=0,n=0;char *p;p=a; while(*p=='*')/*判断*p是否是*号,并统计*号的个数*/{ n++;p++;} while(*p)/*将前导*号后的字符传递给a*/{ a[i]=*p;i++;p++;} while(n!=0){ a[i]='*';i++;n--;} a[i]=' ';} 二、做题分析 【考点分析】 本题考查:移动字符串中指定字符的位置,一般采用while循环语句,通过指针型变量来完成。 【解题思路】 函数fun的功能:将字符串中的前导*号全部移到字符串的尾部。本题解题思路:(1)定义一个指针并指向字符串的首地址;(2)利用循环语句找出字符串的前导*号的个数n;(3)利用循环语句把剩余的字符拷贝到另一个字符串中;(4)在字符串的末尾接上n个*号。 第四题 题目要求 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。 #include int fun(STREC *a, STREC *b){ } main(){STREC s[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“G A06”,87},{“GA015”,85},{“GA013”,91},{“GA012”,64}, {“GA014”,91},{“GA011”,77},{“GA017”,64}, {“GA018”,64},{“GA016”,72}}; STREC h[N];int i,n;FILE *out;n=fun(s,h); printf(“the %d highest score :n”,n);for(i=0;i printf(“%s%4dn”,h[i].num,h[i].s);printf(“n”); out=fopen(“out15.dat”,“w”);fprintf(out, “%dn”,n);for(i=0;i 二、做题分析 1、应该先用for循环找出这些学生中成绩最高的然后再利用for循环结构把和最高成绩一样的找出来并用j记录最高成绩的个数。注:本题主要考察结构体的应用。故函数如下intfun(STREC*a, STREC *b){第三篇:上机实习报告格式
第四篇:c语言上机实习填空题
第五篇:c语言上机实习编程题