华北水利水电大学2012级C语言实验报告(1)

合集下载

华北水利水电大学C语言实验报告(七)

华北水利水电大学C语言实验报告(七)

-学年第学期级专业:学号:姓名:………………………………………………………………………………………………一、实验题目:结构体和共用体二、实验目的:(略)三、实验内容:1.程序验证:启动vc语言环境,输入并执行以下程序。

源代码:运行结果:#include<stdio.h>struct stu{int num;char name[10];char sex;int age;int score[4];}students[ ]={{001, "David",'M',25,{80,78,92,94}},{002, "Lily",'W',23,{90,84,89,95}},{003, "Alice",'W',22,{79,78,96,97}}};{003, "Alice",'W',22,{79,78,96,97}}};{003, "Alice",'W',22,{79,78,96,97}}};void main( ){int i,j,number;printf("Input student’s number\n");scanf("%d",&number);for(i=0;i<3;i++)if(number= =students[i].num) b reak;printf("name=%s\nsex=%c\nage=%d\n",students[i].name,students[i].sex,students[i].age); for(j=0;j<4;j++)printf("%d ",students[i].score[j]);printf("\n");}-学年第学期级专业:学号:姓名:………………………………………………………………………………………………2.程序设计某单位进行选举,有5位候选人:李宁、王新、赵广、陈奇、六六。

华北水利水电大学C语言实验9

华北水利水电大学C语言实验9

C语言程序设计实验报告实验9 使用指针的程序设计(1)班级 2013156 学号 201315613 姓名吴浩一、实验目的(1)掌握指针的概念,会定义和使用指针变量;(2)能正确使用数组的指针和指向数组的指针变量;(3)熟悉指针做函数参数的使用方法;(4)能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容及步骤1、按要求完善程序下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。

形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。

例如:数组中的值依次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。

请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

程序代码如下所示:#include <stdio.h>#define N 20void fun(int *a,int n,int *odd,int *even){i nt i;*odd=0;*even=0;f or(i=0;i<n;i++)//用循环判断哪个是偶数哪个是奇数{if(a[i]%2==0)//如果对2取余为0,是偶数*even=*even+a[i];e lse *odd=*odd+a[i];//否则为奇数}}void main(){int a[N]={1,9,2,3,11,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,6,&odd,&even);//调用函数,取地址printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}运行结果:2.假设每班人数最多不超过30人,具体人数由键盘输入,试编程打印最高分及其学号。

自-C语言实验指导书2012

自-C语言实验指导书2012

ﻫ 《程序设计技术》 实验指导书

计算机科学与技术学院 软件工程系

二○一二年三月 ﻬ目 录

实验一 建立C语言的开发运行环境和编程过程.. .........1 实验二 格式化输入输出与表达式...... ...... .......4 实验三 简单的C程序设计.................... ......6 实验四 选择结构程序设计................. .. .........8 实验五 循环结构程序设计............. .. ............12 实验六 基本类型与数组程序实例.......................16 实验七 (1)指针与字符串程序实例..... ................20 实验八 (2)函 数. ..................................22 实验九 结构体和公用体.. .. .........................26 实验十 文 件................ ......................28 附:模拟试题(一~三) ﻬ实验一 建立C语言的开发运行环境和编程过程 【目的与要求】 1.了解DOS、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序;了解C程序的调试。 3.通过运行简单的C程序,初步了解C源程序的特点。

