首页 > 计算机等级考试
题目内容 (请给出正确答案)
[主观题]

利用指向字符数组的指针编写程序,完成如下要求的加密处理。 为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换为密文。变换规则如下:小写字符z变换为a,其他字母变换为该字母的ASCII码顺序后1位的字母,例如:o变换为p。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“利用指向字符数组的指针编写程序,完成如下要求的加密处理。 为…”相关的问题
第1题
若有语句:char *line[5];,以下叙述中正确的是

A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的*号称为间址运算符

D.定义line是一个指向字符型函数的指针

点击查看答案
第2题
若有语句:char*line[5];,以下叙述中正确的是()。

A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的*号称为间址运算符

D.定义line是一个指向字符型函数的指针

点击查看答案
第3题
若有语句:Char * line[5];,以下叙述中正确的是()。 A.定义line是一个数组,每个数组元素是一个基

若有语句:Char * line[5];,以下叙述中正确的是()。

A.定义line是一个数组,每个数组元素是一个基类型为Char的指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的*号称为间址运算符

D.定义line是一个指向字符型函数的指针

点击查看答案
第4题
试题四(共 15 分) 阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明]

试题四(共 15 分)

阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式

“46+5*(120-37)”的后缀表达式形式为“46 5 120 37 - * +” 。

计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37 - * +”的计算过程为:

a. 依次将 46、5、120、37 压入栈中;

b. 遇到“-”,取出 37、120,计算 120–37,得 83,将其压入栈中;

c. 遇到“*”,取出 83、5,计算 5*83,得 415,将其压入栈中;

d. 遇到“+”,取出 415、46,计算 46+415,得 461,将其压入栈中;

e. 表达式结束,则计算过程完成。

函数 computing(char expr[],int *result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数 result 返回该值。函数的返回值为-1/0 分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。

函数 computing 中所用栈的基本操作的函数原型说明如下:

void InitStack(STACK *s):初始化栈。

void Push(STACK *s, int e): 将一个整数压栈,栈中元素数目增 1。

void Pop(STACK *s):栈顶元素出栈,栈中元素数目减 1。

int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。

int IsEmpty(STACK s):若s 是空栈,则返回1 否则返回 0。

[C 函数]

int computing(char expr[], int *result)

{

STACK s; int tnum, a,b; char *ptr;

InitStack(&s);

ptr = expr; /*字符指针指向后缀表达式串的第一个字符*/

while (*ptr!='\0') {

if (*ptr==' ') { /*当前字符是空格*/

(1) ; /*字符指针指向下一字符*/

continue;

}

else

if (isdigit(*ptr)) {

/*当前字符是数字,则将该数字开始的数字串转换为数值*/

tnum = (2) ;

while (*ptr>=’0’ && *ptr <=’9’) {

tnum = tnum * 10 + (3) ;

ptr++;

}

Push((4) );

}

else /*当前字符是运算符或其他符号*/

if (*ptr=='+'||*ptr=='-'||*ptr =='*'||*ptr =='/'){

if (!IsEmpty(s)) {

a = Top(s); Pop(&s); /*取运算符的第二个运算数*/

if (!IsEmpty(s)) {

b = Top(s); Pop(&s); /*取运算符的第一个运算数*/

}

else return -1;

}

else return -1;

switch (*ptr) {

case '+': Push(&s,b+a); break;

case '-': Push(&s,b-a); break;

case '*': Push(&s,b*a); break;

case '/': Push(&s,b/a); break;

}

}

else

return -1;

ptr++; /*字符指针指向下一字符*/

} /* while */

if (IsEmpty(s)) return -1;

else {

(5) = Top(s); Pop(&s); /*取运算结果*/

if (!IsEmpty(s)) return -1;

return 0;

}

}

点击查看答案
第5题
在C++中,一个数组名字实际上是指向该数组【】的指针。

在C++中,一个数组名字实际上是指向该数组【 】的指针。

点击查看答案
第6题
若有int *x[3]:则以下表述正确的是 ______。A.x是一个指向具有3个元素的整型数组的指针B.x是一个

若有int *x[3]:则以下表述正确的是 ______。

A.x是一个指向具有3个元素的整型数组的指针

B.x是一个指向int型变量的指针

C.x是一个有3个元素的指针数组,每个元素是一个int型指针

D.x是一个数组,该数组的元素是指针x所指向的变量

点击查看答案
第7题
说明语句int*(*p)();的含义是______。A.p是一个指向int型数组的指针B.p是指针变量,它构成了指针数

说明语句int*(*p)();的含义是______。

A.p是一个指向int型数组的指针

B.p是指针变量,它构成了指针数组

C.p是一个指向函数的指针,该函数的返回值是一个整型

D.p是一个指向函数的指针,该函数的返回值是一个指向整型的指针

点击查看答案
第8题
字符串指针实际是一个字符指针,指向字符串的第一个字符。()
点击查看答案
第9题
以下叙述中错误的是()A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应

以下叙述中错误的是()

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针

点击查看答案
第10题
字符数组和字符指针的使用方法完全相同。()
点击查看答案
第11题
设有说明int(*ptr)[M];其中ptr是()。

A.M个指向整型变量的指针

B.指向M个整型变量的函数指针

C.一个指向具有M个整型元素的一维数组的指针

D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改