C语言上机指导1

时间:2019-05-12 06:29:48下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言上机指导1》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言上机指导1》。

第一篇:C语言上机指导1

C语言程序设计上机指导十八

一、上机目的(1)、通过练习掌握指针的概念及应用;

(2)、通过练习了解指针作为函数参数的使用方法;

(3)、复习一位数组、二维数组和字符串的概念及应用;

二、上机内容及要求

首先在D盘根目录下新建一个文件夹,并用自己的10位学号姓名命名,将自己上机过程编写的C程序全部保存到该文件夹中。

本次上机任务

(1)在不改变元素排列顺序的基础上,从10个数中找出其中的最大值和最小值。(形参和实参均使用指针变量,参考【例8-17】)文件名保存为T1

(2)编写函数my_strcat(s1,s2),将s2所指字符串的内容连接到s1所指字符串的后面,并自动覆盖s1串末尾的’’,要求函数返回s1的地址值。(参考【例8-20】)文件名保存为T2

(3)通过调用随机函数给3×4的二维数组元素赋0~50的整数,并求出二维数组每行元素的平均值。用行指针输出二维数组任意一行任意一列的元素的值。然后输出所有元素的值。(参考【例8-23】)文件名保存为T3

第二篇:c语言上机实验指导

第三部分 上机实验指导

实验一 C语言的运行环境和运行过程

一、实验实训目的及要求

1、C++语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2、了解在该系统上如何编辑、编译、连接和运行一个C++程序。

3、通过运行简单的C++程序,初步了解C++源程序的特点。

二、实验内容

1、C++的启动以及工作环境介绍。

2、在Visual C++环境中运行C++语言源程序

三、实验实训指导

Visual C++提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境,对于集成开发环境的熟悉程度直接影响程序设计的效率。开发环境是程序员同Visual C++的交互界面,通过它程序员可以访问C++源代码编辑器、资源编辑器,使用内部调试器,并且可以创建工程文件。Microsoft Visual C++是多个产品的集成。Visual C++从本质上讲是一个windows应用程序。Visual C++有两个版本,对于每一个版本,都有对应的文档:

(1)专业版本,它包括一个更高级的优化编译器,更广泛的文档,并能设计基于DOS的应用程序。

(2)标准版本,其费用较低,没有那么高级的编译器,文档较少,且不能设计基于DOS的应用程序。

用鼠标单击“开始”、“程序”、“Microsoft Visual Studio 6.0”、“Microsoft Visual C++ 6.0”,然后打开一个工程文件,就会显示如图1.5.1所示的窗口,图中标出了窗口中各组成部分的名称,而且显示了已装入Graph工程文件的Visual C++ 6.0的开发环境,这是在建立了工程文件之后的结果。

菜单栏

1.File菜单 2.Edit菜单 3.View菜单 4.Insert菜单 5.Project菜单 6.Build菜单 7.Tools菜单

如下图 编辑C++源程序

[例]一个C++源程序。#include int add(int,int);void main(){

int a,b;

a=5;

b=7;

int c=add(a,b);

cout<<”a+b=”<

return x+y;}

四、实验实训思考题

1、输入并运行例题中程序,熟悉调试C程序的的方法与步骤。

2、写出一个C程序的构成。

实验二

C语言的基础知识

一、实验实训目的及要求

1、掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

2、学会使用C++的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3、进一步熟悉C++程序的编辑、编译、连接和运行的过程。

二、实验实训内容

1、输入程序,运行出结果。

mian(){

char c1 , c2;

c1=97;c2=98;

cout<

2、分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。

main(){

int i , j , m , n;i=8;j=10;

m=++i;n=j++;

cout<

三、实验实训指导

1、在此基础上

1)将第二行改为:

int c1, c2;

再使之运行。

3)再将第三行改为:

c1=300;c2=400;

再使之运行,分析其运行结果。

在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。

2、此程序主要考查自加、自减运算符以及复合运算符的用法。

四、实验实训思考题

1、“=”和“==”有什么区别?

2、“&”和“&&”、“|”和“||”有什么区别?

实验三

简单的C++程序设计

一、实验实训目的及要求

1.理解C++语言程序的顺序结构

2.掌握常用的C++语言语句,熟练应用赋值、输入、输出语句。

二、实验实训内容

1、按格式要求输入/输出数据

#include “iostream.h” main(){

int a,b;flost x,y;char c1,c2;cin>>a>>b;cin>>x>>y;cin>>c1>>&c2;

cout<

2、输入三角形三边长,求三角形面积。

#include “math.h”

main(){

float a,b,c,s,area;cin>>a>>b>>c;s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));cout<

3、已知圆半径,圆柱高,求圆周长,圆柱体积。

main(){

float r,h,l,v,pi;pi=3.1415926;cin>>r>>h;l=2*pi*r;v=pi*r*r*h;cout<

4、输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.main(){

float c,f;cin>>c;

f=5.0/9*c+32;cout<

三、实验实训指导

1、第一题运行程序,必须按如下方式在键盘上输入数据

a=3,b=7 ↙

8.5,71.82 ↙

a A ↙

2、修改输出格式控制符,观察输出结果的变化。

四、实验实训思考题

1、已知圆半径r=1.5,圆柱高h=3, 求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。

2、输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32)。

实验四

选择结构程序设计

一、实验实训目的及要求

1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);

2、学会正确使用逻辑运算符和逻辑表达式;

3、熟练掌握if语句和switch语句。

二、实验实训内容

编写程序完成下列题目:

1、已知三个数a,b,c,找出最大值放于max中。

2、输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90): A

80至90分(包括80):B

70至80分(包括70):C

60至70分(包括60):D

60分以下:E

3、有一函数:

x1x 1x10 y=2x-1 3x-11 x10 用scanf函数输入x的值(分别为x<1,1~10,10三种情况),求y值。

三、实验实训指导

1、分析:由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if——else 形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。

#include “iostream.h” main(){

int a,b,c,max;

/*定义四个整型变量*/ cin>>a>>b>>c;if(a>=b)

max=a;

/*a>=b*/ else

max=b;

/*amax)

max=c;

/*c是最大值*/ cout<<“max=”<

若输入下列数据,分析程序的执行顺序并写出运行结果

(1)a=1,b=2,c=3

(2)a=2,b=1,c=3

(3)a=3,b=2,c=1

(4)a=3,b=1,c=2

