第五章 习题课 电子信息与计算机科学系 曾庆尚.

Slides:



Advertisements
Similar presentations
第 8 章 数组 计算机科学学院 李淮 Tel QQ
Advertisements

《C语言程序设计》复习
电子成绩单项目实现.
4.3 使用二维数组 P 求两个矩阵的和 求方阵对角线上元素之和 显示算术题和学生答题信息
C语言基础——指针的高级应用 Week 05.
第九章 指针 目录 指针与指针变量的概念 变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量
C语言程序设计 第八章 函数.
C语言程序设计 第十二章 位运算.
第六章 数 组 主讲教师 贾月乐 联系电话:
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
選擇排序法 通訊一甲 B 楊穎穆.
目录 10.1 指针的基本概念 10.2 指向变量的指针变量 10.3 指向数组的指针变量 10.4 指向函数的指针变量和指针型函数
项目六 用指针优化学生成绩排名 项目要求 项目分析
If … else 選擇結構 P27.
Chap 9 结构 9.1 构建手机通讯录 9.2 结构变量 9.3 结构数组 9.4 结构指针.
程序讲解 第一题: 将指定文件的m行到n行字符写到显示屏上,m和n值从键盘输入。 运行时输入及结果: please enter m,n:
Introduction to the C Programming Language
Introduction to the C Programming Language
目录 第八章 数组 1 简单学生成绩管理系统的开发 2 一维数组 3 多维数组 4 字符数组 5 数组作函数参数.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
程式撰寫流程.
Chap 8 指针 8.1 寻找保险箱密码 8.2 角色互换 8.3 冒泡排序 8.4 电码加密 8.5 任意个整数求和*
C语言程序设计 李祥.
第2章 线性表 线性表抽象数据类型 顺序表 主要知识点 单链表 循环单链表 循环双向链表 静态链表 设计举例.
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
第五章 指针 5.1 指针的概念和定义 5.2 指针运算 5.3 指针和数组 5.4 字符串指针 5.5 指针数组 5.6 指向指针的指针
作弊是否很有诱惑性? 上堂课已经讲了 作业不一定在两个小时里都能完成 答疑没有一个人? 作弊是有记录的 心理系很多同学集体作弊,让人震惊
6.4.1指针与二维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址。
C语言 程序设计基础与试验 刘新国、2012年秋.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
第八章 使用指针.
第十章 指针.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
数组 梁春燕 华电信息管理教研室.
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言概述 第一章.
資料結構與C++程式設計進階 排序與搜尋 講師:林業峻 CSIE, NTU 6/ 14, 2010.
C语言复习3----指针.
C语言大学实用教程 第6章 数组 西南财经大学经济信息工程学院 刘家芬
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
函数 概述 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块, 特点: 开发方法: 自上向下,逐步分解,分而治之
C语言的特点 1. C程序由许多函数组成 2. C程序必须有且只有一个主函数main( ) 3. 函数用“{”和“}”表示起点和终点
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
第六章 指针 C++程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
第十章 指针 指针是C语言的重要概念,是C语言的特色,是C语言的精华。 10.1 地址和指针的概念 内存中的每一个字节都有一个地址。
C程序设计.
第6章 数组.
C程序设计.
第九章 指针.
第二章 类型、对象、运算符和表达式.
实验七 数 组 第21讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
C程序设计.
本节内容 指针类型.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第七章  数 组.
程式設計--linear search 通訊一甲 B 楊穎穆.
单片机应用技术 (C语言版) 第4章 C51程序设计入门
Chap 7 数 组 7.1 排序问题 7.2 找出矩阵中最大值所在的位置 7.3 进制转换.
Introduction to the C Programming Language
多重條件選擇敘述
第九章 指针 C程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
第一次上機考參考答案 僅供參考,同學可自行再想更好的方法..
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言基础学习 从外行到入门.
Presentation transcript:

第五章 习题课 电子信息与计算机科学系 曾庆尚

#include <stdio.h> void main() { char st[80],*p=st,tmp; printf("请输入一个字符串:\n"); gets(p); printf("您输入的字符串是:\n"); printf("%s\n",p); while(*p!='\0') { if(*p>='A'&&*p<='Z') tmp=155-*p; else if(*p>='a'&&*p<='z') tmp=219-*p; else tmp=*p; *p=tmp; p++; } *p='\0'; p=st; printf("转换后的字符串是:\n");

#include <stdio.h> void main() { float mark,max,min,aver=0.0,sum=0.0; int i; for(i=1;i<=10;i++) { printf("输入第%d位评委的打分\n",i); scanf("%f",&mark); if(i==1){max=mark; ;} else if(mark<min) ; else if(mark>max) ; ; } aver=(sum-max-min)/8; printf("the average score is %f\n",aver); P121 3 min=mark min=mark max=mark sum+=mark

P180 四:1 #include <stdio.h> void main() { char ch[7]="65ab21"; int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 运行结果: 6

