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

下載本文檔

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

文檔簡介

1、第一部分習(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) 一

2、個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) oA)可以立即執(zhí)行B)是一個源程序C)經(jīng)過編譯即可執(zhí)行D)經(jīng)過編譯解釋才能執(zhí)行7 .用局級語言(如C語言)編寫的程序稱為(A)A)源程序 B)目標(biāo)程序C)可執(zhí)彳T程序D)編譯程序8 . 一個函數(shù)的組成有(A)。A)函數(shù)首部和函數(shù)體B)

3、函數(shù)名和函數(shù)的聲明部分C)主函數(shù)和子函數(shù)D)聲明部分和執(zhí)行部分9 .在C語言中,用來表示“取地址”的符號是(B)。A)# B)&C)*D)10 . C語言是計算機(jī)高級語言,它適合于作為系統(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ù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。2. C語言允許直接訪問物理地址,能進(jìn)行位操作。3. 用C語言編寫的程序,每一個語句和數(shù)據(jù)定義的結(jié)尾必須要有一個分號4. 每個C程序中必須有一個main()函數(shù)

4、。5. C程序中的函數(shù)體由_括起來。6. C程序中的“n”表示在程序運(yùn)行中換行。7. C程序中,7*/ "表示注釋部分。8. C程序中,一個函數(shù)由函數(shù)首部和函數(shù)體組成。9. 一個C程序總是從main()函數(shù)開始執(zhí)行的,不論該函數(shù)在整個程序中的位置如何。10. 在紙上編好一個C源程序后,要經(jīng)過編輯、編譯、連接、運(yùn)行這幾個步驟進(jìn)行上機(jī)運(yùn)行三.判斷題1. C語言不具有低級語言的特性。(錯)2. C語言之所以也被稱為中級語言,是因?yàn)樗雀呒壵Z言的功能要少,而比低級語言的功能 多。(錯)3. C語言與其他高級語言一樣具有結(jié)構(gòu)化的控制語句。(對)4. C語言允許直接訪問物理地址。(對)5. 每一

5、個C程序必須有一個main函數(shù)。(對)6. C程序的語句最后應(yīng)有一個分號。(對)7. C程序中的main函數(shù)必須放在整個程序的最前頭。(錯)8. 計算機(jī)高級語言對源程序進(jìn)行翻譯有兩種方式:編譯和解釋。(對)四.編程題1 .編寫一個C程序,輸出以下信息:*lamastudent.*#include<stdio.h> /*包含頭文件,為了使用 printf 和scanf語句,注意句末無分號*/voidmain()printf( printf( printf(*n ");/*n的作用相當(dāng)于回車*/Iamastudent. n " );*n ");.專業(yè).專注

6、.)(只用一個主函數(shù))2 .編寫一個C程序,輸入a、b兩個數(shù),輸出其中大的數(shù) #include<stdio.h> voidmain()inta,b;printf( "Pleaseinputa,b:n " );scanf( "%d,%d ,&a,&b);/*注意輸入兩個數(shù)之間用逗號分隔*/if(a>b)printf("d ,a);elseprintf( "d ,b);)3 .編寫一個C程序,輸入a、b、c三個數(shù),輸出其中最大數(shù)。(只用一個主函數(shù))#include<stdio.h> voidmain()

7、inta,b,c,max;printf( "Pleaseinputa,b,c:n " );scanf( "d,%d,%d ,&a,&b,&c);max=a;if(a<b)max=b; /*max 用于保存 a,b 中比較大的數(shù)*/if(max<c)max=c; /* 將 a,b 中較大的數(shù)再和 c 比較 */printf( “Thelargestnumberis%d ” ,max);第二章數(shù)據(jù)與運(yùn)算 一單選題1 C 語言中最簡單的數(shù)據(jù)類型包括(B) 。A)整型、實(shí)型、邏輯型 B)整型、實(shí)型、字符型C)整型、字符型、邏輯型 D)字

8、符型、實(shí)型、邏輯型2 . C語言中運(yùn)算對象必須是整型的運(yùn)算符是(D)。A)*B)/C) =D)%3 .在C程序中,以下不正確的敘述是(D)。A)逗號運(yùn)算符的優(yōu)先級最低B)ABC?口 abc是兩個不同的變量C)若a和b類型相同,在執(zhí)行了賦值表達(dá)式 a=b后,b中的值將放入a中,而b的值不變D)當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實(shí)型變量只能輸入實(shí)型數(shù)據(jù)4 .設(shè)有intx =8,表達(dá)式x+ + *1/3的值是(A)。A)2B)3C) 8D) 95 .若m,x,y,z都是整型變量,則計算表達(dá)式m=(x=5,y=10,z=25)執(zhí)行后,m的值為(C)。A)5B)10C) 25D) 4