【上机内容】 【基础知识】 通过课堂上学习,我们对C语言已有了初步了解,对C语言源程序结构有了总体的认识,那么如何在机器上运行C语言源程序呢?任何高级语言源程序都要“翻译”成机器语言,才能在机器上运行。“翻译”的方式有两种,一种是解释方式,即对源程序解释一句执行一句;另一种是编译方式,即先把源程序“翻译”成目标程序(用机器代码组成的程序),再经过连接装配后生成可执行文件,最后执行可执行文件而得到结果。 C语言是一种编译型的程序设计语言,它采用编译的方式将源程序翻译成目的程序(机器代码)。运行一个C程序,从输入源程序开始,要经过编辑源程序文件(.C)、编译生成目标文件(.obj)、连接生成可执行文件(.exe)和执行四个步骤。 有关目录规划、编辑、编译、链接、运行的内容,以及Windows环境下这些相关软件的安装和使用参见《建立C语言实验环境指南.doc》。根据这个指南,做好目录规划;根据编辑软件Notepad++的有关手册,掌握编辑器的使用;并学习掌握编译运行的方法;在此基础之上掌握上机完成C语言程序设计的基本技能,为以后相关课程的学习打好基础。 【练习】 1.输入并运行例题中程序,熟悉调试C程序的的方法与步骤。 2.写出一个C程序的构成。 3.参照例题,编写一个C程序,输出以下信息: **************************** Hello,World! **************************** 4.编写一个C程序,输入a、b、c三个数,输出其中最大者。试想,如果求四个数中的最大者,则程序该如何编写。

《C语言》课内实验报告[1]

《C语言》课内实验报告[1]

《C语言》实验报告姓名:***班级:数学101学号:**********实验日期: 2011年 3 月21 日一、实验题目:C程序的运行环境及顺序结构程序设计二、实验目的:1.初步熟悉利用Turbo C++3.0编辑、编译、连接、调试运行C程序的方法。

2.进一步掌握C语言的基础知识。

3.进一步掌握数据的输入输出方法和赋值语句的格式、语义,进而掌握顺序结构程序设计方法。

三、实验内容:1.编辑、编译、连接、运行如下程序,并分析所得结果。

#include<stdio.h>void main(){int n1=236,n2=50;char c1=n1,c2=n2;printf(“n1=%d,n2=%d,c1=%d,c2=%d\n”,n1,n2,c1,c2);printf(“n1=%c,n2=%c,c1=%c,c2=%c\n”,n1,n2,c1,c2);}2.编辑、编译、连接、运行如下程序,并分析所得结果。

#include<stdio.h>void main(){int a=3,b=3,c,d;c=(a++)+( a++)+( a++);d=(++b)+ (++b)+ (++b);printf(“%d,%d, %d,%d\n”,a,b,c,d);}3.输入一个华氏温度,输出摄氏温度,公式为c=5(f-32)/9;编辑、编译、连接、运行如下程序;画出程序N-S算法流程图并注释每一句程序。

#include<stdio.h>void main(){float c,f;printf(“please input a Fahrenheit temperature: ”);scanf(“%f”,&f);c=(5.0/9.0)*(f-32);printf(“Centigrade temperature is:%5.2f\n”,c);}4.编辑、编译、连接、运行如下程序,分析运行结果;自己改变格式符,重复实验过程。

《C语言程序设计》实验报告(实验1-12)

《C语言程序设计》实验报告(实验1-12)

《C语言程序设计》实验报告2013~2014学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。

二、预习内容:教材《C语言程序设计教程》第1章。

三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#include <stdio.h>int main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运行结果(或截图):3+4=7五、思考题:1. 一个C程序上机的步骤有哪些?答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。

2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:一个函数包括两部分:分别为函数头或函数首部和函数体。

华北水利水电大学C语言实验6

华北水利水电大学C语言实验6

C语言程序设计实验报告实验6 综合程序设计班级 2013156 学号 201315613 姓名吴浩一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。

(2)掌握字符数组的使用。

(3)掌握与数组有关的算法。

二、实验内容及步骤1、猴子吃桃问题。

猴子第1天摘了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第2天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想吃时,只剩下一个桃子了。

求第一天共摘了多少个桃子?程序代码:#include <stdio.h>main(){ int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2=x1;day--; }printf("第一天摘的桃子数:%d\n",x1); }2、百马百担问题:100匹马,驮100担货,大马3担,中马2担,两匹小马驮一担,问共有大、中、小马各多少?程序代码:#include<stdio.h>void main(){int i, j;for (i=0;i<34;i++)//大马for (j=0;j<(100-i*3)/2+1;j++)//中马if ((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2 ==100)printf("大马%d\t中马%d\t小马%d\n",i,j,100-i-j);}3、已有一个已排好序的数组,要求输入一个数,将它插入数组中,保持数组依然有序。

