西南交大C语言实验十

时间:2019-05-15 09:24:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《西南交大C语言实验十》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《西南交大C语言实验十》。

第一篇:西南交大C语言实验十

实验十 指针应用 ●实验目的

掌握指针的概念,会定义和使用指针变量; 学会使用数组的指针和指向数组的指针变量; 学会使用字符串的指针和指向字符串的指针变量; 学会使用指向函数的指针变量;

了解指向指针的指针的概念及其使用方法。●实验步骤

进入编程环境;

按照题目要求编写程序,自行调试使程序可以正确运行,按照实验指导教师的要求检查。●实验内容

1.输入N个英文单词,建立字符串数组,按字典顺序输出这些英文单词。1.要求用指针。自己编写的源程序:

#include“stdafx.h” #include

int main(){

char word[50][50];int num = 0;printf(“请输入单词数量:”);scanf(“%d”, &num);printf(“请输入%d个单词:”, num);for(int i = 0;i < num;i++){ } char temp[50];for(int i = 0;i < num;i++){

} for(int i = 0;i < 5;i++){ } printf(“%s ”, word[i]);for(int j = 0;j < i;j++){

} if(strcmp(word[i], word[j])< 0){

}

strcpy(temp, word[j]);strcpy(word[j], word[i]);strcpy(word[i], temp);scanf(“%s”, word[i]);

} printf(“n”);return 0;

2.输入一个字符串,不另开辟字符串存储空间,实现字符串逆序存储并输出。自己编写的源程序:

#include“stdafx.h” #include

int main(){

} char str[50];printf(“请输入原字符串:”);scanf(“%s”, str);for(int i = strlen(str)11-i] = temp;

3.任意输入5个学生姓名的拼音,然后存入一个2维的字符数组中,按照字符表先后顺序输出这5个同学的姓名。自己编写的源程序:

#include“stdafx.h” #include

int main(){

char name[5][50];printf(“请输入5个姓名的拼音:”);for(int i = 0;i < 5;i++){

} } scanf(“%s”, name[i]);char temp[50];for(int i = 0;i < 5;i++){

} for(int i = 0;i < 5;i++){ } printf(“n”);return 0;printf(“%s ”, name[i]);for(int j = 0;j < i;j++){

} if(strcmp(name[i], name[j])< 0){

}

strcpy(temp, name[j]);strcpy(name[j], name[i]);strcpy(name[i], temp);

4.定义一个实型数组存入一组无序的实数,用一个函数实现对数组所有元素的升序排序,函数的参数和返回值皆为指针,在主函数中输出排序后的数组,考虑如果不使用指针如何解决该问题,哪一种方法更方便。自己编写的源程序:

#include“stdafx.h” #include

double* sort(doublenum[]);

int main(){

double num[5] = { 0 };printf(“请输入5个实数:”);for(int i = 0;i < 5;i++){ } sort(num);printf(“原数组升序排列结果为:”);for(int i = 0;i < 5;i++){ scanf(“%lf”, &num[i]);

} } printf(“%lf ”, num[i]);printf(“n”);return 0;double* sort(doublenum[]){

} for(int i = 0;i < 5;i++){

} returnnum;for(int j = 0;j < i;j++){

} if(num[i]

} double temp = num[j];num[j] = num[i];num[i] = temp;

第二篇:C语言实验十

实验10 文件程序设计

一、实验目的

1、掌握文件、文件指针的概念。

2、学会使用文件打开、关闭、读、写等文件操作函数。

二、实验内容 1.改错题

(1)下列程序的功能为:在键盘输入4行字符写到D盘data1.dat文件中。纠正程序中存在的错误,以实现其功能。程序以文件名sy10_1.c保存。#include #include void main(){ FILE * fp1;char ch[80];int I,j;fp1=fopen(“d:data1.dat”,”b”);for(i=1;i<=4;i++){

gets(ch);

j=0;

while(ch[j]!=’’)

{

fputc(fp1,ch[j]);

j++;

}

fputc(fp1,’n’);}

