程序讲解 第一题: 将指定文件的m行到n行字符写到显示屏上,m和n值从键盘输入。 运行时输入及结果: please enter m,n:

Slides:



Advertisements
Similar presentations
电子成绩单项目实现.
Advertisements

親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
“八皇后”问题 崔萌萌 吕金华.
计算机硕士专业基础—C语言 赵海英
補充: Input from a text file
C语言基础——指针的高级应用 Week 05.
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第九章 指针 目录 指针与指针变量的概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量
第4章 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的 如果你在家,我去拜访你 如果考试不及格,要补考
C语言程序设计 第八章 函数.
第九章 系 统 安 全 性 9.1 结构体 9.2 结构体型数组  9.3 结构体型指针 9.4 内存的动态分配 9.5 共用体
复习与总结.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
高级语言程序设计 主讲人:陈玉华.
C 程序设计实例 1. 问题描述 2. 数据结构 3. 算法分析 4. 参考程序 5. 改进说明.
计算概论 第二十一讲 文件操作 北京大学信息学院.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
Introduction to the C Programming Language
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
Introduction to the C Programming Language
Introduction to the C Programming Language
STRUCTURE 授課:ANT 日期:2010/5/12.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
Introduction to the C Programming Language
Function.
C语言程序设计 李祥.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
第五章 指针 5.1 指针的概念和定义 5.2 指针运算 5.3 指针和数组 5.4 字符串指针 5.5 指针数组 5.6 指向指针的指针
Introduction to the C Programming Language
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
THE C PROGRAMMING LANGUAGE
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
第八章 使用指针.
計數式重複敘述 for 迴圈 P
第十章 指针.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
研讨课4 文件操作.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
自我參考結構 (self-reference – 1)
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言概述 第一章.
for 迴圈 while迴圈 do-while迴圈 break 與 continue goto 與 標籤 程式觀摩
C语言复习2----函数.
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
第八章 指標 (Pointer).
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
指標
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C程序设计.
第九章 指针.
第二章 类型、对象、运算符和表达式.
Introduction to the C Programming Language
本节内容 指针类型.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第13章 文 件.
Introduction to the C Programming Language
第七章  数 组.
結構、檔案處理(Structure, File)
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
第一次上機考參考答案 僅供參考,同學可自行再想更好的方法..
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Introduction to the C Programming Language
Presentation transcript:

程序讲解 第一题: 将指定文件的m行到n行字符写到显示屏上,m和n值从键盘输入。 运行时输入及结果: please enter m,n: 0,2 Data Structure Operating System Computer Graphics Software Engineering C语言40学时

#include "stdio.h" void main( ) {int i,m,n; FILE *fp; char *buf[4]={"Data Structure","Operating System“,"Conmputer Graphics","Software Engineering"}; if((fp=fopen("file10","w"))==NULL) {printf("Can't open %s\n","myfile"); return;} else {printf("please enter m,n:\n"); scanf("%d,%d",&m,&n); for(i=m;i<=n;i++) {fputs(buf[i],fp); /*输出到文件中*/ putc('\n',fp); puts(buf[i]);} /*输出到屏幕上*/ fclose(fp);}}

查找指定的文本文件中的某个单词出现的行号及该行的内容。 要求:通过命令行输入文件名和查找的单词。 假设:源程序名为:wj6.c 第二题: 查找指定的文本文件中的某个单词出现的行号及该行的内容。 要求:通过命令行输入文件名和查找的单词。 假设:源程序名为:wj6.c 建立一个文本文件:abc.txt 子字符为:abc 命令行: wj6 abc.txt abc 可执行文件名 文本文件 子字符 C语言40学时

int str_index(char substr[ ],char str[ ] ) {int i,j,k; 文件中某字符 串首地址 #include "stdio.h“ 2-1 #include"stdlib.h" int str_index(char substr[ ],char str[ ] ) {int i,j,k; for(i=0;str[i];i++) for(j=i,k=0;str[ j ]==substr[k];j++,k++) 不成立返回 i循环 if(!substr[k+1]) 不成立返回 j 循环 return(i); 条件成立找到匹配字符串 return(-1); } void main( int argc,char *argv[ ]) {char buff[80]; FILE *fp; int lcnt; 子字符 substr[k+1] ==‘\0’ C语言40学时

{ printf("Usage:findword filename word\n"); return;} if(argc<3) 2-2 { printf("Usage:findword filename word\n"); return;} if((fp=fopen(argv[1],"r"))==NULL) {printf("不能打开%s文件\n",argv[1]); lcnt=1; while(fgets(buff,80,fp)!=NULL) {if(str_index(argv[2],buff)!=-1) printf(“%3d: %s”,lcnt,buff); 条件成立输出 lcnt++;} 条件成立与否都执行.(行号) fclose(fp);} C语言40学时

abc.txt文件中的内容: rrabcwwabc abc wjk ggabc ee576 ffgwk 运行结果:1: rrabcwwabc

第一行字符:rrabcwwabc 比较: a a abc r r abc

已知磁盘上的test1-2.c文件中以文本形式存放有10名学生的记录,每条记录由学号和一门课程成绩组成。用函数调用方式编写程序,要求实现: 第三题: 已知磁盘上的test1-2.c文件中以文本形式存放有10名学生的记录,每条记录由学号和一门课程成绩组成。用函数调用方式编写程序,要求实现: 1.在main函数中读入10名学生记录,存入结构数组s,调用fun函数,把平均成绩和分数最低的学生记录输出到屏幕上。 C语言40学时

2.被调函数fun求出10名学生的平均成绩并统计分数最低的学生记录,fun的参数是数组s的首地址和数组h的首地址,fun的返回值是分数最低的学生人数。 一个学生记录放在如下结构中: struct student {char num[10]; int s; } C语言40学时

#include"stdio.h“ 4-1 #include"stdlib.h" #define N 10 struct student {char num[10]; int s; }; float average; 全局变量 int fun(struct student *a,struct student *b) {int i,n=0,min; /*函数求最低成绩和平均成绩*/ float sum=0; min=a[0].s;

for(i=1;i<N;i++) 4-2 {if(min>a[i].s) min=a[i].s; sum+=a[i].s;} average=sum/N; for(i=0;i<N;i++) if(min==a[i].s) { b[n]=a[i]; n++; } return n;} 最低分 不止一人 C语言40学时