9、06 設(shè)變量i 是 int 類型, f 是 float 型, d 是 double 型,執(zhí)行表達(dá)式5i -f*d ,其結(jié)果的數(shù)據(jù)類型為(B) 。A)int型B)double型C) float 型D)非法表達(dá)式7 設(shè)變量i 是 int 類型,執(zhí)行語句 i= A +2 5 后,正確的敘述是(C) 。A)i 的值是字符DB)i 的值是字符A 的 ASCII 值加上 2 5C) i的值是字符A的ASCII值加上2D)非法表達(dá)式8下列是用戶自定義標(biāo)識符的是(B) 。A)intB)_xyC ) 2xyD) 3-xy9.下而與x=y+完全等價的表達(dá)式是(A)。A)x=y,y=y+1B)x=x+1,y=xC

10、) x=+yD) x+=y+110已知各變量的類型說明如下:intk,a,b;longw=8;floatx=2 56;以下不符合C語言語法的表達(dá)式是(A) oA)x 5B)w =5C) k=(a=8,b=6,a-b)D ) a+=a-=(b=2)*(a=5)11 運(yùn)行以下程序段時編譯出錯,其原因是(D) 。charc1='a',c2='123'printf("%c,%dn",c1,c2);A)字符串要用"123"表示B) '123' 只能賦值給字符數(shù)組C) c2是字符變量,不能用格式輸出. 專業(yè) .專注 .