程序代码:#include <stdio.h>void main(){int i,k;int a[6]={1,5,21,67,98};for (i=0;i<5;i++)printf("%d ",a[i]);printf("\n input a int number:\n");scanf("%d",&a[5]);for(i=5;i>0;i--)if(a[i]<a[i-1]){k=a[i-1];a[i-1]=a[i];a[i]=k;}for(i=0;i<6;i++)printf("%d ",a[i]);printf("\n");}4.有一篇文章,共有3行文字,每行有80个字符。

C语言实验报告(三)

C语言实验报告(三)华北水院高级语言程序设计(c语言)实验报告2022-2022学年第二学期2022年级专业班级:学号:姓名:一、实验题目:循环结构程序设计二、实验目的:(略)三、实验内容1.程序验证(略)2。

程序设计1)找出100-900之间的无暇素数。

所谓无暇素数是指本身为素数,且其逆序数也是素数的数。

例如:113是一个素数,311也是一个素数,113就是无暇素数。

源代码:运行结果:intbsingle100_u900(inTV)/*这是一个用户定义的函数,用于判断它是否是介于100和900之间的素数*/{inti;如果(v%2);elsereturn0;for(i=3;i<=v/2;i+=2)if(v%i);elsereturn0;return1;}voidmain(){inta,b,c,d,e,w;对于(a=101;a<=900;a+=2){c=a/100;d=a/10;e=a;w=100*e+10*d+c;if(bsingle100_900(a)&&bsingle100_900(w))printf(\}}2)编程:用迭代法求一个数的平方根。

平方根的迭代公式如下:xn+1=(xn+A/xn)/2;设置x0=A/2;当迭代相邻两项差的绝对值小于10-5时,迭代结束。

源代码:运行结果:#include#includeintmain(){doublex1,x2,a;intf;Printf(\请输入a:\scanf(\X1=a/2;x2=0;F=0;while(1){x1=(x1+a/x1)/2;if(f)break;如果(abs(x1-x2)<1e-5)f=1;x2=x1;}printf(\}华北水利学院高级语言程序设计(C语言)实验报告2021--2021学年第二学期2021级专业班级:学号:姓名:3)写一个问答游戏。

计算机在10到100之间进行四次运算,每个问题得10分,用户给出答案。

华北水利水电大学数据结构实验一

华北水利水电大学数据结构实验报告2019~2020学年第2学期19级计算机科学与技术专业实验一线性表及其应用实验目的:1 .掌握用C/C++ 语言调试程序的基本方法。

2.掌握线性表的基本运算,如插入、删除等。

实验内容:1.编写一个程序,实现顺序表的各种基本运算,在此基础上完成如下功能:1)初始化顺序表L。

2)依次在顺序表L 中插入元素a、b、c、e。

3)输出顺序表L 。

4)输出顺序表L 的长度。

5)输出顺序表L 的第 3 个元素。

6)输出元素 a 的位置。

7)在第 4 个元素之前插入元素f。

8)输出顺序表L 。

9)删除第 3 个元素。

10)输出顺序表L 。

2.编写一个程序,实现以下功能,L1=(x1,x2,⋯,x n),L2=(y 1,y2,⋯,y m),它们是两个线性表(L1和L2中的值都不重复),采用带头结点的单链表存储,设计一个算法合并L1和L 2,结果存放在线性表L3 中,要求如下:L3=(x1,y1,x2,y2,⋯,x m,y m,x m+1,⋯,x n)当m n 时L3=(x1,y1,x2,y2,⋯,x n,y n,y n+1,⋯,y m)当m>n 时L3 仍采用单链表存储,算法的空间复杂度为O(1)。

(1)建立两个单链表L1和L2 并输出。

(2)将合并L1和L 2为L3。

(3)输出单链表L3。

