阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。[说明1]下面的函数countChar(char*text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。[C代码1] int countChar(char *text) { int i,sum=0; /*sum保存不同的英文字母数*/ char *ptr; int c[26]={0); /*数组C保存每个英文字母出现的次数*/ /*c[0]己录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ ptr=______; /*ptr初始时指向字符串的首字符*/ while (*ptr) { if (isupper(*ptr) ) c [*ptr-'A']++; else if (islower(*ptr)) c[*ptr-'a']++; ______; /*指向下一个字符*/ } for(i=0;i<26; i++) if(______)sum++; return sum; }[说明2]将下面C代码2中的空缺补全后运行,使其产生以下输出。f2:f2:f2:2 f3:f3:1 [C代码2] #include<stdio.h> int f1(int(*f)(int)); int f2(int); int f3(int); int main() { printf("%d\n",f1(______)); printf("%d\n",f1(______)); return 0; } int f1(int(*f)(int)) { int n=0; /*通过函数指针实现函数调用,以返回值作为循环条件*/ while (______) n++; return n; } int f2(int n) { printf("f2:"); return n*n-4; } int f3(int n) { printf("f3:"); return n-1; }
阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
[说明1]
下面的函数countChar(char*text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。
[C代码1] int countChar(char *text) { int i,sum=0; /*sum保存不同的英文字母数*/ char *ptr; int c[26]={0); /*数组C保存每个英文字母出现的次数*/ /*c[0]己录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ ptr=______; /*ptr初始时指向字符串的首字符*/ while (*ptr) { if (isupper(*ptr) ) c [*ptr-'A']++; else if (islower(*ptr)) c[*ptr-'a']++; ______; /*指向下一个字符*/ } for(i=0;i<26; i++) if(______)sum++; return sum; }
[说明2]
将下面C代码2中的空缺补全后运行,使其产生以下输出。
f2:f2:f2:2 f3:f3:1 [C代码2] #include<stdio.h> int f1(int(*f)(int)); int f2(int); int f3(int); int main() { printf("%d\n",f1(______)); printf("%d\n",f1(______)); return 0; } int f1(int(*f)(int)) { int n=0; /*通过函数指针实现函数调用,以返回值作为循环条件*/ while (______) n++; return n; } int f2(int n) { printf("f2:"); return n*n-4; } int f3(int n) { printf("f3:"); return n-1; }
[说明1]
下面的函数countChar(char*text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。
[C代码1] int countChar(char *text) { int i,sum=0; /*sum保存不同的英文字母数*/ char *ptr; int c[26]={0); /*数组C保存每个英文字母出现的次数*/ /*c[0]己录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ ptr=______; /*ptr初始时指向字符串的首字符*/ while (*ptr) { if (isupper(*ptr) ) c [*ptr-'A']++; else if (islower(*ptr)) c[*ptr-'a']++; ______; /*指向下一个字符*/ } for(i=0;i<26; i++) if(______)sum++; return sum; }
[说明2]
将下面C代码2中的空缺补全后运行,使其产生以下输出。
f2:f2:f2:2 f3:f3:1 [C代码2] #include<stdio.h> int f1(int(*f)(int)); int f2(int); int f3(int); int main() { printf("%d\n",f1(______)); printf("%d\n",f1(______)); return 0; } int f1(int(*f)(int)) { int n=0; /*通过函数指针实现函数调用,以返回值作为循环条件*/ while (______) n++; return n; } int f2(int n) { printf("f2:"); return n*n-4; } int f3(int n) { printf("f3:"); return n-1; }
参考解析
解析:text,或&text[0],或其等价形式
ptr++,或++ptr,或ptr=ptr+1,或ptr+=1
c[i],或*(c+i)
f2
f3
f(n),或(*f)(n)
【解析】
本题考查数据指针、运算逻辑和函数指针的应用。
首先应认真分析题目中的说明,然后确定代码结构和各变量的作用。
在函数countChar(char *text)中来统计字符串text中不同的英文字母数和每个英文字母出现的次数。用来表示计数值的数组元素c[i]需要与英文字母对应起来,方式为c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推,因此i=英文字母-'A'(英文字母为大写)或i=英文字母-'a'(英文字母为小写)。
数据指针是指向数据的指针变量。数据指针ptr用来表示text中的每一个字符,初始时ptr指向第一个字符,因此空(1)处应填入"text"或其等价方式,(2)处的作用是随循环控制逐个指出text中的后续字符,因此空(2)处应填入"ptr++"或其等价方式。
显然,若c[i]的值不为0则表示字符'A'+i或'a'+i出现了,反之,则表示字符'A'+j或'a'+i未出现,因此在计算字符种类时只要判断c[i]是否为0即可,因此空(3)处应填入"c[i]"或其等价形式。
函数指针是指向函数的指针变量。根据代码2的声明"int f1(int(*f)(int));"可知调用函数f1时,实参应该是函数名或函数指针,且函数名或函数指针指向的函数应有一个整型参数,返回值为整型,而f2和f3都是符合这种定义类型的函数。
C代码2中,在main函数中两次调用了函数f1,分析运行结果可知,是先以f2为实参调用f1,然后以f3为实参调用f1,因此空(4)和(5)分别填入"f2"或"f3"或它们的等价形式,在空(6)处应填入"f(n)"或其等价形式来实现最后对f2和f3的调用。
ptr++,或++ptr,或ptr=ptr+1,或ptr+=1
c[i],或*(c+i)
f2
f3
f(n),或(*f)(n)
【解析】
本题考查数据指针、运算逻辑和函数指针的应用。
首先应认真分析题目中的说明,然后确定代码结构和各变量的作用。
在函数countChar(char *text)中来统计字符串text中不同的英文字母数和每个英文字母出现的次数。用来表示计数值的数组元素c[i]需要与英文字母对应起来,方式为c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推,因此i=英文字母-'A'(英文字母为大写)或i=英文字母-'a'(英文字母为小写)。
数据指针是指向数据的指针变量。数据指针ptr用来表示text中的每一个字符,初始时ptr指向第一个字符,因此空(1)处应填入"text"或其等价方式,(2)处的作用是随循环控制逐个指出text中的后续字符,因此空(2)处应填入"ptr++"或其等价方式。
显然,若c[i]的值不为0则表示字符'A'+i或'a'+i出现了,反之,则表示字符'A'+j或'a'+i未出现,因此在计算字符种类时只要判断c[i]是否为0即可,因此空(3)处应填入"c[i]"或其等价形式。
函数指针是指向函数的指针变量。根据代码2的声明"int f1(int(*f)(int));"可知调用函数f1时,实参应该是函数名或函数指针,且函数名或函数指针指向的函数应有一个整型参数,返回值为整型,而f2和f3都是符合这种定义类型的函数。
C代码2中,在main函数中两次调用了函数f1,分析运行结果可知,是先以f2为实参调用f1,然后以f3为实参调用f1,因此空(4)和(5)分别填入"f2"或"f3"或它们的等价形式,在空(6)处应填入"f(n)"或其等价形式来实现最后对f2和f3的调用。
相关考题:
阅读下列说明,回答问题l至问题3,将解答填入答题纸的对应栏内。【说明】GD公司成立于1986年,是一家为客户提供各类软件解决方案的IT供应商。为了规范IT系统管理并提高管理效率,公司对各类管理流程进行了优化,除了优化组织结构、进一步明确职责外,还在日常作业调度、系统备份及恢复、输出管理和性能监控、安全管理和IT财务管理、IT服务计费及成本核算等方面制定了相应的规章制度。GD公司的IT系统管理涉及到公司诸多方面的工作,公司为集中资源做精核心业务,因而拓展了相关的外包工作。外包成功的关键因素之一是选择具有良好社会形象和信誉、相关行业经验丰富、经营管理水平高、有发展潜力、能够引领或紧跟信息技术发展的外包商作为战略合作伙伴。IT外包有着各种各样的利弊。利在于GD公司能够发挥其核心技术,集中资源做精核心业务;弊在于公司会面临一定的外包风险。为了最大程度地保证公司IT项目的成功实施,就必须在外包合同、项目规划、市场技术变化、风险识别等方面采取措施以控制外包风险。 【问题1】(5分)GD公司在IT系统管理方面,应该制定哪些方面的运作管理规章制度,以使公司的IT系统管理工作更加规范化?【问题2】(5分)GD公司对外包商进行资格审查时,应重点关注外包商的哪三种能力?请对这三种能力作简要解释。【问题3】(5分)为了最大程度地保证公司IT项目的成功实施,就必须采取措施控制外包风险,那么控制外包风险的措施有哪些?
以下关于软件项目工作量估算的叙述中,不正确的是( )。A.专家估计方法受到专家的背景知识和经验的影响B.复杂的模型不一定更准确C.机器学习方法可以准确估算项目工作量D.多种方法结合可以在某种程度上提高估算精度
论信息系统项目的成本管理项目成本管理是项目管理的一个重要组成部分,它是指在项目的实施过程中,为了保证完成项目所花费的实际成本不超过其预算成本而展开的项目成本估算、项目预算编制和项目成本控制等方面的管理活动。为保证项目能完成预定的目标,必须要加强对项目实际发生成本的控制,一旦项目成本失控,就难以在预算内完成项目,不良的成本控制会使项目处于超出预算的危险境地。在项目的实际实施过程中,项目超预算的现象还是屡见不鲜。实际上,只要在项目成本管理中树立正确思想,采用适当方法,遵循一定程序,严格做好估算、预算和成本控制工作,将项目的实际成本控制在预算成本以内是完全可能的。请围绕“论信息系统项目的成本管理”论题,分别从以下三个方面进行论述:1. 概要叙述你参与管理和开发的信息系统项目以及你在其中担任的主要工作。2. 结合你所参与的项目,从成本估算、成本预算和成本控制三方面论述项目成本管理所应实施的活动。3. 叙述你所参与的项目的成本管理过程,并加以评价。
电子政务是对现有的政府形态的一种改造,利用信息技术和其他相关技术,将其管理和服务职能进行集成,在网络上实现政府组织结构和工作流程优化重组。与电子政务相关的行为主体有三个,即政府、(12)及居民。国家和地方人口信息的采集、处理和利用,属于(13)的电子政务活动。【回答括号13】A.. 政府对政府B. 政府对居民C. 居民对居民D. 居民对政府
一个好的变更控制过程,给项目风险承担者提供了正式的建议变更机制。如下图所示的需求变更管理过程中,①②③处对应的内容应分别是( )。识别出问题A. 问题分析与变更描述、变更分析与成本计算、变更实现B. 变更描述与成本计算、变更分析、变更实现C. 问题分析与变更分析、成本计算、变更实现D. 变更描述、变更分析与变更实现、成本计算