printf ( \ 【2】*p ); }
3.以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一个字符数组,然后输出该字符数组中的字符串,请填空。
#include main ( ) {
char str[81],*p; int i;
for (i=0;i<80;i++) {
str[i]=getchar( );
if (str[i]=='\\n’) break; }
str[i]= '\\0';
【3】p=str ;
while(*p) putchar(*p 【4】++ ); }
4.下面是一个实现把t指向的字符串复制到s的函数,请完成程序。
strcpy ( char *s, char *t ) {
while ( ( 【5】*s++ = *t++ ) !='\\0' ); }
5.下面count函数的功能是统计子串substr在母串str中出现的次数。
count(char *str, char *substr) {
int i,j`,k,num=0;
for (i=0; 【6】str[i]!='\\0' ; i++)
for ( 【7】j=i , k=0 ; substr[k]==str[j]; k++, j++) if (substr[ 【8】k+1 ]=='\\0') {
num++; break; } return(num); }
6.下面connect函数的功能是将两个字符串s和t连接起来。
connect (char *s, char *t) {
char *p=s;
while (*s) 【9】s++ ; while (*t) {
*s= 【10】*t ; s++; t++; } *s='\\0';
【11】return (p); }
三、阅读程序并写出运行结果 1.运行如下程序并分析其结果。
#include main ( ) {
void fun ( char *s ); static char str [ ]=\ fun ( str ); }
void fun ( char *s ) {
if ( *s ) {
fun ( ++s );
printf ( \ } }
2.运行如下程序并分析其结果。
#include
void sub ( int *x, int y, int z ) {
*x = y - z; } main ( ) {
int a, b, c; sub ( &a, 10, 5 ); sub ( &b, a, 7 ); sub ( &c, a, b );
printf ( \}
3.下列程序的功能是保留给定字符串中小于字母'n'的字母。请写出其结果并分析。
#include void abc ( char *p ) {
int i, j;
for ( i=j=0; *(p+i)!='\\0'; i++ ) if ( *(p+i)<'n' ) {
*(p+j)=(p+i); j++; }
*(p+j)='\\0'; } main( ) {
char str [ ]=\ abc ( str ); puts ( str ); }
4.运行如下程序并分析其结果。
#include
main ( ) {
char *a[4]={\ char *pt; pt=a;
printf(\}
5.设如下程序的文件名为myprogram.c,编译并连接后在DOS提示下键入命令:myprogram one two three,则执行结果是什么。
#include
main (int argc, char *argv[ ] ) {
int i;
for (i=1; i printf (\}
四、编程题
1.编一程序,求出从键盘输入的字符串的长度。 3.输入一个字符串,按相反次序输出其中的所有字符。
5.编写一个密码检测程序,程序执行时,要求用户输入密码(标准密码预先设定),然后通过字符串比较函数比较输入密码和标准密码是
否相等。若相等,则显示“口令正确”并转去执行后继程序;若不相等,重新输入,3次都不相等则终止程序的执行。
6.2 习题解答
三、阅读程序并写出运行结果 1.运行结果是: 3 23 123
2.运行结果是: 5, -2,7
3.答案是: mig
4.答案是: Sapporo 5.答案是:
one two three 四、编程题
1.编一程序,求出从键盘输入的字符串的长度。