C語言程序的設(shè)計習(xí)題與上機的指南答案_第1頁
C語言程序的設(shè)計習(xí)題與上機的指南答案_第2頁
C語言程序的設(shè)計習(xí)題與上機的指南答案_第3頁
C語言程序的設(shè)計習(xí)題與上機的指南答案_第4頁
C語言程序的設(shè)計習(xí)題與上機的指南答案_第5頁
已閱讀5頁,還剩163頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一部分習(xí)題篇

第一章C語言概述

一?單選題

1?以下說法中正確的是(C)。

A)C語言程序總是從第一個函數(shù)開始執(zhí)行

B)在C語言程序中,要調(diào)用函數(shù)必須在main。函數(shù)中定義

C)C語言程序總是從main。函數(shù)開始執(zhí)行

D)C語言中的main。函數(shù)必須放在程序的開始部分

2?一個C語言程序是由(B)。

A)一個主程序和若干子程序組成B)函數(shù)組成

C)若干過程組成D)若干子程序組成

3,C語言規(guī)定,在一個源程序中,main函數(shù)的位置(C)。

A)必須在最開始B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面

C)可以任意D)必須在最后

4?以下敘述不正確的是(D)。

A)一個C源程序可由一個或多個函數(shù)組成

B)一個C源程序必須包含一個main函數(shù)

C)C程序的基本組成單位是函數(shù)

D)在C程序中,注釋只能位于一條語句的后面

5-下列關(guān)于C語言的說法不正確的是(D)。

A)C語言既有高級語言的功能,也具有低級語言的一些功能

B)C語言中的一條執(zhí)行語句都必須用分號結(jié)束

C)注釋可以出現(xiàn)在程序?任意合適的地方

D)include命令行后面必須加分號

6?用C語言編寫的代碼程序(B)。

A)可以立即執(zhí)行B)是一個源程序

C)經(jīng)過編譯即可執(zhí)行D)經(jīng)過編譯解釋才能執(zhí)行

7?用高級語言(如C語言)編寫的程序稱為(A)

A)源程序B)目標程序C)可執(zhí)行程序D)編譯程序

8,一個函數(shù)的組成有(A)。

A)函數(shù)首部和函數(shù)體B)函數(shù)名和函數(shù)的聲明部分

C)主函數(shù)和子函數(shù)D)聲明部分和執(zhí)行部分

9?在C語言中,用來表示“取地址”的符號是(B)。

A)#B)&C)*D)@

10?C語言是計算機高級語言,它適合于作為系統(tǒng)描述語言,它(A)。

A)既可用來寫系統(tǒng)軟件,也可用來寫應(yīng)用軟件

B)只能寫系統(tǒng)軟件,不能用來寫應(yīng)用軟件

C)不能寫系統(tǒng)軟件,只能用來寫應(yīng)用軟件

D)既不能寫系統(tǒng)軟件,也不能寫應(yīng)用軟件

二?填空題

1?C語言用遙數(shù)作為程序的模塊單位,便于實現(xiàn)程序的模塊化。

2-C語言允許直接訪問物理地址,能進行他操作。

3?用C語言編寫的程序,每一個語句和數(shù)據(jù)定義的結(jié)尾必須要有一個卻1。

4,每個C程序中必須有一個main()函數(shù)。

5?C程序中的函數(shù)體由11括起來。

6?C程序中的“\n”我示在程序運行中換行。

7?C程序中,7*……*/"表示注釋部分o

8?C程序中,一個函數(shù)由函數(shù)首部和函數(shù)體組成。

9?一個C程序總是從膽皿函數(shù)開始執(zhí)行的,不論該函數(shù)在整個程序中的位置如何。

10?在紙上編好一個C源程生后,要經(jīng)過編輯、韁逢、連接、運疝這幾個步驟進行上機運行。

三?判斷題

1?C語言不具有低級語言的特性。(鋌)

2?C語言之所以也被稱為中級語言,是因為它比高級語言的功能要少,而比低級語言的功能

多。(型)

3?C語言與其他高級語言一樣具有結(jié)構(gòu)化的控制語句。(對)

4?C語言允許直接訪問物理地址。(對:)

5?每一個C程序必須有一個main函數(shù)。(過)

61C程序的語句最后應(yīng)有一個分號。(曳)

7?C程序中的main函數(shù)必須放在整個程序的最前頭。(轉(zhuǎn))

8?計算機高級語言對源程序進行翻譯有兩種方式:編譯和解釋。(對)

四?編程題

1,編寫一個C程序,諭出以下信息:

*lz>1/'I/>1/