11、D) c2是字符變量,只能賦以字符常量12 .若定義floata;,現(xiàn)要從鍵盤輸入a數(shù)據(jù),其整數(shù)位為3位,小數(shù)位為2位,則選用(A)A scanf("%6f',&a);B) scanf("%5 . 2f',a);C scanf("%6 . 2f',&a);D) scanf("%f',a);13 .若定義doublet;,則表達(dá)式t=1,t+5,+t 的值為(B)。A 1. 0B) 2. 0 C) 6. 0D)7. 014 .已知各變量的類型說明如下,則C語言中錯誤的表達(dá)式是(A)ointk,a,b;unsi

12、gnedlongw=5;doublex=1 . 42;A x%(-3)B) w+=2C k=(a=2,b=3,a+b)D) a+=a-=(b=4*(a=3)15 .以下程序段的運(yùn)行結(jié)果是(C)ointa=0,b=0,c=0;if(a&&+b)c+;printf("%d,%dn”,b,c);A 1,1B) 1,0C) 0,0D) 0,1二.填空題1 .在C語言中,一個float型數(shù)據(jù)在在中所占的字節(jié)數(shù)為4, 一個double型數(shù)據(jù)在在中所占的字節(jié)數(shù)是8。2 .下面程序的輸出結(jié)果是28。main()inta=2,b=3,c=4;a*=16+(b+)-(+c);printf

13、( "d ,a); 3 .下面程序的輸出結(jié)果是5。main()intx=17,y=26;printf( "d ,y/=(x%=6);4 .執(zhí)行下面程序段后,c3中的值是0ointc1=1,c2=2,c3;c3=1. 0/c2*c1;5 .進(jìn)行下列變量定義后,表達(dá)式 a*b+d-c的類型是double。chara;intb;floatc;doubled;6 .下面程序的輸出結(jié)果是8,100main()intx=,y=10;printf("d,%dn”,x,y);7 .下面程序的輸出結(jié)果是120main()intx=3,y=5;printf("dn"

14、;,x=(x-)*(-y);8 .已知字母A的ASCII碼是十進(jìn)制數(shù)65,設(shè)c為字符型變量,則表達(dá)式c=' A +' 5' - ' 2' 的值為D或68。9 .下面程序的輸出結(jié)果是 昆。main()intx=065;printf("%dn",-x);/10 .下面程序的輸出結(jié)果是25,21,37。main()inta,b,c;a=25;b=025;c=0x25printf("d,%d,%dn',a,b,c);11 .下面程序的輸出結(jié)果是48。main()intx=0110;printf("xn",

15、x);12 .下面程序的輸出結(jié)果是 20200.000000。main()charc;intn=100;floatf=10;doublex;x=f*=n/=(c=5);printf("d%fn',n,x);13 .寫出下面程序的運(yùn)行結(jié)果。(請用U表示空格)main()charc1= ' a' ,c2= ' b' ,c3= ' c' ,c4= ' 101 ' ,c5= ' 116'printf("a%cJ b%ctc%ctabcn ",c1,c2,c3);printf("

16、;tb%c U %cn",c4,c5);程序的運(yùn)行結(jié)果是:aaU bbU U UccUUUUUU abcAU N14 .下面程序的運(yùn)行結(jié)果是 9,11,9,10 。main()inti,j,m,n;i=8;j=10;m=+i;n=j+;printf("d,%d,%d,%drn ,i,j,m,n);15 .以下程序的運(yùn)行結(jié)果是11.50。#include<stdio.h>voidmain()inti=5,j=9;floatx=2.3,y=4.5;printf("%8.2fn",i%(int)(x+y)*j/2/3+y);三.判斷題1. C語言中

17、,字符常量可以用單引號或雙引號括起來。(錯)2. C語言中,字符常量只能包含一個常量(字符)。(對)3. 在C語言中,字符串常量隱含處理成以0'結(jié)尾。(對)4,下面程序段的輸出結(jié)果是9。(錯)inta=9;printf("on",a);(注意:。中的。是字母。,不是數(shù)字0)5. C語言中,用戶所定義的標(biāo)識符允許使用關(guān)鍵字。(錯)6. C語言中,用戶所定義的標(biāo)識符中,大、小字母代表不同標(biāo)識。(對)7. C語言中,符號常量的值在程序運(yùn)行過程中可以改變。(錯)8. C語言中,不要求對程序中所用到的變量進(jìn)行強(qiáng)制定義。(錯)9. C語言中,一個整數(shù)如果其值在323768327

18、67圍,認(rèn)為它是int型,只能賦值給int 型變量。(錯)10. 設(shè)一個C系統(tǒng)的float型有效數(shù)字是7位,則超過7位數(shù)的運(yùn)算是不準(zhǔn)確的。(對)四.計算題1.求下面表達(dá)式的值。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=1*7%2/4=1/4=0第3步:x+0=x=2.5( 計算機(jī) 顯示為2.500000)2) (float)(a+b)/2+(int)x%(int)y 設(shè) a=2,b=3,x=3 . 5,y=2 . 5第 1 步:(float

19、)(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(計算機(jī)顯示為3.500000)3) 寫出下面賦值表達(dá)式運(yùn)算后 a的值,設(shè)原來a=12, n=5。1) a+=aa=a+a=12+12=242)a-=2a=a-2=12-2=103)a*=2+3a=a*(2+3)=12*5=60.專業(yè).專注.4)a/=a+aa=a/(a+a)=12/24=0 注意 a 是整型5)a%=(n%=2H知:n=5a=06) a+=a-=a*=a 從右向左解:

20、 a=a*a=144;a=a-a=0;a=a+a=0五編程題1 .要將“China”譯成密碼,規(guī)律是:用原來的字母后面第 4個字母代替原來的字母。例如, “A”用字母“ E”來替代。因此,“China”應(yīng)譯為“ Glmre"。編程:用賦初值的方法使cl. c2. c3. c4. c5這五個變量的值分別為C'、'h'、i'、n'、'a',經(jīng)過運(yùn)算,這五個變量分別變?yōu)镚、 l 、 m、 r、 e ,并輸出。#include<stdio.h>voidmain()charc1= C ,c2= h ,c3= i ,c4= n

