江苏省XY中等专业学校2021-2022-2教案  编号:
备课组别
计算机
上课
日期
教师
教师
课题
专题九(143
教学
目标
掌握查亲密数对的方法
掌握素数的扩展应用
学会字符串相关处理
重点
学会字符串相关处理
难点
学会字符串相关处理
教法
讲授法、案例教学法、讨论法
教学设备
黑板  计算机  网络机房
教学
c++求字符串长度环节
教学活动内容及组织过程
个案补充
程序填空  共1题 (共计20分)
第1题 (20.0分)    题号:79    难度:中    第1章
/*--------------------------------------------
题目:求200-2000之内的亲密数对。“亲密数对”是指两个整数A和B,A的所有因子(包含1但不包含其本身)之和等于B,且B的所有因子(包含1但不包含其本身)之和等于A。
      程序运行结果为:
      [220,284]
      [1184,1210]
-------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他部分。
--------------------------------------------------*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>
int fun(int n)
{
    int i,sum=0;
    for(i=1;i<=n/2;i++)
    {
/************************SPACE***********************/
        if(【?】)
        {
            sum+=i;
                       
        }
    }
    return sum;
}
int main()
{
    int a,b,n;
    for(a=200;a<=2000;a++)
    {
        b=fun(a);
/************************SPACE************************/
        if(【?】&&a<b)
            printf("[%d,%d]\n",a,b);
    }
    return 0;
}
程序改错  共1题 (共计30分)
第1题 (30.0分)      题号:81    难度:中    第1章
/*-------------------------
题目:查介于M与N(0<M<N<32768)之间,且满足下列条件的所有整数:
      1.该数中有且仅有两个相同的数字位;
      2.该数是素数。
     
      测试数据:M=800,N=900
      运行结果:
   811  877  881  883  887  899 
--------------------------------------------------
注意:不得增行或删行,也不得更改程序的结构。
----------------------------------------------*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>
#define M 800
#define N 900
int validate(int n)
{
    int i,j,k=0,num[5]= {0},size=0;
    do
    {
        num[size]=n%10;
        n=n/10;
        size++; 
/***********FOUND***********/
    }while(n<0);
    for(i=0; i<size-1; i++)
        for(j=i+1; j<size; j++)
            if(num[i]==num[j])
                k=k+1;
/***********FOUND***********/
    if(k>=1)
        return 1;
    else
        return 0;
}
int prime(int n)
{
    int i;
    for(i=2; i<(int)sqrt(n); i++)
        if(n%i==0)
            return 0;
    return 1;
}
int main()
{
    int i,count=0,n1=0,n2=0;
    for(i=M; i<=N; i++)
    {
/***********FOUND***********/
        if(validate(M)&&prime(N))
        {
            count++;
            printf("%6d",i);
            if(count%8==0)
            printf("\n");
        }
    }
}
程序设计  共1题 (共计30分)
第1题 (30.0分)    题号:80    难度:中      第1章
/*-------------------------
题目:数组ss中存储了若干字符串,先在每个字符串最前面插入该字符串的长度,然后删除ss中长度超过原始字符串长度平均值的字符串。
例如:数组ss原始值为:  "Manufacturing","History","Trade","Construction","Administrative",
    "Policies","Spotrs","Infrastruct","EconnomyOA","DeliciousFoods"
      处理后结果:
      5Trade
      6Spotrs
      7History
      8Policies
编写函数:
1.函数int insert(char  ss[][M])将数组ss中每个字符串最前面插入该字符串的长度,函数返回所有原始字符串的平均长度(平均长度取整)。
2.函数int delstr(char ss[][M],int k)先将数组ss中字符串长度大于k的字符串删除,然后将剩余字符串按长度升序排序,函数返回剩余字符串的个数。
课后作业
考点分析
一、查亲密数对
二、素数的扩展应用
教后札记

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。