zT*zT*/T\/TvzT*/T\/T*

lamastudent.

、|zsi/xt/\i/\L/>1/

,卜zjxzj\,卜<f\/jx,卜rgs

#include<stdio.h>/米包含頭文件,為了使用printf和scanf語句,注意句末無分號※/

voidmain()

printf(",**********\n”);/*\n的作用相當于回車*/

printf("lamastudent.\n");

printf("糅*********\n”);

)

2,編寫一個C程序,輸入a、b兩個數(shù),輸出其的數(shù)。:只用一個主函數(shù))

#include<stdio.h>

voidmain()

(

inta,b;

printf(<4Pleaseinputa.b:\rT);

scanf("%d,髡d”,&a,&b);/*注意輸入兩個數(shù)之間用逗號分隔*/

if(a>b)

printf(黑d”,a);

else

printf(黑d”,b);

)

3?編寫一個C程序,諭入a、b、c三個數(shù),輸出其中最大數(shù)。(只用一個主函數(shù))

#include<stdio.h>

voidniain()

(

inta,b,c,max;

printf(UPleaseinputa:b,c:\n");

scanf(u%d,%d,%d”,&a,&b,&c);

nax=a;

if(a<b)max=b;/*max用于保存a,b中比較大的數(shù)*/

if(max<c)max=c;將a,b中較大的數(shù)再和c比較*/

printf(uThe1argestnunberis?odM,max);

第二章數(shù)據(jù)與運算

一?單選題

1?C語言中最簡單的數(shù)據(jù)類型包括(B)。

A)整型、實型、邏輯型B)整型、實型、字符型

C)整型、字符型、邏輯型D)字符型、實型、邏輯型

2?C語言中運算對象必須是整型的運算符是(D)。

A)*B)/C)=D)%

3?在C程序中,以下不正確的敘述是(D)。

A)逗號運算符的優(yōu)先級最低

B)ABC和abc是兩個不同的變量

C)若a和b類型一樣,在執(zhí)行了賦值表達式a二b后,b中的值將放入a中,而b的值不變

D)當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型

數(shù)據(jù)

4,設(shè)有intx=8,表達式x++米1/3的值是(A)。

A)2B)3C)8D)9

5,若m,x,y,z都是整型變量,則計算表達式m=(x=5,y=10,z=25)執(zhí)行后,m的值為(C)。

A)5B)10C)25D)40

6,設(shè)變量i是int類型,f是float型,d是double型,執(zhí)行表達式5+'i'-f*d?其結(jié)

果的數(shù)據(jù)類型為(B)。

A)int型B)double型C)float型D)非法表達式

7?設(shè)變量i是int類型,執(zhí)行語句i='A'+2?5后?正確的敘述是(C)°

A)i的值是字符DB)i的值是字符A的.ASCII值加上2?5

C)i的值是字符A的ASCII值加上2D)非法表達式

8?下列是用戶自定義標識符的是(B)。

A)intB)_xyC)2xyD)3-xy

9?下面與x=y++完全等價的表達式是(A)。

A)x=y,y=y+lB)x=x+1,y=xC)x=++yD)x+=y+l

10?已知各變量的類型說明如下:

intk,a,b;

longw=8;

floatx=2-56;

以下不符合C語言語法的表達式是(A)。

A)x%5B)w—=5C)k=(a=8,b=6,a-b)D)a+=a-=(b=2)*(a=5)

11?運行以下程序段時編譯出錯,其原因是(D)。

charcl=,a*,c2=*123*;

printf("%c,%d\n",cl,c2);

A)字符串要用“123"表示B)‘123'只能賦值給字符數(shù)組

C)c2是字符變量,不能用96d格式輸出D)c2是字符變量,只能賦以字符常量

12?若定義floata;,現(xiàn)要從鍵盤輸入a數(shù)據(jù),其整數(shù)位為3位,小數(shù)位為2位,則選用(A)。

A)scanf("%6fH,&a);B)scanf(H%5?2f",a);

C)scant("%6?2f\&a);D)scanf("%f\a);

13?若定義doublet;?則表達式t=l,t+5,++t的值為(B)。

A)1?0B)2-0C)6-0D)7-0

14?已知各變量的類型說明如下,則C語言中錯誤的表達式是(A)。

intk,a,b;

unsignedlongw=5;

doublex=l?42;

A)x%(-3)B)w+=2

C)k=(a=2,b=3,a+b)D)a+=a-=(b=4*(a=3))

15-以下程序段的運行結(jié)果是(C)。

inta=0,b=0,c=0;

if(a&&++b)c++;

printf("/od,?^d\n",b,c):

