c程序设计实习报告1

2024-12-11 版权声明 我要投稿

c程序设计实习报告1(精选6篇)

c程序设计实习报告1 篇1

1、智力抢答计时器的设计、安装与调试

2、晶体管调幅超外收音机的组装与调试

学院:信息学院

专业班级:08自动化2班

学号:

学生姓名:

指导教师:

2011年 1 月 6 日

北京理工大学珠海学院

课程设计任务书

(一)2010~2011 学年第1学期

学生姓名:专业班级:08自动化2班指导教师:工作部门:信息学院

一、课程设计题目智力竞赛抢答计时器的设计、安装与调试

二、课程设计目的1、学会数字电子系统的设计方法。

2、学会集成D触发器、集成定时器、集成可逆计数器、译码显示器、与门、与非门、或门、LED、按键等相关器件的使用方法。

3、培养团队(三人一组)协助,齐心攻关的精神。

三、课程设计内容(含技术指标)

1.用两块集成D触发器(CC4013)、与非门(CC4012)、LED按键等相关器件设计一个三人(A、B、C)智力竞赛抢答器基本电路。要求:

(1)当某一参赛者首先按下抢答器按键时,相应的LED亮,并输出一个(低电平)音响控制信号,抢答器不再接受其他输入信号;

(2)设计一个复位、开始回答按键,此按键按下时,抢答器复位,音响停止,并输出一个(高电平)开始计时信号;

(3)计算LED限流电阻的大小。

2.用两块集成定时器NE555、电阻和电容等设计两个多谐波振动器。要求:

(1)振荡器1输出频率为1Hz,幅度大于5伏;

(2)振荡器2输出频率为1KHz,幅度大于5伏;

(3)工作稳定,性能良好。

3.用与非门(7410、7408)、或门(7432)、非门(7404)、NPN型三极管和喇叭设计一个可控音响电路。要求:

(1)当某一参赛者按下抢答器按键(低电平)时,或回答问题时间到(低电平)时,发出1KHz的音响,其他时间不响;

(2)控制灵敏,声音响亮。

4.用两块集成双向可逆计数器(40192)、NPN型三极管及其相关器件设计一个模为60的可控减法计数器。要求:

(1)当接收一个正脉冲倒计时开始;当减到00时停止,并发出一个负脉冲,使音响发声;

(2)控制灵敏,计时准确。

5.用两块集成译码器(4511)、共阴极LED数码管及其相关器件设计一个两位数码显示器。要求:

(1)接收倒计时器的两位8421BCD码,并显示在LED数码管上。

(2)准确计算限流电阻,使LED数码管显示清晰,使用寿命长。

四、进度安排

1.周日1-2节,下达任务;

2.周日3-4节到周一8-9节,查资料、讨论、设计,并画出设计图;

3.周二1-2节,教师验收设计图、答疑并与学生讨论问题;

4.周二3-4节,统一设计方案;

5.周二6-7节,发放器件;

6.周二8-9节到周四3-4节,学生焊接组装、逐级调试。

7.周四6-9节教师验收作品,同时学生进行答辩。

五、基本要求

1.作品要能够圆满完成任务书要求的所有功能;

2.元器件布局合理,版面美观;

3.焊接牢靠,焊点美观,无接触不良现象。

教研室主任签名:

2011年1 月 6 日

北京理工大学珠海学院

课程设计任务书

(二)2009~2010学年第 1 学期

学生姓名:专业班级:08自动化2班

指导教师:工作部门:信息学院

一、课程设计题目 晶体管超外差式收音机的组装与调试

二、课程设计内容

1、学习调频、调幅超外差式收音机基本原理和调试方法。

2、设计一个调幅超外差式收音机框图。

3、组装晶体管调幅式超外差收音机。

4、调试晶体管调幅式超外差收音机并逐一排除故障

三、进度安排

14日(周五)上午:下达任务,学习调频、调幅超外差式收音机基本原理调试方法。下午:查资料、讨论、设计电路。、15日(周六)上午:验收设计图,统一设计方案

下午:发放,清点、识别和测量元器件

16日(周日)上午:组装调试收音机的电源部分

下午:组装调试收音机的低放部分

17日(周一)上午:组装调试收音机的中放部

下午:组装调试收音机的高放部分

18日(周二)上午:收音机总调

下午:验收和答辩

四、基本要求

1、遵守实验室规则,要节电、卫生、不在实验室进食,积极值日,不违反操作规程,不迟到、早退和旷课,认真做好当天任务,占总成绩的20%;

2、焊接正确,无短路、接触不良等现象,占总成绩的20%;

3、收音机灵敏度高、收台多,声音洪亮,接收效果好,占总成绩的50%;

4、辩回答问题思路正确无误,占总成绩的10%;

教研室主任签名:

2011年1月 6 日

附实习报告要求:

1、两个任务提交一份不少于3000字课程设计说明书。

2、除封面、任务书和要求的图纸表格外,一律手写。

3、说明书结构为:(1)封面,(2)任务书,(3)摘要,(4)关键

c程序设计实习报告1 篇2

1材料与方法

单克隆抗-C, Ac、Bc、Oc反定型试剂红细胞、筛选细胞 (3人份) 、谱细胞 (10人份) 均由上海市血液生物医药有限公司提供;微柱凝胶ABO-CDE卡和微柱凝胶抗人球卡以及配套设备由西班牙Diana公司提供;聚凝胺试剂由珠海贝索生物技术有限公司提供。血型及抗体鉴定参照《中国输血技术操作规程》[1]。

2血型鉴定过程与结果

2.1 RBC血型鉴定

正定型为“A”型, 反定型Ac、Bc、Oc均阳性, 结果见表1。