(5)a=3,b=3,c=2

(6)a=2,b=1,c=2

2、方法一:(用if嵌套`)分析:

由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。

#include“iostream.h” main(){

int score;

char grade;

cout<<“nplease input a student score:”;

cin>>score;

if(score>100||score<0)

cout<<“ninput error!”;

else

{ if(score>=90)

grade='A';

else

{ if(score>=80)

grade='B';

else

{if(score>=70)

grade='C';

else

{ if(score>=60)grade='D';else grade='E';

}

}

}

cout<<“nthe student grade:”<

}

}

输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。方法二:用switch语句

分析:

switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。

#include“iostream.h” main(){

int g,s;char ch;

cout<<“ninput a student grade:”;cin>>g;s=g/10;

if(s<0||s>10)

cout<<“ninput error!”;else

{ switch(s)

{ case 10:

case 9: ch='A';break;

case 8: ch='B';break;

case 7: ch='C';break;

case 6: ch='D';break;

default: ch='E';

}

cout<<“nthe student scort:”<

}

}

输入测试数据,同方法一一样调试程序并写出结果。

3、分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。

main(){

int x,y;

cout<<”please input x :”;cin>>x;if(x<1){

y=x;

cout<< “y=”<

else if(x<10){

y=2*x-1;

cout<<“y=”<

else

{

y=3*x-11;

cout<<“y=”<

}

四、实验实训思考题

c语言如何表示“真”与“假”?系统如何判断一个量的“真”与“假”?

实验五 循环结构程序设计

一、实验实训目的及要求

熟练掌握while、do—while和for三种循环语句的应用。

二、实验实训内容

编写程序,完成下列题目:

1、求5!

2、求和s=1!+2!+3!

3、求和s=1!+3!+5!

4、求和s= 3+33+333

5、有一数列:2/1,3/2,5/3,8/5,„求出这个数列的前10项之和。

6、打印500以内的“水仙花数”。“水仙花数”是一个三位数,其各位数立方和等于该数本身。

7、一个数如果恰好等于它的因子之和,这个数就称为完数。求100之内的所有完数。

三、实验实训指导

1、程序清单:

main(){

int n,t;n=1;t=1;

while(t<=5){

n=n*t;t=t+1;}

cout<

2、程序清单:

main(){

int n,s=0,t=1;

for(n=1;n<=3;n++){

t=t*n;s=s+t;}

cout<

3、程序清单:

main(){

int s=0,t,i,j;

for(i=1;i<=3;i++){

t=1;

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

cout<

4、程序清单:

main(){

int s=0,t=3,i;for(i=1;i<=3;i++){

s=s+t;t=10*t+3;}

cout<

5、程序清单:

main(){

int n,t,;

float a=2,b=1,s=0;for(n=1;n<=10;n++){

s=s+a/b;t=a;a=a+b;b=t;}

cout<

6、程序清单: main(){

int i,j,k,n;

for(n=100;n<=500;n++){

i=n/100;j=n/10-i*10;k=n%10;

if(n= =i*i*i+j*j*j+k*k*k)cout<

7、程序清单:

main(){

int n,s,j;

for(n=1;n<=100;n++){

s=0;

for(j=1;j

四、实验实训思考题

求Sn=a+aa+aaa+„+aa„a 之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5), n由键盘输入(分别用while和for编程)。

实验六

函数

一、实验实训目的及要求

1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。

2、了解主调函数和被调函数之间的参数传递方式。

二、实验实训内容

1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

2、写一函数,是给定的一个二位数组(4×4)转置,即行列互换。

3、写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。

4、写一函数,用“起泡法”对输入的10个字符按由小到大顺序排序。

三、实验实训指导

1、程序清单:

mian(){ int number;

cout<< “请输入一个正整数:n”;cin>>number;if(prime(number))

cout<< “n %d是素数.”<

cout<<“n %d不是素数.”<

int prime(number)/*此函数用于判别素数*/ int number;{

int flag=1,n;

for(n=2;n

判断素数的算法,我们在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来。这里我们要注意函数的

定义、声明的方法和格式。

2、程序清单:

/*矩阵的转置*/ #define N 4 int array[N][N];convert(array)int array[4][4];{

int i,j,t;

for(i=0;i

t=array[i][j];

array[i][j]=array[j][i];array[j][i]=t;} }

main(){ int i,j;

cout<< “输入数组元素:n”;for(i=0;i>array[i][j];cout<< “n数组是:n”;for(i=0;i

for(j=0;j

cout<

conver(array);

cout<< “转置数组是:n”;for(i=0;i

for(j=0;j

cout<

本例题用数组作为函数参数,大家要注意数组作为函数参数时的用法。

3、程序清单:

#include “stdio.h” hcf(u,v)int u,v;{

int a,b,t,r;if(u>v){ t=u;u=v;v=t;}

a=u;b=v;

while((r=b%a)!=0){

b=a;a=r;}

return(a);}

lcd(u,v,h)int u,v,h;{

return(u*v/h);}

main(){

int u,v,h,l;cin>>u>>v;h=hcf(u,v);

cout<<“H.C.F=%dn”<

cout<<“L.C.D=%dn”<

这是一个十分典型的算法,同学们一定要认真分析、学习。

4、程序清单:

/*起泡法排序*/ #define N 10 char str[N];main(){

int i,flag;

for(flag=1;flag = =1;){

cout<< “n输入字符串,长度为10:n”;cin>>str;

if(strlen(str)>N)

cout<<“超过长度,请重输!”;else

flag = 0;}

sort(str);

cout<< “n排序结果:”;for(i=0;i

sort(str)char str[N];{ int i,j;char t;

for(j=1;j

for(i=0;(istr[i+1]){

t=str[i];

str[i]=str[i+1];str[i+1]=t;} }

四、实验实训思考题

编写一个程序,包括主函数和如下子函数。

(1)输入10个无序的整数;

(2)用起泡方法从大到小排序;(3)要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。

分析:input函数完成10个整数的录入。sort函数完成起泡法排序,search函数完成输入数的查找。

实验七

指针

一、实验实训目的及要求

1.掌握指针变量的定义与引用。

2.熟练使用函数指针、数组指针、字符串指针编写应用程序。

二、实验实训内容

1、写一函数,求一个字符串的长度。

2、编写一个函数,将数组中n个数按反序存放。

3、设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。

三、实验实训指导

1、分析:

(1)本部分习题要求全部用指针完成;

(2)在main函数中输入字符串,并输出其长度;

(3)本题不能使用strlen()函数;

方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char*p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’ 0’,如果不为’ 0’,则进行len++的操作,直到遇到’ 0’ 为止。然后返回len值。

求字符串长度的函数strlenth(char *p)算法如下:

(1)定义int len=0;

(2)当*p!=’ 0’ 时,重复执行(2.1)(2.2),否则算法终止。

len=len+1

p++(3)return(len)

2、分析:

(1)在主函数中输入10个数,并输出排好序的数。

(2)编写函数invert()将10个数按反序存放。

3、分析:

(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。

(2)分别编写函数add()、sub()、mul()计算两个数的和、差、积。(3)编写函数process(),分别调用函数add()、sub()、mul()。

四、实验实训思考题

实现指针移动的几种方法。

实验八 一维数组

一、实验实训目的及要求

1、掌握一维数组的定义、赋值和输入输出的方法;

2、掌握字符数组的使用;

3、掌握与数组有关的算法(例如排序算法)。

二、实验实训内容

1、在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。

2、青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

3、输入一串字符,计算其中空格的个数。

三、实验实训指导

1、分析:C++中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。

方法一:起泡排序

从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比

较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

源程序如下:

#define N 10

#include“iostream.h” main(){

int a[N],i,j,temp;

cout<<“please input %d numbersn”<>a[i];

for(i=0;i

if(a[j]>a[j+1]){

temp=a[j];a[j]=a[j+1];a[j+1]=temp;} }

cout<<“the array after sort:n”;for(i=0;i

方法二:选择排序

首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的,把它和第二个数互换,使得第二小的数放在第二个位置上。以此类推,直到所有的值从小到大的顺序排列为止。

#include“iostream.h” #define N 10 main(){

int a[N],i,j,r,temp;

cout<<“please input %d numbersn”<>a[i];

for(i=0;i

for(j=i+1;j

r=j;if(r!=i){

temp=a[r];a[r]=a[i];a[i]=temp;} }

cout<<“the array after sort:n”;for(i=0;i

2、分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外 的数的平均分,其中排序部分这里用选择法实现。

main(){int i,j,min;

float temp,ave=0;float a[11];

cout<<“n输入评委所打的分数:n”;for(i=1;i<=10;i++)

cin>>a[i];for(i=1;i<=9;i++){ min=i;

for(j=i+1;j<=10;j++)if(a[min]>a[j]){ min=j;temp=a[i];a[i]=a[min];a[min]=temp;} }

for(i=2;i<=9;i++)/*注意i值的变化范围*/

ave=ave+a[i];

cout<<“选手所得最后分数:”<

3、程序清单:

#include main(){ char c[30];int i,sum=0;gets(c);

for(i=0;i

cout<<“空格数为:”<

四、实验实训思考题

已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。

实验九

二维数组

一、实验实训目的及要求

1、掌握二维数组的定义、赋值和输入输出的方法;

2、掌握字符数组的使用;

3、掌握与数组有关的算法(例如排序算法)。

二、实验实训内容

1、有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

2、打印以下图案:

* * * * * * * * * * * * * * * * * * * * * * * * *

3、求矩阵下三角形元素之和。

三、实验实训指导

1、程序清单:

#define M 3 #define N 4 main(){ int max,i,j,r,c;

static int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};max=a[0][0];for(i=0;imax){ max= a[i][j];r=i;c=j;}

cout<< “max=”<< max<<” row =”<

2、程序清单:

main(){ char a[5]={' * ' , ' * ' , ' * ' , ' * ' , ' * '};int i,j,k;

char space=' ';

for(i=0;i<5;i++)/*输出5行*/ { cout<<“n”;/* 输出每行前先换行* / cout<<“ ”;/* 每行前面留5个空格 */ for(j=1;j<=i;j++)

cout<

cout<

3、程序清单:

#define N 6 main(){ int i,j,sum=0;int a[N][N]={0};cout<<“input 5×5 data:n”;for(i=1;i>a[i][j];}

for(i=1;i

cout<

四、实验实训思考题

求一个3×3矩阵对角线元素之和。

实验十

结构体和共用体程序设计

一、实验实训目的及要求

1、掌握结构体类型和结构体变量的定义。

2、掌握结构类型变量的定义和使用;

3、掌握链表的概念,初步学会对链表进行操作;

4、掌握共用体的概念和使用。

二、实验实训内容

1、有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。

2、三个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到“ 3” 者退出圈子,找出最后流在圈子中的人原来的序号。

3、建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此

结点删去。

三、实验实训指导

用一个函数输入五个学生的数据;用一个函数求总平均分;用函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函

数中输出。

四、实验实训思考题

用链表实现排序。

第三篇:VC6.0上机指导--- C语言实验讲义

实验一

简单的C程序设计和基本数据处理

实验目的:

1.掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。

2.通过编程进一步理解和掌握运算符的确切含义和功能。3.理解和掌握运算符与运算对象的关系,优先级和结合方向。

1.通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。

2.掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。3.掌握简单的C程序的查错方法。实验内容:

一、输入程序,观察输出结果,并对语句做必要的注释。1./* e1.c */ #include void main(){

int x;

x=27

printf(“%4d,%o,%Xn”,x,x,x);}

输出结果:

解释:

2./* e2.c */ #include void main(){

char ch;

int k;

ch=’a’;k=10;

printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);

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

} 输出结果:

解释:

3./* e4.c */ #include void main(){

float x=5/2,y=5.0/2;

printf(“x=%f,y=%fn”,x,y);} 输出结果:

解释:

二、编写程序。

1. 编程(c1.c)任意输入3个整型变量x,y,z和一个实型变量avg,计算并输出3个整数的平均值avg,从键盘输入数据并验证结果。观察运行结果。源程序:

输出结果: 解释:

2. 输入两个个整数给a,b,然后交换它们的值,源程序:

输出结果:

实验报告要求

将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

实验二

选择结构程序设计与循环结构程序设计

实验目的

1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);

2、学会正确使用逻辑运算符和逻辑表达式;理解循环条件和循环体

3、熟练掌握if语句和switch语句;熟练使用while、do-while语句实现循环程序设计

4、熟练掌握switch语句中break语句的作用。实验内容 编程,输入一个整数,求它的各位数字之和及位数。例如123的各位数字之和是6,位数是3.输入输出示例:

输入一个整数:12345 12345有5位数,各位数字之和是15 提示:n表示一个整数,则n%10取个位数,n=n/10去掉个位数,组成一个新数。思考:如果要把每位数字转换为字符输出,如何编程。

3. 改错,输入2个正整数,分别将其逆向输出。输入输出示例: 123的逆向是321 321的逆向是123 void main(){

int n,m=0;

scanf(“%d”,n);

while(n>0)

{ m=m+n%10;

m=m*10;

n=n/10;}

printf(“%d的逆向是%dt”,n,m);}

4. 编程,找出200以内的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,如6=1+2+3,其中1、2、3为因子,6为因子和。输入输出示例: 1=1 6=1+2+3 28=1+2+4+7+14 main(){ int i,j n;printf();} 实验报告要求

将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

实验三

数组

实验目的

1.熟练掌握数组的定义和初始化 2.熟练掌握使用数组元素的引用 3.继续掌握排序算法 实验内容

2.编程,输入1个正整数n(1

输入输出示例: 输入整数个数:5 输入5个整数:5 2 1 10 9 2 5 9 10 提示:注意下标的变化。

思考:如果输入的是实数,要求将绝对值最小的数与第1个数交换,绝对值最大的数与最后1个数交换,然后输出交换后的n个数,如何编程。

3.编程,输入1个正整数n(1

输入输出示例: 输入整数个数:10 输入10个整数:-11 2 8 5-3-16 9 7 6 10 排序后:2-3 5 6 7 8 9 10-11-16

5.编程,输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。

输入输出示例:

输入数组行和列数n、m:2 3 输入2行3列的数组元素: 12-7 15-18 9 11 12.00-7.00 15.00-18.00 9.00 11.00 a[1][0]=-18.00 思考:

1)如果不从键盘输入数组元素,而是用初始化的方式给数组赋值,运行结果一样吗? 2)如何修改程序,求绝对值最大的元素?

3)将数组a的每一行均除以该行的主对角元素,然后最大值,试编制程序。

实验报告要求

将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

第四篇:上机实习指导

研究生《文检课》上机实习指导(1)

学号 ______________ 姓名______________

一、中国生物医学文献数据库(CBM):

安徽医科大学图书馆网址(210.45.97.5)→ 电子资源 → CBM →新版SinoMed

http://10.31.3.24(点用户登录→IP登录);;或直接输入网址(10.31.3.24)→

CBM(点用户登录→IP登录)。检索中的问题请查看“帮助”。

(一)基本检索(自由词检索、字段限制检索、逻辑运算符、通配符)

1.检索“肾衰的治疗”(提示:逻辑算符前后要空格,空格、括弧、通配符都必须在半角状态下输入。写出“肾衰”的同义词:

写出检索式及检索结果(在检索史中查看检索式):

2.在标题中检索“肾衰的治疗”文献 写出检索式及检索结果:

3.在“标题”中分别检索下列词,比较检索结果。

幽门螺旋菌 超广谱β内酰胺酶 幽门%菌 超广谱%酰%酶

4.检索“安医大胡志教授近五年来所发表的论文”

提示:①检索入口先选“作者”,精确检索,输入作者名 → 再选“地址”,输入安徽医科大学,→ 选“二次检索” 同时限定年代范围2006-2010,或

②分别进行字段检索后,点击检索史,再进行逻辑运算。检索式:

5.检索“安医大胡志教授近五年来作为第一作者所发表的论文”

提示:从标题栏“作者检索”入口;或者用下拉菜单“第一作者”字段名 检索式:

6.检索“徐叔云《药理实验方法学》被引用 情况(提示:限定“参考文献”字段)检索式及检索结果:

7.检索“安徽医科大学作者发表的国家资助课题”的文献 检索式:

8.检索“糖尿病治疗的安徽省资助课题”的文献 检索式:

9.改变显示格式(提示:系统设3种显示格式--题录格式、文摘格式、详细格式,默认为题录格式)

a:写出“题录格式”包含的字段名及其缩写(参照教材P25,36):

b:写出“文摘格式”包含的字段名(参照教材P25,36):

10.检索结果输出:

以文摘格式、按期刊排序方式保存该题检索结果,并按期刊进行结果分析。分别用“胰岛and移植”和“胰岛细胞移植”检索相关文献,比较检索结 果查准率和查全率

胰岛and移植

命中文献数

胰岛细胞移植

命中文献数

(二)主题检索

1. 检索“肾衰的治疗”的有关文献

写出“肾衰”的中英文主题词/副主题词及中图分类号:

中文主题词: 英文主题词: 中图分类号: 写出主题检索式:

2. 检索“阿司匹林诱发哮喘”的有关文献

中文主题词: 英文主题词: 中图分类号:

中文主题词: 英文主题词: 中图分类号:

检索式:

(三)期刊检索

检索有关“药理的中文期刊共有多少种”?写出其中一种期刊的主办编辑单位、CN和ISSN

(四)分类检索

查找“肾功能衰竭的治疗”文献 检索式:

二、中文全文数据库:网址:图书馆(210.45.97.5)→ 电子资源

(一)中国知网 1.“中国期刊全文数据库”

(1)在篇名中检索“腹腔镜治疗卵巢疾病”的文献。浏览其中一篇文献参考文献、引证文献、共引文献、同被引文献等。

(2)查看检索历史,写出检索式:

(3)检索《中国药理学通报》2004年第01期的文献

(4)期刊导航:眼科期刊共收录多少种();本专业核心期刊共收录多少种()。

2.中国博士学位论文全文数据库中国优秀硕士学位论文全文数据库(1)检索“安徽医科大学发表的有关褪黑素”的博士论文 检索式:

(2)安徽医科大学魏伟教授为导师的优秀硕士论文 检索式:

(3)检索有关“糖尿病与基因”的学位论文(提示:可用跨库检索)3.查阅 中国年鉴、工具书和翻译助手 4.“中国引文数据库”检索(www.xiexiebang.com/或利用google搜索“The Cochrane Collaboration”)

1.查询与本专业(或本学科)有关的系统综述专业组名称;

提示:

下拉菜单可浏览系统综述专业组或点击

→。

2.检索癌症(cancer,tumor、neoplasms)免疫治疗(immunotherapy)的相关文献,写出检索式和检索结果;

3.利用“Pubmed”数据库中的“Systematic Review”栏目检索高血压治疗的系统综述文献,写出检索式、查看详细检索式和检索结果。

提示:点击PubMed Tools

栏下 →在输入框中输入检索式hypertension AND(treatment OR therapy)→ 点击“go”。

检索结果: 检索式:

查看详细检索式:

二、生物信息学数据库检索:

1.检索人脑源性神经营养因子(brain-derived neurotrophic factor 简称BDNF)cDNA(数据库中缩写形式为cds)全长序列,并应用NCBI的BLAST程序进行同源性类比。

提示:选择 Nucleotide数据库,在检索框内输入“bdnf Complete cds“点击的标题→→点击

→点击

→点击命中文献

获得结果:Blast检索结果彩色图谱显示,Blast检索结果类似性积分显示,Blast检索结果序列对排显示。

2.利用OMIM检索Vitiligo(白癜风)的易感基因定位于4号染色体长臂上的文献。要求写出基因图谱位点(Gene map locus)。

提示:选择OMIM数据库→点击Limits→在Chromosome(s)选项中勾选“4”→输入框中输词“Vitiligo” → 点击Go,选择条目点击可得到完整的报告。

三、免费医学资源全文检索:

1.Free medical journals(http://freemedicaljournals.com)查找发表在“Journal of Biological chemistry”2004 V.279(1)223-230的全文。

2.Highwire(http://highwire.stanford.edu)查找发表在“Hypertension”2004 V.43(5)983-987全文。

3.BioMed Central(BMC)(http://www.xiexiebang.com/ 查询与本专业或本学科相关的期刊,写出三种。

5.PubMed Central(PMC)检索,写出Respiratory Research 全文收录起止年限,并浏览该刊 2001年第二卷第4期

提示:点击最底栏

→PubMed Central→点击→直接输入刊名。

→选择

第五篇:C语言上机练习题

上机练习题

1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。

/* Note:Your choice is C IDE */ #include “stdio.h” main(){ long n;int ww,qw,bw,sw,gw;printf(“Please input:n”);scanf(“%ld”,&n);while(n<=0||n>99999){

printf(“nThe number is 2 little or too large.Retry please!n”);

scanf(“%ld”,&n);} if(n>=10000&&n<=99999){

ww=n/10000;qw=n/1000%10;bw=n/100%10;sw=n/10%10;gw=n%10;printf(“The old number is:%ldn”,n);printf(“The new number is:%d%d%d%d%dn”,gw,sw,bw,qw,ww);} else if(n>=1000&&n<=9999){

qw=n/1000;

bw=n/100%10;

sw=n/10%10;

gw=n%10;

printf(“The old number is:%ldn”,n);printf(“The new number is:%d%d%d%dn”,gw,sw,bw,qw);

} else if(n>=100&&n<=999){

bw=n/100;

sw=n/10%10;

gw=n%10;

printf(“The old number is:%ldn”,n);printf(“The new number is:%d%d%dn”,gw,sw,bw);}

else if(n>=10&&n<=99)

{

sw=n/10;

gw=n%10;

printf(“The old number is:%ldn”,n);

printf(“The new number is:%d%dn”,gw,sw);

}

else printf(“The old number equals the new number:%ld”,n);

}

2.计算1+2+3„+n的值,n是从键

盘输入的自然数。

/* Note:Your choice is C IDE */ #include “stdio.h” main(){

int n,i;long sum=0;

printf(“1+2+3+....+nn”);printf(“Please input n:n”);

scanf(“%d”,&n);for(i=1;i<=n;i++){

sum+=i;

}

printf(“sum=%ld”,sum);}

3.从终端(键盘)读入20个数据

到数组中,统计其中正数的个数,并计算这些正数之和。、/* Note:Your choice is C IDE */ #include “stdio.h” #define N 20 main(){

int a[N],i,sum=0,count=0;printf(“Please input numbers :n”);

for(i=0;i

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

if(a[i]>0)

{ sum+=a[i];

count++;

}

} printf(“count=%d,sum=%d”,count,sum);} 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。

/* Note:Your choice is C IDE */ #include “stdio.h” #define N 5 main(){ int a[N],b[N],i;printf(“Please input numbers:n”);for(i=0;i

b[N-i-1]=a[i];} printf(“nThe old numbers are:n”);for(i=0;i

printf(“%-4d”,a[i]);printf(“nThe new numbers are:n”);for(i=0;i

printf(“%-4d”,b[i]);} 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。/* Note:Your choice is C IDE */ #include “stdio.h” main(){ int i,j,k,n;for(i=1;i<=10;i++)

for(j=1;j<=25;j++)

for(k=1;k<=50;k++)

for(n=1;n<=100;n++)

if(i*50+j*20+k*10+n*5==500)

printf(“num50=%d,num20=%d,num10=%d,num5=%dn”,i,j,k,n);}

6.求n以内(不包括n)同时能被

3和7整除的所有自然数之和的平方根s,n从键盘输入。例如若n为1000时,函数值应为:s=153.909064。

/* Note:Your choice is C IDE */ #include “stdio.h” #include “math.h” main()

{ int n,s,i;float sum=0;printf(“Please input n:n”);

scanf(“%d”,&n);while(n<=0){

printf(“nError input.Retry please:n”);

scanf(“%d”,&n);}

for(i=1;i

if(i%3==0&&i%7==0)

sum+=i;printf(“The number is:%4.2f”,sqrt(sum));}

7.一辆卡车违反交通规则,撞人后

逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。/* Note:Your choice is C IDE */ #include “stdio.h” #include “math.h” main(){

int i,qw,bw,sw,gw;

for(i=1122;i<=9988;i++){

if(sqrt(i)!=(int)sqrt(i))

continue;

qw=i/1000;

bw=i/100%10;

sw=i/10%10;

gw=i%10;

if(qw==bw&&sw==gw)

{

printf(“nThe number is:%dn”,i);

break;

}

} 8.输入1~10之间的一个数字,输出它对应的英文单词。

/* Note:Your choice is C IDE */ #include “stdio.h” main(){ int n;printf(“Please input n:n”);scanf(“%d”,&n);while(n<1||n>10){

printf(“Error input!Retry please:n”);

scanf(“%d”,&n);} switch(n){

case 1:printf(“One!”);break;

case 2:printf(“Two!”);break;

case 3:printf(“Three!”);break;

case 4:printf(“Four!”);break;

case 5:printf(“Five!”);break;

case 6:printf(“Six!”);break;

case 7:printf(“Seven!”);break;

case 8:printf(“Eight!”);break;

case 9:printf(“Nine!”);break;

case 10:printf(“Ten!”);break;} } 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?

/* Note:Your choice is C IDE */ #include “stdio.h” main(){

int i,count=0;

for(i=106;i<596;i=i+10){

if(i%3==0&&i%5!=0)

{

printf(“%-4d”,i);

count++;

} }

printf(“count=%-4d”,count);}

10.用自然语言描述程序逻辑如下,试写程序。

① 设置环境;

② 定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;

③ i=1;

④ 如果i≤100,则转⑤,否则转⑧;

⑤ 令s=0,求前i个自然数之和,并放于变量s之中;

⑥ sum=sum+s; ⑦ i增加1,转④; ⑧ 输出和sum,结束。

/* Note:Your choice is C IDE */

#include “stdio.h” main(){

int i,j;

long s=0,sum=0;

printf(“1+1+2+1+2+3+1+2+3+4+....1+2+3+..+nn”);i=1;

while(i<=3){

s+=i;sum+=s;i++;}

printf(“sum=%ld”,sum);} 11.用自然语言描述的程序逻辑为:

① 设置环境;

② 定义变量i、flag和password,并令flag=0,i=0;

③ 用户回答口令,将其赋于password变量;

④ 口令正确?如果是,则flag=1,转⑥。否则转⑤;

⑤ 回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥;

⑥ 根据flag之值输出相应信息。

/* Note:Your choice is C IDE */ #include “stdio.h” #include “string.h”

#define N 6 main(){ int i=0,flag=0;char password[N];printf(“The password is:123456n”);while(i<3){ gets(password);

if(strlen(password)!=6)

{ printf(“The string length is wrong!Retry please!n”);

i++;

continue;

}

if(strcmp(“123456”,password)==0)

{flag=1;break;}

else { printf(“Wrong input!Retry please!n”);i++;} } if(flag==1)printf(“Right password!n”);else printf(“Wrong password!n”);}

12.用自然语言描述的程序逻辑如

下:

① 设置环境;

② 定义变量digit、x、y分别表示原始数、原始数的个位数和逆数;

③ 输入原始正整数x;

④ 从x中分解出个位数字digit;

⑤ 合并个位digit至逆数y中;

⑥ 原始数x缩小10倍:x=x/10;

⑦ 如果x非零,则转④; ⑦ 输出逆数y,结束

/* Note:Your choice is C IDE */

#include “stdio.h” main(){

long digit,x,y;/*个位数、原始数、逆数*/

printf(“Please input the old number:n”);scanf(“%ld”,&x);digit=x%10;y=digit;while(x!=0){

x=x/10;

digit=x%10;

y=y*10+digit;}

printf(“x=%ld,y=%ld”,x,y/10);}

13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。/* Note:Your choice is C IDE */ #include “stdio.h” main(){

float a,b,c,flag;/*flag=0不能,flag=1等边,flag=2等腰,flag=3任意*/

printf(“Please input angles:n”);

scanf(“%f,%f,%f”,&a,&b,&c);if(a+b<=c||a+c<=b||b+c<=a)flag=0;else if(a==b&&b==c)flag=1;else if(a==b||b==c||c==a)

flag=2;

else flag=3;if(flag==0)printf(“nCan not!n”);if(flag==1)printf(“nDeng Bian.n”);if(flag==2)printf(“nDeng Yao.n”);if(flag==3)printf(“nPu tong.n”);} 14.输入10个数,分别统计其中正数、负数、零的个数。#include “stdio.h” #define N 10 main(){ int a[N];int i,count1=0,count2=0,count3=0;/*count1记录正数个数,count2记录负数个数,count3记录0的个数*/ printf(“Please input numbers:n”);for(i=0;i

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

if(a[i]>0)count1++;

if(a[i]<0)count2++;

if(a[i]==0)count3++;} printf(“count1=%-4d,count2=%-4d,count3=%-4d”,count1,count2,count3);} 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)/* Note:Your choice is C IDE */ #include “stdio.h” #define N 100

#include #include main(){

int a[N],i;printf(“Please input numbers:n”);randomize();

for(i=0;i

{ a[i]=random(900)+100;printf(“%-4d”,a[i]);}

printf(“n--------------------n”);

printf(“n3,5,7:n”);for(i=0;i

if(a[i]%3==0&&a[i]%5==0&&a[i]%7==0)

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

16.用for编程找出100~200中的完

全平方数。

#include “stdio.h” #include “math.h” main(){

int i;

for(i=100;i<=200;i++)if(sqrt(i)==i%100)

printf(“%-4d”,i);}

17.从终端输入三个正实数,判断这

三个数能否构成直角三角形。#include “stdio.h” main(){

float a,b,c,flag;/*flag=0不能,flag=1能*/ printf(“Please input angles:n”);

scanf(“%f,%f,%f”,&a,&b,&c);while(a<=0||b<=0||c<=0){ printf(“Wrong input!Retry please:n”);

scanf(“%d,%d,%d”,&a,&b,&c);} if(a+b<=c||b+c<=a||a+c<=b)flag=0;else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)

flag=1;

else flag=0;if(flag==1)printf(“nCan!”);else printf(“nCan not!”);} 18.输入一行字符,统计其中有多少个字母(包括大写字母和小写字母)。

/* Note:Your choice is C IDE */ #include “stdio.h” #define N 10 #include “stdlib.h” #include “ctype.h” #include “string.h” main(){ char c[N];int i,count=0;gets(c);i=0;while(i!=strlen(c)){

if(isupper(c[i])||islower(c[i]))

count++;i++;}

printf(“count=%-4d”,count);getch();} 19.输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,”123456789”不是。

/* Note:Your choice is C IDE */ #include “stdio.h” #include “string.h” #include “ctype.h” #include “stdlib.h” #define N 10 main(){ char a[N],b[N],i;

printf(“Please input the string:n”);gets(a);

if(strlen(a)>N)

{

printf(“Wrong input!Retry please!n”);

gets(a);

}

strcpy(b,a);strrev(a);

if(strcmp(a,b)==0)

printf(“nYes!n”);else printf(“nNo!n”);}

20.随机产生N个大写字母输出,然

后统计其中共有多少个元音字符。(设N为200)

/* Note:Your choice is C IDE */

#include “stdio.h” #include #include #define N 200 main(){

int c[N],i,count=0;randomize();for(i=0;i

c[i]=random(27)+65;printf(“ %c”,c[i]);

if(c[i]=='A'||c[i]=='E'||c[i]=='I'||c[i]=='O'||c[i]=='U')count++;}

printf(“n----------------------n”);

printf(“ncount=%-4d”,count);}

找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。

#include “stdio.h” int data(int x);main(){ int i,flag=0;/*1是,0否*/ for(i=101;i<=999;i++){ flag=data(i);if(flag==1)printf(“%-4d”,i);} }

int data(int x){ int i;for(i=2;i

printf(“n----------------n”);

for(i=1;i<=n;i++){

satr(m);

printf(“n”);} } void satr(int m){ int i;for(i=1;i<=m;i++)

printf(“#”);} 22.若ax2+bx+c=0有实根,则求之。#include “stdio.h”

#include “math.h” main(){

int a,b,c;

float derta,x1,x2;printf(“Please input a,b,c:n”);

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

scanf(“%d”,&b);printf(“c=”);scanf(“%d”,&c);

derta=b*b-4*a*c;if(derta<0)

printf(“NO!n”);if(derta==0)

{ printf(“One!n”);

x1=-b/(2*a);

x2=x1;

printf(“x=%-4.2f”,x1);

}

if(derta>0)

{ printf(“Two!n”);

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

x2=(-b-sqrt(derta))/(2*a);printf(“x1=%-4.2f,x2=%-4.2f”,x1,x2);

} }

23.从键盘输入两个字串,判断它们

是否相同。

#include “stdio.h” #include “string.h” #define N 20 main(){

char c1[N],c2[N];

printf(“Please input two string below:n”);gets(c1);gets(c2);

printf(“--------------------n”);

printf(“The answer is:”);if(strcmp(c1,c2)==0)

printf(“Equal!n”);

else printf(“Not equal!n”);} 24.从键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。

#define N 20 #include “stdio.h” #include “string.h”

main(){ char c1[N],c2[N];printf(“Please input two string below:n”);gets(c1);gets(c2);printf(“--------------------n”);printf(“The answer is:”);if(strlen(c1)==strlen(c2)){ puts(c1);

puts(c2);

printf(“The length is:%dn”,strlen(c1));} if(strlen(c1)

printf(“The length is:%dn”,strlen(c1));}

if(strlen(c1)>strlen(c2)){

puts(c2);

printf(“The length is:%dn”,strlen(c2));} 25.从键盘输入长度不等的两个字串,将短串连接于长串之后输出。

#include “stdio.h” #include “string.h” #define N 20 main(){char c1[N],c2[N];printf(“Please input two string below:n”);gets(c1);gets(c2);while(strlen(c1)==strlen(c2)){ printf(“Wrong input!Retry please:n”);gets(c1);gets(c2);}

printf(“--------------------n”);

printf(“The answer is:”);if(strlen(c1)

if(strlen(c1)>strlen(c2))puts(strcat(c1,c2));}

26.从键盘输入长度不等的两个字

串,将长串连接于短串之后输出 #include “stdio.h” #include “string.h” #define N 20 main()

{ char c1[N],c2[N];

printf(“Please input two string below:n”);gets(c1);gets(c2);

while(strlen(c1)==strlen(c2)){

printf(“Wrong input!Retry please:n”);

gets(c1);

gets(c2);}

printf(“--------------------n”);

printf(“The answer is:”);

if(strlen(c1)

puts(strcat(c1,c2));

if(strlen(c1)>strlen(c2))

puts(strcat(c2,c1));}

27.随机产生N个两位自然数,降序

排列后输出。(设N为20)#include “stdio.h” #include “stdlib.h” #include “time.h” #define N 20 main()

{ int a[N],i,j,temp;randomize();

for(i=0;i

a[i]=random(900)+100;for(i=0;i

for(j=i+1;j

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

{ temp=a[i];

a[i]=a[j];

a[j]=temp;

} for(i=0;i

printf(“%-4d”,a[i]);} 28.从键盘输入两个字串,输出其中较长的那个字串,并输出它的长度。

#define N 20 #include “stdio.h” #include “string.h” main(){ char c1[N],c2[N];printf(“Please input two string below:n”);gets(c1);gets(c2);printf(“--------------------n”);printf(“The answer is:”);if(strlen(c1)==strlen(c2)){ puts(c1);

puts(c2);

printf(“The length is:%dn”,strlen(c1));} if(strlen(c2)

printf(“The length is:%dn”,strlen(c1));}

if(strlen(c2)>strlen(c1)){

puts(c2);

printf(“The length is:%dn”,strlen(c2));} } 29.从键盘输入10个战士的身高,输出平均身高,并找出哪些身高低于平均身高。#include “stdio.h” #define N 11 main()

{ float a[N],sum=0;int i;

printf(“Please input heigths:n”);

for(i=0;i

scanf(“%f”,&a[i]);

sum+=a[i];}

a[N-1]=sum/(N-1);printf(“The average is:%-6.2fn”,a[N-1]);

printf(“---------------------n”);

printf(“The answer are:n”);

for(i=0;i

printf(“%-8.2f”,a[i]);}

30.从键盘输入10个战士的身高,输出平均身高,并找出哪些身高高于平均身高。#include “stdio.h” #define N 11 main()

{ float a[N],sum=0;int i;

printf(“Please input heigths:n”);

for(i=0;i

scanf(“%f”,&a[i]);

sum+=a[i];}

a[N-1]=sum/(N-1);printf(“The average is:%-6.2fn”,a[N-1]);

printf(“---------------------n”);

printf(“The answer are:n”);

for(i=0;ia[N-1])

printf(“%-8.2f”,a[i]);} 31.从键盘输入10个战士的身高,输出最高、最低的身高 #include “stdio.h” #define N 10 main(){ float a[N],min=99999,max=-99999;int i;printf(“Please input heigths:n”);for(i=0;i

scanf(“%f”,&a[i]);

printf(“---------------------n”);for(i=0;imax)

max=a[i];if(a[i]

min=a[i];} printf(“max=%-6.2f,min=%-6.2f”,max,min);}。

32.“百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何? #include “stdio.h” main(){ int jw,jm,jc;/*公鸡最多100/3=33只,母鸡最多100/2=50只,小鸡最多300只*/ for(jw=1;jw<=33;jw++)

for(jm=1;jm<=50;jm++)

for(jc=1;jc<=300;jc++)if(jw*3+jm*2+jc/3==100&&jw+jm+jc==100)printf(“JW=%d,JM=%d,JC=%dn”,jw,jm,jc);} 33.有三个小孩,一个比一个大2岁,已知其年龄之和为39,问这三个小孩各几岁? #include “stdio.h” main(){ int a,b,c;

for(a=1;a<=20;a++)

for(b=1;b<=20;b++)

for(c=1;c<=20;c++)

if(a+2==b&&b+2==c&&a+b+c==39)

printf(“The ages are:%-4d%-4d%-4d”,a,b,c);}

34.键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。#include “stdio.h” float l,w,h,v,s;

void val(float l,float w,float h);main(){

printf(“Please input l&w&h:n”);

printf(“l=”);scanf(“%f”,&l);printf(“w=”);scanf(“%f”,&w);printf(“h=”);scanf(“%f”,&h);val(l,w,h);}

void val(float l,float w,float h)

{ v=l*w*h;

s=2*l*w+2*w*h+2*h*l;

printf(“v=%-6.2f,s=%-6.2f”,v,s);}

35.计算:1/2+1/4+„„+1/n,设n

是由键盘输入的正偶数。#include “stdio.h” main()

{ int n,i;

float sum=0;printf(“Please input n:n”);

scanf(“%d”,&n);while(n%2!=0)

{ printf(“Wrong input!Try again:n”);

scanf(“%d”,&n);} for(i=2;i<=n;i=i+2)sum+=1.0/i;printf(“sum=%-6.2f”,sum);

} 36.计算:1/1+1/3+„„+1/n,设n是由键盘输入的正奇数。#include “stdio.h” main(){ int n,i;float sum=0;printf(“Please input n:n”);scanf(“%d”,&n);while(n%2==0){ printf(“Wrong input!Try again:n”);

scanf(“%d”,&n);} for(i=1;i<=n;i=i+2)sum+=1.0/i;printf(“sum=%-6.2f”,sum);} 37.计算:1/2-2/3+3/4-4/5„„,前100项。

#include “stdio.h” main(){ int i;float sum=0,d=1;for(i=1;i<100;i++){ sum+=i*d/(i+1);

d=-d;} printf(“sum=%-6.2f”,sum);} 38.从终端输入3个数a、b、c,按从大到小的顺序输出 #include “stdio.h” main(){ int i,j,k,l;/*i,j,k,l分别代表甲乙丙丁。1偷0没偷*/ for(i=0;i<=1;i++)

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

for(k=0;k<=1;k++)

for(l=0;l<=1;l++)if(j+l==1&&j+k==1&&i+j==1&&l==0)}

39.公安人员审问四名窃贼嫌疑犯。

已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说“乙没有偷,是丁偷的”,乙说“我没有偷,是丙偷的”,丙说“甲没有偷,是乙偷的”,丁说“我没有偷”。请根据这四人的答话判断谁是盗窃者。40.求

s=a+aa+aaa+aaaa+......+aa...a的值,其中a是1~9之间的一个数字,表达式项数从键盘输入(设不超过10项)。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

41.设N是一个四位数,它的9倍恰

好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。

42.爱因斯坦出了一道这样的数学

题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯至少有多少阶?

43.输入任意一行字符,降序排列

之。

44.输入一行字符串,按如下规则加

密:如果是英文字母则大写变小写、小写变大写,对非英文字符则保持不变。试写加密程序。45.输入一行小写英文字母,按如下

规则加密:a→c、b→d、„、x→z、y→a、z→b,试写加密程序。

46.输入一行英文,已知各单词之间

用1个空格相隔(设第一个单词前没有空格),统计这行英文有多少个单词。

47.求1+12+123+„„前n项之和,其中n是从键盘输入的一个数字(1~9)。

48.小学生智商测试。让电脑随机出

十道100以内整数的加法题(10分/题),小学生从键盘回答答案,统计小学生最后得分。49.斐氏数列是公元13世纪数学家斐波拉契发明的。即:1,2,3,5,8,13,21,34,55,89,„„,输出其前15项。

下载C语言上机指导1word格式文档
下载C语言上机指导1.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


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

相关范文推荐

    c语言上机实验报告

    C语言上机实验报告 2160500146 计算机66马俊松 在本学期,共进行了大约五次上机,完成了数十道编程题,现将在完成作业过程中所遇到的问题以及解决过程进行如下几点总结,并提出几点......

    C语言上机实习报告

    一、实验目的 1.能够描述VC++6.0开发平台的使用过程,学会运行一个C程序的基本步骤,包括编辑、编译、链接和运行。 2.能够使用算术表达式和赋值表达式书写正确的语句。 3.能够使用......

    c语言上机实习报告

    苏州科技大学上机实习报告 程序设计语言(C语言) 实验一: Visual C++实验环境 一、实验任务 实验一 二、实验目的 1. 了解C程序结构,熟悉VC++ 6.0开发环境。 2. 熟悉在VC++ 6.......

    大一C语言上机实验报告

    C语言程序设计实验报告 姓名: 班级: 学号:实验内容: 编写一个程序,从键盘输入任意一个五位数,把这个数值分解为单个数字,然后打印出每一个数字(每个数字之间用三个空格分开)。例如用......

    C语言上机实验心得

    C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一......

    C 语言上机总结报告[五篇材料]

    C语言 上机实验报告 经过了九周的上机练习,我们算是完成了阶段性的胜利,从书本上枯燥的知识,通过上机练习把他们学以致用,融会贯通;不得不说,上机对于大一不允许带电脑,算得上是......

    C语言上机实训

    C语言上机实训 试题2 所属语言:C语言 试卷方案:C语言上机实训 试卷总分:100分 共有题型:3种一、程序填空 共1题 (共计30分) 第1题 (30.0分)题号:470 /*------------------------ 【......

    VF上机试题 SQL语言

    VFP关系数据库标准语言SQL 【机试】 [1] 在练习文件夹中有一个数据库sdb,其中有数据库表student2、sc和course2。3个表结构如下所示: STUDENT2(学号,姓名,年龄,性别,院系编号) SC(学......