A)1,1B)1,000,0D)0,1

二?填空題

1?在C語言中,一個float型數(shù)據(jù)在在中所占的字節(jié)數(shù)為4,一個double型數(shù)據(jù)在在中所

占的字節(jié)數(shù)是8。

2?下面程序的輸出結(jié)果是避。

main()

{

inta=2,b=3,c=4;

a*=16+(bH)-(++c);

printf("%d",a);

)

3?下面程序的榆出結(jié)果是5。

mainO

{

intx=17,y=26;

printf("%d”,y/=(x%=6));

)

4,執(zhí)行下面程序段后,c3中的值是。。

intcl=l,c2=2,c3;

c3=l-0/c2*cl;

5,迸行下列變量定義后?表達式a*b+d-c的類型是double。

chara;

intb;

floatc:

doubled;

6?下面程序的輸出結(jié)果是

mainO

{

intx=010,y=10;

printf(M%d,%d\nw.x,y);

)

7?下面程序的輸出結(jié)果是W。

mainO

intx=3,y=5;

printf(M%d\nM,x=(x—)*(—y));

)

8?已知字母A的ASCII碼是十進制數(shù)65諛c為字符型變量則表達式c='A'+'5'-'2'

的值為D或68。

9?下面程序的輸出結(jié)果是園。

main()

I

intx=065;

printf("%d\n",-x);/

}

10-下面程序的輸出結(jié)果是25,21,37。

mainO

(

inta,b,c;

a=25;

b=025;

c=0x25

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

)

11?下面程序的輸出結(jié)果是越。

main()

intx=0110;

printf("%x\n”,x);

)

12?下面程序的輸出結(jié)果是20200.000000。

main()

(

charc;

intn=100;

floatf=10;

doublex;

x=f*=n/=(c=5);

printf("%d%f\n",n:x);

)

13?寫出下面程序的運行結(jié)果。(請用U表示空格)

mainO

{

charcl=,a,c2=b',c3='c',c4='MOT,c5=,\116';

printf(4a/ocUb%c\tc%c\tabc\nM,cl,c2,c3);

printf("\t\b%cU%c'n",c4,c5);

)

程序的運行結(jié)果是:aaUbbUUUccUUUUUUabc

AUN

14-下面程序的運行結(jié)果是9,11,9,10。

main()

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(M%d,%d,%d,%d\n"n);

}

15-以下程序的運行結(jié)果是IL50。

#include<stdio.h>

voidmain()

f

inti=5,j=9;

floatx=2.3,y=4.5;

printf("%8.2f\n",i髡(int)(x+y)*j/2/3+y);

1

三-判斷題

1,C語言中,字符常量可以用單引號或雙引號括起來。(鋌)

2?C語言中,字符常量只能包含一個常量(字符)。(過)

3,在C語言中,字符串常量隱含欠理成以‘\0'結(jié)尾。(對)

4-下面程序段的輸出結(jié)果是9。(轉(zhuǎn))

inta=9;

printf("%o\n",a);(注意:%o中的o是字母o,不是數(shù)字0)

5?C語言中,用戶所定義的標識符允許使用關(guān)鍵字。(鍍)

6?C語言中,用戶所定義的標識符中,大、小字母代表不同標識。(對)

7?C語言中,符號常量的值在程序運行過程中可以改變。(轉(zhuǎn))

8,C語言中,不要求對程序中所用到的變量進行強制定義。(錯)

9c語言中,一個整數(shù)如果其值在一323768?32767圍,認為它是int型,只能賦值給int型

變量。(鏈)

10?設(shè)一個C系統(tǒng)的float型有效數(shù)字是7位,則超過7位數(shù)的運算是不準確的。(對)

四?計算題

1?求下面表達式的值。

1)x+a%3*(int)(x+y)%2/4設(shè)x=2-5,a=7,y=4?7

第1步:(int)(x+y)=(int)(7.2)=7

第2步:a%3*7?2/4=7%3*7%2/4=l*7%2/4=l/4=0

第3步:x+0=x=2.5(計算機顯示為2.500000)

2)(float)(a+b)/2+(int)x%(int)y設(shè)a=2,b=3,x=3?5,y=2?5

第1步:(float)(a+b)/2=(float)(2+3)/2=(float)(5)/2=5.0/2=2.5

第2步:(int)x%(int)y=(int)(3.5)%(int)(2.5)=3%2=1

第3步:2.5+1=3.5(計算機顯示為3.500000)

2,寫出下面賦值表達式運算后a的值,設(shè)原來a=12?n=5°

1)a+=aa=a+a=l2+12=24

