博客
关于我
全国计算机等级考试题库二级C操作题100套(第68套)
阅读量:243 次
发布时间:2019-03-01

本文共 2281 字,大约阅读时间需要 7 分钟。

第68套:

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所 在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#define M 5
#define N 20
int fun(char (*ss) 1, int n)
{ int i, k=0, len=0;
for(i=0; i<M; i++)
{ len=strlen(ss[i]);
if(i==0) n=2;
if(len>n) {
3;
k=i;
}
}
return(k);
}
main()
{ char ss[M][N]={“shanghai”,“guangzhou”,“beijing”,“tianjing”,“cchongqing”};
int n,k,i;
printf("\nThe original strings are :\n");
for(i=0;i<M;i++)puts(ss[i]);
k=fun(ss,&n);
printf("\nThe length of longest string is : %d\n",n);
printf("\nThe longest string is : %s\n",ss[k]);
}
解题思路:
第一处:形参ss的定义,它是一个字符串数组的定义,其宽度为N,所以应填:N。
第二处:取第一个字符串的长度赋值给变量
n,所以应填:len。
第三处:每循环一次,判断当前字符串的长度是否大于
n,如果大于,则
n=len。


给定程序MODI1.C中 fun 函数的功能是: 根据形参m,计算如下公式的值。 1 1 1 1

t = 1 + ----- ±---- + ----- + ……+ -----
2 3 4 m
例如,若输入 5,则应输出 2.283333。
请改正程序中的错误或在下划线处填上适当的内容并把下划线删除, 使它能计算出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
double fun( int m )
{
double t = 1.0;
int i;
for( i = 2; i <= m; i++ )
t += 1.0/k;


}

main()
{
int m;
printf( “\nPlease enter 1 integer number:” );
scanf( “%d”, &m );
printf( “\nThe result is %lf\n”, fun( m ) );
}
解题思路:
第一处:在此变量k没有定义过,再根据公式和for循环语句中所用的变量可知,这里的k实际上是i。
第二处:应是返回公式的值,函数中公式的值是存放在临时变量t中,所以应填return t;。


编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为: asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。

注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include <stdio.h>
#include <string.h>
int fun(char *str,char *substr)
{
}
main()
{
char str[81],substr[3];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf(“n=%d\n”,n);
NONO();
}
解题思路:
本题是统计一个字符串在另一个字符串中出现的次数。
程序流程如下:

  1. 利用strstr函数,首先找到第一个出现的位置。
  2. 利用while循环和strstr依次查找所有出现的位置,并进行统计,并把统计结果作为函
    数值返回。
    strstr(const char *s1, const char *s2)是字符串s2在s1中出现的位置,如果找到则返回位置指针。
    参考答案:
    int fun(char *str,char *substr)
    {
    int cnt = 0 ;
    char *p = str, *q ;
    while(*p) {
    q = strstr(p, substr) ;
    if(q == NULL) break;
    p = q + strlen(substr) ;
    cnt++ ;
    }
    return cnt ;
    }
    main()
    {
    char str[81],substr[3];
    int n;
    printf("输入主字符串: ");
    gets(str);
    printf("输入子字符串: ");
    gets(substr);
    puts(str);
    puts(substr);
    n=fun(str,substr);
    printf(“n=%d\n”,n);
    NONO();
    }

转载地址:http://oqbt.baihongyu.com/

你可能感兴趣的文章
Nginx配置ssl实现https
查看>>
nginx配置ssl证书https解决公网ip可以访问但是域名不行的问题
查看>>
Nginx配置TCP代理指南
查看>>
NGINX配置TCP连接双向SSL
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
nginx配置中的服务器名称
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置多个不同端口服务共用80端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-动静分离实例:搭建静态资源服务器
查看>>
Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
查看>>
Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>