C语言复习题整理 下载本文

{

s1++; s2++; }

return *s1-*s2; }

2.以下程序用来输出字符串。

#include main ( ) {

char *a[ ]={\ char **p;

for ( p=a; p

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.编一程序,求出从键盘输入的字符串的长度。