2)a-=2a=a-2=l2-2=10

3)a*=2+3a=a*(2+3)=12*5=60

4)a/=a+aa=a/(a+a)=12/24=0注意a是整型

5)a%=(n%=2)已知:n=5a=0

6)a+=a-=a*=a從右向左解:a=a*a=144;a=a-a=O;a=a+a=O

五?編程題

1?要將“China”譯成密碼,規(guī)律是:用原來的字母后面第4個字母代替原來的字母。例如,

“A”用字母“E”來替代。因此,“China”應(yīng)譯為“Glnire"。編程:用賦初值的方法使

cl?c2?c3?c4?c5這五個變量的值分別為C、‘h‘、’i'、’n'、'a',經(jīng)過運算,這五個

變量分別變?yōu)镚、T、‘疔、'/、'e',并輸出。

#include<stdio.h>

voidmain()

(

charcl=,C',c2=,h',c3=,i*,c4=,n',c5=,a';

cl=cl+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;

printf(upasswordis%c%cfc%c%c\n*,cl,c2,c3,c4,c5);

)

運行結(jié)果:passwordisGImre

也可以用循環(huán)和數(shù)組:

#include<stdio.h>

voidmain()

{

charc[]={"China");

printf("passwordis");

fordnti=0;i<=4,i++)