fclose(fp1);}(2)下列程序的功能为:随机产生10个整数,写入一个文本文件中。纠正程序中存在的错误,以实现其功能。程序以文件名sy10_2.c保存。#include #include #include void main(){ int x[10],i,k;FILE *fp2;srand((unsigned)time(NULL));for(i=0;i<10;i++)

x[i]=rand();fp2=fopen(“data2.dat”,”wb”);if(fp2==NULL){

printf(“Open error n”);exit(0);} for(int k=0;k<10;k++)

fwrite(x[k],sizeof(int),fp2);fclose(fp2);}

(3)下列程序的功能为:从数组读入数据,建立ASCII码文件,并按下列格式输出。10 20 30 40 50 60 70 80 90 100(每个数据占5个字符宽度)纠正程序中存在的错误,以实现其功能。程序以文件名sy10_3.c保存。#include #include void main(){

FILE *fp3;int b[]={10,20,30,40,50,60,70,80,90,100},i=0,n;if((fp3=fopen(“e:file10_3.txt”,”w”))==NULL){

printf(“%s不能打开n”,”e:file10_3.txt”);

exit(1);} while(i<10){

fprintf(fp3,”%d”,b[i]);

if(i%3==0)fprintf(fp3,”n”);

i++;} fclose(fp3);if((fp3=fopen(“e:file10_3.txt”,”r”))==NULL){

printf(“%s不能打开n”,”e:file10_3.txt”);

exit(1);} fscanf(fp3,”%5d”,&n);while(!feof(fp3)){

printf(“%5d”,n);

fscanf(fp3,”%d”,&n);} printf(“n”);

fclose(fp3);}

2.程序填空题

(1)下列程序的功能是:从字符指针数组读出字符串,建立ASCII文件file10_4.txt。补充完善程序,以实现其功能。程序以文件名sy10_4.c保存。#include #include void main(){

FILE *fp;int i=0;char *str[]={“visual C++”, “visual Basic”, “visual java”, “visual foxpro”};if((fp=fopen(“e:file10_4.txt”,_________________))==NULL){ printf(“%s不能打开n”,”e:file10_4.txt”);

exit(1);} while(i<4){

fprintf(_______________________);

_________________________________;} fclose(fp);}

(2)下列程序的功能为:从键盘输入字符,直到输入EOF(Ctrl+Z)为止。对于输入的小写字符,先转换为相应的大写字符,其他字符不变,然后逐个输出到文件text.txt中,行结束符回车('n’)也作为一个字符对待,最后统计文件中的字符个数和行数。补充完善程序,以实现其功能。程序以文件名sy10_5.c保存。#include main(){

FILE *fp;char c,str[256];int i=0,no=0,line=0;if((fp=fopen(“text.txt”,_________________))==NULL){ printf(“can’t open this file.n”);

exit(0);} printf(“please input a string.n”);while((c=getchar())!=EOF){

if(c>=’a’ && c<=’z’)_______________;

fputc(_________________,fp);} fclose(fp);if((fp=fopen(“text.txt”,”r”))==NULL){ printf(“can’t open this file.n”);

exit(0);} while(!eof(fp)){

c=__________________;

no++;

if(_________________)line++;} printf(“line=%d character_no=%dn”,line,no);fclose(fp);}

(3)下列程序的功能为:从字符指针数组读出字符串,建立和输出二进制文件file10_6.dat。补充完善程序,以实现其功能。程序以文件名sy10_6.c保存。#include #include #include void main(){ FILE *fp6;int i=0;char str[][20]={“visual C++”, “visual Basic”, “visual java”, “visual foxpro”};char s[20];if((fp6=fopen(“e:file10_6.dat”,_________________))==NULL){ printf(“%s不能打开n”,”e:file10_6.dat”);