三、实验要求:1.完成算法设计和程序设计并上机调试通过。

2.撰写实验报告,提供实验结果和数据。

3.写出算法设计小结和心得。

四、程序源代码:第 1 题:#include<stdio.h>#include<malloc.h>#define MaxSize 10typedef char ElemType;1)顺序表定义typedef struct{ElemType data[MaxSize];int length;}SqList;(2)初始化顺序表void InitList(SqList *&l){ l=(SqList *)malloc(sizeof(SqList)); l->length=0;}(3)返回顺序表的长度int ListLength(SqList *l){ return(l->length);}( 4)在顺序表第i 个位置插入元素 e bool ListInsert(SqList *&l,int i,ElemType e){ int j;if(i<1||i>l->length+1){return false;}i--;if(l->length==MaxSize){return false;}for(j=l->length;j>i;j--){ l->data[j]=l->data[j-1];}l->data[i]=e;++l->length;return true;}5)在顺序表中取值bool GetElem(SqList *l,int i,ElemType &e){ if(i<1||i>l->length){ return false;}else{e=l->data[i-1];return true;}}( 6)删除顺序表中第i 个元素bool ListDelete(SqList *&l,int i){int j;if(i<1||i>l->length){return false;}i--;for(j=i;j<l->length-1;j++){l->data[j]=l->data[j+1];}l->length--;return true;}(7) 主函数int main(){SqList *l;InitList(l);ListInsert(l,1,'a');ListInsert(l,2,'b');ListInsert(l,3,'c');ListInsert(l,4,'d');printf(" 输出顺序表:");PrintList(l);printf(" 此时顺序表的长度为%d\n",ListLength(l)); ElemType e;GetElem(l,3,e);printf(" 顺序表上的第 3 个元素为%c\n",e);printf(" 在第 4 个元素之前插入元素f:\n");ListInsert(l,4,'f');PrintList(l);printf(" 删除第 3 个元素:\n");ListDelete(l,3);PrintList(l);return 0;}第二题:#include <stdio.h>#include <malloc.h> typedef char ElemType;(1)定义单链表typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指向后继结点}LinkNode; // 声明单链表结点类型(2)尾插法建立单链表static void CreateListRear(LinkNode *&L, ElemType a[], int n){ // 指针的引用n 指明元素个数LinkNode *s, *r;int i;L = (LinkNode *)malloc(sizeof(LinkNode)); // 创建头结点L->next = NULL;r = L; // r 始终指向尾结点, 开始时指向头结点for(i = 0; i < n; i++)// 创建新结点ss = (LinkNode *)malloc(sizeof(LinkNode)); s->data = a[i];r->next = s; // 将结点s 插入r 结点之后r = s;}// 尾结点next 域置为NULL r->next = NULL;}( 3)输出单链表static void PrintList(LinkNode *L){LinkNode *p = L->next;while(p != NULL){printf("%c ", p->data);// p 不为NULL,输出p 结点的数据域p = p->next; // p 移向下一个结点} printf("\n");}( 4)销毁线性表static void DestroyList(LinkNode *&L){LinkNode *pre = L, *p = pre->next;while(p != NULL){free(pre);pre = p;p = pre->next; // pre 、p 同步后移一个结点}free(pre); // 此时p 为NULL,pre 指向尾结点, 释放它}(5)两个单链表合并static void TogetherList(LinkNode *L1, LinkNode *L2, LinkNode *&L3)// {指针的引用LinkNode *p = L1->next;LinkNode *q = L2->next;LinkNode *r;L3 = L1;// r 指向新建单链表L3 的尾结点r = L3;// 释放L2 的头结点free(L2);while(p != NULL && q != NULL){r->next = p; r = p; p = p->next;r->next = q; r = q; q = q->next;}r->next = NULL;if(q != NULL)p = q;r->next = p;}(6) main 函数int main(){LinkNode *L1, *L2, *L3;ElemType a[] = "1698";CreateListRear(L1, a, 4);printf("L1:");PrintList(L1);ElemType b[] = "274536";CreateListRear(L2, b, 6);printf("L2:");PrintList(L2);printf("L1 和L2 合并产生L3\n");TogetherList(L1, L2, L3);printf("L3:");PrintList(L3);DestroyList(L3);return 0;}五、程序运行情况( 采用截图方式给出运行结果)第一题:第二题:六、小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等)注:内容一律使用宋体五号字,单倍行间距在写第一题的时候出现了乱码问题,而且ListLength 函数返回的总是设定的MaxSize 值,查找半天自己也找不到错误在哪里,最后在室友的帮助下发现l->length==MaxSize 少了个=,上学期反复强调的C语言的知识,经过前所未有 3 个月的寒假后都还给老师了。

《C语言程序设计》实验报告

(此文档为word格式,下载后您可任意编辑修改!)《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++6.0一、实验目的:1.了解在Visual C++6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。

二、预习内容:教材《C语言程序设计教程》第1章。

三、实验内容:1.在Visual C++6.0环境下输入并运行下面的程序:#include<stdio.(){printf("This is a C program.\n");return0;}2.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。

#include<stdio.(){int a,b,suma=3;b=4;sun=a+b;print("%d+%d=%d\n",a,b,sum);return0;}四、实验结果:1.运行结果(或截图):2.(1)改正后的源程序:(2)运行结果(或截图):五、思考题:1.一个C程序上机的步骤有哪些?答:2.组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3.掌握基本算术运算符及其表达式的使用方法;4.掌握++、--运算符、赋值运算符及其表达式的使用方法。

二、预习内容:教材《C语言程序设计教程》第2章。

三、实验内容:1.在Visual C++6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误。

#include<stdio.(){int2cd=3;floatπ=3.14;char for=′A′;printf("%d,%f,%c\n",2cd,π,for);return0;}2.在Visual C++6.0环境下输入并运行下面的程序,观察分析运行结果。

C语言实验报告(三)

华北水利水电大学C语言程序设计实验报告2014--2015学年第二学期2016 级材料成型及控制工程专业班级: 2016096 学号: 201609614 姓名:陈祥雨一、实验题目:循环结构程序设计二、实验目的:(略)三、实验内容1. 程序验证(略)2.程序设计1) 找出100-900之间的无暇素数。

所谓无暇素数是指本身为素数,且其逆序数也是素数的数。

例如:113是一个素数,311也是一个素数,113就是无暇素数。

源代码:#include<stdio.h>#include<math.h>void main(){int n,i,k,a,b,c,d;int flag;for(n=100;n<=900;n++){flag=1;k=(int)sqrt(n);for(i=2;i<=k;i++){if(n%i==0)flag=0;}if(flag){a=n%10;b=n/10%10;c=n/100;d=a*100+b*10+c;}k=(int)sqrt(d);for(i=2;i<=k;i++)—{if(d%i==0)flag=0;}if(flag)printf("%7d",n);}printf("\n");} 运行结果:2) 编程:用迭代法求某数a的平方根。

平方根的迭代公式如下:x n+1=(x n+a/x n)/2; 设x0=a/2;当迭代相邻两项差的绝对值小于10-5时,迭代结束。

源代码:#include<stdio.h>#include<math.h>void main(){float a=1,b,c;printf("input c\n");scanf("%f",&c);b=c;while(fabs(a-b)>=1e-5){a=b;b=(a+c/a)/2;—}printf("%f,%f",a,b);} 运行结果:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华北水院高级语言程序设计(C语言)实验报告(一)
2012--2013学年 第二学期
2012级 专业: 学号: 姓名:
………………………………………………………………………………………………
一、实验题目:语句与顺序结构控制

二、实验目的:(略)
三、实验内容
1. 程序验证(略)
2.程序设计
1)编写程序,已知圆半径radius=1.25,求圆周长和面积。
源代码: 运行结果:

2)编写程序完成大写字母的小写转换。
源代码: 运行结果:

3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,
并分别在屏幕上显示。
源代码: 运行结果:

相关文档
最新文档