printf(4<%c",c[i]+=4);

printf("\n”);

)

2,請編程,要求用賦初值的方法使cl?c2這兩個變量的值分別為97和98,然后分別按整

型和字符型輸出。

#include<stdio.h>

voidmain()

(

charcl=97,c2=98;

printf(u%d,%d\n",cl,c2);

printf("%c,%c\n",cl,c2);

)

3?編寫程序,從鍵盤輸入三個單精度數(shù)a、b、c,計算總和、平均值、x=a?+b2+c2的值,并計

算x平方根的值。所有運行數(shù)據(jù)保留三位小數(shù),第四位四舍五入。

#include<stdio.h>

#include<math.h>

voidmain()

(

doublea,b,c,total,average,square,squareroot;

printf("請輸入三個單精度實數(shù):”);

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

total=a+b+c;

avcragc=total/3.0;

square=a*a+b*b+c*c;

squareroot=sqrt(square);

printf("三個數(shù)的和二%T5.3f?三個數(shù)的平均值二%T5.3f\n",total,average);

printfC,三個數(shù)的平方和x=%.3f?x的平方根二%.3f\n",square,squareroot);

}

運行結(jié)果:

請輸入三個單精度實數(shù):1.234.567.89

三個數(shù)的和=13.680,三個數(shù)的平均值=4.560

三個數(shù)的平方和x=84.559,x的平方根=9.196

4?輸入三角形的三個邊長,計算并輸出三角形的面積。

#include<stdio.h>

#include<math.h>

voidmain()

(

floata,b,c,k,area;

printfC請輸入三角形三條邊的邊長人);

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

if((a+b<=c)11(a+c<=b)11(b+c<=a))

printfC您輸入的三條邊無法構(gòu)成三角形。\n");

else

k=(a+b+c)/2;

area=sqrt(k*(k-a)*(k-b)*(k-c));/*函數(shù)sqrt(x)是求x的平方根*/

printf("該三角形的面積是%6.2f\n",area);

}

5?輸入兩個長整型數(shù),輸出它們(整數(shù)除的)商和余數(shù)。

#include<stdio.h>

voidmain()

longal,a2,a3,a4;

printf("請輸入兩個整數(shù):");

scanf("%ld%ld",&al,&a2);

a3=al/a2;

a4=al%a2;

printfC兩數(shù)進行整數(shù)除的商是%1&余數(shù)是%ld\n",a3,a4);

運行結(jié)果:

請輸入兩個整數(shù):654321789

兩數(shù)進行整數(shù)除的商是829,余數(shù)是240

6,輸入兩個整數(shù),輸出它們(實數(shù)除)的商,并輸出商的第二位小數(shù)位(例如:15/8-0=1?875,

1-875的第二位小數(shù)位是7)。

#includc<stdio.h>

voidmainO

inta,b,c;

floatf;

printf("請輸入兩個整數(shù):");

scanf("%d%d",&a,&b);

f=1.0*a/b;

c=(int)(f*100)%10;

printf("兩數(shù)進行實數(shù)除,商是%f,商的第二位小數(shù)位是北d\n",f,c);

)

運行結(jié)果:

請輸入兩個整數(shù):158

兩數(shù)進行實數(shù)除,商是1.875000,商的第二位小數(shù)位是7

7,輸入一個(unsigned類型)無符號整數(shù),分別輸出它的低四位和高四位。

#include<stdio.h>

voidmainO

{

unsignedu,high4,low4;

printf("請輸入一個無符號整數(shù):”);

scanfC'Xu",&u);

low4=(u&0xf);/*u的低四位保留原值,其余位置0V

high4=(u&0xf000)?12;/*u的高四位保留原值,其余位置0,并右移12位必

printf("%u的十六進制是先x\n",u,u);

printf("十六進制表示%u的低四位是%x,高四位是%x\n",u,Iow4,high4);

運行結(jié)果:

請輸入一個無符號整數(shù):54332

54332的十六進制是d43c

十六進制表示54332的低四位是c,高四位是d

8,輸入兩個小寫字母分別賦值給字符變量chi與ch2,將它們轉(zhuǎn)換成大寫字母,并交換chi

與ch2的值,最后輸出chi與ch2的值。

#include<stdio.h>

voidniain()

(

charcl,c2,t;

Drintf("請輸入兩個半角的小寫英文字母:");

cl=getchar();

c2=getchar();

cl-=32;

c2-=a'-'A';/*與32等價*/

t=cl;

cl=c2;

c2=t;

printf(H%c%c\n",cl,c2);

1

運行結(jié)果:

請揄入兩個半角的小寫英文字母:db

BD

9,輸入秒數(shù),將它轉(zhuǎn)換,用小時、分鐘、秒來表示。例如輸入7278秒,貝I輸出:2小時1

分18秒。

#include<stdio.h>

voidmain()

(

intk;

inthour,minute,second;

printf("請輸入秒數(shù):");

scanf(M%d",&k);

hour=k/3600;

k%=3600;

minute=k/60;

second=k%60;

printf("%d小時%d分鐘%d秒。\nu,hour,minute,second);

)

運行結(jié)果:

請輸入秒數(shù):7278

2小時1分鐘18秒。

10?輸入兩個復(fù)數(shù)的實部和癥部,輸出這兩個復(fù)數(shù)積的實部和虛部。兩復(fù)數(shù)的積按下面的公

式計算:(a+bi)?(c+di)=(ac-bd)+(ad+bc)i。

#include<stdio.h>

voidniain()

{

floata,b,c,d,real,imag;

printf("請輸入第一個數(shù)的實部和虛部:

scanf("%f%f,,,&a,&b);

printf("請輸入第二個數(shù)的實部和虛部:”);

scanf("%f%f",&c,&d);

real=a*c-b*d;

imag=a*d+b*c;

printfC兩個復(fù)數(shù)積的實部和虛部分別是%f,%f\n",real,imag);

I

運行結(jié)果:

請輸入第一個數(shù)的實部和虛部:1.12.2

請輸入第二個數(shù)的實部和虛部:3.34.4

兩個復(fù)數(shù)積的實部和虛部分別是-6.050000,12.100000

第三章C程序的基本控制結(jié)構(gòu)

一,單選題

1?若變量已經(jīng)正確定義為float型,要通過語句scanf(黑跳f%f",&a,&b,&c)。

給a輸入10.0,n輸入20.0?c輸入30.0,下列不正確的輸入形式是(B)。

A)1(K回車)20〈回車>30<回車)B)10.0,20.0,30.0<回車)

O10.0〈回車>20.030.0〈回車>D)1020<回車>30<回車)

2,若有說明語句:charc=’65';則變量c(D)。

A)包含1個字符B)包含2個字符

C)包含3個字符D)說明不合法,c的值不確定

3-若w=l,x=2,y=3,z=4?則條件表達式w<x?w:y<z?y:z的值是(A)°

A)1B)2C)3D)4

4,x、y、z被定義為int型變量,若從鍵盤給它們輸入數(shù)據(jù),正確的輸入語句是(B)。

A)inputx,y,z;B)scanf(M%d%d%dw,&x,&y,&z);

C)scanf("%d%d%d",x,y,z);D)read("%d%d界d",&x,&y,&z);

5?有以下程序。

#include<stdio.h>

voidmain()

(

charal=,A,,a2=,a*;

MM

printf(%c\n,(al,a2));

)

以下敘述中正確的是(B)。

A)程序輸出大寫字母AB)程序輸出小寫字母a

C)格式說明符不足,編譯出錯D)程序運行時產(chǎn)生出錯信息

6?以下程序的輸出結(jié)果是(A)。

#include<stdio.h>

voidmain()

inta=2,b=3,c=0,d;

d=!a&&!b||!c;

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

)

A)1B)0C)非。的數(shù)D)-l