21、,c5= a ;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“passwordis%c%c%c%c%c”n,c1,c2,c3,c4,c5);運(yùn)行結(jié)果: passwordisGlmre也可以用循環(huán)和數(shù)組:#include<stdio.h>voidmain()charc= “ China ” ;printf( “ passwordis “ );for(inti=0;i<=4,i+)printf(“ %c” ,ci+=4);printf( “n ” );2 請編程,要求用賦初值的方法使c1 c2 這兩個變量的值分別為 97 和 98

22、,然后分別按整型和字符型輸出。#include<stdio.h>voidmain()charc1=97,c2=98;printf(“%d,%dn” ,c1,c2);printf(“%c,%cn” ,c1,c2);3 .編寫程序,從鍵盤輸入三個單精度數(shù)a、b、c,計算總和、平均值、x=a2+b2+c2的值,并計算 x 平方根的值。所有運(yùn)行數(shù)據(jù)保留三位小數(shù),第四位四舍五入。#include<stdio.h>#include<math.h>voidmain()doublea,b,c,total,average,square,squareroot;printf(&q

23、uot; 請輸入三個單精度實(shí)數(shù):");scanf("%f%f%f",&a,&b,&c);total=a+b+c;average=total/3.0;square=a*a+b*b+c*c;squareroot=sqrt(square);printf(" 三個數(shù)的和 =%-15.3f ,三個數(shù)的平均值=%-15.3fn",total,average);printf(" 三個數(shù)的平方和 x=%.3f , x 的平方根 =%.3fn",square,squareroot); 運(yùn)行結(jié)果:請輸入三個單精度實(shí)數(shù):1

24、.234.567.89三個數(shù)的和 =13.680 ,三個數(shù)的平均值=4.560三個數(shù)的平方和x=84.559 , x 的平方根 =9.4輸入三角形的三個邊長,計算并輸出三角形的面積。#include<stdio.h>#include<math.h>voidmain()floata,b,c,k,area;printf(" 請輸入三角形三條邊的邊長:");scanf("%f%f%f",&a,&b,&c);if(a+b<=c)|(a+c<=b)|(b+c<=a)printf(" 您輸入

25、的三條邊無法構(gòu)成三角形。 n");elsek=(a+b+c)/2;area=sqrt(k*(k-a)*(k-b)*(k-c);/* 函數(shù) sqrt(x) 是求 x 的平方根 */printf(" 該三角形的面積是%6.2fn",area);5輸入兩個長整型數(shù),輸出它們(整數(shù)除的)商和余數(shù)。#include<stdio.h>voidmain()longa1,a2,a3,a4;printf(" 請輸入兩個整數(shù):");scanf("%ld%ld",&a1,&a2);a3=a1/a2;a4=a1%a2;p

26、rintf(" 兩數(shù)進(jìn)行整數(shù)除的商是%ld, 余數(shù)是 %ldn",a3,a4);運(yùn)行結(jié)果:請輸入兩個整數(shù):654321789兩數(shù)進(jìn)行整數(shù)除的商是829, 余數(shù)是 2406 輸入兩個整數(shù), 輸出它們 (實(shí)數(shù)除) 的商, 并輸出商的第二位小數(shù)位 (例如: 15/8 0=1 875, 1 875 的第二位小數(shù)位是7) 。#include<stdio.h>voidmain()inta,b,c;floatf;printf(" 請輸入兩個整數(shù):");scanf("%d%d",&a,&b);f=1.0*a/b;c=(in

27、t)(f*100)%10;printf(" 兩數(shù)進(jìn)行實(shí)數(shù)除,商是%f, 商的第二位小數(shù)位是%dn",f,c);運(yùn)行結(jié)果:請輸入兩個整數(shù):158兩數(shù)進(jìn)行實(shí)數(shù)除,商是1.875000, 商的第二位小數(shù)位是77輸入一個(unsigned 類型)無符號整數(shù),分別輸出它的低四位和高四位。#include<stdio.h>voidmain()unsignedu,high4,low4;printf(" 請輸入一個無符號整數(shù): ");scanf("%u",&u);low4=(u&0xf);/*u 的低四位保留原值,其余位置