exit(1);} while(i<4){

fwrite(_______________,_______________,1,fp6);

i++;} fclose(fp6);if((fp6=fopen(“e:file10_6.dat”,_________________))==NULL){ printf(“%s不能打开n”,”e:file10_6.dat”);

exit(1);} fread((______________,______________,1,fp6);while(!feof(fp6)){

printf(“%sn”,s);

fread((_______________,_____________,1,fp6);} fclose(fp6);} 3.编程题

(1)设文件number.dat中放了一组整数,编程计算并输出文件中正整数之和、负整数之和。程序以文件名sy10_7.c保存。

(2)根据提示从键盘输入一个已存在的文本文件的完整文件名,再输入另一个已存在的文本文件的完整文件名,然后将源文本文件的内容追加到目的文本文件的原内容之后,并在程序运行过程中显示源文件和目的文件中的文件内容,以此来验证程序执行结果。程序以文件名sy10_8.c保存。

(3)有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。程序以文件名sy10_9.c保存。

第三篇:C语言程序设计实验十指针

C语言程序设计实验十——指针

【实验1】

实验题目:

1、下列代码片段哪里有错误?

char var1,ptr1;

var1 = „x‟;

ptr1 = &var1;

2、设有如下定义:

Double var1, *ptr1, *ptr2;

Float* ptr3;

Int var2, *var4;

那么,var1, *ptr1, ptr2,*ptr2,ptr3,* ptr3,var2, var4,*var4个属于哪种数据类型?

3、下列代码片段在哪里有错误?

Char c = ‟ A ‟;

Char * p;

p = c;或*p=‟A‟;

4、下列代码片段的输出结果是什么?

charvar1 = „ S „;

charvar2 = „ X ‟;

char*ptr1, *ptr2;

ptr1 = &var1;

ptr2 = &var2;

*ptr2 = *ptr1;

printf(“%ct%cn”, *ptr1, var2);

【实验2】

实验题目:输入3个整数,按由小到大的顺序输出。

【实验3】

实验题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

实验要求:写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。

【实验4】输入年和天数,输出对应的年、月、日。

例如:输入2000和61,输出2000-3-1。

要求:都用指针实现。

第四篇:C语言实验

C语言实验

实验一:C语言程序调试基础

一、实验目的

1.掌握C语言源程序的编写方法和调试方法

2.学会使用VC6开发工具及调试过程的查错纠错能力。

二、任务

调试课本例子:例2.19、例3.5、例5.9

三、实验过程及结果

1.鼠标左键双击VC,打开程序;单击打开的New的页面中,单击

键,选择键,选择,在新,最后单击键,就可以建立一个新的页面。

2.在界面中输入例2.19的内容,单击

键进行调试,底下的对话框出现

一句话时,说明我们编写的程序无错,就可以单击键,来运行程序。运行结果及编写程序内容如图:

4.关闭这两个窗口,再单击

实验二:顺序程序设计

一、实验目的:

1.掌握顺序程序的设计方法;

键,选择

2.掌握输入输出控制语句。

二、实验任务与要求

1.第3章课后习题T2 2.第3章课后习题T7

三、实验过程及结果

实验三:分支程序设计

一、目的

1.掌握分支程序控制语句的语法格式及纷争程序设计方法。2.了解分支程序的条件表达式及运算规则; 3.掌握分支程序控制语句的嵌套使用方法。

二、任务

1.第4章课后习题T6 2.第4章课后习题T8 3.第4章课后习题T12

三、实验过程及结果

实验四:循环程序设计

一、目的

1.掌握循环程序的控制语句的语法规则;

2.掌握循环程序的编写方法;

3.掌握循环程序的嵌套与退出控制方法。

二、任务

1.求100~200间的全部素数。2.第5章课后习题T8 3.第5章课后习题T10

三、实验过程及结果

实验五:数组

一、目的

1.掌握数组的定义及使用方法 2.掌握字符数组的相关操作函数。

二、任务

1.用数组求Fibonacci数列的钱40项,每5个一行。2.将一个3行8列的数组A转置为数组B。3.已知字符串str1=”abcde”,str2=”hijklm”,比阿尼写程序分别实现str1与str2的连接、求长度、比较等操作。

三、实验过程及结果

实验六:函数

一、目的

1.掌握函数的定义与调用方法。2.掌握函数参数的专递方式。

3.掌握函数的嵌套调用和递归调用方法。

二、任务

1.编写一函数,用冒泡排序法实现对数组A的排序。2.编写一函数,用选择排序法实现对数组A的排序。3.编写一函数,实现对给定年year是不是闰年。4.编写一函数,实现对给定整数m是不是素数。

5.利用递归算法,编写一函数,求Fibonacci数列的第n项。

三、实验过程及结果

实验七:变量作用域

一、目的

1.了解变量的存储类型及生命周期、作用域的性质。2.准确使用局部变量和全局变量。

二、任务

1.根据变量作用域知识,分析下列程序的运行效果。2.调试程序,分析个变量的作用范围和生命期。

#include int i=5;void fun1(){ int i=5;static int j=20;i+=5;j=j-3;printf(“i=%d.j=%dn”,i,j);} void main(){

Printf(“i=%dn”,i);

int i=40;

printf(“i=%dn”,i);

fun1();

fun1();}