7?以下程序的輸出結(jié)果是(B)。

#include<stdio.h>

voidmain()

{

inta=6,b=5;

printf(fd\n",一a+b,—b+a);

1

A)8B)9C)10D)ll

8?下面程序輸出的結(jié)果是(D)。

#include<stdio.h>

voidmainO

{

inta=55,b=50,c=60,d;

d=a>20?b:c;

switch(D)

casc40:printf("%d」',a);

case50:printf("%d,",b);

case60:printf(“%d,”,c);

default:printf("$\n");

)

(

A)50,60B)50,$C)60,8D)50,60,$

9?如果從鍵盤輸入數(shù)據(jù)666,下面程序輸出的結(jié)果是(C)。

#include<stdio.h>

voidmain()

(

intx;

scanf(,&x);

if(x>300)printf(V,x);

if(x>200)printf(,x);

if(x>100)printf(M%dM,x);

)

A)666B)666666C)666666666D)以上都不對

10?有如下程序。

#include<stdio.h>

voidmain()

(

inta=5,b=6,c=l;

switch(C)

caseO:b++;

easel:a++;

case2:a++;b++;

}

printf(Ma=%d,b=%d\nM,a,b);

該程序的輸出結(jié)果是(C)

A)a=5,b=6B)a=6,b=7C)a=7,b=7D)a=7,b=8

11'下面的程序中:

inti=9;

while(i=O)i=i-l;

則下列描述正確的是(C)

A)while循環(huán)執(zhí)行9次B)循環(huán)體語句執(zhí)行一次

C)循環(huán)體語句一次也不執(zhí)行D)循環(huán)是無限循環(huán)

(注意:i=0是賦值語句,不是對i中值和0進行比較,因此程序執(zhí)行后i的值是0而

不是9)

12、下面的程序中:

inti=-l;

do

{i=i*i;}while(!i);

則下列描述正確的是(B)

A)循環(huán)體一次也不執(zhí)行B)循環(huán)體執(zhí)行一次

C)循環(huán)體執(zhí)行兩次D)是無限循環(huán)

13、下面的程序中:

inti=0;

while(i=l)

{…}

則下列描述正確的是(C)

A)循環(huán)控制表達式不合法B)循環(huán)控制表達式為0

C)循環(huán)控制表達式為1D)以上都不對

14、下面的程序中:

intx=0,total=0;

whi1e(!x!=0)tota1+=++x;

printf("%d”,total);

則下列描述正確的是(D)

A)程序段的控制表達式是非法B)程序段是無限循環(huán)

C)運行程序段后輸出0D)運行程序段后輸出1

15、若變量已正確定義,要求以下走成6!的運算,不能完成的程序段是(D)。

A)B)

i=l;i=l;

x=l;x=l;

while(i<=6)do

{x=x*i;{x=x*i;

i++;}i++;)

whilc(i<=6);

C)D)

for(x=l,i=l;i<=6;i++)for(i=l;i<=6;i++)

x二x*i;{x=l;x=x*i;}

16'設(shè)n為整型變量,則for(n=10;n>=0;n―)循環(huán)次數(shù)為(C)

A)9B)10C)11D)12

17、對表達式for(表達式1;;表達式3)可以理解為(B)

A)for(表達式1;0;表達式3)B)for(表達式1;1;表達式3)

C)for(表達式1;表達式1;表達式3)D)for(表達式1;表達式3;表達式3)

18、下面的程序運行結(jié)果是(B)

#include<stdio.h>

voidmain()

(

intx=10;

do

x-;

while(—x);

printf("?od\n",x-);

}

A)-1B)0C)1D)8

二?填空題

1?下面程序的榆出結(jié)果是16.00,請?zhí)羁铡?/p>

#include<stdio.h>

voidinainO

inta=9,b=2;

floatx=6.6,y=l.1,z;

z=a/2+b*x/y+l/2;

printf(4<%5.2f\n*,z);

)

2-下面程序輸出的結(jié)果是Z。

#include<stdio.h>

voidmain()

{

charc=,A';

printf(,c+25);

)

3,有以下程序。

#include<stdio.h>

voidinainO

{

chara,b,c,d;

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

printf(a%c,%c,%c,%c\nw,a,b,c,d);

)

若從鍵盤上輸入5,6?65,66〈回車>。則輸出結(jié)果是5,6,A,B°

4?巳知字母A的.ASCII值是65,運行下面程序時輸入B35<回車),輸出結(jié)果是If。

#include<stdio.h>

mainO

{

chara,b;

a=getchar();scanf(,&b);

a=a-'A'+'O';b=b*2;

printf(u%c%c\nM,a:b);

)

