1、第 1 页 共 12 页实 验 报 告 实验课程 C 语言程序设计提高 实验项目 综合练习 实验地点 8C-402 指导教师 陈景强 班 级 学生姓名 学 号 教师评分 日 期 第 2 页 共 12 页15 综合练习一、实验目的1、综合练习二、准备 软件环境:Windows XP、cfree 硬件环境:pc 机、局域网三 、 实 验 内 容1 字 符 串 练 习A 编 写 程 序 , 输 入 两 行 字 符 串 , 把 这 两 个 字 符 串 连 接 后 输 出 来 。#include#includemain() char s1100;char s250;gets(s1);gets(s2);s
2、trcat(s1,s2);printf(“%sn“,s1);B 编 写 程 序 , 输 入 一 个 字 符 串 , 然 后 输 出 字 符 串 的 长 度 。#include#includemain() char s1100;int len;gets(s1);len=strlen(s1);printf(“%dn“,len);C 编 写 程 序 , 输 入 一 个 字 符 串 , 然 后 把 这 个 字 符 串 拷 贝 到 另 外 一 个 字 符 串 。#include#includemain() char s1100,s2100;gets(s2);/把 s2 拷 贝 到 s1 strcpy(s
3、1,s2);printf(“%sn“,s1);D 一 个 班 级 排 座 位 的 时 候 , 按 照 姓 名 拼 音 的 字 典 顺 序 排 列 , 现 输 入 两 位 同 学 的 姓 名第 3 页 共 12 页拼 音 , 然 后 告 诉 我 谁 坐 在 前 面 谁 坐 在 后 面 , 如 果 两 位 同 学 同 名 , 则 告 诉 我 无 法 确 定 位置 。#include#includemain()char name150,name250;int sign;scanf(“%s%s“,name1,name2);sign=strcmp(name1,name2);if(sign=-1)prin
4、tf(“%s 坐 在 %s 前 面 “,name1,name2);else if(sign=1)printf(“%s 坐 在 %s 前 面 “,name2,name1);elseprintf(“无 法 确 定 位 置 “);E 输入一个英文句子,把每个单词的第一个字母变大写后输出来#include#includemain()char s500;int i,sign=0;gets(s);for(i=0;si!=0;i+)if(si!= sign=1;else if(si= )sign=0;printf(“%sn“,s);2 二 维 数 组 练 习A 编 写 程 序 , 把 二 维 数 组 int
5、 a33=1,2,3,5,6,7,9,10,11;的 第 二 行 和 第 三 行 对换 。#include第 4 页 共 12 页main() int a33=1,2,3,5,6,7,9,10,11;int i,j,t;for (i=0;imain()int a34=1,2,3,4,5,6,7,8,9,10,11,12;int i,j,sum=0;for(i=0;imain() int a34=1,2,3,4,5,6,7,8,9,10,11,12;int i,j,t;for(j=0;jint output(char c,int n)int i;for(i=0;iint shuixianhua(
6、int n)int a,b,c;a=n%10;b=n/10%10;c=n/100;if(a*a*a+b*b*b+c*c*c=n)return 1;elsereturn 0;main()int i;for(i=100;iint jiecheng(int n)第 6 页 共 12 页int i,m=1;for(i=1;iint runnian(int year)if(year%400=0|year%4=0elsereturn 0;main()int year;scanf(“%d“,if(runnian(year)printf(“%d 年 是 闰 年 n“,year);elseprintf(“%d
7、年 不 是 闰 年 n“,year);4 指 针 练 习A 定 义 一 个 指 针 变 量 a 和 三 个 整 型 变 量 x、 y、 z, 不 对 x、 y、 z 直 接 赋 值 , 利 用 a 使得 x、 y、 z 的 值 分 别 是 10、 20、 30, 输 出 x、 y、 z 的 值 。#includemain()int x,y,z;int *a;第 7 页 共 12 页a= *a=10;a= *a=20;a= *a=30;printf(“%d %d %dn“,x,y,z);B 在 以 下 代 码 中 添 加 2 条 语 句 , 是 的 p1 指 向 x2, p2 指 向 x3, 输
8、 出 结 果 为 3, 4。#includemain()int x1,x2,x3,*p,*p2;此 处 添 加 2 条 语 句x1=2; x2=3; x3=4;printf(“%d,%d“,*p1,*p2); 答 案 :#includemain()int x1,x2,x3,*p1,*p2;p1=p2=x1=2; x2=3; x3=4;printf(“%d,%d“,*p1,*p2); C 完 善 程 序 , 定 义 两 个 整 型 变 量 a 和 b 以 及 指 针 变 量 x, 不 再 定 义 其 它 变 量 。 从 键 盘输 入 两 个 数 给 a 和 b, 设 法 使 x 指 向 a、 b
9、 中 较 大 的 那 个 变 量 , 最 后 输 出 x 所 指 向 的数 。#includemain()int a,b,*x;scanf(“%d%d“,此 处 添 加 如 果 语 句printf(“%dn“,*x); 答 案 :#includemain()int a,b,*x;scanf(“%d%d“,第 8 页 共 12 页if(ab) x=else x=printf(“%dn“,*x); D 先求数组的最大元素指针 pmax,然后将最大元素与最后第一个元素互换,最后输出互换后的数组元素。注意:所有变量已经全部定义,不得定义新变量。#include main() int a10=12,34
10、,56,78,90,98,76,54,32,10,*p,*pmax,temp;此处添加您的语句若干答 案 :#includemain()int a10= 12,34,56,78,90,98,76,54,32,10,*p,*pmax,temp;pmax=a;for(p=a;ptypedef struct char name20;int num; ANIMAL;main() ANIMAL cc10=“大 象 “,3,“猴 子 “,52,“斑 马 “,6,“羚 羊 “,11,“老 虎 “,4;int i;for(i=0;itypedef struct char name20;int num; ANI
11、MAL;main() ANIMAL cc10=“大 象 “,3,“猴 子 “,52,“斑 马 “,6,“羚 羊 “,11,“老 虎 “,4;int i,sum=0;for(i=0;itypedef struct char name20;int num; ANIMAL;main() ANIMAL cc10=“大 象 “,3,“猴 子 “,52,“斑 马 “,6,“羚 羊 “,11,“老 虎 “,4;int i,m=0;for(i=1;iccm.num)m=i;printf(“%s %dn“,ccm.name,ccm.num);B 说 明 int、 double、 float、 short、 ch
12、ar 和 ANIMAL 类 型 的 大 小 。int: 4 个 字 节double: 8 个 字 节short: 2 个 字 节char: 1 个 字 节ANIMAL: 24 个 字 节C 定 义 一 个 表 示 职 工 的 结 构 体 类 型 , 成 员 包 括 姓 名 、 基 本 工 资 、 奖 金 、 支 出 和 实 发 工资 。 用 该 类 型 定 义 一 个 数 组 , 并 初 始 化 为 如 下 数 据 :姓 名 基 本 工 资 奖 金 支 出 实 发 工 资Zhao 650 210 170 0第 10 页 共 12 页Qian 570 260 180 0Sun 708 190 1
13、50 0Li 490 240 160 0根 据 “实 发 工 资 =基 本 工 资 +奖 金 -支 出 ”的 公 式 重 新 计 算 每 个 人 的 实 发 工 资 。 输 出 每 个职 工 的 姓 名 和 实 发 工 资 。#includetypedef struct char xm20;int jbgz;int jj;int zc;int sfgz; ZG;main() ZG a4=“Zhao“,650,210,170,0,“Qian“,570,260,180,0,“Sun“,708,190,150,0,“Li“,490,240,160,0;int i;for(i=0;imain() FILE *f=fopen(“d:/out.txt“,“w“);char s50;gets(s);fprintf(f,“%s“,s);gets(s);fprintf(f,“%s“,s);fclose(f);B 读 取 文 件 1.txt 的 内 容 , 统 计 其 中 大 写 字 母 的 个 数 , 并 在 屏 幕 上 输 出 来 。#includemain() FILE *f=fopen(“d:/1-b.txt“,“r“);