2.2抗体筛选及抗体鉴定

抗体筛选结果见表2, 抗体鉴定结果见表3。

注:“0”表示细胞表面不存在该种抗原, “/”表示不确定细胞表面是否存在该种抗原。AHG为抗人球蛋白。

注:“0”表示细胞表面不存在该种抗原, “/”表示不确定细胞表面是否存在该种抗原。AHG为抗人球蛋白。

通过表2和表3中的盐水法可以确证患者血清中含有IgM抗-C, 抗人球法只能证实患者血清中可能含有IgG抗-D和 (或) 抗-C。患者血清经2-Ma处理后, 使用抗人球法与筛选Ccdee和ccDee红细胞均发生凝集反应, 从而证实IgG抗-D和

2.3 RBC反定型重新鉴定

用单克隆抗-C分别筛选C抗原阴性的Ac、Bc、Oc的红细胞, 重新进行正反定型, 结果患者血型鉴定正反定型相符, 确定为A型。

2.4交叉配血

患者血清与3名献血者 (均为A型ccdee) 红细胞主侧交叉配血, 在聚凝胺法和微柱凝胶抗人球卡中均无溶血和无凝集。

3讨论

抗-C抗体少见于Rh阴性的人, 通常抗-D血清中含有抗-C抗体的仅为30%[2]。抗-C的产生多系通过外来红细胞免疫刺激后产生, 即通过输血或妊娠产生, 这些抗体多为IgG型, 但在免疫早期也可有部分IgM型。本例患者可能因2008年5月输注悬浮红细胞产生了IgM抗-C, 从而导致ABO正反定型不符两次给予患者输注Accdee型悬浮红细胞后均无不良反应。因此, 笔者认为, 对RhD (-) 患者输血时最好进行Rh同型输注, 以免产生不规则抗体, 导致紧急输血时造成不必要的损伤。

参考文献

[1]王金敏, 刘世荣, 乔家骏, 等.中国输血技术操作规程.天津:天津科学技术出版社, 1997:60-61.

c程序设计实习报告1 篇3

习题1参考答案

一、简答题

1、冯 诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?

答:冯 诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。

运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。数据运算包括算术运算和逻辑运算。

控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。

存储器是计算机中具有记忆能力的部件,用来存放程序和数据。

输入设备是用来输入程序和数据的部件。

输出设备正好与输入设备相反,是用来输出结果的部件。

2、简述计算机的工作原理。

答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。整个过程由控制器进行控制。

3、计算机软件系统分为哪几类?

答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。

系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。这类软件一般与具体应用无关,是在系统一级上提供的服务。系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。

应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。

4、什么叫软件?说明软件与硬件之间的相互关系。

答:软件是指计算机程序及有关程序的技术文档资料。两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。在不太严格的情况下,认为程序就是软件。硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。从这个意义上说,软件是用户与机器的接口。

二、填空题

1、算术

逻辑

2、键盘

鼠标

3、控制器

运算器 4、10 2 5、0 0x

6、原码

反码

补码 7、00010111 11101001 8、127-128

三、选择题

1、C

2、A

3、B

4、A

5、B

6、B

7、D

8、A

9、A

10、B

11、A

12、B

习题2参考答案

一、简答题

1、C语言有哪些特点?

答:(1)简洁紧凑、灵活方便;(2)运算符丰富;(3)数据结构丰富;(4)C语言是结构式语言;(5)C语言的语法限制不太严格、程序设计自由度大;(6)C语言允许直接访问物理地址,可以直接对硬件进行操作;(7)C语言程序生成代码质量高,程序执行效率高;(8)C语言使用范围大,可移至性好;(9)具有预处理功能;(10)具有递归功能。

2、C语言的主要应用有哪些?