三、实验过程及结果

实验八:结构体

一、目的

1.掌握结构体的定义方法和使用。

二、任务

定义一日期(年、月、日)结构体,编程实现日期的输入、日期的输出、日期加上一个整型天数、两个日期数据相减等功能。

三、实验过程及结果

第五篇:计算机图形学 实验六-西南交大

学号:姓名:班级:

计算机图形学

实验报告

2016年6月日

实验名称:三维交互式图形程序设计

一、实验目的:

1)掌握真实感图形生成的基本原理,如消隐、光照、材质等知识; 2)学习使用OpenGL、GLUT等生成基本图形,如球体、正方体、茶壶等;

3)学习使用OpenGL生成各种光源:点光源、平行光、聚光灯等; 4)学习使用OpenGL设置绘制对象的颜色、材质;

5)进一步熟悉OpenGL图形变换技术:几何变换、视图变换、观察变换等:

(1)对模型实现各种几何变换(测试代码保留在程序中),包括对 glLoadMatrix、glMultMatrix、glTranslate、glRotate、glScale 等的使用;

(2)视口变换,测试不同大小的视口 glViewport ;

(3)投影变换,要对对平行投影与透视投影分别测试,使用不同的观察体参数,观察效果

二、实验任务:

1)使用MFC AppWizard 建立一个SDI 程序,根据参考资料2 和3 中的步骤设置OpenGL 图形绘制环境。增加绘制如下表图形(选择其中任意一个,注意模型坐标系的选择和顶点坐标的计算)、球体或茶壶等(使用glut 函数)。环境中创建点光源、平行光、聚光灯(可利用对话框输入参数创建)、设置所绘制对象的材质,呈现出塑料、金属等材质特性。对光源的位置、方向、类型进行控制,改变材质参数,观察效果(测试代码保留在程序中);

三.实验过程: 1.观察参数的设置

glViewport(0.0, 0.0, width, height)//视口大小设置 gluLookAt(0,0,10,0,0,0,0,1,0);//观察点设置,参数分别为观察点位置,向哪点(何处)观察,上方向的定义 2.投影变换

glOrtho(-15.0*aspect, 15.0*aspect,-15.0,15.0,1,100);//平行投影,参数是投影面大小和投影的物体距离范围

gluPerspective(45,aspect, 1, 100.0);//透视投影,参数为视角,长宽比,投影距离范围 3.几何变换

glLoadMatrixf(a);//设置当前矩阵为a glTranslatef(2,0,0);//当前矩阵*偏移矩阵 glRotatef(45, 0.0, 0.0, 0.0);//旋转

glScalef(m_scalX,m_scalY,m_scalZ);//当前矩阵*比例矩阵 4.光源参数的设置

glLightfv(GL_LIGHT0, Type, vlight);//light为float数组 glLightf(GL_LIGHT0, Type, light);//light为float Type=GL_LIGHT0, GL_AMBIENT //环境光 Type=GL_LIGHT0, GL_DIFFUSE