#include <stdio.h> void main() { char a[]="street",b[]="string"; char *ptr1=a,*ptr2=b; int k; for(k=0;k<7;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k)); } P180 四:2 运行结果: str

P180 四:3 #include <stdio.h> void main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++) k+=*(*(p+i)+j); printf("%d\n",k); } 运行结果: 60

P181 四:4 运行结果: bcdefga cdefgab defgabc #include <stdio.h> void main() { char a[8],temp; int i,j; for(i=0;i<7;i++) a[i]='a'+i; for(i=0;i<3;i++) { temp=a[0]; for(j=1;j<7;j++) a[j-1]=a[j]; a[6]=temp; a[7]='\0'; printf("%s\n",a); } 运行结果: bcdefga cdefgab defgabc

P181 四:5 运行结果: a1e2 #include <stdio.h> void main() { int i=0,k,ch; int num[5]={0}; char alpha[]={'a','e','i','o','u'},in[80]; gets(in); while(in[i]) { for(k=0;k<5;k++) if(in[i]==*(alpha+k)) { num[k]++;break; } i++; } for(k=0;k<5;k++) if(num[k])printf("%c%d",alpha[k],num[k]); printf("\n"); 运行结果: a1e2

P182 五:1 #include <stdio.h> . #include<math.h> void main() { float a[10],s,d,x; int i; for(i=0;i<10;i++) ; ; for(i=0;i<10;i++) s+=a[i]; s/=10; d=fabs(a[0]-s); ; for(i=0;i<10;i++) if(fabs(a[i]-s)<d) { d= ; x=a[i]; } printf("%f",x); #include<math.h> scanf("%f",&a[i]) s=0 x=a[0] fabs(a[i]-s)

P183 五:3 #include <stdio.h> #include<string.h> void main() { char b[61]; int i; gets(b); for(i=1; ; i++) if(b[i-1]==' '&&b[i]==' ') { (b+i-1,b+i);i--;} ; } 输入一个字符串(串长不超过60),将字符串中连续的空格符只保留一个。如输入字符串为“I am a student.”则输出字符串为“I am a student.” b[i]!='\0' strcpy puts(b)

P183 五:4 #include <stdio.h> void main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; ; for(;p<a[0]+12;p++) { if((p-a[0])%4==0) printf("\n"); printf("%d,", ); } 下面程序是用指针变量输出二维数组元素的值,请填写缺少的语句。 P=&a[0][0] p=a[0] *p

P183 六:1 #include <stdio.h> void main() { int i=0,a[10],t; printf("Enter the 10 number=\n"); for(i=0; i<10; i++) scanf("%d",&a[i]); for(i=0;i<5;i++) { t=a[i];a[i]=a[9-i];a[9-i]=t;} printf("%d ",a[i]); printf("\n"); } 编程序,输入10个整数存入一维数组,按逆序重新存放后再输出。

编程序,将一维数组中元素向右循环移N次。要求使用下标法和指针法两种方法来实现。 P183 六:2 #include <stdio.h> void main() { int i, j, t, n, a[11]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for(i=0;i<11;i++) printf("%d ", a[i]); printf("\n"); printf("Enter the Move n=?"); scanf("%d", &n); for(i=1; i<=n; i++) t=a[10]; for(j=9;j>=0;j--) a[j+1]=a[j]; a[0]=t; } for(i=0; i<=10; i++) 编程序,将一维数组中元素向右循环移N次。要求使用下标法和指针法两种方法来实现。 下标法:

编程序,将一维数组中元素向右循环移N次。要求使用下标法和指针法两种方法来实现。 P183 六:2 #include <stdio.h> void main() { int i,t, n, a[11]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},*p=a; for(;p<a+11;p++) printf("%d ", *p); printf("\n"); printf("Enter the Move n=?"); scanf("%d", &n); for(i=1; i<=n; i++) { p=a+10; t=*p; for(;p>a;p--) *p=*(p-1); *p=t; } for(p=a;p<a+11;p++) 编程序,将一维数组中元素向右循环移N次。要求使用下标法和指针法两种方法来实现。 指针法:

P184 六:4 #include <stdio.h> for(i=0; i<N-1; i++) #include <stdlib.h> #define N 50 main() { int a[N], i, j,p,t; for(i=0; i<N; i++) a[i]=rand()%90+10; for(j=0;j<i;j++) if(a[i]==a[j]) { i--; break; } for(i=0; i<N-1; i++) { p=i; for(j=i+1; j<N; j++) if(a[j]>a[p]) p=j; t=a[p]; a[p]=a[i]; a[i]=t; } for(i=0; i<N; i++) printf("%d ", a[i]); if(i%10==9) printf("\n");

P230 四:4 运行结果: (3,6) #include<stdio.h> int f(int n) { static int k,s=0; n--; for(k=n;k>0;k--) s+=k; return s; } void main() int k; k=f(3); printf("(%d,%d)",k,f(k)); 运行结果: (3,6)