5-下面程序的輸出結(jié)果是打。

#include<stdio.h>

voidmainO

(

intx=13,y=22;

printf(M%dM,y/=(xS=6));

)

6?下列程序的功能是把從鍵盤上輸入的整數(shù)取絕對值后輸出。

#include<stdio.h>

voidmainO

(

intx;

scanf(M%dM,&x);

if(x<0)

x=-x;

printf(u%d\nM,x);

)

7,下面程序的輸出結(jié)果是9。

#include<stdio.h>

voidmain()

{inta=3,b=6,c=9;

a=a>b?a:b;

a=a>c?a:c;

printf(,a);

}

8?從鍵盤用數(shù)字輸入月份,然后用英文單詞輸出顯示月份。

#include<stdio.h>

voidmainO

(

intmonth;

charch;

whiled)

(

printf("\npleaseinputmonth(lT2):");

scanf("%cT,&month);

switch(month)

easel:printf("January\n");break;

case2:printf(“February'n");break;

case3:printf(“March'n");break;

case4:printf(“April'n");break;

case5:printf(“May\n");break;

case6:printf(“June\n");break;

case7:printf(“July\n");break;

case8:printf(“August'n");break;

case9:printf(“September'n");break;

caselO:printf(uOctober\n");break;

casell:printf("November'n");break;

casel2:printf("December'n");break;

default:printf(inputdataerror\nM);

getchar();

printf(M\ncontinue?(Y/N):u);

ch二getchar();

if(ch!=,y*&&ch!=*Y*)break;

)

9?下面程序的輸出結(jié)果是111。

#include<stdio.h>

voidmain()

intx=l,y=0;

switch(x)

(

easel:

switch(y)

(

caseO:printf("!??!\n");break;

easel:printf("\n");break;

}

break;

case2:printf("睇#\n");

}

)

10?下面程序的輸出結(jié)果是紅。

#include<stdio.h>

voidmainO

{

intsum=0,i;

for(i=l;i<=4;i++)

switch(i)

caseO:

easel:sum=sum+2;

case2:

case3:sum=sum+3;

default:sum=sum+4;

)

)

printfC“96d”,sum);

)

11-下面程序的輸出結(jié)果是3,3,3。

#include<stdio.h>

voidmain()

(

inti=2,j=2,k=3;

if((j++||k++)&&i++)

printfCM%d,%d,%d\nH,i,j,k);

(

12?若從鍵盤揄入15,則下面程序輸出的結(jié)果是151515。

#include<stdio.h>

voidmain()

(

intx;

scanf(“北d",&x);

if(x>10)printf("北d”,x);

if(x>8)printf(M%dM,x);

if(x>6)printf("%d”,x);

)

13'下面程序的輸出結(jié)果是Q。

#include<stdio.h>

voidmain()

{

inti,t=l;

for(i=5;i>=0;i—)

printf("^6d\n",t);

}

14、下面程序的輸出結(jié)果是D。

#include<stdio.h>

voidmain()

{

charch;

while((ch=getchar())!='\n')

(

if(ch>=,a&&ch<='z)ch=ch-32;

printf("%c",ch);

1

)

輸入容:d

15、下面的程序為大寫字母轉(zhuǎn)換為小寫字母。

#include<stdio.h>

voidmain()

(

charch;

while((ch=getchar())!=,\n)

(

if(ch>=,A*&&ch<='T)ch=ch+32;

printf("%c\n\ch);

}

1

16、輸入某班級10名同學(xué)5門課程的成績,分別統(tǒng)計每個學(xué)生5門課程的平均成績。

#include<stdio.h>

voidmain()

{

inti,j;

floatgrade,sum,average;

for(i=l;i<=10;i++)

(

sum=0;

for(j=l;j<=5;j++)

scanf("%f",&grade);

sum=sum+grade;

)

average=sum/5;

printfCNo.%daverage=%5.2f\n",i,average);

)

)

17、揄人若干字符數(shù)據(jù),分別統(tǒng)計其中A,B,C的個數(shù)。

#include<stdio.h>

voidmain()

(

charc;

intkl=0,k2=0,k3=0;

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

(

switch(C)

{

case'A*:kl++;break;

case*B':k2++;break;

case*C':k3++;break;

printf(MA=%d,B=%d,C=%d\n",kl,k2,k3);

18、下面程序是將從鍵盤輸入的小寫字母轉(zhuǎn)變成大寫字母。

#include<stdio.h>

voidmain()

(

intc;

while((c=getchar())!=,\n*)

(

if(c>='a'&&c<='z')

putchar(c-*a'+'A');

else

putchar(C);

)

1

19、輸出如下方陣。

1234

5678

9101112

13141516

#include<stdio.h>

voidmain()

inti,j,x;

for(i=l;i<=4;i++)

(

for(j=l;j<=4;j++)

(

x=(i-l)*4+j;

printf("%4d",x);

)

printfC*\n");

}

}

/米第一行輸出j加。的值,第二行輸出的是j加4,第三行輸出的是j加8,第四行輸出的是j加12,

0、4、8、12由(卜1)*4求得*/

三?改錯題

1'下面程序的功能是判斷某一年是否閏年。

#include<stdio.h>

voidmain()

(

intyear,leap;

scanf(u%dn,&year);

if(year%4==0)

if(year%100==0)

if(year%400!=0)

1eap=1;

else

leap=O;

)

else

leap=l;

(

else

leap=O;

if(leap)

printf("%dis”,year);

else

printf("%disnot”,year);

printf(4(aleapyear.\nM);

(

錯誤語句:if(year%400!=0)

正確語句:if(year%400==0)

2?下面的功能是輸出一個4位整數(shù)的后兩位數(shù)值,例如輸入1234,輸出34。

#include<stdio.h>

voidmain()

intx,y;

printf("\ninputainteger<1000—9999>:M);

scanf(u%dn,x);

y=x%100;

printf(u%d\nM,y);

)

錯誤語句?scanf(,x);

正確語句:scanf(“%d",&x);

3-揄入三個整數(shù),揄出其中最大的數(shù)。

#include<stdio.h>

voidmain()

(

inta,b,c,temp,max;

scanf(%d,%d”、&a,&b,&c);

temp=(a>b)?a:b;

max=(temp<c)?te!np:c;

printf("max二%d\n”,max);

1

錯誤語句:max=(temp<c)?temp:c;

正確語句:max=(temp>c)?temp:c;

4-下面程序判斷輸入的一個整數(shù)是否能被5和7同時整除,若能整除,輸出“YES”,否則,

輸出“NO”。

#includc<stdio.h>

voidmainO

intx;

scanf(“%d",&x);

if(x%5==0||x%7==0)

printf(MYESM);

else

printfCwN0M);

)

錯誤語句:if(x%5==0||x%7==0)

正確語句*if(x%5==0&&x%7==0)

5、求10到100之間能被3整除的數(shù)的個數(shù)。

#include<stdio.h>

voidmainO

(

inti,num;

for(i=10;i<100;i++)

if(i%3=0)nun】++;

printfC\nThereare%dnumbers!",num);

1

錯誤語句-inti,num;

正確語句-inti,num=0;

6、用4/4?1-1/3+1/5-1/7+…公式求4的近似值,直到某一項的絕對值小于106為止。

include<stdio.h>

#include<math.h>

voidmainO

{

ints;

floatn5t?pi;

t=l;

pi=0;

n=l.0;

s=l;

while(fabs(t)>10-6)

(

pi=pi+t;

n=n+2;

s=-s;

t=s/n;

)

pi=pi*4;

printf("pi=%10.6f\n"Jpi);

1

錯誤語句*while(fabs(t)>10-6)

正確語句?while(fabs(t)>le-6)

7、求Fibonacci數(shù)列前40個數(shù)。這個數(shù)列有如下特點:第1,2兩個數(shù)為17。從

第3個數(shù)開始,該數(shù)是其前面兩個數(shù)之和。

#include<stdio.h>

voidmain()

{

intfl,f2;

inti;

fl=l;f2=l;

for(i=l;i<=40;i++)

(

printf("%151d%151d",fl,f2);

if(i%2==0)printf("\n'1);

fl=fl+f2;

f2=f2+fl;

)

1

錯誤語句?for(i=l;i<=40;i++)

正確語句?for(i=l;i<=20;i++)

四?編程題

1?從鍵盤揄入一個圓的半徑,揄出圓的面積。揄出時要有文字說明,取小數(shù)點后2位。

#include<stdio.h>

voidmainO

floatr,s;

scanf(M%fM,&r);

s=3.14*r*r;

printf(**s=%.2fn,s);

)

2?輸入一個整數(shù),判斷是奇數(shù)還是偶數(shù)。

#include<stdio.h>

voidmainO

{

inti;

scanf("%d",&i);

if(i%2==0)

printf(黑d是一個偶數(shù)”,i);

else

printf("%d是一個奇數(shù)”,i);

)

3,從鍵盤輸入一個三角形的邊長,輸出三角形面積,取2位小數(shù)。當三角形不成立時輸出“

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論