《第一至七章 c語言習題答案》由會員分享,可在線閱讀,更多相關(guān)《第一至七章 c語言習題答案(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章 習 題
1.1選擇題:
⑴ 一個C程序的執(zhí)行是( A )。
A) 從main()函數(shù)開始,直到main()函數(shù)結(jié)束
B) 從第一個函數(shù)開始,直到最后一個函數(shù)結(jié)束
C) 從第一個語句開始,直到最后一個語句結(jié)束
D) 從main()函數(shù)開始,直到最后一個函數(shù)結(jié)束
⑵ 計算機能直接執(zhí)行的語言是( B)。
A) 匯編語言 B)機器語言 C)高級語言 D) A和B
⑶ 一個C程序是由( C)。
A) 一個主程序和若干子程序組成
B) 若干過程組成
C) 一個或多個函數(shù)組成
D) 若干子程序組成
⑷ 下列說法正確的是(B )。
A)
2、 C程序書寫格式限制嚴格,一行內(nèi)必須寫一個語句
B) C程序書寫比較自由,一個語句可以分行寫在多行上
C) C程序書寫格式限制嚴格,要求一行內(nèi)必須寫一個語句,并要求行號
D) C程序中一個語句不可以分寫在多行上
1.2填空題:
⑴ 構(gòu)成C語言程序的基本單位是 函數(shù) 。
⑵ C語言源程序文件的后綴是 .c ,經(jīng)過編譯后,生成文件的后綴是 ,obj ,經(jīng)過連接后,生成文件的后綴是 .exe 。
⑶ 在TURBO C環(huán)境中用RUN命令運行一個C程序時,所運行的程序的后綴是 .exe 。
⑷ 一個C語言程序必須有而且只能有一個主函數(shù),它的函數(shù)名為 main 。
3、
⑸ 一個函數(shù)有兩部分組成,第一部分稱為 函數(shù)首部 ;第二部分稱為 函數(shù)體 。
⑹ 函數(shù)體由符號 { 開始,用符號 } 結(jié)束。函數(shù)體的前面是 聲明 部分,其后是 執(zhí)行 部分。
1.3上機編輯、調(diào)試、運行下列程序,發(fā)現(xiàn)錯誤,并改正之。
/*求1 + 2 + 3 + …… + 10的和*/
#include
void main()
{
int s,n;
sum = 0;n = 1;
while(n < 0)
{sum = sum + n;
n = n + 1;
}
printf("sum = %d \n"
4、,sum);
}
第二章 習 題
2.1選擇題
⑴ 在以下標識符中,( B )是合法的用戶標識符。
A) a#b B) getch C) void D) ab*
⑵ 不合法的八進制數(shù)是( B )。
A) 0 B) 028 C) 077 D) 01
⑶ 不合法的十六進制數(shù)是( A ?。?。0x
A) oxff B) 0Xabc C) 0x11 D) 0x19
⑷ 以下選項中正確的整型常量是( B )。
A) 12. B)
5、 -20 C) 1,000 D) 4 5 6
⑸ 以下選項中正確的實型常量是( D )。
A) 0 B) 3. 1415 C) 0.329×102 D) .871
⑹ 以下選項中不正確的實型常量是( B )。
A) 2.607E-1 B) 0.8103e 3 C) -88.77 D) 871e-2
⑺ 以下變量x, y, z均為double類型且已正確賦值,不能正確表示數(shù)學式子的C語言表達式是 ( A )。
A) x / y*z B) x*(1/(y*z)) C) x / y*1
6、/ z D) x / y / z
⑻ 在C語言中,字符型數(shù)據(jù)在內(nèi)存中以( C )的形式存放。
A) 原碼 B) 補碼 C) ASCII碼 D) BCD碼
⑼ sizeof(float)是( C )。
A) 一種函數(shù)調(diào)用 B) 一個不合法的表示形式 C) 一個整型表達式 D)一個實型表達式
⑽ 表達式b =((241 & 15)&&('Z' | 'a'))的值是( B )。
A) 0 B) 1 C) TRUE D) FALSE
⑾ 若變量已正確定義并賦值,符合C語言語法
7、的表達式是( B )。
A) a = a + 7; B) a = 7 + b + c,a ++ C) int(13.4 % 4) D)a = a + 7 = c + b
⑿ 以下敘述中正確的是( A )。
A)a是實型變量,C語言允許進行a = 10,因此可以這樣說:實型變量中允許存放整型值
B)在賦值表達式中,賦值號左邊既可以是變量也可以是任意表達式
C)執(zhí)行表達式a = b后,在內(nèi)存中a和b存儲單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值改變?yōu)?
D)已有a = 3,b = 5。當執(zhí)行了表達式a = b,b = a之后,已使a中的值為5,
8、b中的值為3
2.2填空題
⑴ 數(shù)學式子cos2x ·寫成C語言表達式是 cos(x)*cos(x)*((a+b)/(a-b)) 。
⑵ a是整型變量,能將a清零的表達式是 a=0 ;能將a中的各二進制為均置成1的表達式是 a=-1 。
⑷ 若a,b和c均是int型變量,則執(zhí)行下面表達式后,a值為 6 ,b值為 4 ,c值為 2 。
a =(b = 4)+(c = 2)
⑸ 經(jīng)過下述賦值后,變量x的數(shù)據(jù)類型是 int 。
int x = 2;
double y;
y=(double)x;
⑹ 若
9、x和n均是整型變量,且x和n的初值均為5,則執(zhí)行下面表達式后,x值為 10 ,n值為 6 。
x += n ++ x=x+n++
⑺ 若有定義:int b = 7;float a = 2.5,c = 4.7;則下面表達式的值為 4.5 。
a+(int)(b/3*(int)(a+c)/2)%4
⑻若有定義:int m=7,y=2;則執(zhí)行下面表達式的值后,y值為 -24 。
y += y-=m*= y
⑼ 表達式8 / 4*(int)2.5 /(int)(1.25*(3.7 + 2.3))的類型為 整型 。
⑾條件“-1 <
10、 x < 3或x <-99”的C語言表達式是 (x>-1&&x<3)||(x<-99) 。
⑿ 若x和a均是整型變量,則執(zhí)行表達式 ① 后的x值為 12 ,執(zhí)行表達式 ② 后的x值為 4 。
① x =(a = 4,6*2)
② x = a = 4,6*2
⒀ 一個字節(jié)包含 8 個二進制位,在一個字節(jié)中能存放的最大(十進制)整數(shù)是 ,它的二進制數(shù)的形式是 ;最?。ㄊM制)整數(shù)是 ,它的二進制數(shù)的形式是 。
⒁ 當計算機用兩個字節(jié)存放一個整數(shù)時,其中能存放的最大(十進制)整數(shù)是 ,它的二進制數(shù)的形式是
11、 ;最?。ㄊM制)整數(shù)是 ,它的二進制數(shù)的形式是 。
2.3改錯題
⑴ #include stdio.h; ?。nclude 正確
main(); (多分號) /*main function*/
{
float r,s; /*r is radius, s is area of circular*/
r = 5.0;
s = 3.14159*r*r;
printf("%f\n",s);
⑵ #include stdio.h
12、 (缺?。迹咎枺? #include 正確
main(); /*main function*/
{
float a,b,c,v; /*a,b,c are sides,v is volume of cube*/
a = 2.0;b = 3.0;c = 4.0;(缺 ;號)
v = a*b*c;
printf("%f\n",v);(缺;號)
}
第三章 習 題
3.1 什么是C語言的基本執(zhí)行單位?C語言的語句是如何分類的?
3.2 C語言的流程控制語句有哪幾種?
3.3 結(jié)
13、構(gòu)程序設(shè)計的基本結(jié)構(gòu)有哪幾種?
3.4 C語言的輸入輸出操作是由語句來實現(xiàn)的嗎?
3.5 順序結(jié)構(gòu)程序的特點是什么?
3.6 輸入下面的程序,觀察運行結(jié)果。
#include
void main()
{float a1,a2;
double b1,b2;
a1=3141.59;a2=0.000001;
b1=3141.59;b2=0.000001;
printf("%f,%lf\n",a1+a2,b1+b2);
}
答案:3141.590089,3141.590001
3.7 輸入下面的程序,觀察運行結(jié)果。
#include
14、dio.h>
void main()
{ char ch;
int k;
ch='a';k=66;
printf("%c,%d,%x,%o,%d,%c",ch,ch,ch,ch,k,k);
}
答案:a,97,61,141,66,B
3.8 輸入下面的程序,觀察運行結(jié)果。
#include
void main()
{
float x;
double y;
x=123.45678;
y=123.45678;
printf("%-4.2f,% -6.2e\n",x,y);
}
答案:123.46,1.2e+02
3.9輸入下
15、面的程序,觀察運行結(jié)果,并說明程序的功能(注意:運行時輸入大寫字母)。
#include
void main()
{ char c1,c2;
c1=getchar( );
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}
答案:A,65
a,97
該程序是將鍵盤輸入的大寫字母轉(zhuǎn)換為對應(yīng)的小寫字母。
3.10 編寫程序:求三個正整數(shù)(小于32767)的算術(shù)平均值。
void main()
{int a,b,c;
float d;
prin
16、tf("\n input a,b,c=");
scanf("%d,%d,%d",&a,&b,&c);
d=(a+b+c)/3.0;
printf("\nd=%f",d);
}
3.11 編寫程序:已知圓的半徑,求圓的周長和面積(要求半徑值由鍵盤接受)。
void main()
{int r;
float k,s;
printf("\n input r=");
scanf("%d",&r);
k=2*3.14159*r;
s=3.14159*r*r;
printf("\nL=%f\nS=%f",k,s);
}
3.12 編寫程序:計算a+b2-6的
17、值,其中:
a=4,b=3;
a=5,b=2;
a=2,b=8。
void main()
{
float a,b,h;
printf("\n input a,b=");
scanf("%f,%f",&a,&b);
h=a+b*b-6;
printf("\na=%f,b=%f\nh=%f",a,b,h);
}
第四章 習 題
4.1 判斷下列陳述的真假:
⑴在三種形式的if語句中,在if關(guān)鍵字之后均為表達式。 該表達式只能是邏輯表達式或關(guān)系表達式。False
⑵在if語句中,關(guān)鍵字之后的表達式必須用括號括起來,并隨后跟分號(;)。False
⑶在if
18、語句的三種形式中,所有的語句應(yīng)為單個語句,如果要想在滿足條件時執(zhí)行一組(多個)語句,則必須把這一組語句用{} 括起來組成一個復合語句。True
⑷條件運算符的結(jié)合方向是自右至左。False
⑸switch語句中的case后面必須是整常量表達式,如整數(shù)常數(shù)、字符常量。True
⑹當switch的整類型表達式的結(jié)果值與某一個case塊的整常量表達式的值相等時,將轉(zhuǎn)至該case塊,并且執(zhí)行該case與下一個case之間的所有語句。False
⑺可以使用go out語句跳出switch語句。False
⑻ else總是與它前面最近的if配對。True
4.2 閱讀下面的程序,說明程序的運行
19、結(jié)果。
#include
void main()
{ int x=10,y=20,t;
if(x!=y){t=x; x=y; y=t;}
printf("%d,%d\n",x,y);
}
答案:20,10
4.3 輸入下面的程序,觀察運行結(jié)果并說明程序的功能。
#include
void main()
{ int x = 20;
if (x >= 0)
if (x < 50)
printf("x is ok\n");
else
printf("x is not ok\n");
20、
}
答案: x is ok
4.4 分別輸入下面兩個程序,觀察運行結(jié)果,說明有何不同。
程序段1:
#include
void main()
{ int x = 20;
if (x <= 0)
if (x < 50)
printf("x is ok\n");
else
printf("x is not ok\n");
}答案:什么也不輸出.
程序段2:
#include
void main()
{ int x = 20;
if (x <= 0)
{ i
21、f (x < 50) printf("x is ok\n"); }
else
printf("x is not ok\n");
} 答案:x is not ok.
4.5 輸入下面的程序,觀察運行結(jié)果并說明程序的功能。
#include
void main()
{ int x ,a;
scanf(“%d”,&x);
a=x%10;
switch(a)
{ case 0:
case 2:
case 4:
case 6:
case 8: priintf(“even!\n”)
22、;break;
default:printf(“odd!\n”);
}
}
答案: 輸入偶數(shù), 則輸出 even! 輸入奇數(shù), 則輸出 odd!
4.6 編寫程序:從鍵盤輸入三個正整數(shù),按由大到小的順序輸出。
#include
void main()
{ int a,b,c,t;
printf("input a,b,c=:");
scanf("%d%d%d",&a,&b,&c);
if(a>b) {t=a;a=b;b=t;}
if(a>c) {t=a;a=c;c=t;}
if(b>c) {t=b;b=c;c=t;}
23、printf("%5d%5d%5d",a,b,c);
}
4.7 編寫程序:從鍵盤輸入一個正整數(shù),判斷它是否既能被3整除,又能被7整除。方法1:
#include
void main()
{ int k;
scanf("%d",&k);
if(k%3==0 && k%7==0) printf("\nyes");
else printf("\n no");
}
方法2:
#include
void main()
{
int x;
printf("please input x=");
scanf("%d",&
24、x);
if(x%3==0)
{if(x%7==0)
printf("3---yes 7----yes");
else
printf("3---yes 7---- no");
}
else
{if(x%7==0)
printf("3---no 7---yes");
else
printf("3---no 7--- no");
}
}
4.8 編寫程序:
求函數(shù):
X+5 (X>=0)
y=
X-5 (X<0)
25、 的值。
#include
void main()
{ int x,y;
printf("please input x=");
scanf("%d",&x);
if(x>=0)
y=x+5;
else
y=x-5;
printf("y=%d",y);
}
第五章 習 題
5.1 試比較三種循環(huán)語句的異同。
5.2 選擇題:
⑴ 下面關(guān)于for循環(huán)的正確描述是( D )。
A) for循環(huán)只能循環(huán)次數(shù)已經(jīng)確定的情況
B) for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷終止條件
26、
C) 在for循環(huán)中,不能用break語句跳出循環(huán)體
D) 在for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來
⑵ 對for(表達式1;;表達式3)可以理解為( B )。
A) for(表達式1;0;表達式3)
B) for(表達式1;1;表達式3)
C) for(表達式1;表達式1;表達式3)
D) for(表達式1;表達式3;表達式3)
⑶ 若有“int m;”,則以下循環(huán)執(zhí)行次數(shù)是( B )。
for(m=2;m= =0; )
A) 無限次 B) 0次 C) 1次 D) 2次
⑷ 下面不是死循環(huán)的是( A
27、 )。
A) for(y=0,x=1;x>++y;x=i++) i=x;
B) for( ; ; x=++1);
C) while(1) {x++;}
D) for(i=10; ;i--) sum+=i;
⑸ 下面程序段的運行結(jié)果是( B )。
for(i=0;i<5;i++)
{ if(i= =2) continue;
printf("%d",i);
}
A) 01 B) 0134 C) 01234 D) 不打印
⑹ 下面程序段的運行結(jié)果是( B )。
int k=10;
while(k=0) k=k-1;
A) while循環(huán)執(zhí)
28、行10次 B) 循環(huán)是無限循環(huán)
C) 循環(huán)體語句一次也不執(zhí)行 D) 循環(huán)體語句執(zhí)行一次
⑺ 執(zhí)行語句“for(n=1;n++<4; ) ;”后變量n的值是( C )。
A) 3 B) 4 C) 5 D) 不定
⑻ 以下正確的描述是( B )。
A) continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B) 只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句
C) 在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
D) 從多層循環(huán)嵌套中退出時,只能使用goto語句
5.3 寫出下列程序的運行結(jié)果
⑴
main()
{
i
29、nt i=0,a=0;
while(i<20)
{ for( ; ; )
if(i%10= =0) break;
else i--;
i+=11;a+=i;
}
printf("%d\n",a);
}
答案:32
⑵
main()
{ int i,j,b=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
if(j>=i ) b++;
printf("%d\n",b);
}
答案:3
5.4 下面程序的功能是從鍵盤輸入10個無序的整數(shù),去掉最大數(shù)和最小數(shù),再求其平均值。請?zhí)羁铡?
main()
30、{
int j,x,max,min,sum;
fioat ave;
printf("Enter 10 number:\n");
scanf("%d",&x);
sum=max=min=x;
for( j=2 ; j<=10;j++)
{ scanf(“%d”,&x) ;
sum+=x;
if(x>max ) max=x;
else if(x
31、程計算1~100之間是7的倍數(shù)的數(shù)值之和。
#include
main()
{int i,s=0;
for(i=0;i<=100;i++)
if(i%7==0) s+=i;
printf("\ns=%d",s);
}
5.6 編寫程序,利用下面公式求π的近似值:
π2/6=1/12+1/22+1/32+1/42+…,直到某項絕對值不大于10-12為止。
#include
#include
main()
{long n=1;
float x,sum=0;
x=1.0/(n*n);
while
32、(x>=1e-12)
{sum=sum+x;
n++;
x=1.0/(n*n);
}
sum=sqrt(sum*6);
printf("\n PI=%f,n=%ld",sum,n-1);
}
5.7 計算鍵盤輸入的字符數(shù)。(提示:用getchar( ))
方法1:
#include
#include
main()
{char c;
int n=0;
c=getchar();
while(c!='\n')
{ n++;
c=getchar(
33、);
}
printf("n=%d",n);
}
方法2:
#include
main()
{char c;
int chgs=0;
printf("Enter one line char : \n");
while( c=getchar()!='\n')
chgs++;
printf("chgs=%d\n",chgs);
}
5.8 用1元人民幣兌換1分、2分、5分的硬幣,編程計算共有多少種不同的兌換方法。
方法1:
#include
main()
{int x,y,z,he=
34、0;
for(x=1;x<=20;x++)
for(y=1;y<=50;y++)
{z=100-x*5-2*y;
if(z>0)
{he++;
printf("\nx=%d\ty=%d\tz=%d",x,y,z);}
}
printf("\nhe=%d",he);
}
結(jié)果:he=461
方法2:
#include
#include
main()
{ int g,k,s,fa=0;
for(g=1;g<=93;g++)
for(k=1;k<=47;k++)
35、
{s=(100-g-2*k)/5;
if(g+2*k+5*s==100 && s>0) fa=fa+1;
}
printf("\nfa=%d\n",fa);
}
結(jié)果: fa=461
5.9 編程求出1000以內(nèi)的所有完全數(shù)。若一個數(shù)恰好等于它的因子之和(除自身外),則稱該數(shù)為完全數(shù),例如:6=1+2+3,故6是完全數(shù)。
方法1:
#include
#define M 1000
main()
{int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for (a=2;a<=M
36、;a++)
{n=0; s=a;
for (i=1;i
37、reak;
case 8: k8=i;break;
case 9: k9=i;break;
case 10: k10=i;
}
}
if(s==0)
{ printf("%d Its factors are ",a);
if(n>1) printf("%d,%d",k1,k2);
if(n>2) printf(",%d",k3);
if(n>3) printf(",%d",k4);
if(n>4) printf(",%d",k5);
if(n>5) pri
38、ntf(",%d",k6);
if(n>6) printf(",%d",k7);
if(n>7) printf(",%d",k8);
if(n>8) printf(",%d",k9);
if(n>9) printf(",%d",k10);
printf("\n");
}
}
}
結(jié)果: 6 yes ,factors are 1,2,3
28 yes ,factors are 1,2,4,7,14,
496 yes ,factors are 1,2,4,7,16,31,62,124,248,
方法
39、2:
#include
main()
{int m,s,i;
for (m=2;m<=1000;m++)
{s=0;
for (i=1;i
40、1,2,3
28 yes ,factors are 1,2,4,7,14,
496 yes ,factors are 1,2,4,7,16,31,62,124,248,
5.10 編程統(tǒng)計從鍵盤輸入的字符中數(shù)字字符的個數(shù),用換行符結(jié)束輸入 循環(huán)。
方法1:
#include
#include
main()
{ char c;
int n=0;
c=getchar();
while(c!='\n')
{if(c>='0' && c<='9') n++;
c=getchar();
41、}
printf("n=%d",n);
}
方法2:
#include
main()
{char c;
int digit=0;
printf("Enter one line char : \n");
while( (c=getchar()) != '\n')
{ if (c>='0'&&c<='9')
digit++;
}
printf("szgs=%d\n",digit);
}
5.11 編程求(即求1!+2!+3!+…+20!)
方法1:
#include
main()
{
floa
42、t sum=0,jc=1;
int n;
for(n=1;n<=20;n++)
{
jc=n*jc;
sum=sum+jc;
}
printf("sum=1!+2!+...20!=%f\n",sum);
}
方法2:
#include
main()
{
float sum,jc;
int m,i;
sum=0;
for(m=1;m<=20;m=m+1)
{
jc=1;
for (i=1;i<=m;i++)
jc=jc*i;
43、 printf("jc=%f\n",jc);
sum=sum+jc;
}
printf("sum=%e\n",sum);
}
5.12 編寫程序,求出整數(shù)1~1000之間的所有同構(gòu)數(shù)。所謂同構(gòu)數(shù)是指此數(shù)的平方數(shù)的最后幾位數(shù)與該數(shù)相等。例如,25的平方為625,376的平方為141376,所以25和376都是同構(gòu)數(shù)。
方法1:
#include
main()
{ long i;
for(i=1;i<=1000;i++)
if(i*i%10==i || i*i%100==i || i*i%1000==
44、i) printf("\n%5d",i);
}
方法2:
m#include
main()
{long i,m,k,r,q;
for(i=1;i<=1000;i++)
{m=i;k=m*m;
while(m!=0)
{r=m%10;q=k%10;
if(r==q){m=m/10;k=k/10;}
else break;
}
if(m==0) printf("%5d,%5d",i,i*i);
}
}
方法3:
#include
45、.h>
main()
{ long i,pf;
printf("\n");
for(i=2;i<=1000;i++)
{ pf=i*i;
if(i==pf%10 && i<10) {printf("\ni=%ld,pf=%ld",i,pf); continue;}
if(i==pf%100 && i<100) {printf("\ni=%ld,pf=%ld",i,pf); continue;}
if(i==pf%1000 && i<1000) printf("\ni=%ld,pf=%ld",i,pf);
}
}
5.13 編程序,輸入一個
46、正整數(shù),輸出其素數(shù)因子的乘積。例如,輸入60,輸出: 60=2* 2* 3* 5
方法1:
#include
#include
main()
{int k,i,j;
scanf("%d",&k);
printf("%d:",k);
i=2;
while(k!=0 && i<=k)
{if(k%i==0)
{printf("%3d",i);
k=k/i;
i=2; }
else i++;
}}
方法2:
#include
ma
47、in()
{ int i,x,k;
scanf("%d",&x);
k=x;
printf("\n%d=",x);
while(x!=0)
{ for(i=2;i<=k;i++)
if(x%i==0) break;
x=x/i;
if (i
48、r(i=0;i<10;i++)
a[i]=i;
for(i=0,k=0;i<4;i++)
k+=a[i]+i;
printf("\n%d",k);
}
A) 20 B) 12 C) 16 D) 18
⑵ 下列程序輸出結(jié)果是( A )。
main()
{ int n[2]={0},i,j,k=2;
for(i=0;i
49、
⑶ 下列程序的輸出結(jié)果是( A )。
main()
{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("\n%d",s);
}
A) 18 B) 19 C) 20 D) 21
⑷ 下列程序輸出結(jié)果是( C )。
main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9},i;
for(i=0;i<3;i++)
printf("%d,",a[i][2-i
50、]);
}
A) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9,
⑸ 當執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是(A )。
#include
#include
main()
{ char ss[10]= "12345";
gets(ss);
strcat(ss, "6789");
printf("%s",ss);
}
A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789
⑹ 下列程序輸出結(jié)果是( C )。
main()
51、
{
char b[]="Hello,you";
b[5]=’\0’;
printf("%s",b);
}
A) Hello,you B) Hello, C) Hello D) Hello you
6.2 輸入10個浮點型數(shù),求它們的和、平均值、最大值、最小值。
方法1:
#include
main()
{ float a[10],sum=0,aver,max,min;
int i=0;
while(i<10)
{scanf("%f",&a[i]);
sum+=a[i];
52、 i++;
}
aver=sum/10.0;
max=min=a[0];
i=0;
while(i<10)
{ if(a[i]>max) max=a[i];
else if(a[i]
main()
{int i,maxi,mini;
float
53、x[10],sum=0,ave,max,min;
for(i=0;i<10;i++)
{scanf("%f",&x[i]);
sum+=x[i]; }
ave=sum/10;
max=min=x[0]; maxi=mini=0;
for(i=1;i<10;i++)
{if(x[i]>max){max=x[i];maxi=i;}
if(x[i]
54、,min,mini);
}
6.3 求一個3*3的整型矩陣主對角線元素之和。
main()
{int i,j,a[3][3],sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{printf("\n");
for(j=0;j<3;j++)
printf("%-4d",a[i][j]);
}
for(i=0;i<3;i++)
sum+=a[i][i];
printf("\ns
55、um=%d",sum);
}
***6.3 求一個3*3的整型矩陣付對角線元素之和。
main()
{int i,j,a[3][3]={1,2,3,4,5,6,7,8,9},sum=0;
for(i=0;i<3;i++)
{printf("\n");
for(j=0;j<3;j++)
printf("%-4d",a[i][j]);
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i+j=2) sum+=a[i][i];
printf("\nsum=%d",sum);
}
6.4
56、 將一維實型數(shù)組元素進行排序。
#include
main()
{ float t,a[10]={12.4,3.44,4.88,5.9,6.88,77.90,65.88,4.8,0.7,6.7};
int i,j,p;
for(i=0;i<10;i++)
printf("%10.2f",a[i]);
printf("\n");
for(i=0;i<9;i++)
{p=i;
for(j=i+1;j<10;j++)
if(a[p]>a[j]) p=j;
if(p!=i
57、)
{t=a[p];a[p]=a[i];a[i]=t;}
}
for(i=0;i<10;i++)
printf("%7.2f",a[i]);
}
6.5 從鍵盤上輸入一個字符和一個字符串,查找輸入的字符是否在輸入的字符串中,若不在則輸出沒有找到的信息,否則輸出第一個與輸入字符匹配的所在位置。
#include
#include
main()
{ char a[10],c;
int flag=1,i,cor;
printf("\ninput a str :\n");
58、
gets(a);
printf("\ninput a ch:\n");
c=getchar();
i=0;
while(a[i])
{if(c==a[i]) {flag=0;cor=i;break;}
i++;
}
if(flag==0)
printf("\nfind,No:%d",cor);
else
printf("\n can not find");
}
6.6 求兩個矩陣的乘積,輸出結(jié)果。
#include
main()
{ int a[2][3]
59、={1,2,3,4,5,6},b[3][2]={1,2,1,2,1,2},c[2][2];
int i,j,k;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
{ c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
}
for(i=0;i<2;i++)
{ printf("\n");
for(j=0;j<2;j++)
printf("%4d"
60、,c[i][j]);
}
}
6.7 已知整型數(shù)組array有10個元素,分別為2、4、6、8、10、1、3、5、7、9,編寫程序?qū)⑶?個元素與后5個元素交換,交換后的元素分別為1、3、5、7、9、2、4、6、8、10。
#include
main()
{ int a[10]={2,4,6,8,10,1,3,5,7,9},i,t;
for(i=0;i<5;i++)
{t=a[i];a[i]=a[5+i];a[5+i]=t;
}
printf("\n");
for(i=0;i<10;i++)
prin
61、tf("%-6d",a[i]);
}
6.8 輸入一個十進制數(shù),轉(zhuǎn)換成二進制數(shù)并輸出。
#include
#include
main()
{ long a[100],k,s=0;
int i,n=0;
scanf("%ld",&k);
while(k!=0)
{a[n]=k%2;
k=k/2;
n++; }
for(i=n-1;i>=0;i--)
s+=a[i]*pow(10,i);
printf("\n%ld",s);
}
方法2:
62、
#include
#include
main()
{int i,s[100],x,k=0;
scanf("%d",&x);
while(x>0)
{ s[k]=x%2;
x=x/2;
k++; }
for(i=k-1;i>=0;i--)
printf("%d",s[i]);
}
6.9 將字符串中的大寫字母轉(zhuǎn)換成小寫字母,小寫字母轉(zhuǎn)換成大寫字母,其它字符不轉(zhuǎn)換。
#include
#include
main()
{ char a[80];
int
63、 i=0;
gets(a);
while(a[i]!='\0')
{ if(a[i]>='A' && a[i]<='Z')
a[i]+=32;
else
if(a[i]>='a' && a[i]<='z') a[i]-=32;
i++; }
printf("\n");
puts(a);
}
方法2:
main()
{char x[]="dhgfhf33485SDHDbcjd980";
int i=0;
printf("\n%s",x);
while(x[i]!='\0')
{
if(x[i]>
64、='A'&&x[i]<='Z')
x[i]=x[i]+32;
else
if(x[i]>='a'&&x[i]<='z')
x[i]=x[i]-32;
i++; }
printf("\n%s",x);
}
6.10 在不使用系統(tǒng)函數(shù)strcat的情況下,實現(xiàn)兩個字符串連接。
#include
#include
main()
{char a[80],b[80];
int n,i,j,m;
printf("\n input a str:");
gets(a);
65、 printf("\n input b str:");
gets(b);
n=strlen(a);m=strlen(b);
i=0;
while(b[i]!='\0')
{ a[i+n]=b[i];
i++;
}
a[n+m]='\0';
printf("\n");
puts(a);
}
6.11 從字符串中刪除所有指定字符。
#include
#include
main()
{
char a[80],c;
int i,j,n;
printf("input a
66、 str:");
gets(a);
printf("input a char:");
c=getchar();
i=0;
n=strlen(a);
for(i=0,j=0;i
#include
main()
{char s1[80],s2[80];
int i,j;
printf("input s1:");
gets(s1);
i=0;j=0;
while(s1[i]!= '\0')
{ if(s1[i]%2==0 && i%2==0)
s2[j++]=s1[i];
i++;
s2[j]='\0';
}
printf("\n%s",s2);
}
6.13 有一行電文,已按下面規(guī)律譯成密