28、0*/high4=(u&0xf000)>>12;/*u 的高四位保留原值,其余位置0,并右移 12 位*/printf("%u 的十六進(jìn)制是%xn",u,u);printf("十六進(jìn)制表示%u的低四位是%x高四位是xn",u,low4,high4);運(yùn)行結(jié)果:請輸入一個無符號整數(shù): 5433254332 的十六進(jìn)制是d43c十六進(jìn)制表示54332的低四位是c,高四位是d8.輸入兩個小寫字母分別賦值給字符變量chi與ch2,將它們轉(zhuǎn)換成大寫字母,并交換 chi與 ch2 的值,最后輸出 ch1 與 ch2 的值。#include<

29、stdio.h>voidmain()charci,c2,t;printf(" 請輸入兩個半角的小寫英文字母: ");ci=getchar();c2=getchar();ci-=32;c2-='a'-'A'/* 與 32等價 */t=ci;ci=c2;c2=t;printf("%c%cn",ci,c2);運(yùn)行結(jié)果:請輸入兩個半角的小寫英文字母: db BD9輸入秒數(shù),將它轉(zhuǎn)換,用小時、分鐘、秒來表示。例如輸入7278 秒,則輸出: 2 小時 i分 i8 秒。#include<stdio.h>. 專業(yè) .專注

30、 .voidmain()intk;inthour,minute,second;printf(" 請輸入秒數(shù):");scanf("%d",&k);hour=k/3600;k%=3600;minute=k/60;second=k%60;printf("%d小時的鐘秒。n",hour,minute,second);運(yùn)行結(jié)果:請輸入秒數(shù):72782 小時 1 分鐘 18 秒。10輸入兩個復(fù)數(shù)的實(shí)部和虛部,輸出這兩個復(fù)數(shù)積的實(shí)部和虛部。兩復(fù)數(shù)的積按下面的公式計算:(a+bi) , (c+di)=(ac-bd)+(ad+bc)i 。#in

31、clude<stdio.h>voidmain()floata,b,c,d,real,imag;printf("請輸入第一個數(shù)的實(shí)部和虛部:");scanf("%f%f",&a,&b);printf("請輸入第二個數(shù)的實(shí)部和虛部:");scanf("%f%f",&c,&d);real=a*c-b*d;imag=a*d+b*c;printf(" 兩個復(fù)數(shù)積的實(shí)部和虛部分別是%f,%fn",real,imag);運(yùn)行結(jié)果:請輸入第一個數(shù)的實(shí)部和虛部:1.12

32、.2請輸入第二個數(shù)的實(shí)部和虛部:3.34.4兩個復(fù)數(shù)積的實(shí)部和虛部分別是-6.050000,12.100000第三章C程序的基本控制結(jié)構(gòu) 一單選題1若變量已經(jīng)正確定義為float 型,要通過語句 scanf( “%f%f%”f ,&a,&b,&c) 。給a輸入10.0 , n輸入20.0 , c輸入30.0 ,下列不正確的輸入形式是(B)。A)10<M車 >20<回車 >30<回車>8)10.0, 20.0, 30.0< 回車, 10.0<回車 >20.030.0< 回車口)1020<回車 >30&

33、lt;回車 2若有說明語句:charc= 65 ; 則變量 c( D) 。A) 包含1 個字符B) 包含 2 個字符C)包含3個字符D)說明不合法,c的值不確定3若w=1,x=2,y=3,z=4 ,則條件表達(dá)式w<x?w:y<z?y:z 的值是(A) 。A) 1B) 2C) 3D) 44 x、 y、 z 被定義為 int 型變量,若從鍵盤給它們輸入數(shù)據(jù),正確的輸入語句是(B). 專業(yè) .專注 .A)inputx,y,z;B)scanf(“ %d%d%” d,&x,&y,&z);C)scanf( “%d%d%”d,x,y,z);D)read(“%d%d%”d,

34、&x,&y,&z);5有以下程序。#include<stdio.h>voidmain()chara1= A ,a2= aprintf(“ %cn” ,(a1,a2);以下敘述中正確的是(B) 。A)程序輸出大寫字母AB)程序輸出小寫字母aC)格式說明符不足,編譯出錯 D)程序運(yùn)行時產(chǎn)生出錯信息6 以下程序的輸出結(jié)果是(A) 。#include<stdio.h>voidmain()inta=2,b=3,c=0,d;d=!a&&!b|!c;printf(“ %dn” ,d);A)1B)0C)非 0 的數(shù) D)-17 以下程序的輸出結(jié)果

