大学一年级下学期C语言程序设计实验报告答案 完整版 下载本文

int a[10]={0};

int nbits=DtoH(x,a); int i;

printf(\转换成十六进制后的数为\\n\ for(i=nbits-1;i>=0;i--){ if(a[i]>9)

printf(\ else

printf(\ }

printf(\}

(4)定义函数void Merge(int a[], int n, int b[], int m),参数a、b为一维数组,数组中的数据为升序排列,n和m分别为它们的元素个数。函数的功能为:将数组a和b合并为一个数组,合并后的结果存放于数组a中,要求合并后的数组a仍旧为升序排列。请编程实现,并编写main函数对其测试。

#include

void Merge(int a[],int n,int b[],int m) {

int *p,*q,i,j,k; p=a; q=b;

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

if(i>0&&*(p+i)<*(p+i-1)) {

*(p+i)=*q; q++; } }

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

for(j=i+1;j<10;j++) if(*(p+i)>*(p+j)) {

k=*(p+i); *(p+i)=*(p+j); *(p+j)=k; }

}

main() {

int a[10]={2,3,5,7,9},b[5]={1,4,6,8,10}; int i;

Merge(a,10,b,5); for(i=0;i<10;i++)

printf(\}

实验七 字符串与指针 实验

( 验证性 综合性 实验 2学时)

1、目的要求:

(1)掌握用指针进行函数参数传递的方法。

(2)掌握指针数组和二维数组间的关系以及进行参数传递时的写法。 (3)编写实验报告。

2、实验内容(参考实验指导书): (1)编写一个书名排序程序,输入10个书名存入一个二维数组,用函数void sortstring( char *name[] , int n)实现它们的字典顺序。

#include #include

void sortstring(char *name[],int n) {

char *p; int i,j;

for(i=0;i

if(strcmp(name[i],name[j])>0) {

p=name[i];

name[i]=name[j]; name[j]=p; } } } main() {

char *name[]={\ \ int a;

sortstring(name,10); for(a=0;a<10;a++)

printf(\}

(2)编写函数void search( char *s1, char *s2, char *s3)。函数search()从已知的两个字符串s1与s2中找出它们都包含的最长的单词放入字符串s3,约定字符串中只有小写字母和空格字符,单词用1个或1个以上空格分隔。

#include #include #include

void search(char *s1, char *s2, char *s3) {

char *p;

int word,i,m,n; char a[20]; p=s1; s3[0]='\\0';

while (*p!='\\0') {

word=0; for (i=0;p[i]!='\\0';i++) {

if (p[i]!=' '&&word==0) {

word=1; m=i; }

else if (p[i]==' '&&word==1) {

n=i; break; } }

if (p[i]=='\\0'&&word==1)

n=i;

if (word==1) {

strncpy(a,p+m,n-m); a[n-m]='\\0'; char *pfind;

if ( (pfind=strstr(s2,a))!=NULL ) {

if ( *(pfind+strlen(a))==' ' || *(pfind+strlen(a))=='\\0' ) if (strlen(a)>strlen(s3)) strcpy(s3,a); }

p=p+n; }

else break; } }

main() {

char *s1=\char *s2=\ char s3[20]; search(s1,s2,s3); printf(\}

(3)编写一个主函数,测试上述两个函数的正确性。 (4)输入一个字符串,内有数字和非数字字符,例如: A123cdf 456.78cpc876.9er 849.1 将其中连续的数字作为一个实数,依次存放到一数组a中。例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数。

#include

void f(char *sp,float b[]) {

char *p; float value;

int power,i=0,j=0; p=sp; while(*p)