答:(1)许多系统软件和大型应用软件都是用C语言编写的,如UNIX、Linux等操作系统。(2)在软件需要对硬件进行操作的场合,用C语言明显优于其他高级语言。例如,各种硬件设备的驱动程序(像显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。(3)在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。(4)随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。(5)C语言适用于多种操作系统,像Windows、UNIX、Linux等绝大多数操作系统都支持C语言,其他高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。

3、列举几种程序设计语言。

答:C语言、Java语言、Pascal语言、BASIC语言、LOGO语言等。

二、填空题

1、机器语言

汇编语言

高级语言

2、机器语言

3、ALGOL 60

4、多个函数

5、main

6、#include

7、定义

使用

8、声明部分

执行部分

声明部分

执行部分

三、选择题

1、D

2、B

3、B

4、C

5、C

6、C

7、D

8、C

9、D

10、A

11、B

12、A

13、B

14、C

15、A

习题3参考答案

一、填空题

1、整型

字符型

实型

2、字母

数字

下划线

字母

下划线

3、直接

符号

符号 4、0 0x 5、1 2 6、4 8

7、-32768~32767

8、-16

9、x+=1;10、26

11、(m/10)%10*100+m/100(100*10)+m%10

二、选择题

1、D

2、C

3、A

4、B

5、B

6、D

7、B

8、C

9、A

10、A

11、C

12、B B

14、D

15、B

16、D

17、B

18、D

19、C 20、A

21、B

22、D

23、D D

25、D

26、D

27、C

28、A

29、C 30、B

习题4参考答案

一、填空题 13、24、1、scanf printf

2、按指定的输出格式将信息输出到屏幕上

常规字符

格式控制符

3、X、E、G

4、getche输入的字符回显,而getch输入的字符不回显

5、fflush

6、解决某个问题的具体的方法和步骤

7、自然语言描述

伪代码

流程图

N-S图

8、顺序

分支

循环

二、选择题

1、B

2、C

3、D

4、C

5、B

6、C

7、D

8、C

9、B

10、B

11、D

12、C

13、D

14、D

15、A

三、编程题

1、编写一程序要求任意输入四位十六进制整数,以反序的方式输出该十六进制数。例如:输入9AF0,则输出0FA9。

#include

void main()

{

unsigned short a, b;

scanf(“%4x”, &a)

//输入4位十六进制数给变a

b=(a & 0X000F)<<12;//取a的最低一位十六进制数并左移12位后赋值给b

b+=(a & 0X00F0)<<4;//取a的次第一位十六进制数并左移4位后与b相加再赋值给b

b+=(a & 0X0F00)<<4;//取a 的次高一位十六进制数并右移4位后与b相加再赋值给b

b+=(a & 0XF000)<<12;//取a的最高一位十六进制数并右移12位后与b相加再赋值给b

printf(“%4xn”, b);

//输出变化后的十六进制数

}

2、编程从键盘输入两个整数分别给变量a和b,要求在不借助于其他变量的条件下,将变量a和b的值实现交换。

#include

void main()

{

int a, b;

scanf(“%d%d”, &a, &b);

printf(“before swap: a=%d b=%dn”, a,b);

a=a+b;

b=a-b;

a=a-b;

printf(“after swap: a=%d b=%dn”, a, b);

}

3、编程从键盘输入圆的半径r,计算出圆的周长和面积。

#include

#define PI 3.14159

void main()

{

float r, c, s;

scanf(“%f”, &r);

c=2*r*PI;

s=PI*r*r;

printf(“c=%f s=%fn”, c, s);

}

4、编程从键盘输入任意一个十六进制负整数,以输入的形式输出。例如:输入-FA98,输出-FA98。

#include

void main()

{

short int a;

scanf(“%x”, &a);

printf(“-%hxn”,-a);

}

5、已知一元二次方程ax2+bx+c=0,编一程序当从键盘输入a、b、c的值后,计算x的值。

#include

#include

void main()

{

float a, b, c;

float d;

float x1, x2;

printf(“input a, b, c: ”);

scanf(“%f%f%f”, &a, &b, &c);

d=sqrt(b*b-4*a*c);

x1=(-b+d)/(2*a);

x2=(-b-d)/(2*a);

printf(“x1=%.2f x2=%.2fn”, x1, x2);

}

6、假设从键盘输入某日午夜零点到现在已经历的时间(单位:s),遍一程序计算到现在为止已近过了多少天,现在的时间是多少?

#include

void main()

{

unsigned long t, r;

int d, h, m, s;

printf(“second=”);

scanf(“%d”, &t);

d=t/(24*3600);

r=t%(24*3600);

h=r/3600;

m=(r%3600)/60;

s=(r%3600)%60;

printf(“have passed days is %d, current time is %02d:%02d:%02dn”, d, h, m, s):

}

习题5参考答案

编程题

1、编一程序判断输入整数的正负性和奇偶性。

#include

void main()

{

int a;

scanf(“%d”, &a);

if(a>=0)

printf(“the number %d is positive numbern”, a);

else

printf(“the number %d is negative numbern”, a);

if(a%2==0)

printf(“the number %d is even numbern”, a);

else

printf(“the number %d is odd numbern”, a);

}

2、编程判断输入数据的符号属性。#include void main(){ int x, sign;scanf(“%d”, &x);if(x>0)

sign=1;else if(x==0)

sign=0;

else

sign=-1;printf(“sign= %dn”, sign);}

3、输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。#include void main(){ int num1, num2, num3;scanf(“%d%d%d”, &num1, &num2, &num3);if(num1<=num2)

if(num2<=num3)

printf(“%d %d %dn”, num1, num2, num3);

else

if(num1>=num3)

printf(“%d %d %dn”, num3, num1, num2);

else

printf(“%d %d %dn”, num1, num3, num2);else

if(num2>=num3)

printf(“%d %d %dn”, num3, num2, num1);

else

if(num1>=num3)

printf(“%d %d %dn”, num2, num3, num1);

else

printf(“%d %d %dn”, num2, num1, num3);}

4、在屏幕上显示一张如下所示的时间表。

#include

void main()

{

char c;

printf(“*****Time*****n”);printf(“1 morningn”);printf(“2 afternoonn”);printf(“3 nightn”);

printf(“Please enter your choice: ”);c=getcahr();switch(c){ case „1‟: printf(“Good morningn”);brenk;case „2‟: printf(“Good afternoonn”);break;case „3‟: printf(“Good nightn”);break;default: printf(“Selection error!n”);} }

5、输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程。

#include

void main()

{

int year, month;

printf(“Input year, month: ”);

scanf(“%d %d”, &year, &month);

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: printf(“31 daysn”);

break;

case 4:

case 6:

case 9:

case 11: printf(“30 daysn”);

break;

case 2: if((year%4==0 && year%100!=0)||(year%400==0))

printf(“29 daysn”);

else

printf(“28 daysn”);

break;

default: printf(“Input error!n”);} }

习题6参考答案

编程题

1、编程计算2+4+6+…+98+100的值。

(1)利用for循环语句实现,在循环体外为sum赋初值0。#include void main(){ int i, sum=0;for(i=2;i<=100;i+=2)sum+=i;printf(“sum= %dn”, sum);}(2)利用while循环语句实现,在循环体外为i和sum赋初值。#include void main(){ int i=2, sum=0;while(i<=100){ sum+=i;i+=2;} printf(“sum= %dn”, sum);}

2、编程计算1*2*3+4*5*6+…+99*100*101的值。#include void main(){ int i;long term, sum=0;for(i=1;i<=99;i+=2){ term=i*(i+1)*(i+2);sum+=term;} printf(“sum= %dn”, sum);}

3、编程计算1!+2!+3!+…+10!的值。

(1)用累加和算法,累加项为term=term*i;i=1,2,…,10。Term的初始值为1,使用单重循环完成。#include void main(){ long term=1, sum=0;int i;for(i=1;i<=10;i++){ term*=i;sum+=term;} printf(“1!+2!+3!+…+10!= %ldn”, sum);}(2)用内层循环求阶乘,外层循环控制累加的项数。#include void main(){ long term, sum=0;int i, j;for(i=1;i<=10;i++){ term=1;for(j=1;j<=i;j++)

term*=j;sum+=term;} printf(“1!+2!+3!+…+10!= %ldn”, sum);}

4、编程计算a+aa+aaa+…+aa..a(n个a)的值,n和a的值由键盘输入。#include void main(){ long term=0, sum=0;int a, i, n;printf(“Input a, n:n”);scanf(“%d,%d”, &a, &n);for(i=1;i<=n;i++){ term=term*10+a;sum+=term;} printf(“sum=%ldn”, sum);}

5、参考答案: #include void main(){ float term, result=1;int n;for(n=2;n<=100;n+=2){ term=(float)(n*n)/((n-1)*(n+1));result*=term;} printf(“result=%fn”, 2*result);}

6、参考答案: #include #include void main(){ int n=1, count=0;float x;double sum, term;printf(“Input x: ”)scanf(“%f”, &x);sum=x;term=x;do { term=-term*x*x/((n+1)(n+2));//计算相应项,并改相应符号 sum+=term;n+=2;count++;}while(fabs(term)>=le-5);printf(“sin(x)= %f, count= %dn”, sum, count);}

7、参考答案: #include void main(){ int i, j, k, n;printf(“result is: ”);for(n=100;n<1000;n++){ i=n/100;

//分出百位 j=(n-i*100)/10

//分出十位 k=n%10;

//分出个位 if(n==i*i*i+j*j*j+k*k*k)

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

8、参考答案:

#include #include void main(){ int i1, i2, i3, i4, k, n;printf(“Input data is: ”);scanf(“%d”, &n);k=abs(n);i1=k/1000;

//分离出千位 i2=(k-i1*1000)/100

//分离出百位 i3=(k-i1*1000-i2*100)/10 //分离出十位 i4=k%10;

//分离出个位

printf(“The sum of the total bit is %dn”, i1+i2+i3+i4);}

9、参考答案: #include void main(){ int n, m=0, s, r;printf(“Input data is: ”);scanf(“%d”, &n);s=n;While(s!=0){ r=s%10;

//从低位到高位逐一分离 m=10*m+r;

//重新组合一正数 s=s/10;

//求其商 } if(m==n)printf(“yesn”);else printf(“non”);}

10、参考答案: #include void main(){ int x, y, z, count=0;

//x,y,z分别表示5分、2分和1分硬币的数量 for(x=1;x<=28;x++)//5分硬币最多不超过28枚

for(y=1;y<=73;y++)//2分硬币最多不超过73枚

{

z=100-x-y;//共有100枚硬币,减去5分和2分硬币后为1分硬币数量

if(5*x+2*y+z==150)

{

count++

//增加一种方案

printf(“%02d, %02d, %02d ”, x, y, z);//输出每一种方案

if(count%6==0)

printf(“n”);//没输出6种方案后,换行

}

} printf(“count=%dn”, count);}

11、设计思想:将A、B、C、D4个人的回答用一条件表达式来表示,对于A的回答:thisman!=‟A‟;对于B的回答:thisman==‟C‟;对于C的回答:thisman==‟D‟;对于D的回答:thisman!=‟D‟;然后,采用枚举的方法,一个人一个人的去试,如果这4个条件表达式中有3个为真,即4个条件表达式的值相加为3,则可判定是其中某人做的好事。参考答案: #include void main(){ int k=0;sum=0;g=0;char thisman=‟‟;

for(k=0;k<=3;k++)//循环控制变量为k,循环共进行4次 { thisman=‟A‟+k;//初始认为A做好事,依次为B、C、D sum=(thisman!=‟A‟)+(thisman==‟C‟)+(thisman==‟D‟)+(thisman!=‟D‟);if(sum==3){ printf(“This man is %cn”, thisman);g=1;} } if(g!=1)

printf(“Can‟t foundn”);}

12、参考答案(1): #include void main(){ int i, j;for(i=1;i<=3;i++)//先显示前三行 {

for(j=1;j<=i-1;j++)//输出每行前的空格

printf(“ ”);

for(j=1;j<=5-2*(i-1);j++)//输出每行的*号

printf(“*”);

printf(“n”);} for(i=1;i<=2;i++)//接着显示后两行 {

for(j=1;j<=2-i;j++)

printf(“ ”);

for(j=1;j<=2*i+1;j++)

printf(“*”);

printf(“n”);} } 参考答案(2): #include void main(){ int i, j, k;for(i=1;i<=5;i++)//i控制行数 {

for(j=1;j<=5-i;j++)//随行数的增加,输出递减数目的空格

printf(“ ”);

for(k=1;k<=5;k++)//每行输出5个*字符

printf(“*”);

printf(“n”);//将光标移到下一行起始位置处 } } 参考答案(3): #include void main(){ int i, j;for(i=1;i<=5;i++){

for(j=1;j<=2*(i-1)+1;j++)

printf(“*”);

printf(“n”);} }

习题7参考答案

编程题

1、参考答案: #include void main(){ int i, sum=0;a[20];for(i=0;i<20;i++)

Scanf(“%d”, &a[i]);

//输入20个整数 for(i=0;i<20;i++)

//对非负数进行统计 {

if(a[i]<0)continue;

//为负数,进入下一轮循环 sum+=a[i];

//非负数累计 } printf(“sum= %dn”, sum);}

2、参考答案 #include void main(){ int i, j, odd, even, n, t, a[10];odd=0;even=9;for(i=0;i<10;i++)

//将键盘输入的数据存入数组中 { scanf(“%d”, &n);

if(n%2!=0)

a[odd++]=n;

//将奇数放置在数组的左边

else

a[even--]=n;//将偶数放置在数组的哟边 }

for(i=0;i

//通过选择排序对奇数进行升序排列 { n=j;for(j=i+1;j

if(a[j]

n=j;if(n!=i){ t=a[i];a[i]=a[n];a[n]=t;} } for(i=odd;i<9;i++)

//通过选择排序对偶数进行升序排列 { n=i;for(j=i+1;j<10;j++)

if(a[j]

n=j;If(n!=i){ t=a[i];a[i]=a[n];a[n]=t;} } for(i=0;i<10;i++)

printf(“%d”, a[i]);输出排序结果 printf(“n”);}

3、参考答案: #include void main(){ int i, max, min, a[10];printf(“Input 10 integer number: ”);//输入10个整数 for(i=0;i<10;i++)

scanf(“%d”, &a[i]);max=0;min=0;for(i=1;i<10;i++){ if(a[i]>a[max])

max=i;if(a[i]

printf(“%d ”, a[i]);printf(“n”);}

4、参考答案: #include void main(){ int i, j, t, a[6];printf(“Input 6 integer number: ”);for(i=0;i<6;i++)

scanf(“%d”, &a[i]);printf(“n”);

for(i=0;i<6;i++){ for(j=0;j<6;j++)

printf(“%d ”, a[j]);

printf(“n”);t=a[5];for(j=5;j>0;j--)a[j]=a[j-1];a[0]=t;} }

5、参考答案: #include void main(){ int i, j, sum=0, mul=1, a[5][5];printf(“Input 5*5 array:n”);for(i=0;i<5;i++)

for(j=0;j<5;j++)

scanf(“%d”, &a[i][j]);printf(“n”);for(i=0;i<5;i++){ sum+=a[i][j];if(i!=2)

sum+=a[i][4-i];if(i%2!=0)

continue;mul*=a[i][i];if(i!=2)

mul*=a[i][4-i];} printf(“sum = %d mul = %dn”, sum, mul);}

6、参考答案: #include #define N 6 void main(){ int i, j, a[N][N];for(i=0;i

a[i][j]=a[i-1][j-1]+a[i-1][j];} for(i=0;i

printf(“ ”);for(j=0;j<=i;j++)

printf(“%2d ”, a[i][j]);printf(“n”);} }

7、参考答案: #include #include #define N 80 void main(){ char str[N];int i;printf(“Input a string: ”);gets(str);printf(“After reverse: ”);for(i=strlen(str)-1;i>=0;i--)

printf(“%c”, str[i]);printf(“n”);}

8、参考答案: #include #include #define N 80 void main(){ char str[N], strtemp[N];unsigned int i, j;printf(“Input a string: ”);gets(str);for(i=0, j=0;i

if(str[i]!=‟c‟)

strtemp[j++]=str[i];strtemp[j]=‟‟;strcpy(str, strtemp);printf(“After delete character ‟c‟: ”);printf(“%sn”, str);}

9、参考答案: #include #define N 80 void main(){ char s1[N], s2[N]=”abcdefghijk”;unsigned int i;i=0;while(1){ s1[i]=s2[i];if(s2[i]==‟‟)

break;i++;} printf(“After string copy: %sn”, s1);}

10、参考答案: #include void main(){ char dstStr[20]=‟12345‟, srcStr[20]=‟67890‟;unsigned int i, j;printf(“Before strcat: dstStr=%s srcStr=%sn”, dstStr, srcStr);for(i=0;dstStr[i]!=‟‟;i++)

;for(j=0;srcStr[j]!=‟‟;j++)

dstStr[i+j]=srcStr[j];dstStr[i+j]=‟‟;

printf(“After strcat: dstStr=%sn”, dstStr);}

11、参考答案: #include void main(){ int a[10]={1,3,5,7,9}, num=5, i, n;printf(“Before insert: ”);for(i=0;i

printf(“%d ”, a[i]);printf(“n”);

printf(“Input a number: ”)scanf(“%d”, &n);for(i=num-1;i>=0;i--)

if(a[i]>n)

a[i+1]=a[i];

else

break;a[i+1]=n;printf(“After insert: ”);for(i=0;i

printf(“%d”, a[i]);printf(“n”);s }

习题8参考答案 编程题

1、设计一个函数,用来判断一个整数是否为素数。参考答案: #include #include int IsPrimeNumber(int number);void main(){ int a;printf(“Input a integer number: ”);scanf(“%d”, &a);if(IsPrimeNumber(a))

printf(“%d is prime number.n”, a);else

printf(“%d isn‟t prime number.n”, a);} int IsPrimeNumber(int number){ int I;if(number<=-1)

return(0);for(i=2;i

if(number%i==0)

return(0);return(i);}

2、设计函数MaxCommonFactor(),计算两个正整数的最大公约数。参考答案: #include int MaxCommonFactor(int a, int b);void main(){ int a,b,c;printf(“Input two integer number: ”);scanf(“%d%d”, &a,&b);c=MaxCommonFactor(a,b);if(c!=-1)

printf(“The biggest common factor of %d and else

printf(“The biggest common factor of %d and } int MaxCommonFactor(int a, int b){ if(a<=0||b<=0)

return(-1);while(a!=b){ if(a>b)

a=a-b;else if(b>a)

b=b-a;}

%d is %dn”, a,b,c);%d isn‟t existn”, a,b);

ruturn(a);}