struct student s[N],h[N]; int i,n; FILE *fp; main( ) 4-3 { struct student s[N],h[N]; int i,n; FILE *fp; if((fp=fopen("test1-2.txt","r"))==NULL) printf("file open eorrs!\n"); exit(0); } C语言40学时

fscanf(fp,"%s%d",s[i].num,&s[i].s); fclose(fp); n=fun(s,h); for(i=0;i<N;i++) 4-4 fscanf(fp,"%s%d",s[i].num,&s[i].s); fclose(fp); n=fun(s,h); printf("The average score is :%5.2f\n",average); printf("The %d lowest score:\n",n); for(i=0;i<n;i++) printf("%s %4d\n",h[i].num,h[i].s); } C语言40学时

第四题: 磁盘上有一数据文件test2-2.dat,文件中的数据依次由:准考证号、笔试成绩、上机成绩三项组成,中间由空格分开。编程统计及格(笔试成绩和上机成绩均大于等于60分的为及格)的考生人数,以及及格率(即及格考生在总人数中占的百分比),并将及格率输出到屏幕上的同时写入文件test2-2.out中。 Type test2-2.dat 60 70 50 30 90 60 …… C语言40学时

if((in=fopen("test2-2.dat","r"))==NULL) {printf("file open error!\n"); #include "stdio.h“ 3-1 #include "stdlib.h" void main( ) {FILE *in,*out; char c1[20]; int cj1,cj2; int n=0,m=0; if((in=fopen("test2-2.dat","r"))==NULL) {printf("file open error!\n"); exit(0); } C语言40学时

out=fopen("test2-2.out","w"); 3-2 while(!feof(in)) {fscanf(in,"%s%d%d",c1,&cj1,&cj2); if(cj1>=60&&cj2>=60) { printf("%s %4d %4d\n",c1,cj1,cj2); fprintf(out,"%s %4d %4d\n",c1,cj1,cj2); n++; /*都及格人数*/ } m++; /*总人数*/ C语言40学时

printf("The total:%d\n",m); printf("The pass number:%d\n",n); fclose(in); 3-3 printf("The total:%d\n",m); printf("The pass number:%d\n",n); printf("The pass rate:%.2f%%",(float)n/m*100); fprintf(out,"The total:%d\n",m); fprintf(out,"The pass number:%d\n",n); fprintf(out,"The rate:%.2f%%",(float)n/m*100); fclose(out); } C语言40学时

第五题 计算并输出M以内最大的10个素数之和。 void main( ) 2-1 { int M; printf("Enter M:\n"); scanf("%d\n",fun(M)); } C语言40学时

while(M>=2 && n<10) { yes=1; for(j=2;j<=M/2;j++) if(M%j==0) int fun(int M) 2-2 { int sum=0,n=0,j,yes; while(M>=2 && n<10) { yes=1; for(j=2;j<=M/2;j++) if(M%j==0) {yes=0; break;} if(yes) {sum+=M; n++;} M--;} return sum;} C语言40学时

第六题: 指向字符数组的指针,将字符串变为大写并反序输出。 #include "stdio.h" void main( ) {char str[ ]="abcdefg"; char *p=str; while(*p!='\0') p++; printf("反序显示字符串为:"); while(p>str) {p--; if('a'<=*p&&*p<='z') *p=*p-32; printf("%c",*p);}} C语言40学时

第七题: #include "stdio.h" #include "string.h" void main( ) 将已按升序排好的两个字符串a和b中的字符按升序归并到字符串c中。即字符串c为: Abcdefghijklmnpq 2-1 程序: #include "stdio.h" #include "string.h" void main( ) {char a[ ]="acegikm"; char b[ ]="bdfhjlnpq"; char c[80],*p; int i=0,j=0,k=0; C语言40学时

while(a[i]!='\0'&&b[j]!='\0') 2-2 {if(a[i]<b[j]) c[k]=a[i++]; else c[k]=b[ j++]; k++; } if(a[i]=='\0') p=b+j; else p=a+i; strcat(c,p); 粘接 puts(c); C语言40学时