35、是(B) 。#include<stdio.h>voidmain()inta=6,b=5;printf(“ %dn” ,-a+b,-b+a);A)8B)9C)10D)118卜面程序輸出的結(jié)果是( #include<stdio.h> voidmain()inta=55,b=50,c=60,d;d=a>20?b:c;switch(d)case40:printf(“%d,”case50:printf( case60:printf( default:printf(D) 。,a);%d,” %d,” $n,b); ,c); );A)950,60B) 50,$C) 60,$ 如

36、果從鍵盤輸入數(shù)據(jù)#include<stdio.h> voidmain()intx;666,D) 50,60,$C) 。. 專業(yè) .專注 .%d”%d”,x);,x);scanf( “% d” ,&x); if(x>300)printf( if(x>200)printf(if(x>100)printf(“ %d” ,x);A) 666 B) 666666。666666666D)以上都不對10有如下程序。#include<stdio.h>voidmain()inta=5,b=6,c=1;switch(c)case0:b+;case1:a+;case

37、2:a+;b+;printf(“a=%d,b=%dn” ,a,b);該程序的輸出結(jié)果是( C)A)a=5,b=6B)a=6,b=7C)a=7,b=7D)a=7,b=811、下面的程序中:inti=9;while(i=0)i=i-1;則下列描述正確的是(C)A) while循環(huán)執(zhí)行9次B)循環(huán)體語句執(zhí)行一次C)循環(huán)體語句一次也不執(zhí)行D)循環(huán)是無限循環(huán)( 注意: i=0 是賦值語句,不是對i 中值和 0 進(jìn)行比較,因此程序執(zhí)行后i 的值是 0 而不是 9)12、下面的程序中:inti=-1;doi=i*i;while(!i);則下列描述正確的是(B)A)循環(huán)體一次也不執(zhí)行B)循環(huán)體執(zhí)行一次C)循環(huán)

38、體執(zhí)行兩次D)是無限循環(huán)13、下面的程序中:inti=0;while(i=1)則下列描述正確的是(C)A)循環(huán)控制表達(dá)式不合法B)循環(huán)控制表達(dá)式為0C)循環(huán)控制表達(dá)式為1D)以上都不對14、下面的程序中:intx=0,total=0;while(!x!=0)total+=+x;printf(“ %d” ,total);則下列描述正確的是(D)A)程序段的控制表達(dá)式是非法 B)程序段是無限循環(huán)C)運(yùn)行程序段后輸出0D)運(yùn)行程序段后輸出16!的運(yùn)算,不能完成的程序段是i=1;x=1;dox=x*i;i+;while(i < =6);for(i=1;i < =6;i+)x=1;x=x*i

39、;循環(huán)次數(shù)為(C)D) 12(D)。15、若變量已正確定義,要求以下程序段完成A)B)i=1;x=1;while(i < =6)x=x*i;i+;C)D) for(x=1,i=1;i< =6;i+)x=x*i;16、設(shè) n 為整型變量,則 for(n=10;n>=0;n-) A) 9B) 10C) 1117、對表達(dá)式for(表達(dá)式1;表達(dá)式3)可以理解為(B)A) for(表達(dá)式1;0;表達(dá)式3)B) for(表達(dá)式1;1;表達(dá)式3)C) for(表達(dá)式1;表達(dá)式1;表達(dá)式3)D) for(表達(dá)式1;表達(dá)式3;表達(dá)式3)18、下面的程序運(yùn)行結(jié)果是(B)#include<

40、stdio.h>voidmain()intx=10;dox-;while(-x);printf("%dn",x-);A) -1B) 0C) 1D) 8二.填空題1 .下面程序的輸出結(jié)果是16.00,請?zhí)羁?include<stdio.h>voidmain()inta=9,b=2;floatx=6.6Jy=1.1,z;z=a/2+b*x/y+1/2;printf( "5.2fn ",z);2 .下面程序輸出的結(jié)果是Zo#include<stdio.h>voidmain()charc= ' A ; printf( &qu