3、定义函数GetData()用于接收键盘输入的一组整型数据,并放入一数组中;另外再定义一个函数Sort()用于对输入的这一组数据按照降序排列。主函数向后调用GetData和Sort函数,输出最后的排序结果。参考答案: #include #define N 10 void GetData(int a[],int n);void Sort(int a[],int n);void main(){ int i,a[N];GetData(a,N);Sort(a,N);printf(“After sort: ”);for(i=0;i

printf(“%d”,a[i]);printf(“n”);} void GetData(int a[],int n){ int i;printf(“Input number: ”);for(i=0;i

scanf(“%d”,&a[i]);} void Sort(int a[],int n){ int i,j,k,t;for(i=0;i

if(a[j]>a[k])

k=j;if(k!=i){ t=a[i];a[i]=a[k];a[k]=t;} } }

4、参考答案: #include #include void JsSort(char str[]);void main(){ char str[80];printf(“Input a string: ”)gets(str);JsSort(str);printf(“After sort: %sn”, str);} void JsSort(char str[]){ int i,j,k,len;char ch;len=strlen(str);for(i=1;i

if(str[j]>str[k])

k=j;if(k!=j){ ch=str[i];str[i]=str[k];str[k]=ch;} } }

5.参考答案: #include #include #define N 30 void Josegh(int p[],int n, int s,int m);void main(){ int i,p[N];Josegh(p,N,1,10);for(i=N-1;i>=0;i--){ printf(“ %4d”,p[i]);if(i%10==0)

printf(“n”);} } void Josegh(int p[],int n,int s,int m){ int i,j,s1,w;s1=s;for(i=1;i<=n;i++)

p[i-1]=i;for(i=n;i>=2;i--){ s1=(s1+m-1)%i;if(s1==0)

s1=i;w=p[s1-1];for(j=s1;j

p[j-1]=p[j];p[i-1]=w;} }

6、参考答案: #include #include int StrLoc(char str1[],char str2[]);void main(){ int loc;char str1[]={“do”};

char str2[]={“how do you do?”};loc=StrLoc(str1,str2);if(loc==-1)

printf(“The string ”%s” not in the string ”%s”.n”,str1,str2);else

printf(“Location of the string ”%s” in the string ”%s” is %d.n”,str1,str2,loc);} int StrLoc(char str1[],char str2[]){ unsigned int i,len1,len2;len1=strlen(str1);len2=strlen(str2);if(len1>len2)

return(-1);for(i=0;i<=strlen(str2)-strlen(str1);i++)

if(strncmp(str1,str2+i,len1)==0)

return(i);return(-1)}

7、参考答案: #include long count(int n,int k);void main(){ int n,k;n=10;k=2;printf(“Result=%ldn”,count(n,k));} long count(int n,int k){ for(i=1;i<=n;i++){ item=1;for(j=1;j<=k;j++)

item*=i;sum+=item;} return(sum);}

8、参考答案: #include long F(int n);void main(){ int i;for(i=1;i<=40;i++){ printf(“F(%2d)=%-9ld if(i%4==0)

printf(“n”);} } long F(int n){ if(n<=2)

return(1);return(F(n-1)+F(n-2));}

9、参考答案: #include long fun(int m,int n);void main(){ int m,n;”,i,F(i));long c;printf(“Input m and n(m>=n): ”);scanf(“%d%d”,&m,&n);c=fun(m,n);printf(“c=%ldn”,c);} long fun(int m,int n){ if(m==n||n==0)

return(1L);else

return(m*fun(m-1),n)/(m-n));}

10、参考答案: #include #include void IntToStr(int n);char str[80]={0};void main(){ int num;printf(“Input an Integer number: ”);scanf(“%d”,&num);IntToStr(num);printf(“The string is : %sn”, str);} void IntToStr(int n){ int i;if(n==0)

return;for(i=strlen(str)-1;i>=0;i--)

c语言实习程序 篇4

course_name(int i)/*把科目变成数字函数*/ { switch(i)

{

case 1:printf(“英语 ”);

break;

case 2:printf(“数学”);

break;

case 3:printf(“C语言”);

break;

case 4:printf(“Java”);

break;

case 5:printf(“法律”);

break;

case 6:printf(“音乐”);

break;

case 7:printf(“语文”);

break;

case 8:printf(“体育”);

break;

case 9:printf(“英语”);

break;

case 10:printf(“美术”);

break;

} }

print2(int m)/*输出学生考试科目函数*/ { int i,j;

printf(“学生考试科目:nnn”);

for(i=1;i<=m;i++)

{printf(“

【%d】”,i);

course_name(i);

}

printf(“nn”);}

