题目详情

阅读以下说明和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; }

正确答案及解析

正确答案
解析

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调用。

你可能感兴趣的试题

单选题

E-mail地址由分隔符“()”分为前后两部分,分别指明用户名及邮件

  • A.//
  • B.\\
  • C.@
查看答案
单选题

某 html 文档中有如下代码,则在浏览器中打开该文档时显示为( )。

<form>

Listl:

<input type="text" name="List1" />

<br / >

List2:

<input type="text" name="List 2 " />

< /form>

初级程序员,章节练习,初级程序员真题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案
单选题

设有商品关系P(商品名,条形码,供应商号,价格,数量), “条形码”唯一标识关系P中的每一个元组,商品名不能为空,供应商号是关系P的外键。另有供应商关系S(供应商号,供应商名,地址,电话)。关系 P 中的商品名是唯一的。建立商品关系 P 的 SQL语句如下所示:

CREATE TABLE P( 商品名CHAR(30)( ),

条形码CHAR(30) ( ) ,

供应商号 CHAR(5) ,

价格 CHAR(20) ,

数量CHAR(20)

( )(供应商号) REFERENCES S(供应商号));

查询供应商及价格小于等于 2500 元且大于等于 1280 元的“电冰箱”的数量的SQL语句为:

SELECT商品名,供应商名,价格,数量

FROM P

WHERE商品名= ’电冰箱’ AND ( ) ;

将供应商号“12021”所供应的商品价格上涨3%的SQL语句为:

UPDATE P

( )

WHERE 供应商号= ’12021’;

查询供应商地址包含“西安”的供应商名及电话的SQL语句为:

SELECT供应商名,电话

FROM S

WHERE ( );

  • A.NULL
  • B.UNIQUE
  • C.NOT NULL
  • D.NOT NULL UNIQUE
查看答案
单选题

函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为( );若以传引用方式调用g,则函数f的返回值为( )。

初级程序员,章节练习,初级程序员真题

  • A.3
  • B.4
  • C.6
  • D.7
查看答案
单选题

初级程序员,章节练习,初级程序员真题

初级程序员,章节练习,初级程序员真题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案

相关题库更多 +