41、ot;%c ,c+25);3 .有以下程序。#include<stdio.h>voidmain()chara,b,c,d;scanf( "c,%c,%d,%d ,&a,&b,&c,&d);printf("c,%c,%c,%cn” ,a,b,c,d);若從鍵盤上輸入5, 6, 65, 66<回車>。則輸出結(jié)果是5,6,A,B 。4 .已知字母A的ASCII值是65,運(yùn)行下面程序時輸入 B35<0車,,輸出結(jié)果是1F。#include<stdio.h>main()chara,b;a=getchar();s

42、canf("d ,&b);a=a- 'A' +' 0' ;b=b*2;printf("c%cni ,a,b);5 .下面程序的輸出結(jié)果是22。#include<stdio.h>voidmain()intx=13,y=22;printf("d ,y/=(x%=6);6,下列程序的功能是把從鍵盤上輸入的整數(shù)取絕對值后輸出。#include<stdio.h>voidmain()intx;scanf( "d ,&x);if(x<0) x=-x; printf("dn”,x);

43、7 .下面程序的輸出結(jié)果是9。#include<stdio.h>voidmain()inta=3,b=6,c=9;a=a>b?a:b;a=a>c?a:c; printf( "d ,a);8 .從鍵盤用數(shù)字輸入月份,然后用英文單詞輸出顯示月份。#include<stdio.h>voidmain()intmonth;charch;while(1)printf( "npleaseinputmonth(1- 12): " );scanf( "d ,&month);switch(month)case1:printf(&q

44、uot;January n");break;case2:printf("February n");break;case3:pr intf("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");bre

45、ak;case9:printf("September n");break;case10:printf("October n" );br eak;case11:printf("November n" );break;case12:printf("December n" );break;default:printf("inputn" );getchar();printf( "ncontinue?(Y/N):");ch=getchar();if(ch!='y'&am

46、p;&ch!='Y')break;9 .下面程序的輸出結(jié)果是! 0#include<stdio.h>voidmain()intx=1,y=0;switch(x)case1:switch(y)case0:printf( " n” );break;case1:printf( " n” );break;break;case2:printf( "n" );10 .下面程序的輸出結(jié)果是27。#include<stdio.h>voidmain()intsum=0,i;for(i=1;i<=4;i+)switch(

47、i)case0:case1:sum=sum+2;case2:case3:sum=sum+3;default:sum=sum+4; printf("d ,sum); 11 .下面程序的輸出結(jié)果是3,3,3。#include<stdio.h>voidmain()inti=2,j=2,k=3;if(j+l|k+)&&i+)printf( "dn”,i,j,k);12 .若從鍵盤輸入15,則下面程序輸出的結(jié)果是151515。#include<stdio.h>voidmain()intx;scanf( "d ,&x);if(x

48、>10)printf("d',x);if(x>8)printf("d ,x);if(x>6)printf("d ,x);13、下面程序的輸出結(jié)果是0o#include<stdio.h>voidmain()inti,t=1;for(i=5;i>=0;i-)t=t*i;printf("%dn",t);14、下面程序的輸出結(jié)果是 D#include<stdio.h>voidmain()charch;while(ch=getchar()!='n')if(ch>='a&

49、#39;&&ch<='z')ch=ch-32;printf("%c",ch);輸入容:d15、下面的程序?yàn)榇髮懽帜皋D(zhuǎn)換為小寫字母。#include<stdio.h>voidmain()charch;while(ch=getchar()!='n')if(ch>='A'&&ch<='Z')ch=ch+32 printf("%cn",ch);5門課程的平均成績16、輸入某班級10名同學(xué)5門課程的成績,分別統(tǒng)計每個學(xué)生#include&l

50、t;stdio.h>voidmain()inti,j;floatgrade,sum,average;for(i=1;i<=10;i+)sum=0;for(j=1;j<=5;j+)scanf("%f",&grade);sum=sum+grade;average=sum/5;printf("No.%daverage=%5.2fn",i,average);17、輸入若干字符數(shù)據(jù),分別統(tǒng)計其中 A,B,C的個數(shù)。#include<stdio.h>voidmain()charc;intk1=0,k2=0,k3=0;while(

51、c=getchar()!='n')switch(c)case'A':k1+;break;case'B':k2+;break;case'C':k3+;break;printf("A=%d,B=%d,C=%dn",k1,k2,k3);18、下面程序是將從鍵盤輸入的小寫字母轉(zhuǎn)變成大寫字母#include<stdio.h>voidmain()intc;while(c=getchar()!='n')if(c>= ' a' &&c< z')pu