stu_zhongfen(int(*p2)[100],int n,int m)/*计算学生总分函数*/ {

int sum,i,j;

for(i=0;i

{

sum=0;

for(j=0;j

sum=sum+*(*(p2+i)+j);

*(*(p2+i)+m)=sum;

} }

input(long *p1,int(*p2)[100],int n,int m)/*输入学号、以及各科成绩函数*/ {

int i,j;

for(i=0;i

{

printf(“n请输入第%d个学生的学号:”,i+1);

scanf(“%ld”,p1+i);

for(j=0;j

{

printf(“n请输入第%d门课程的成绩:”,j+1);

scanf(“%d”,*(p2+i)+j);

}

}

printf(“......输入完毕!n”);

}

chaxun(long *p1,int(*p2)[100],int n,int m)/*查询学生各科成绩、总分、班排名(按总分)函数*/ {

long xuehao;

int counter=1,j=0,i,k;

while(1)

{

printf(“n请输入要查询的学生的学号:”);

scanf(“%ld”,&xuehao);

for(i=0;i

{

if(*(p1+i)==xuehao)

break;

}

if(i>=n)printf(“该学号不存在!请从新输入!n”);

else break;

}

stu_zhongfen(p2,n,m);

while(j

{ if(j!=i)

{ if(*(*(p2+j)+m)>*(*(p2+i)+m))

counter++;

j++;

}

else

j++;

}

printf(“<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);

printf(“n 您要查询的学生信息如下:n”);

printf(“n”);

printf(“

课程名

分数n”);

for(j=0;j

{ printf(“

”);

course_name(j+1);

printf(“

%4dn”,*(*(p2+i)+j));

}

printf(“n

总分为:%3dn”,*(*(p2+i)+m));

printf(“

班级排名为:%3dn”,counter);

printf(“<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);

}

stu_average(long *p1,int(*p2)[100],int n,int m)/*计算每个学生的平均分*/ { int i,j,k;

float average[100];

stu_zhongfen(p2,n,m);

for(i=0;i

average[i]=*(*(p2+i)+m)/(float)m;

printf(“n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>”);

printf(“n每个学生的平均分如下n”);

printf(“

学号

平均分n”);

for(i=0;i

printf(“

%4ld

%fn”,*(p1+i),average[i]);

printf(“n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);

}

score_jiangxu(int(*p2)[100],int n,int m)/*把每个学生按平均分高到低排名函数*/ { int i,j,k,temp,a[100],z;

float average[100];

stu_zhongfen(p2,n,m);

printf(“n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);

for(i=0;i

{ a[i]=*(*(p2+i)+m);

average[i]=*(*(p2+i)+m)/(float)m;

}

for(i=0;i

{

for(k=1;k

if(a[i]

{ temp=a[i];

a[i]=a[k];

a[k]=temp;

}

}

printf(“排名

平均分n”);

for(i=0;i

printf(“(%d)

%fn”,i+1,average[i]);

printf(“<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n”);

}

print1()/*提示函数*/ {

system(“cls”);/*清屏*/

printf(“1.查询学生各科成绩、总分、班排名(按总分)n”);

printf(“2.计算每个学生的平均分 n”);

printf(“3.把每个学生按平均分高到低排名n”);

printf(“请选择:”);}

main(){

int m,n,i;

long *p1,num[100];

int(*p2)[100],score[100][100];

printf(“n请输入学生总数:”);

scanf(“%d”,&n);

printf(“n请输入课程总数:”);

scanf(“%d”,&m);

p1=num;

p2=score;

printf(“n

★★现在请输入学号和成绩★★n”);

print2(m);

input(p1,p2,n,m);

print1();

scanf(“%d”,&i);

if(i<0||i>3)

printf(“.....输入错误!....”);

else

switch(i)

{ case 1: chaxun(p1,p2,n,m);break;

case 2: stu_average(p1,p2,n,m);break;

case 3: score_jiangxu(p2,n,m);break;

}

C语言程序设计II实验报告 篇5

一、实验目的1、掌握一维数组的定义和引用

2、掌握一维数组的初始化方法

3、了解与一维数组有关的应用编程方法

二、实验意义

数组的定义,元素引用特征和数组的编程特色,同时可接触到更多的经典算法,的,有了这些基础后,数组的实验能让

三、实验重点2

四、实验难点

1.从键盘输入10个整数存放在一维数组里,用冒泡法进行排序输出。

2.从键盘输入10个整数,找出最大的数并输出该数及其下标。

c程序设计实习报告1 篇6

1 典型病例

患者, 男, 因2个月前在他处行包皮环切术感染未愈, 门诊以包皮环切术后感染及合并糖尿病于2006-04-27收住我市某医院泌尿外科。入院查体:术后包皮、阴囊水肿疼痛, 右侧腹股沟疼痛, 右腹股沟区触及多个大小不等肿大质硬淋巴结, 包皮水肿包裹阴茎头, 上翻包皮, 阴茎头外露, 表面有白色黏液, 系带处包皮阴茎头粘连紧密, 两侧阴囊水肿。血压:140/90 mm Hg (1 mm Hg=0.133 k Pa) , 其他尚可。治疗计划:抗感染治疗, 纠正血糖, 完善检查, 择期手术。

2 诊疗过程

2.1 病情变化情况

患者住院期间2006-05-08查房:包皮、阴囊水肿疼痛, 左、右侧腹股沟疼痛, 双侧腹股沟区触及多个大小不等的肿大质硬淋巴结, 拟2006-05-09上午行包皮环切术;2006-05-12即术后第3天查房:右下肢稍水肿, 嘱其活动下肢;2006-05-13查房:右下肢明显水肿;2006-05-15查房:右下肢指陷性水肿, 行右下肢动静脉彩超, 确诊为右侧股总静脉、股浅及股深静脉血栓形成;2006-06-18查房:右下肢疼痛肿胀较之前有所加重, 并有疼痛, 行右下肢彩超显示:腘静脉有新的血栓形成。当日11:30行彩超检查返回病房途中, 患者突然出现意识不清, 胸闷, 右下肢冰冷, 足背动脉搏动减弱, 血压进行性下降, 考虑急性肺栓塞。虽经抢救, 于15:15宣布临床死亡。

2.2 治疗用药情况

入院后, 医嘱二级护理, 糖尿病饮食, 降糖药物 (胰岛素、格列吡嗪、二甲双胍等) 应用、抗感染 (阿莫西林克拉维酸钾、哌拉西林钠/他唑巴坦钠、加替沙星针) 等对症治疗。给予5%葡萄糖注射液500 ml、维生素C针2.0 g、维生素B6针200 mg/d, 静脉滴注, 2006-04-27始, 2006-05-19止。血栓形成后, 应用抗凝药物低分子肝素钙5000 u, 肌内注射, 2次/d。2006-06-17给予5%葡萄糖注射液500 ml、维生素C针3.0 g, 维生素B6针200 mg/d, 静脉滴注。

3 分析

3.1 患者住院期间下肢水肿、疼痛与DVT形成因素分析

患者入院时, 未见有下肢静脉血栓形成, 2006-05-15查房, 右侧股总静脉、股浅及股深静脉血栓形成;2006-06-18腘静脉有新血栓形成。DVT是指血液在深静脉腔内不能正常凝结, 阻塞静脉腔, 导致回流障碍, 多见于下肢, 如未及时治疗, 将造成慢性深静脉功能不全, 影响生活和工作能力, 甚至致残[3], 威胁患者健康和生命。外科、骨科术后由于创伤、应激和制动等因素导致血流缓慢、血液淤滞, 易发生DVT。DVT是一种严重的外科、骨科术后并发症, 不仅会增加患者的经济负担, 浪费大量的医疗资源, 还可能因继发肺栓塞 (PE) 而导致患者病死[5]。本例患者右腹股沟淋巴结肿大、疼痛, 压迫血管, 引起血液回流减慢淤积;包皮环切术后, 因疼痛活动减少, 不利血液回流, 容易引起DVT。

3.2 维生素C用量、适应证和禁忌证

维生素C一般治疗常用量:口服、饮食补充:50~100 mg/d;慢性透析患者100~200 mg/d;维生素C缺乏:成人100~200 mg, 3次/d., 小儿100~300 mg/d至少服用14 d;维生素C极为缺乏时, 成人100~500 mg/d, 小儿100~300 mg/d, 至少服用14 d。药物过量, 1~4 g/d可引起腹泻、皮疹、胃酸增多、胃液反流, 有时尚可见泌尿系结石。尿内草酸盐与尿酸盐排出增多, 深静脉血栓形成, 血管内溶血或凝血等, 有时可导致白细胞吞噬能力降低。用量超过5 g/d时, 可导致溶血, 重者可致命。孕妇服用大量时, 可产生婴儿坏血症[1]。

临床静脉超剂量使用维生素C的现象非常普遍, 每例患者不同程度的伴随维生素C静脉超剂量滥用现象。但对下列情况的作用未被证实:预防或治疗癌症、牙龈炎、化脓、血尿、视网膜出血、抑郁症、痤疮、不育症、衰老、动脉硬化、溃疡、结核、胶原性疾病、骨折、皮肤溃疡、枯草热药物中毒、血管栓塞、感冒等。

3.3 总结

本患者入院后即给予2.0 g/d维生素C静脉滴注。入院时医嘱要求患者糖尿病饮食, 每日饮食摄取的维生素C, 完全可以满足其生理需求。如患者病理增加需求量, 按一般治疗剂量即可。患者此病情下, 2.0 g/d静脉滴注维生素C是一种药物滥用, 且给药途径不当, 应选用口服给药。患者发生右下肢深静脉血栓形成, 除其他作用因素外, 与超剂量静脉滴注维生素C, 加速血液凝固有一定关系。2006-06-17因患者饮食差, 医嘱再次给予患者静脉滴注维生素C 3.0 g/d;2006-06-18右下肢肿胀加重, 并有疼痛, 右下肢彩超示:腘静脉有新的血栓形成。根据临床表现及用药情况, 患者再次右下肢静脉血栓形成, 与维生素C超剂量使用有直接关系。

综上, 本病例DVT形成有多种原因, 即患者右腹股沟淋巴结肿大、疼痛, 压迫血管, 引起血液回流减慢淤积;包皮环切术后, 因疼痛活动减少, 不利血液回流, 容易引起DVT。维生素C超剂量应用, 加速血液凝固。多种因素的共同作用下, 造成右下肢DVT形成。

4 讨论

由于住院患者病情大多复杂, 联合使用多种药物发生不良事件, 不能证实是维生素C超剂量使用引起, 所以未能引起临床医师重视。患者在第1次发生DVT形成时, 医师应注意血栓形成与维生素C超剂量应用存在一定关系;再次应用维生素C补充饮食不足, 给予一般治疗剂量即可满足临床需求。超剂量使用维生素C是新的血栓形成的主要因素。

通过本病例显示, 临床超剂量应用维生素C, 可引起DVT形成, 应引起临床医师及药师的重视, 改变用药习惯, 避免严重医源性、药源性不良事件的发生。为促进维生素C的合理使用, 给临床医师、药师建议需按照维生素C的说明书及药典用法用量、适应证合理应用;临床如需增加维生素C的用药剂量, 除治疗克山病、心源性休克、特发性高铁血红蛋白症、酸化尿液外, 不宜超过1.0 g/d;尽量选择口服给药途径, 减少静脉给药。

参考文献

[1]陈新谦, 金有豫.新编药物学[M].14版.北京:人民卫生出版社, 2001:477-477.

[2]莫振兆, 李果明, 吴铿, 等.大剂量维生素C治疗高脂血症对血脂水平及血液流变学的影响[J].实用医学杂志, 1997, 13 (1) :22-22.

[3]杜卫东, 沈达明, 黄春锦.大剂量维生素C治疗急性胰腺炎临床疗效观察的作用机制研究[J].临床医用杂志, 2005, 18 (2) :24-24.

[4]丁晓烨.大剂量静脉滴注维生素C引起深静脉血栓形成3例临床分析[J].中国民康医学, 2009, 21 (3) :311-311.

上一篇:“七五”普法考试题(无答案版)下一篇:电子科技职业学院