当前位置:文档之家› C语言实验八

C语言实验八

C语言实验八
C语言实验八

实验8 指针程序设计

一、实验目的

1、掌握指针和指针变量、内存单元和地址、变量与地址、数组与地址的关系。

2、掌握指针变量的定义和初始化,指针变量的引用方式。

3、掌握指向变量的指针变量的使用。

4、掌握指向数组的指针变量的使用。

5、掌握指向字符数组指针变量的使用。

二、实验内容

1.改错题

(1)下列程序的功能为:互换给定数组中的最大数和最小数。程序中,最大数与最小数的互换操作通过函数调用来实现,指针max和min分别指向最大数和最小数。纠正程序中存在的错误,以实现其功能。程序以文件名sy8_1.c保存。

#include

void main()

{ int i;

static int a[8]={10,5,4,0,12,18,20,46};

void jhmaxmin();

printf(“Original array:\n”);

for(i=0;i<8;i++)

printf(“%5d”,a[i]); /*输出原始数组元素*/

printf(“\n”);

jhmaxmin(a,8);

printf(“Array after swaping max and min:\n”);

for(i=0;i<8;i++)

printf(“%5d”,a[i]); /*输出交换后的数组元素*/

printf(“\n”);

}

void jhmaxmin(int p,n)

{

int t,*max,*min,*end,*q;

end=p+n;

max=min=p;

for(q=p+1;q

{

if (*q>*max) max=q;

if (*q

}

t=max;

max=min;

min=t;

}

(2)下列程序的功能为:求出从键盘输入的字符串的实际长度,字符串中可以包含空格键、跳格键等,但回车结束符不计入。例如:输入abcd efg后按Enter键,应返回字符串长度8。纠正程序中存在的错误,以实现其功能。程序以文件名sy8_2.c保存。

#include

int len(char s)

{

char *p=s;

while (p!=’\0’) p++;

return p-s;

}

main()

{

char s[80];

scanf(“%s”,s);

printf(“\”%s\” include %d characters.\n”,s,len(s));

}

(3)下列程序的功能为:统计一字符串中各个字母出现的次数,该字符串从键盘输入,统计时不区分大小写字母。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。纠正程序中存在的错误,以实现其功能。程序以文件名sy8_3.c保存。

#include

#include

void main()

{

int i,a[26];

char ch,str[80],*p=str;

gets(&str); /*获取字符串*/

for(i=0;i<26;i++)

a[i]=0; /*初始化字符个数*/

while (*p)

{

ch=(*p)++; /*移动指针统计不同字符出现的次数*/

ch=ch>=’A’ &&ch<=’Z’ ?ch+’a’-‘A’:ch; /*大小写字符转换*/

if (‘a’<=ch<=’z’) a[ch-‘a’]++;

}

for(i=0;i<26;i++)

printf(“%2c”,’a’+i); /*输出26个字母*/

printf(“出现的次数为:\n”);

for(i=0;i<26;i++)

printf(“%2d”,a[i]); /*输出各字母出现次数*/

printf(“\n”);

}

2. 程序填空题

(1)下列程序的功能是:从键盘输入8个整数,使用指针以选择法对其按从小到大进行排序。补充完善程序,以实现其功能。程序以文件名sy8_4.c保存。

#include

main()

{

int a[8],*p;

int i,j,k,t;

_______________________

printf(“Input the numbers:”);

for(i=0;i<8;i++)

scanf(“%d”,p+i);

t=*p;

for(i=0;______________;i++)

{

for(j=i;j<8;j++)

if(j==i||*(p+j)

{

t=*(p+j);

k=j;

}

if (k!=i)

{

t=*(p+k);

____________

____________

}

}

for(i=0;i<8;i++)

printf(“%5d”,*(p+i));

}

(2)下列程序的功能是:将一个整数字符串转换为一个数,如字符串“5489”转换为数字5489。选择填空,使程序实现其功能。程序以文件名sy8_5.c保存。

#include

#include

chnum(char *p);

void main()

{

char s[6];

int n;

gets(s);

if (*s==’-‘) n=-chnum(s+1);

else n=chnum(s);

printf(“%d\n”,n);

}

chnum(char *p)

{

int num=0,k,len,j;

len=strlen(p);

for(;____1_____;p++)

{

k=_____2_____;

j=(--len);

while (_______3________) {k=k*10;}

num=num+k;

}

return(num);

}

1 A. *p!=’\0’ B. *(++p)!=’\0’ C. *(p++)!=’\0’ D. len!=0

2 A. *p B. *p+’0’ C. *p-‘0’ D. *p-32

3 A. --j B. j-->0 C. -len D. len-->0

(3)下列程序的功能为:将字符数组a的所有字符传送到字符数组b中,要求每传送3个字符后再存放一个空格,例如字符串a为“abcdef”,则字符串b为“abc def g”。补充完善程序,以实现其功能。程序以文件名sy8_6.c保存。

#include

main()

{

int i,k=0;

char a[80],b[80],*p;

p=a;

gets(p);

while(*p)

{

for (i=1;____________;p++,k++,i++)

{

if (__________) { b[k]=’‘;k++;}

b[k]=*p;

}

}

b[k]=’\0’;

puts(b);

}

3.编程题

(1)输入一个字符串,将其中的数字字符组成一个数字。程序以文件名sy8_7.c保存。

(2)利用指针作函数参数,设计一函数对字母进行简单加密,把当前的字母变成后面第3个字母,如最后3个字母x、y、z变成字母a、b、c。再设计一函数把加密字符还原。程序以文件名sy8_8.c保存。

(3)设计一个指针函数,实现将字符串b连接到字符串a的后面。程序以文件名sy8_9.c 保存。

C语言程序设计实验8

一、实验目的 1、掌握定义函数的方法; 2、掌握函数实参与形参的对应关系以及“值传递”的方式; 3、掌握函数的嵌套调用和递归调用的方法; 4、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法; 5、了解数组元素、数组名作函数参数。 二、实验内容(程序清单及运行结果) 1.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 void main() { int x,y; printf("%d\n",sum(x+y)); int sum(a,b); { int a,b; return(a+b); } } 错误原因:没有输入x,y的值,没有定义函数a b. 更改: #include void main() { int x,y; scanf("%d%d",&x,&y); printf("%d\n",sum(x,y)); } int sum(int a,int b)

{ return (a+b); } 2.已有变量定义和函数语句“int a=1,b=-5,c;c=fun(a,b);”,fun函数的作用是计算两个数之差的绝对值,并将差值返回给调用函数,请编写fun函数,并调试。 fun (int x,int y) { } #include int fun(int x ,int y) { int tmp; tmp=x-y; if(tmp>=0) return tmp; else return -tmp; } void main() { int a=1,b=-5; printf("%d与%d差的绝对值为:%d\n",a,b,fun(a,b)); }

c语言实验报告 ()

丽水学院计算机实验报告

丽水学院计算机实验报告 一、实验目的 1.熟悉Visual C++和C-Free等集成环境,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。 2.掌握算术表达式和赋值表达式的使用。 3.掌握基本输入、输出函数的使用。 4.能够编程实现简单的数据处理。 二、实验环境 硬件:Pentium以上的计算机。 软件:Windows XP操作系统、Visual C++和C-Free等集成环境。 三、实验内容和结果 1.编程题1 在屏幕上显示一个短句“What is a computer?” 思考: (1)如何在屏幕上显示你自己的学号,姓名和班级? (2)如何在屏幕上显示数字、英文字母和汉字等信息?例如:“你在机房吗?” 编程题1源程序: #include<> void main() { printf("What is a computer?\n");

} 程序运行结果: What is a computer? 思考题(1): #include<> void main() { printf(",小王,班级\n"); } 思考题(2): #include<> void main() { printf("英文字母abcdefgABCDEFG\n"); printf("汉字:哇哈哈啊哈和\n"); } 2.编程题2 在屏幕上显示下列图形。 * * * * * * * * * *

思考:如何在屏幕上显示下列图形? A A A A 编程题2源程序: #include<> void main() { int i,j; for(j=1;j<5;j++) { for(i=5;i>j;i--) printf("*"); printf("\n"); } } 程序运行结果: * * * * * * * * * * 思考题:

C语言实验

C语言上机指导指导教师:李辉李晓丽 东北电力大学 电气工程学院 2006年3月

实验2数据类型、运算符和表达式 1.实验目的 掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 进一步熟悉C程序的编辑、编译、连接和运行的过程。 2.实验内容和步骤 (2).在此基础上增加一个语句: printf(“%d%d\n”,c1,c2); 再运行,并分析结果。 (3).再将第2行改为: int c1,c2; 再使之运行,并观察结果。 (4).再将第3、4行改为: c1 = a; /* 不用单撇号*/ c2 = b; 再使之运行,分析其运行结果。

(5).再将第3、4行改为: c1 = ”a”; /* 用双撇号*/ c2 = ”b”; 再使之运行,分析其运行结果。 (6).再将第3、4行改为: c1 = 300; /* 用大于255的整数*/ c2 = 400; 再使之运行,分析其运行结果。 输入并运行教材第3章习题3.6给出的程序 (1).将一个负整数赋给一个无符号的变量,会得到什麽结果。画出它们在内存中的表示形式。 (2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。画出它们在内存中的表示形式。 (3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式。 同学们可以改变程序中各变量的值,以便比较。例如:a = 65580, b = -40000, e = 65535, f = 65580。 输入习题3.10

C语言实验报告参考答案(原)

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { p rintf("The dress is long\n"); p rintf("The shoes are big\n"); p rintf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() { i nt a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; p rintf("a/b的商=%d\n",x); p rintf("a/c的商=%d\n",y); x=a%b; y=a%c; p rintf("a/b的余数=%d\n",x); p rintf("a/c的余数=%d\n",y); }

(2) #include<> main() { i nt a,b,c,d; f loat x; a=160; b=46; c=18; d=170; x=(a+b)/(b-c)*(c-d); p rintf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { i nt a,b,c; a=0; b=-10; c= (a>b) b:a; p rintf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3

c语言上机实验实验八

实验八 (2018-12-12~2018-12-17) 一、实验名称: 结构体 二、实验目的: (1)掌握结构体类型的定义和使用; (2)掌握结构体类型变量的概念和使用; (3)掌握链表的概念,初步学会对链表进行操作; (4)进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。 三、实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 (1)利用顺序表实现“先进后出”的堆栈 提示:定义结构体struct来定义堆栈;采用动态数组实现顺序表;定义函数实现堆栈中元素的压入和弹出,保证“先进后出”的实现 // 结构体Stack struct Stack{ int * List; // 用来存储元素的顺序表 int curNumber; // 用来存储当前元素的总个数 }; void iniStack(Stack * A); // 初始化堆栈 void clearStack(Stack * A); //清空堆栈 void push(Stack * A, ELEMENT obj); //将元素obj压入堆栈的栈顶 void pop(Stack * A); //将当前栈顶的元素弹出栈。要求:栈不为空 ELEMENT get_top(Stack * A); //返回当前栈顶的元素值。要求:栈不为空 int is_empty(Stack * A); //判断当前堆栈是否为空,空返回1,非空返回0 void display(Stack * A); //自顶向下显示堆栈中的元素 测试实例: 向堆栈中压入:1 2 3 4 弹出次序应为:4 3 2 1

C语言实验报告1

《程序设计基础》实验报告

{ float a, b; printf_s("please input cost price of TV:"); scanf_s("%f", &a); b = a*K; printf_s("the current price of TV:"); printf_s("%f", b); return 0; 2、 #include"stdafx、h" int main() { int a, b, c, d, e, f; printf_s("please input three figures:"); scanf_s("%d", &a); b = a / 100; c = a % 100; d = c / 10; e = c % 10; f = e * 100 + d * 10 + b; printf_s("the new three figures:"); printf_s("%d", f); return 0; } 3、 #include"stdafx、h" int main() { float a, b, c, d, e; printf_s("please input scores:\n");

scanf_s("%f%f%f", &a, &b, &c); d = a + b + c; e = (a + b + c) / 3; printf_s("the total scores:"); printf_s("%5、1f\n", d); printf_s("the average scores:"); printf_s("%4、1f\n", e); return 0; } 4、 #include"stdafx、h" int main() { float a, b; printf("please input a number:"); scanf_s("%f", &a); printf_s("the integer part is:"); printf_s("%d\n", (int)a); b = a - (int)a; printf_s("the decimal part is:"); printf_s("%2、1f", b); return 0; } 5、 #include"stdafx、h"

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

c语言实验报告实验八

数学与软件科学学院实验报告 学期:__2011_ 至_2012 第_ 1__ 学期 20 11 年 11 月 10 日 课程名称:_C语言程序设计专业:__ 会计学 2008 级_ 8 班 实验编号: 08 实验项目:指针指导教师:王开端 姓名:陈银钗学号: 2008080513 实验成绩:___ 一、实验目的: (1) 掌握C语言环境下指针的声明、定义和使用方法; (2) 掌握指针和变量以及指针和数组的关系; (3) 掌握指针、数组之间的关系; (4) 掌握指针、函数之间的关系。 二、实验内容: 1.熟悉指针的基本使用方法。 (1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。 1) 程序段一: main() { int i=3,j=6,k=9; printf(“i=%d j=%d k=%d\n”,*(&i),j,k); } 2) 程序段二: main() { int a,*p; float b,*q; p=&a; q=&b; scanf(“%d,%f”, p, q); *p=a*(*q); printf(“a is %d, p is %d and *p is %d\n”, a, p,*p); printf(“b is %f, q is %d and *q is %d\n”, a, q,*q); printf(“p+1=%d q+1=%d\n”,p+1,q+1); } 3) 程序段三: main() { int a,*p,**q,***r;

p=&a;q=&p;r=&q; printf(“Pl ease input a::\n”); scanf(“%d”,**r); printf(The results are :”); printf(“a’ value is %d,%d,%d,%d\n”,a,*p,**q,***r); printf(“a,p,q,r’s value is %d,%d,%d,%d\n”,a,p,q,r); } (2) 设计一个C程序,以测试以下表达式的运算顺序。 2. 想使指针变量pt1指向变量a和b中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。 swap(int *pt1,int *pt2) { int *p; p=p1;p1=p2;p2=p; } main() { int a,b; int *pt1,*pt2; scanf(“%d,%d”,&a,&b); pt1=&a;pt2=&b; if (a%d\n”,i+1,execute(a,b,function[i])); } execute(int x,int y,int *func()) {return ((*fun)(x,y));} fun1(int x,int y) {return (x+y);}

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

C语言实验

实验一C上机环境初识与简单程序设计 一、实验目的 1.了解C编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 4.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法。 二、实验内容 1.编写一个C程序,输出以下信息: **************************** very good! **************************** 2. 编写一个程序,从键盘输入圆的半径r,圆柱的高h,分别计算出圆的周 长c1,圆的面积cs,圆柱的体积cv,输出结果是要求保留小数点后3位。 3.编写一个程序,输入一个4位数,分别输出这个数的个位,十位,百位和 千位, 例如:输入1234,则输出为: 1234的个位是:4,十位是:3,百位是:2,千位是:1 三、实验程序清单及结果(程序清单不要截图,拷贝到文档中,结果需要截图,再拷贝到相应的清单后面) #include int main() { printf("*************************\n"); printf("very good! \n"); printf("*************************\n"); return 0; }

2. #include int main() { float r,h; double cl,cs,cv; printf("输入半径r: "); scanf("%f",&r); printf("\n输入高度h: "); scanf("%f",&h); cl=3.14*2*r; cs=3.14*r*r; cv=cs*h; printf("圆的周长cl=%0.3lf",cl); printf("\n圆的面积cs=%0.3lf",cs); printf("\n圆柱的体积cvz=%0.3lf",cv); return 0; }

C语言实验报告

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;

C语言实验报告(八)

2016-2017学年第二学期 2016级专业:学号:姓名:……………………………………………………………………………………………… 一、实验题目:结构体和共用体 二、实验目的:(略) 三、实验内容 1.程序验证: 启动vc语言环境,输入并执行以下程序。 源代码:运行结果: #include 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"); }

C语言实验

一、#include int prime(int x); void main( ) { int i,n=0; for(i=2;i<5000;i++) if(prime(i)) { printf("%5d",i); n++; if(n%10==0)printf("\n"); } } int prime(int x) { int i; for(i=2;i int prime(int x); void main( ) { int i,j,f,n=0; for(i=2;i<5000;i++) if(prime(i)) { j=i; f=1; while(j!=0) { n=j%10; if(!(n==2||n==3||n==5||n==7)) {f=0;break;} j=j/10; } if(f==1) { printf("%5d",i); n++; if(n%10==0)printf("\n"); } } } int prime(int x)

{ int i; for(i=2;i int prime(int x); void main( ) { int i,n=0,j,f; for(i=2;i<5000;i++) if(prime(i)==1) { j=i/10; f=1; while(j!=0) { if( !(prime(j))) {f=0;break;} j=j/10; } if(f==1) { printf("%5d",i); n++; if(n%10==0) printf("\n"); } } } int prime(int x) { int i; if(x==1)return 0; for(i=2;i int prime(int x); void main( ) { int i,n=0,j,f; for(i=2;i<5000;i++) if(prime(i)==1)

c语言实验(1~8)

C程序设计课程实验项目目录 *实验项目类型:演示性、验证性、综合性、设计性实验。 *此表由学生按顺序填写。

本科实验报告专用纸 课程名称C语言程序设计成绩评定 实验项目名称C语言程序初步指导教师 实验项目编号实验1 实验项目类型验证实验地点 学生姓名学号 学院信息科学技术学院系计算机系专业计算机科学与技术实验时间年月日午~月日午温度℃湿度 一、实验目的 a)熟悉C语言环境,掌握运行一个C语言程序的过程。 b)掌握C语言程序的结构和书写格式。 c)通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容和要求 实验内容: 1.编写一个C程序,输出以下信息: ***************************** Very good! ****************************** 2.编写一个C程序,输入a、b、c 3个值,输出其中最大者。 实验要求: 1.记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论 对策成功或失败的原因; 2.总结C程序的结构和书写规则。 3.总结运行一个C程序的步骤。 三、主要仪器设备 仪器:计算机 实验环境:Windows 2000或Windows XP + Visual C++6.0或Turbo C 2.0 四、实验原理

程序一、 程序二、 程序一、 #include int main() { printf("*******************\n"); printf(" Very good!\n");

printf("*******************\n"); return 0; } 程序二、 #include int main() { int a,b,c,t; printf("Please enter a,b,c:"); scanf("%d%d%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(b>c) {t=b;b=c;c=t;} printf("max=%d\n",c); return 0; } 六、实验步骤与调试 1.调试过程以键入空格的形式使“Very good!”居中;试验时应该用“\n”使光标跳到下 一行。 2.源程序的编写需要有头文件、主调函数这两个主体部分。 3.运行一个C程序的步骤:编译—连接—运行

c语言实验

1、10个数据,要求对这些数据进行奇偶校验,凡是满足偶校验的数据,(即化为二进制后1的个数为偶数)都要存放到内存ram50H开始的数据区中,使用C语言编写相关程序。#include "reg51.h" void main() { char a[10]={0x03,0x05,0x07,0x08,0x09,0x11,0x12,0x14,0x20,0x31}; char *p,i,k,m,n; p=0x50; for(i=0;i<10;i++) { n=0; k=a[i]; for(;;) { m=k%2; k=k/2; if(m==1) n++; if(k==0) { if(n%2==0) { *p=a[i]; p++; } break; } } } } 2、10个有符号数,试将10个数按从小到大的顺序排列,并按顺序保存到片内50H开始的单元中,使用C语言编写相关程序。 #include "reg51.h" void main() { char a[10] ={0x10,0xD6,0xC8,0x03,0x09,0x01,0x84,0x05,0x21,0x56}; char i,j,t,*p; p=0x50; for(i=0;i<10;i++) for(j=i+1;j<9;j++) { if(a[j]

a[j]=a[i]; a[i]=t; } if(a[i]<0&&a[j]<0) { t=a[j]; a[j]=a[i]; a[i]=t; } } for(i=0;i<10;i++) { *p=a[i]; p++; } while(1); }

C语言实验报告(八)

华北水院高级语言程序设计(C语言)实验报告(八) 2014--2015学年第二学期 2014级164班专业:通信工程学号:201416405 姓名:王超……………………………………………………………………………………………… 一、实验题目:文件 二、实验目的:(略) 三、实验内容 1. 程序验证 用记事本编辑文本文件file1.txt。分析一下程序的功能及结果,并验证。 #include #include void main( ) { FILE *in,*out; if((in=fopen("file1.txt","r"))= =NULL) { printf("Can’t open this file.\n"); exit(0); } if((out=fopen("file2.txt","w"))= =NULL) { printf("Can’t open this file.\n "); exit(0); } while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out); } 程序功能:将一个磁盘文件中的数据复制到另外一个文件中去。 程序输出结果:

华北水院高级语言程序设计(C语言)实验报告(八) 2014--2015学年第二学期 2014级164班专业:通信工程学号:201416405 姓名:王超 ………………………………………………………………………………………………2.程序设计 编程有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号, 姓名,三门课成绩),计算出总成绩,将原有的数据和计算出的总分数存放在磁盘文 件stu.txt中。 源代码: #include #include #define N 5 struct student { int num; char name[20]; int math; int english; int physics; int total; };struct student st[N],t; void main()

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n"); printf(" | |\n"); printf("---+---+---\n"); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么? //The program gets two integers,and computes their sum,difference,product and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,product and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=%d\n",a,b,a+b); printf("%d-%d=%d\n",a,b,a-b); printf("%d*%d=%d\n",a,b,a*b); printf("%d+%d=%f\n",a,b,1.0*a/b); //做除法时要注意,除得的结果是实数 } //2.2输入半径r的值,求出圆周长,圆面积 #include #define PI 3.14 void main() { int r; float zhouchang,mianji; printf("please input r:"); scanf("%d",&r); zhouchang=2*PI*r; mianji=2*PI*r*r; printf("zhouchang=%f\n",zhouchang ); printf("mianji=%f\n",mianji); } //3.1如何实现下述输出要求? //A.输出整数1234,输出共占8位,数据左对齐。 //B.输出整数1234,输出共占10位,数据右对齐。 //C.输出十六进制整数0xFFDE3C02,输出共占8位,数据左对齐。 //D.输出十六进制整数0xFFDE3C,输出共占8位,数据右对齐,前补0。

