云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C程序设计实验指导2013上 - 图文

C程序设计实验指导2013上 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/27 15:50:18

gets(s1); gets(s2); check(s1,s2,p); return 0; }

void check(char *a,char *b,int(*cmp)( char *, char *)) { printf(\ if(!(*cmp)(a,b)) printf(\ else printf(\

5.将多个字符串按字母顺序输出。 #include #include

void sort(char *str[] , int n) {

char *temp; int i, j , k;

for (i=0;i

for (j=i+1;j

if (strcmp(str[k],str[j])>0) k=j; if (k!= i)

{ temp=str[i]; str[i]=str[k];

str[k]=temp; } } } void main()

{ char *string[4]={\ /* 指针数组string包含4个字符串的首地址 */ int i , n=4; sort(string , n); for (i=0;i

printf(\ /*string[i]表示指针数组中第i个字符串的首地址*/ }

五、上机作业:

1. 指针数组的含义是什么?

2.返回值为指针的函数与函数指针区别在哪里?

3 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 // 1/1+1/3+...+1/n(利用指针函数)

4. 编写一个程序,采用一个函数实现字符串的前后连接和后前连接.

5. 编写一个程序,采用一个返回指针的函数实现字符串的前后连接和后前连接. 6.编写一个程序,求给定3个字符串的最长公共子串.

7.编写一个函数,函数接受一个整型参数N,则返回一个包含N个字符的字符串,字符串中依次存放字符?A?、?B?、?C?…

实验十三:指针(四) 一、内容及目标:

? ? ? ? ?

理解指向二维数组的指针变量的定义和使用

掌握指向二维数组中一维数组的指针变量的定义和使用 理解指向数组的指针变量和指针数组的区别 掌握指向指针的指针变量的定义和引用

掌握处理命令行参数的main()函数的定义,理解main(int argc, char * argv[])中argc、argv的含义

二、实验重点

? 指向二维数组中一维数组的指针变量的定义和使用 ? 指向数组的指针变量和指针数组的区别

37

三、实验难点:

指向二维数组中一维数组的指针变量的使用 指向数组的指针变量和指针数组的区别 指向指针的指针变量的应用

四、上机操作:

1. 写出如下程序的输出结果:

#include void main() {

int nArray[3][10], *p, **q, (*pp)[5]=NULL; p=nArray[0]; q=nArray;

p++; q++; pp++;;

printf(“q-p=%d\\npp=%d”,q-p,pp); }

2.上机实验以下程序的输出结果:

#include void main()

{ int *p,**q; int x=8,y=5; p=&x; q=&p; printf(“q=%d”,**q); p=&y;

printf(“q=%d”,**q); }

3.上机实验以下程序的输出结果:

#include void main()

{ int Array[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[4],*q; p=&(Array+2); q=&p[0][2];

printf(“p=%d,q=%d\\n”,**--p,--*q); } 4. 考虑以下程序的输出结果 #include void main()

{ static int a[]={1,3,5,7}; int *p[3]={a+2,a+1,a}; int **q=p; printf(“%d\\n”,*(p[0]+1)+**(q+2)); } 5.指向指针的指针 #include void main()

{ char *s[]={\ char **q; int k; q=s; for(k=0;k<5;k++) { printf(\ } } 6.观察如下程序的输出结果 #include

void main(int argc,char *argv[]) { while(argc>1)

{ ++argv;

38

printf(“%s \\n”,*argv); --argc;} }

如果从键盘输入的命令行为:

程序文件名 computer C_Language 7 编写一个书名查询函数

void search(int *bk_list[],char *bk_name,int n) #include #include

int string_in(char *str1,char *str2) {

int m=0; char *p,*q;

for (;*str1!='\\0';str1++) if (*str1==*str2)

{ for(p=str1,q=str2;*q!='\\0';p++,q++) if (*p!=*q) break; if (*q=='\\0')

{m=1;break;} } return m; }

void search(char *bk_list[],char *bk_name,int n) { int i;

for(i=0;i

if (string_in(bk_list[i],bk_name)) printf(\ void main() { char *books[6]={\边用边学C语言\计算机文化基础\高等数学\程序设计\基础教程\精讲多练C语言\ char name[30]; gets(name);

search(books,name,6); }

六、上机作业:

1.请写出指针数组与数组指针的关系。 2.列出指针与二维数组之间的等价关系。

3.使用指针数组存放三个字符串,要求按字母顺序输出。 (使用指向指针的指针)

4. 编写程序,实现对一个二维数组的奇数列和偶数列互换。 5. 编写程序,实现将一个具有N行N列的二维数组Array进行转换。转换的方式是Array[i][j]和Array[N-j][N-i]互换。

6. 使用指针,实现对二维数组排序,排序的结果是二维数组的每一行都降序排序,而且任意一行的所有元素都不比它前一行元素大。

实验十四:结构体、共用体和枚举类型 一、内容及目标:

? ? ? ? ? ?

掌握结构体类型变量的定义、初始化及对其成员的引用

掌握结构体数组的定义、初始化及对结构体数组元素的成员进行引用 掌握共用体类型和共用体变量的定义及共用体变量成员的引用 掌握共用体变量与结构体变量存储时的区别

了解枚举类型和枚举变量的定义,并掌握枚举元素的处理 掌握类型定义typedef

39

二、实验重点:

? 结构体类型变量的定义、初始化及对其成员的引用

? 共用体类型和共用体变量的定义及共用体变量成员的引用

三、实验难点:

1.共用体变量与结构体变量存储时的区别

四、上机操作 :

1.对结构体变量成员进行操作 #include void main() {struct person { char name[20]; char sex; struct date { int year; int month; int day; }birthday; float height; } per;

printf(\ gets(per.name); per.sex='M';

per.birthday.year=1982; per.birthday.year++; per.birthday.month=12; per.birthday.day=15;

per.height=(175+176)/2.0;

printf(\; }

2输出结构体数组各元素的成员值 #include void main() {

struct person { char name[20]; char sex; int age; float height;

} per[3]={{ \ int i;

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

printf(\}

3引用共用体变量的成员 void main() {

union temp { char a; int b; }t; t.a=66; t.b=266;

/*266=256+10即266的二进制为1 00001010,所以高字节放1、低字节放10*/ printf(\}

40

搜索更多关于: C程序设计实验指导2013上 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

gets(s1); gets(s2); check(s1,s2,p); return 0; } void check(char *a,char *b,int(*cmp)( char *, char *)) { printf(\ if(!(*cmp)(a,b)) printf(\ else printf(\5.将多个字符串按字母顺序输出。 #include #include void sort(char *str[] , int n) { char *temp; int i, j , k; for (i=0;i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com