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

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

第68套:

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

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include 
#define M 5#define N 20int fun(char (*ss)
1, int
n) { int i, k=0, len=0; for(i=0; i
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

解题思路:

第一处:形参ss的定义,它是一个字符串数组的定义,其宽度为N,所以应填:N。

第二处:取第一个字符串的长度赋值给变量n,所以应填:len。

第三处:每循环一次,判断当前字符串的长度是否大于n,如果大于,则n=len。

第68套:

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

1 1 1 1

t = 1 + ----- ±---- + ----- + ……+ ------

2 3 4 m

例如,若输入5,则应输出2.283333。

请改正程序中的错误或在下划线处填上适当的内容并把下划线删除, 使它能计算出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!

给定源程序:

#include 
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 
#include
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();}

解题思路:

本题是统计一个字符串在另一个字符串中出现的次数。

程序流程如下:

  • 利用strstr函数,首先找到第一个出现的位置。

  • 利用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/

    你可能感兴趣的文章
    Objective-C实现levenshteinDistance字符串编辑距离算法(附完整源码)
    查看>>
    Objective-C实现lfu cache缓存算法(附完整源码)
    查看>>
    Objective-C实现LFU缓存算法(附完整源码)
    查看>>
    Objective-C实现linear congruential generator线性同余发生器算法(附完整源码)
    查看>>
    Objective-C实现linear regression线性回归算法(附完整源码)
    查看>>
    Objective-C实现linear search线性搜索算法(附完整源码)
    查看>>
    Objective-C实现LinkedListNode链表节点类算法(附完整源码)
    查看>>
    Objective-C实现LinkedList链表算法(附完整源码)
    查看>>
    Objective-C实现logistic regression逻辑回归算法(附完整源码)
    查看>>
    Objective-C实现logistic sigmoid函数(附完整源码)
    查看>>
    Objective-C实现longest Common Substring最长公共子串算法(附完整源码)
    查看>>
    Objective-C实现longest increasing subsequence最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现longestCommonSubsequence最长公共子序列算法(附完整源码)
    查看>>
    Objective-C实现LongestIncreasingSubsequence最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现lorenz transformation 洛伦兹变换算法(附完整源码)
    查看>>
    Objective-C实现Lower-Upper Decomposition上下分解算法(附完整源码)
    查看>>
    Objective-C实现LowerCaseConversion小写转换算法(附完整源码)
    查看>>
    Objective-C实现lowest common ancestor最低共同祖先算法(附完整源码)
    查看>>
    Objective-C实现LRU 缓存算法(附完整源码)
    查看>>
    Objective-C实现LRU缓存(附完整源码)
    查看>>