C语言实验学生版(最新版)

实验一:简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的编译环境和编写过程。 2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 3、初步了解C语言程序的特点。 4、掌握C语言的数据类型。 三、实验内容: 1、计算两个数x和y的和。(教材P5【例1-2】) 2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教 材P18) 3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数 的平均值。(实验教材P21) 5、输入并运行以下程序,分析运行结果。(实验教材P27) #include void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 四、实验程序代码: 五、实验运行结果(截图): 实验二:顺序结构程序设计(2学时)

一、实验方式: 一人一机 二、实验目的: 1、掌握标识符、常量、变量的定义及使用。 2、掌握C语言的常用运算符及表达式。 3、掌握单分支if语句的使用方法。 4、掌握双分支if-else语句的使用方法。 三、实验内容: 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教 材P27) 3、判断箱子是正方体还是长方体。(实验教材P33) 4、有一函数: x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编写程序,输入x值,输出y值。 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝 对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验程序代码: 五、实验运行结果(截图): 实验三:选择结构程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握多分支语句的一般形式和使用方法。 2、掌握switch语句的一般形式和使用方法。 3、利用switch语句与break语句相结合解决生活中的问题。 4、学习调试和修改选择结构的程序。 三、实验内容: 1、定义4个实型变量a、b、c、d,利用单分支if语句对其进行排序,最后将结果输出。

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

C语言实验八

实验八循环结构(一) 一、实验目的 (1)熟练掌握while语句,do…while语句和for语句实现循环的方法; (2)掌握在程序设计中用循环的方法实现各种算法 (3)掌握循环嵌套的应用,能够灵活运用各种循环控制进行综合程序设计;。二、实验内容 1.求1到100的和 #include void main() { int i,sum=0; i=1; while (i<=100) { sum=sum+i; i++; } printf(″%d\\n″,sum); } 将它改为用其它方式的关键词做的循环 2.(a)打印楼梯,同时在楼梯上方打印两个笑脸。 A.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 B.参考程序源代码: #include "stdio.h" void main()

{ int i,j; printf("\1\1\n");/*输出两个笑脸*/ for(i=1;i<10;i++) { for(j=1;j<=i;j++) printf("%c%c",’\xA1’,’\xF6’); printf("\n"); } } (b)要求输出国际象棋棋盘。 A.程序分析: 用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 B.参考程序源代码: #include "stdio.h" void main() { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) if((i+j)%2==0) printf("%c%c",’\xA1’,’\xF6’); else printf(" "); printf("\n"); } 3.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

相关主题
文本预览
相关文档 最新文档