本文共 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(); } 解题思路: 本题是统计一个字符串在另一个字符串中出现的次数。 程序流程如下:转载地址:http://oqbt.baihongyu.com/