C语言上机实验 答案(4)

2019-07-27 10:17

printf(“Enter num:”);

scanf(“%d”,&num);

printf(“prime factor is:\\n”); factor(num);

}

实验七 数组程序设计(4学时)

一、实验方式:一人一机 二、实验目的:

1、掌握数组的定义、赋值和输入输出的方法。 2、学习用数组实现相关的算法(特别是排序算法)。 3、掌握C语言中字符数组和字符串处理函数的使用。 三、实验内容:

说明:前四题为必做题目,后两题为选做题目。

1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include void main( )

{ int i,n,a[10],avg;

for(i=0;i

scanf(“%d”,a[i]); for(i=0;i

{ if(i%3==0) printf(“\\n”); printf(“%d ”,a[i]);

}

for(i=0;i

printf(“\\navg=%f\\n”,avg); }

2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡排序实现)。(实验指导书P147)

3、编写程序,判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。(实验指导书P153)

4、输入一个3行3列矩阵的所有元素,然后求出主对角线元素之和。

5、给定某年某月某日,将其转换成这一年的第几天并输出。(实验指导书P152)

6、编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。(书P191)

四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include void main( )

{ int i,n=10,a[10];

float avg=0;

for(i=0;i

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

{ if(i%3==0) printf(“\\n”); printf(“%d ”,a[i]);

}

for(i=0;i

printf(“\\navg=%f\\n”,avg); }

2、#include

void sort1(int s[ ],int n) { int i,j; int t;

for(i=0;i=i+1;j--) if(s[j]

{ t=s[j];s[j]=s[j-1];s[j-1]=t; } }

void main( ) { int i,a[10];

printf(“Please input 10 numbers:\\n”);

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

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

printf(“The sorted 10 numbers:\\n”); for(i=0;i<10;i++)

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

}

3、#include #include

#define N 40 void main( )

{ char str[N],ch=‘Y’; int i;

int len;

printf(“Input a string:\\n”); scanf(“%s”,str);

len=strlen(str); for(i=0;i

if(str[i]!=str[len-1-i]) { ch=‘N’; break;

}

if(ch==‘Y’)

printf(“%s是一个回文数\\n”,str); else

printf(“%s不是一个回文数\\n”,str); }

4、#include void main( )

{ int a[3][3],sum; int i,j; sum=0;

for(i=0;i<3;i++) for(j=0;j<3;j++)

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

for(i=0;i<3;i++) sum=sum+a[i][i];

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

}

5、#include

int day_tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},

{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int day_year(int year,int month,int day) { int i,j,s=0;

if(year%4==0&&year0!=0||year@0==0) i=1; else i=0; for(j=1;j

}

void main( ) { int y,m,d;

printf(“Input year,month and day:\\n”); scanf(“%d%d%d”,&y,&m,&d);

printf(“是这年的第%d天\\n”,day_year(y,m,d));

} 6、#include #define N 10 void main( ) { int a[N]; int num,i; char ch=‘n’;

printf(“请输入一个数组:\\n”); for(i=0;i

scanf(“%d”,&a[i]); printf(“输出数组:\\n”); for(i=0;i

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

printf(“请输入一个数:\\n”); scanf(“%d”,&num); printf(“开始查找\\n”); for(i=0;i

printf(“%d在数组的第%d位\\n”,num,i+1);

}

if(ch==‘n’)

printf(“no found\\n”);

}

实验八 指针程序设计(2学时)

一、实验方式:一人一机

二、实验目的:

1、通过实验进一步掌握指针的概念,会定义和使用指针变量。 2、能正确使用指向数组和字符串的指针变量。 3、熟悉指针作为函数参数的编程特点。 三、实验内容:

说明:前两题为必做题目,后两题为选做题目。要求用指针方法实现。 1、指针基础及指针运算。(实验指导书P168)

2、输入3个整数,按从小到大的次序输出。 (书P234)

3、数据交换。实验要求:1)定义两个函数,分别为void swap1(int a,int b)和void swap2(int *a,int *b),用于交换a,b的值。2)从主函数中分别输入两个整型变量a、b。3)从主函数中分别调用上述两个交换函数,并打印输出交换后a、b的结果。(实验指导书P169)

4、编写一个程序计算字符串长度的函数,模拟C的函数库内的计算字符串长度的函数strlen( )。

四、实验步骤与过程:

五、实验调试记录:

六、参考答案:

1、#include #include #define N 5 void main( )

{ int *p,*q,a[N]; int i,tmp; p=a;

q=(int *)malloc(N*sizeof(int));

printf(“Please input the first group:”);

for(i=0;i

scanf(“%d”,p+i); /*使用指针p输入a的N个元素*/ printf(“Please input the second group:”); for(i=0;i

scanf(“%d”,&q[i]); /*使用数组输入指针q地址上的N个整数*/ for(i=0;i*(q+i))

{ tmp=*(p+i); *(p+i)=*(q+i); *(q+i)=tmp; }交换 printf(“Result:\\n”);


C语言上机实验 答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:上海市14校2017届联考高三英语试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: