• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            練習題(程序閱讀和編程)

            Posted on 2006-05-08 01:11 我愛C 閱讀(6517) 評論(5)  編輯 收藏 引用 所屬分類: C語言章節習題

            讀程序

            第一章? 概述

            ?[1]

            分析下列程序段的運行結果。

            ?? main( )

            ?? { char ch1='\101',ch2='\x 5c ';

            ???? printf("%c,%c\n",ch1,ch2);

            ?? }

            第二章? 基本數據類型和運算

            ?[1]

            分析下列程序,寫出運行結果。

            ??? main()

            ??? {printf("C語言各數據類型的長度為:\n");

            ???? printf("short %d bytes\n",sizeof(short));

            ???? printf("int %d bytes\n",sizeof(int));

            ???? printf("long %d bytes\n",sizeof(long);

            ???? printf("char %d bytes\n",sizeof(char));

            ???? printf("float %d bytes\n",sizeof(float));

            ???? printf("double %d bytes\n",sizeof(double));

            ??? }

            第三章? 順序、選擇和循環結構的程序設計

            ?[1]

            閱讀程序,寫出運行結果。

            ? ????main()

            ????? { int a=10,b=4,c=3;

            ??????? if (a<b) a=b;

            ??????? if (a<c) a=c;

            ??????? printf("%d,%d,%d",a,b,c);

            ????? }

            ?[2]

            閱讀下列程序,寫出程序的輸出結果。

            ????? main()

            ????? { int x=100,a=10,b=20,ok1=5,ok2=0;

            ??????? if (a<b)??

            ?????????? if (b!=15)??

            ?????????? ???if (!ok1)

            ?????????????????? x=1;

            ??????????????? else if(ok2)

            ??????????????????????? x=10;

            ???????????????????? else? x=-1;

            ??????? printf("%d\n",x);

            ????? }

            [3]

            閱讀下列程序,寫出程序運行的輸出結果。

            ????? main()

            ????? { int y=9;

            ??????? for (;y>0;y--)

            ??????????? if(y%3==0)

            ????????????? {

            ?????????????? printf("%d",--y);

            ?????????????? continue;

            ????????????? }

            ????? }

            ?[4]

            閱讀下列程序:

            ??? main()

            ??? {int a;

            ???? char b;

            ???? float c;

            ???? printf("input a b c:");

            ???? scanf("%d%c%f",&a,&b,&c);

            ???? printf("a=%d,b=%c,c=%f\n",a,b,c);

            ??? }

            ??? 程序運行后若輸入“1234r1234.567(回車)”,寫出程序的輸出結果。

            [5]

            閱讀下列程序:

            ??? main()

            ??? {int a;

            ???? float b,c;

            ???? printf("input a b c:");

            ???? scanf("%2d% 3f % 4f ",&a,&b,&c);

            ???? printf("a=%d,b=%f,c=%f",a,b,c);

            ??? }

            ??? 程序運行后若輸入“12345678987654321(回車)”,寫出程序的輸出結果。

            ?

            [6]

            閱讀下列程序:

            ??? main()

            ??? {int a;

            ???? float b,c;

            ???? scanf("%d%f%f",&a,&b,&c);

            ???? printf("a=%d,b=%f,c=%f",a,b,c);

            ??? }

            ??? 程序運行后若輸入“12 345 6789 87654321(回車)”,寫出程序的輸出結果。

            ?

            ?[7]

            閱讀下列程序:

            ??? main()

            ??? { int a;

            ????? float b,c;

            ????? printf("input a b c:");

            ????? scanf("%d,%f,%f",&a,&b,&c);,

            ????? printf("a=%d,b=%f,c=%f\n",a,b,c);

            ??? }

            ??? 程序運行后若輸入“12345,678,976.388(回車)”,寫出程序的輸出結果。

            [8]

            閱讀程序,寫出運行結果。假設輸入:123-45-6789(回車)

            ??? main()

            ??? {int a,b,c;

            ???? printf("input a b c:");

            ???? printf("ABC=%d\n",scanf("%3d-%2d-%4d",&a,&b,&c));

            ???? printf("a=%d,b=%d,c=%d\n",a,b,c);

            ?? }

            第四章? 數組

            ?[1]

            閱讀程序,寫出運行結果:

            ????? main()

            ????? { static int a[][3]={9,7,5,3,1,2,4,6,8};

            ??????? int i,j,s1=0,s2=0;

            ??????? for(i=0;i<3;i++)

            ???????????? for(j=0;j<3;j++)

            ???????? ????????{ if(i==j)s1=s1+a[i][j];

            ?????????????????? if(i+j==2) s2=s2+a[i][j];

            ???????????????? }

            ??????? printf("%d\n%d\n",s1,s2);

            ????? }

            [2]

            說明下列程序的功能。

            ????? main()

            ????? { int i,j;

            ??????? float a[3][3],b[3][3],x;

            ??????? for(i=0;i<3;i++)

            ??????????? for(j=0;j<3;j++)

            ??????????????? { scanf("%f",&x);a[i][j]=x;}

            ??????? for(i=0;i<3;i++)

            ??????????? for(j=0;j<3;j++)b[j][i]=a[i][j];

            ??????? for (i=0;i<3;i++)

            ??????????? { printf("\n");

            ????????????? for(j=0;j<3;j++) printf("%f ",b[i][j]);

            ??????????? }

            ??? ???}

            ?

            ?[3]

            寫出下列程序的運行結果。

            ?????? main()

            ?????? { static char a[]={'*','*','*','*','*'};

            ???????? int i,j,k;

            ???????? for(i=0;i<5;i++)

            ???????????? { printf("\n");

            ?????????????? for(j=0;j<i;j++)? printf("%c",' ');

            ?????????????? for (k=0;k<5;k++) printf("%c",a[k]);

            ?? ??????????}

            ?????? }

            [4]

            說明下列程序的功能。

            ?????? main()

            ?????? { int i,j;

            ???????? float a[3][3],b[3][3],c[3][3],x;

            ???????? for(i=0;i<3;i++)

            ???????????? for(j=0;j<3;j++)

            ???????????????? {scanf("%f",&x);a[i][j]=x;}

            ???????? for(i=0;i<3;i++)

            ???????????? for(j=0;j<3;j++)

            ???????????????? {scanf("%f",&x);b[i][j]=x;}

            ???????? for(i=0;i<3;i++)

            ???????????? for(j=0;j<3;j++) c[i][j]=a[i][j]+b[i][j];

            ???????? for(i=0;i<3;i++)

            ???????????? { printf("\n");

            ?????????????? for(j=0;j<3;j++) printf("%f ",c[i][j]);

            ???????? ????}

            ???????? }




            編程

            前三章

            ?[1]

            請編寫輸出以下圖案的程序,圖案的行數由輸入的值確定。

            ????????? A

            ???????? BBB

            ??????? CCCCC

            ?????? DDDDDDD

            ????? EEEEEEEEE

            [2]

            請編寫程序,輸入一行數組字符(用EOF結束),每個數字字符的前后都有空格。請編程,把這一行中的數字轉換成一個整數。例如:若輸入2?? 4?? 8?? 3〈CR>? (<CR>表示回車)

            則輸出整數:2483.

            ?[3]

            編寫程序打印出以下形式的乘法九九表。

            **? 乘法口訣? **

            ? ????? (1)??? (2)?? (3)?? (4)?? (5)?? (6)?? (7)?? (8)?? (9)?

            ??????????????????????????????????????????????????????????

            (1)???? 1????? 2???? 3???? 4???? 5???? 6???? 7???? 8???? 9

            (2)???? 2????? 4???? 6???? 8??? 10??? 12??? 14??? 16??? 18

            (3)???? 3????? 6???? 9??? 12??? 15??? 18??? 21??? 24??? 27

            (4)???? 4????? 8??? 12??? 16??? 20??? 24??? 28??? 32??? 36

            (5)???? 5???? 10??? 15??? 20??? 25??? 30??? 35??? 40??? 45

            (6)???? 6???? 12??? 18??? 24??? 30??? 36??? 42??? 48??? 54

            (7)???? 7???? 14??? 21??? 28??? 35? ??42??? 49??? 56??? 63

            (8)???? 8???? 16??? 24??? 32??? 40??? 48??? 56??? 64??? 72

            (9)???? 9???? 18??? 27??? 36??? 45??? 54??? 63??? 72??? 81

            ??????????????????????????????????????????????????????????

            第四章? 數組

            ?[1]

            編程序,輸入單精度型一維數組a[10],計算并輸出a數組中所有元素的平均值。

            [2]

            編程序,輸入10個整數存入一維數組,再按逆序重新存放后再輸出。

            [3]

            編程序,輸入兩個字符串(<40個字符),連接后輸出(不準用系統函數)。

            [4]

            編程序,按下列公式計算s的值(其中x1、x2、…、xn由鍵盤輸入):

            ??

            s=(x1-x0)2+(x2-x0)2+.....+(xn-x0)2? (其中x0是x1、x2、…、xn的平均值)???????

            [5]

            輸入一個3×5的整數矩陣(假設所有的數據互不相同),輸出其中最大值、最小值和它們的下標。

            [6]

            輸入一個字符串,將其中的所有大寫字母改為小寫字母,而所有小寫字母全部改為大寫字母,然后輸出。

            [7]

            設某班50名學生的三科成績表如下:

            ??????? 課程一??????? 課程二??????? 課程三

            ???????? ????????????? ???????????

            ??? 試編一個程序,輸入這50個學生的三科成績,計算并輸出每科成績的平均分。

            [8]

            編一個程序,輸入一個短整型數據,輸出每位數字,其間用逗號分隔。例如輸入整數為2345,則輸出應為:2,3,4,5。

            [9]

            編一個程序,輸入一個字符串,將其中所有的大寫英文字母+3,小寫英文字母-3。然后再輸出加密后的字符串。

            [10]

            編一個程序,將按第9題中加密的字符串(從鍵盤輸入)解密后輸出。

            ?

            [11]

            輸入一行數字字符,請用數組元素坐位計數器來統計每個數字字符的個數。用下標為0的元素統計字符“1”的個數,下標為1的元素統計字符“2”的個數,....。

            [12]

            輸入若干有序數放在數組中,然后輸入一個數,插入到此有序數列中,插入后,數組中的數仍然有序。請對以下三種情況運行你的程序,以便驗證你的程序是否正確。

            1)插在最前???? (2)插在最后?????? (3)插在中間





            參考答案

            第一章? 概述

            [1]

            運行后在屏幕上顯示:A,\(換行)

            第二章? 基本數據類型和運算

            [1]

            sizeof運算符測定所用的C系統中各種類型數據的長度。運行后,得到以下結果:

            ????????? C語言各數據類型的長度為:

            ????????? short 2 bytes

            ????????? int 2 bytes

            ????????? char 1 bytes

            ????????? long 4 bytes

            ????????? float 4 bytes

            ????????? double 8 bytes

            第三章? 順序、選擇和循環結構的程序設計

            [1]

            10,4,3

            [2]

            -1

            [3]

            852

            [4]

            a=1234,b=r,c=1234.567017

            [5]

            a=12,b=345.000000,c=6789.000000

            [6]

            a=12,b=345.000000,c=6789.000000

            [7]

            a=12345,b=678.000000,c=976.388000

            [8]

            input a b c:

            ?????? ABC=3

            ?????? a=123,b=45,c=6789

            第四章? 數組

            [1]

            ? 18

            ? 10

            [2]

            從鍵盤上輸入一個3×3矩陣,將其轉置后形成3×3矩陣輸出。

            [3]

            ????? *****

            ?????? *****

            ??? ??? *****

            ??? ???? *****

            ??? ????? *****

            [4]?

            將鍵盤上輸入的兩個3×3矩陣的對應元素相加后輸出。

            ?

            ?

            編程

            前三章

            [1]

            請編寫輸出以下圖案的程序,圖案的行數由輸入的值確定。

            ????????? A

            ???????? BBB

            ??????? CCCCC

            ?????? DDDDDDD

            ????? EEEEEEEEE

            ?

            #include<stdio.h>

            main()

            {char ch;

            ?int i,j,p,t=1;

            ?scanf("%d",&p);

            ?for(i=1;i<=p;i++)

            ???? { for(j=(p-i);j>0;j--)putchar(' ');

            ?????? for(j=1;j<=t;j++)putchar('A'+i-1);

            ?????? printf("\n");

            ????? ?t=t+2;

            ???? }

            }

            [2]

            請編寫程序,輸入一行數組字符(用EOF結束),每個數字字符的前后都有空格。請編程,把這一行中的數字轉換成一個整數。例如:若輸入2?? 4?? 8?? 3〈CR>? (<CR>表示回車)

            則輸出整數:2483.

            ?

            #include<stdio.h>

            main()

            { char ch;

            ? while((ch=getchar())!=EOF)

            ???? if(ch!=' ')putchar(ch);

            }

            ?

            ?[3]

            編寫程序打印出以下形式的乘法九九表。

            **? 乘法口訣? **

            ?????? (1)??? (2)?? (3)?? (4)?? (5)?? (6)?? (7)?? (8)?? (9)?

            ??????????????????????????????????????????????????????????

            (1)???? 1????? 2???? 3???? 4???? 5???? 6???? 7???? 8???? 9

            (2)???? 2????? 4???? 6???? 8??? 10??? 12??? 14??? 16??? 18

            (3)???? 3????? 6???? 9??? 12?? ?15??? 18??? 21??? 24??? 27

            (4)???? 4????? 8??? 12??? 16??? 20??? 24??? 28??? 32??? 36

            (5)???? 5???? 10??? 15??? 20??? 25??? 30??? 35??? 40??? 45

            (6)???? 6???? 12??? 18??? 24??? 30??? 36??? 42??? 48??? 54

            (7)???? 7???? 14??? 21??? 28??? 35??? 42??? 49??? 56??? 63

            (8)???? 8???? 16??? 24??? 32??? 40??? 48??? 56??? 64??? 72

            (9)???? 9???? 18??? 27??? 36??? 45??? 54??? 63??? 72??? 81

            ??????????????????????????????????????????????????????????

            [3]

            #include <stdio.h>

            main()

            { int i,j;

            ? printf("????????????? **乘法口訣**?????????? \n");

            ? for(i=1;i<=9;i++)printf("????? (%d) ",i);

            ? printf("\n");

            ? for(i=1;i<=9;i++)

            ? { printf("(%d)",i);

            ?????? for(j=1;j<=9;j++)

            ?????????? printf("%5d",i*j);

            ?????? printf("\n");

            ? }

            }

            ?

            第四章? 數組

            ?[1]

            編程序,輸入單精度型一維數組a[10],計算并輸出a數組中所有元素的平均值。

            ?

            #include <stdio.h>

            main()

            {int i;

            ?float a[10],f=0;

            ?for(i=0;i<=9;i++)

            ??? {scanf("%f",&a[i]);f=f+a[i];}

            ?printf("f=%f",f/10);

            }

            [2]

            編程序,輸入10個整數存入一維數組,再按逆序重新存放后再輸出。

            #include <stdio.h>

            main()

            ?{int i,j,a[10],k;

            ? for(i=0;i<=9;i++) scanf("%d",&a[i]);

            ? for(i=0,j=9;i<=4;i++,j--)

            ??????? {k=a[i];a[i]=a[j];a[j]=k;}

            ? for(i=0;i<=9;i++) printf("%d",a[i]);

            ?}

            [3]

            編程序,輸入兩個字符串(<40個字符),連接后輸出(不準用系統函數)。

            ?

            #include "string.h"

            #include <stdio.h>

            main()

            ?{int i,j,k;

            ? char str1[80],str2[40];

            ? scanf("%s",str1);

            ? scanf("%s",str2);

            ? k=strlen(str1);

            ? j=strlen(str2);

            ? for(i=0;i<=j;i++) str1[k+i]=str2[i];

            ? printf("%s",str1);

            ?}

            [4]

            編程序,按下列公式計算s的值(其中x1、x2、…、xn由鍵盤輸入):

            ??

            s=(x1-x0)2+(x2-x0)2+.....+(xn-x0)2? (其中x0是x1、x2、…、xn的平均值)???????

            #include <stdio.h>

            #define? N 10

            main()

            ?{int i;

            ? float s=0,x[N+1];

            ? x[0]=0;

            ? for(i=1;i<=N;i++)

            ??? {scanf("%f",&x[i]);x[0]=x[0]+x[i];}

            ? x[0]=x[0]/N;

            ? for(i=1;i<=N;i++) s=s+(x[i]-x[0])*(x[i]-x[0]);

            ? printf("%f",s);

            ?}

            [5]

            輸入一個3×5的整數矩陣(假設所有的數據互不相同),輸出其中最大值、最小值和它們的下標。

            ?

            #include <stdio.h>

            main()

            ?{int i,j,a[3][5],d,d1,d2,x,x1,x2;

            ? for(i=0;i<3;i++)

            ??? for(j=0;j<5;j++)scanf("%d",&a[i][j]);

            ? x=d=a[0][0];x1=x2=d1=d2=0;

            ? for(i=0;i<3;i++)

            ??? for(j=0;j<5;j++)

            ????? if(d<a[i][j]) {d=a[i][j];d1=i;d2=j;}

            ????? else if(x>a[i][j]) {x=a[i][j];x1=i;x2=j;}

            ? printf("max=%d,h=%d,l=%d\n",d,d1,d2);

            ? printf("min=%d,h=%d,l=%d\n",x,x1,x2);

            ?}

            [6]

            輸入一個字符串,將其中的所有大寫字母改為小寫字母,而所有小寫字母全部改為大寫字母,然后輸出。

            #include <ctype.h>

            #include <stdio.h>

            main()

            ?{ char i,a[80];

            ?? scanf("%s",a);

            ?? for(i=0;i<strlen(a);i++)

            ??? if islower(a[i]) a[i]=a[i]-32;

            ??? else if isupper(a[i]) a[i]=a[i]+32;

            ?? printf("%s",a);

            ?}

            [7]

            設某班50名學生的三科成績表如下:

            ??????? 課程一??????? 課程二??????? 課程三

            ???????? ????????????? ???????????

            ??? 試編一個程序,輸入這50個學生的三科成績,計算并輸出每科成績的平均分。

            #include <stdio.h>

            #define? N 50

            main()

            ?{int i,s[N][3];

            ? float s0=0,s1=0,s2=0;

            ? for(i=0;i<N;i++)

            ?? {?? scanf("%d,%d,%d",&s[i][0],&s[i][1],&s[i][2]);

            ?????? s0=s0+s[i][0]; s1=s1+s[i][1];s2=s2+s[i][2];

            ??? }

            ? s0=s0/N;s1=s1/N;s2=s2/N;

            ? printf("%f,%f,%f",s0,s1,s2);

            ?}

            [8]

            編一個程序,輸入一個短整型數據,輸出每位數字,其間用逗號分隔。例如輸入整數為2345,則輸出應為:2,3,4,5。

            ?

            #include <stdio.h>

            main()

            ?{short i=0,j,c[6];

            ? ?scanf("%d",&j);

            ? do{ c[i]=j%10;

            ????? i++;

            ????? j=j/10; }while(j!=0);

            ? for(--i;i>=0;i--)

            ???? { printf("%d",c[i]); if(i>0) printf(",");}

            ?}

            [9]

            編一個程序,輸入一個字符串,將其中所有的大寫英文字母+3,小寫英文字母-3。然后再輸出加密后的字符串。

            #include <ctype.h>

            #include<stdio.h>

            main()

            ?{char i,a[80];

            ? scanf("%s",a);

            ? for(i=0;i<strlen(a);i++)

            ????? if (islower(a[i])) a[i]=a[i]-3;

            ?????????? else if (isupper(a[i])) a[i]=a[i]+3;

            ? printf("%s",a);

            ?}

            [10]

            編一個程序,將按第9題中加密的字符串(從鍵盤輸入)解密后輸出。

            ?

            #include <stdio.h>

            main()

            ?{char i,a[80];

            ? scanf("%s",a);

            ? for(i=0;i<strlen(a);i++)

            ????? if (a[i]>=94 && a[i]<=119) a[i]=a[i]+3;

            ?????????? else if (a[i]>=68 && a[i]<=93) a[i]=a[i]-3;

            ? printf("%s",a);

            ?}

            [11]

            輸入一行數字字符,請用數組元素坐位計數器來統計每個數字字符的個數。用下標為0的元素統計字符“1”的個數,下標為1的元素統計字符“2”的個數,....。

            #include<stdio.h>

            main()

            { int a[10]={0},i;

            ? char c;

            ? while((c=getchar())!='\n')

            ? if(c<='0'&&c<='9')

            ??? if(c=='0')a[9]++;

            ??? else? a[c-'1']++;

            ? for(i=0;i<=9;i++)printf("%d,",a[i]);

            }

            ?

            [12]

            輸入若干有序數放在數組中,然后輸入一個數,插入到此有序數列中,插入后,數組中的數仍然有序。請對以下三種情況運行你的程序,以便驗證你的程序是否正確。

            1)插在最前???? (2)插在最后?????? (3)插在中間

            [12]

            #include<stdio.h>

            main()

            { int a[10]={ -1,3,5,9,12,15,17,19,21 },x,p,i;

            ? scanf("%d",&x);

            ? for(i=0;i<10;i++)???????

            ??? if(a[i]>=x){p=i;break;}

            ??? else if(a[i]==-1) {p=i;break;}

            ??? else {p=9;break;}

            ? for(i=9;i>p;i--)?

            ???? a[i]=a[i-1];

            ???? a[p]=x;

            ? for(i=0;i<=9;i++)printf("%d,",a[i]);

            }

            ?

            Feedback

            # re: 練習題(程序閱讀和編程)  回復  更多評論   

            2006-10-11 21:42 by fengzgxing
            很好,很有針對性.


            我想知道答案在什么地方

            # re: 練習題(程序閱讀和編程)  回復  更多評論   

            2006-12-04 13:25 by 米威
            兄弟你搞的太有心得了

            我也是剛學習C
            覺得終結及習題都還可以啊
            不知能否下載

            # re: 練習題(程序閱讀和編程)  回復  更多評論   

            2007-04-24 15:12 by 楊曉軍
            有3個數整數a、b、c,由鍵輸入,輸出其中最大的數

            # re: 練習題(程序閱讀和編程)[未登錄]  回復  更多評論   

            2007-09-22 11:15 by
            謝了。

            # re: 練習題(程序閱讀和編程)  回復  更多評論   

            2007-11-10 10:42 by 星夢
            建議你不要用一些跟書本類似的程序,用一些課外的程序.比例自己編寫一個像防火墻、殺毒軟件類似于此的程序,祝你在這方面步步越進!

            久久精品国产亚洲av影院| 久久综合伊人77777| 亚洲色欲久久久久综合网| 亚洲狠狠综合久久| 久久综合给合久久国产免费 | 亚洲国产成人久久综合野外| 亚洲国产另类久久久精品小说| 久久精品国产亚洲av水果派| 伊人色综合九久久天天蜜桃| 久久精品国产色蜜蜜麻豆| 99国产精品久久久久久久成人热| 久久亚洲精精品中文字幕| 影音先锋女人AV鲁色资源网久久| 国色天香久久久久久久小说| 超级碰碰碰碰97久久久久| 久久乐国产精品亚洲综合| 伊人色综合九久久天天蜜桃| 久久午夜无码鲁丝片秋霞| 亚洲AV无一区二区三区久久| 久久久无码人妻精品无码| 国产成人精品久久免费动漫| 国内精品久久久久久久coent | 偷窥少妇久久久久久久久| 久久久久噜噜噜亚洲熟女综合| 青青久久精品国产免费看| 亚洲精品无码久久久| 精品久久久无码21p发布| 久久久91精品国产一区二区三区| 91超碰碰碰碰久久久久久综合| 久久精品一区二区三区中文字幕| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 麻豆精品久久久一区二区| 久久人人爽人人爽人人片AV东京热| 四虎久久影院| 午夜不卡久久精品无码免费| 久久精品国产91久久综合麻豆自制| 亚洲国产精品综合久久一线| 久久丫精品国产亚洲av| 青青草原综合久久大伊人导航| 久久国产乱子精品免费女| 欧美久久亚洲精品|