//漫反射 Type=GL_LIGHT0, GL_SPECULAR //镜面光 Type=GL_POSITION

//光源位置 Type=GL_CONSTANT_ATTENUATION //常数衰减因 Type=GL_LINEAR_ATTENUATION //线性衰减因子 Type=GL_QUADRATIC_ATTENUATION //二次衰减因子 Type=GL_SPOT_DIRECTION

//聚光方向矢量 Type=GL_SPOT_EXPONENT

//聚光指数 Type=GL_SPOT_CUTOFF

//聚光截止角 光源类型控制

平行光源::设置AMBIENT,DIFFUSE,SPECULAR,GL_POSITION4个参数。其中GL_POSITION第4个参数为0,表示距离无限远

点光源:平行光源基础上添加常数衰减,因线性衰减因子,二次衰减因,其中GL_POSITION第4个参数为1 表示光源位置为确切位置,聚光灯光源 :在点光源基础上添加聚光方向矢量,聚光截止角,聚光指数

本实验使用了3个光源,分别作为平行光源,点光源和聚光灯光源,通过不同菜单选择在输入参数的同时启用不同的光源,以达到光源控制的效果

四.实验结果

原图:

材质选择:

光源基本参数设置

设置聚光灯光源(位置,方向,聚光指数,聚光截止角,衰减因子)

聚光衰减属性(聚光灯)

五.实验体会

通过此次实验,基本掌握了真实图形生成的基本原理,对于3D图新的材质变换,光源变换等有了更深层次的理解。初步学习并掌握了几何变换、视图变换、观察变换等。对于对话框、组建的设置更是理解的透彻。深入掌握了课堂上的些许知识。但对于之后的图形学设计,还是有很多的不足之处。所以,需要继续努力,掌握更多的图形设计学习。

下载西南交大C语言实验十word格式文档
下载西南交大C语言实验十.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言-实验四

    实验报告 课程名称实验项目 学院 系别 班级/学号 学生姓名 实验日期 成绩 指导教师程序设计基础(C语言) 实验四 数组(二) 一、 实验目的 1. 掌握二维数组的定义和初始化......

    C语言实验题目

    求两个数之和。在两种情况下完成: ①数据在程序内部定义变量时赋初值,或者通过赋值语句赋值。 ②数据通过scanf函数输入。 静态输入: #include void main { int a=1,b=2......

    c语言实验6

    C语言程序设计(B) (2011-2012-2)实验报告6教学班级:土木104学号: 23姓名: 课程教师:实验辅导教师:试验题目:求整数数组b[5][5]主对角线的元素和 试验前数据: #include int main() { i......

    C语言实验12

    实验12指针与数组 一、实验目的 1. 掌握指针的定义和使用指针变量; 2. 学会使用字符串的指针和指向数组的指针变量; 3. 学会使用指针对数组的操作; 二、实验设备(软件、硬件)......

    西南交大模电实验仿真波形

    闭环反馈放大电路 开环负反馈放大电路 温度控制器 无滞后比较器 Vref=0 Vref=1V 方波 三角波发生器 低频压控振荡器 Vt=12v,二极管反向......

    西南交大历史

    西南交大百年历史1.全国解放前的五次迁徙(1900-1949)(1)山海关校舍在1900年(庚子年)被八国联军强占,曾使我校历史一度中断当时的校名是山海关北洋铁路学堂,归北洋铁路总局领......

    西南交大自荐信

    2014年西南交通大学自主招生自荐信 尊敬的西安交通大学招生处老师:您好!我是安徽省阜阳市第一中学高三学生李文亚。我希望通过贵校的自主招生来实现在西南交通大学学习的梦想!......

    西南交大,自我鉴定

    自我鉴定 为进一步增强个人综合素质,提升交通运输专业化知识水平,不断更新观念,充实自我,以适应社会经济发展对交通运输管理人员的新要求,本人于2013年报考参加了西南交通大学网......