内容正文:
江苏省XY中等专业学校2021-2022-2教案 编号:
备课组别
计算机
上课
日期
主备
教师
授课
教师
课题
专题十二(148)
教学
目标
学会各种整数最值扩展应用
掌握字符串转整型的方法
掌握字符串加密的技巧
重点
数组循环移动的应用
难点
数组循环移动的应用
教法
讲授法、案例教学法、讨论法
教学设备
黑板 计算机 网络机房
教学
环节
教学活动内容及组织过程
个案补充
教
学
内
容
程序填空 共1题 (共计20分)
第1题 (20.0分) 题号:79 难度:中 第1章
/*--------------------------------------------
题目:函数int ch_to_num(char s[])的功能是将以字符串形式表示的数字转换为对应进制的整数;函数int toupper(int ch)功能是将小写字母转换为对应大写字母。
本程序的的运行结果为:
27
25
-176
--------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他部分。
---------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <string.h>
int ch_to_num(char s[])
{int i=0, num, sign, base=10,t;
for(; s[i]==' ';i++);
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]=='-')
i++;
/***********************SPACE***********************/
if(s[i]=='0'&& s[【?】])
{
if(s[i]=='x'||s[i]=='X')
{
base=16;
i++;
}
else
base=8;
}
for(num=0,t=1;t&&(isdigit(s[i])||isalpha(s[i]));i=i+1)
switch(base)
{
case 8: if(s[i] >='0'&& s[i] <='7')
num=num*base+s[i]-'0';
else
t=0;
break;
case 10: if(isdigit(s[i]))
num=num*base+s[i]-'0';
else
t=0;
break;
case 16: if(isdigit(s[i]))
num=num*base+s[i]-'0';
else if(toupper(s[i])>='A'&&toupper(s[i])<='F')
/**************************SPACE*********************/
num=num*base+toupper(s[i])-【?】+10;
else
t=0;
}
return sign*nu