52、tchar(c-'a'+'A');elseputchar(c);19、輸出如下方陣。12345678910111213141516#include<stdio.h>voidmain()inti,j,x;for(i=1;i<=4;i+)for(j=1;j<=4;j+)x=(i-1)*4+j;printf("%4d",x);.專業(yè).專注.printf("n");/* 第一行輸出 j 加0的值,第二行輸出的是j 加4, 第三行輸出的是j 加8, 第四行輸出的是j 加12,0、4、8、12由(i-1)*4

53、求得*/三改錯題1、下面程序的功能是判斷某一年是否閏年。#include<stdio.h>voidmain()intyear,leap;scanf( “ %d” ,&year);if(year%4=0)if(year%100=0)if(year%400!=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf( “ %dis” ,year);elseprintf( “%disnot ” ,year);printf( “ aleapyear.n” );錯誤語句:if(year%400!=0)正確語句:if(year%4

54、00=0)2 下面的功能是輸出一個4位整數(shù)的后兩位數(shù)值,例如輸入1234,輸出34。#include<stdio.h>voidmain()intx,y;printf ( “ninputainteger<1000-9999>:” );scanf ( “%d” ,x);y=x%100;printf ( “%dn” ,y);錯誤語句:scanf ( “%d”,x);正確語句:scanf ( “%d”,&x);3輸入三個整數(shù),輸出其中最大的數(shù)。#include<stdio.h>voidmain()inta,b,c,temp,max;scanf( “ %d,%

55、d,%”d ,&a,&b,&c);temp=(a>b)?a:b;max=(temp<c)?temp:c;printf(“ max=%dn” ,max);錯誤語句:max=(temp<c)?temp:c;正確語句:max=(temp>c)?temp:c;4下面程序判斷輸入的一個整數(shù)是否能被5 和 7 同時整除,若能整除,輸出“YES” ,否則,輸出“NO” 。#include<stdio.h>voidmain()intx;scanf( “ %d” ,&x);if(x%5=0|x%7=0)printf(“YES” );elsepr

56、intf(“ NO” );錯誤語句:if(x%5=0|x%7=0)正確語句:if(x%5=0&&x%7=0)5、求10 到 100 之間能被 3 整除的數(shù)的個數(shù)。#include<stdio.h>voidmain()inti,num;for(i=10;i<100;i+)if(i%3=0)num+;printf("nThereare%dnumbers!",num);錯誤語句:inti,num;正確語句:inti,num=0;6、用冗/4弋1-1/3+1/5-1/7+公式求冗的近似值,直到某一項的絕對值小于10-6為止。#include<

57、stdio.h>#include<math.h>voidmain()ints;floatn , t , pi;t=1 ;pi=0;n=1.0;s=1;while(fabs(t)>10-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf("pi=%10.6f n", pi);錯誤語句:while(fabs(t)>10-6)正確語句:while(fabs(t)>1e-6)7、求Fibonacci 數(shù)列前 40個數(shù)。這個數(shù)列有如下特點(diǎn):第 1, 2 兩個數(shù)為 1, 1。從第 3 個數(shù)開始,該數(shù)是其前面兩個數(shù)之和。

58、#include<stdio.h>voidmain()intf1 , f2;inti;f1=1;f2=1;for(i=1;i<=40;i+)printf("%15ld%15ld" , f1 , f2);if(i%2=0)printf(" 'n");f1=f1+f2;f2=f2+f1;錯誤語句:for(i=1;i<=40;i+)正確語句:for(i=1;i<=20;i+)四編程題1從鍵盤輸入一個圓的半徑,輸出圓的面積。輸出時要有文字說明,取小數(shù)點(diǎn)后2 位。#include<stdio.h> voidmain() floatr,s;scanf( “ %f” ,&r);s=

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論