版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)習(xí)題解答(參考)
習(xí)題一
一、單項(xiàng)選擇題
LD2.A3.D
二、填空題
1.順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)
2.算法
3.語(yǔ)言簡(jiǎn)潔、運(yùn)算符豐富、結(jié)構(gòu)化語(yǔ)言
4.可移植性強(qiáng)、代碼效率高、書(shū)寫(xiě)格式自由
5.錯(cuò)誤隱蔽、有時(shí)會(huì)難以理解、有時(shí)會(huì)難以修改
6.群舉法(枚舉法)、遞推法(迭代法)、遞歸法
7.做什么怎么做
二、應(yīng)用題
include<sldio.h>
voidmain()
printf("*********************A***\n"),
printff4Clanguageprogram'n");
printf(“**********朱*************
I
2.
include<stdio.h>
voidmain()
(
inta,b,c,niax;
scanfC%d%d%d,\&a,&b,&c);
if(a>b)max=a;
elsemax=b;
if(niax<c)max=c;
printf(t4Max=%d\n,,,max);
習(xí)題二
一、單項(xiàng)選擇題
l.A,D,E2.B,E3.B.D,E,F,H4.B,F5.A,B,E
二、填空題
l.(l)int⑵char⑶double(4)long⑸char(6)char(7)inl(8)long
2.(D0(2)0(3)2(4)4(5)4(6)8(7)0(8)2
3.211I
4.不做
5.sin(25*3.14159/180)+cos(30*3.14159/180)
6.2
8.5
三、給出各個(gè)程序的運(yùn)行b結(jié)果
1.運(yùn)行結(jié)果如下:
3
21
5
5
2.運(yùn)行結(jié)果如下:
6,9
9,27
習(xí)題三
一、單項(xiàng)選擇題
1.1)2.B3.1)4.C5.B6.C7.B8.A9.C1().I)
11.D12.D13.B14.A15.A16.B17.C18.C19.B20.B
21.1)22.C23.C24.D25.C26.C27.1)28.D29.B30.A
二、填空題
1.從標(biāo)準(zhǔn)設(shè)備(鍵盤)上讀入?一個(gè)字符向標(biāo)準(zhǔn)設(shè)備(鍵盤)上輸出一個(gè)字符
#include<sidio.h>
2.以十進(jìn)制形式輸入一個(gè)整數(shù)表示從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取輸入的3個(gè)整型數(shù)
表示掉過(guò)3個(gè)整數(shù)不讀取用來(lái)輸入一個(gè)字符
3.以十進(jìn)制形式輸出一個(gè)整數(shù)以十六進(jìn)制形式輸出一個(gè)整數(shù)
以十進(jìn)制小數(shù)形式輸出,輸出的數(shù)據(jù)長(zhǎng)度為7位,其中有兩位為小數(shù)
以字符形式輸出一個(gè)字符
4.分程序:;5.-16.非00
7.a%7==0else8.39.2
10.forwhiledo-while11.Continue12.a=16,y=42
13.1014.y=1915.22222
16.3917.718.5,5
19.n=420.-321.8
3.04.5675.thisnumberisahuiwen
四、編程題
1.編寫(xiě)一個(gè)程序,要求用戶輸入兩個(gè)整數(shù),判定其中一個(gè)是否能整除另一個(gè)。
#include<stdio.h>
intmain()
(
inta,b;
while(scanf("%d%d",&a,&b)==2)
(
if(a%b)printfi"不能整除\n");
elseprintf("能整除\n");
)
return0;
)
2.編程實(shí)現(xiàn):輸入一個(gè)整數(shù),判斷它能否被3,5,7整除,并輸出以下信息之一:
①能同時(shí)被3,5,7整除;
else
if(x<3)
y=0.1/2;
else
do
{
y=(0.2+y)/2;
x=x-l;
}while(x-3>0);
}
prinlf("%3y);
}
4.輸入a、b、c三條邊,判斷它是否構(gòu)成三角形。若能構(gòu)成三角形,則計(jì)算三角形面積。
#include<stdio.h>
#includc<math.h>
main()
{
floata,b,c,S=0,x=0;
printf("輸入三角形三條邊的邊K:");
scanf("%f%tW,&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
(
x=(a+b+c)/2.0;
S=sqrt(x*(x-a)*(x-b)*(x-c));
printf("area=3);
)
Else
printf("不能構(gòu)成三角形\n");
)
5.打印出所有“水仙花數(shù)“。所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)
本身。例如,153是一個(gè)“水仙花數(shù)”,因?yàn)?53=13+53+3是
#include"stdio.h"
#include"math.h"
main()
{
inti;
inta.b.c;
for(i=10();i<=999;i++)
(
a=i%10;/*取個(gè)位數(shù)號(hào)
b=i/10%l0;/*取十位數(shù)號(hào)
c=i/100;/*取百位數(shù)*/
if(i==a*a*a+b*b*b+c*c*c)
printf("%d",ii;
)
)
6.編寫(xiě)一個(gè)程序,在屏幕上顯示如下圖形(圖形的層數(shù)讀者自行設(shè)定):
*
***
*****
*****
***
*
#include<stdio.h>
#include<math.h>
inain()
{
inti,j,k;
for(i=-3;i<=3;i++)
(
for(j=hj<=abs(i);j++)
printf("%c",32);
for(j=l;j<=7-2*abs(i);j++)
printfC'*");
printf(n\n");
)
1
7.求斐波那契(Fibonacci)數(shù)列:1,1,2,3,5,8,……的前40個(gè)數(shù)。
斐波那契數(shù)列的定義:
Fi=l(n=1)
F2=l(n=2)
Fn=Fn.|+Fn-2(n>3)
#include<stdio.h>
main()
(
intfl,f2,f;
inti;
fl=f2=l;
printf("%d\n%d\n”,fl,f2);
for(i=l;i<=38;i++)/*已經(jīng)有兩個(gè)數(shù),只要再產(chǎn)生38個(gè)數(shù)即可可
{
■l+f2;
flM2;
f2=f;
printf("%d\ii",f);
)
8.編程實(shí)現(xiàn)求1+2+3+…+n之和,并輸出當(dāng)其和第一次大于或等于10()時(shí)的值及n值。
#include<stdio.h>
main()
(
inti,s,t=0;
i=l;s=0;
while(i<=100)
(
s=s+i;
if(s>=100&&?1)/*設(shè)定l只求第一次和大于100的內(nèi)容*/
(
printff第一次和大于或等于100時(shí)和為%d\n”,s);
prinlff第一次和大于或等于100時(shí)n^%d\n",i);
t+=l;
)
i=i+l;
)
printf("s=%d\nH,s);
)
9.整元換零錢問(wèn)題。把I元兌換成I分、2分、5分的硬幣,共有多少種不同的換法?
#include<stdio.h>
main()
{
inti,j,k,n;
n=100,k=0;
fbr(i=0:i<=n/5;i++)
for(j=0j<=(n-i*5)/2y++)
{
printf("5cent=%d\t2cent=%d\tIcent=%d\n",i,j,n-i*5-j*2);
k++;
)
prinlf("totallimes=%d\n",k);
}
10.編寫(xiě)解雞兔同籠問(wèn)題的程序。用戶輸入頭的數(shù)目和腳的數(shù)目,輸出雞、兔各有多少只。
#include<stdio.h>
main()
{intx,y,a,b;
printf("輸入雞兔頭的數(shù)目:");
scanf(M%d",&x);
printf("輸入雞兔腳的數(shù)目:“);
scanf("%d”,&y);
a=x-(y-2*x)/2;
b=(y-2*x)/2;
printf("雞有%(1只,兔有%d只”,a,b);
)
11.打印楊輝三角形,即(x+yF展開(kāi)式的各項(xiàng)系數(shù),并且在程序運(yùn)行開(kāi)始時(shí),問(wèn)用戶n的值為多
少,接著打印如下形式至指定行數(shù)。
121
1331
14641
#include<stdio.h>
intmain()
{intn,k,j,c;
printf("Input=");
scanf("%d",&n);
for(k=l;k<=n;k++)
{
〃printf(”%*s”,4*(n-k));/*格式控制語(yǔ)句,有和沒(méi)有是兩種顯示方式*/
c=l;
printf("%4d",c);
for(j=l;j<=k-l;j++)
(
c=c*(k-j)/i;
printf("%8d",c);
)
printfC'Xn");
)
return0;
)
12.個(gè)位數(shù)是6,且能被3整除的五位數(shù)共有多少個(gè)?
#include<stdio.h>
main()
{inta,count=0;
longi;
for(i=10000;i<100000;i++)
{
a=i%10;
if(a==6&&i%3==0)
count++;
printf("這樣的數(shù)共計(jì):%d",count);
習(xí)題四
一、單項(xiàng)選擇題
1.C2.D3.1)4.D5.C6.1)7.B8.A9.B1().B
二、填空題
1.—15014float2.8
3.連續(xù)數(shù)組名4.按行存儲(chǔ)
5.046.350
7.368.9
9.710.#include<stdio.h>#include<string.h>
三、程序閱讀分析題
1.i==ja[i][j]a[i][j]printf(*\n*)
2.k=32
3.gbcdefa
4.012345
123456
234567
345678
456789
5678910
5.you&me
四、編程題
1.設(shè)數(shù)組V中的數(shù)據(jù)元素遞增有序,現(xiàn)將x插入到數(shù)組V的適當(dāng)位置,使數(shù)組元素的值仍保持有序。
#include<stdio.h>
voidmain()
intV[15]={65,70,73,75,79,81,85,88,90};/*有9個(gè)初值,有序*/
intn=9,x=77;/*數(shù)組中當(dāng)前有n個(gè)數(shù)據(jù),將x插入數(shù)組V中,仍保持有序*/
inti;
for(i=n-l;i>=0&&;'[i]>x:i—)/*將V數(shù)組中的數(shù)據(jù)從后往前比較*/
V[i+l]=V[i];/*若大于x,后移一個(gè)位置*/
V[i+l]=x;/*將x插入數(shù)組V中*/
n++;/*數(shù)組中數(shù)據(jù)個(gè)數(shù)增1*/
for(i=0:i<n:i++)/*輸出數(shù)組中的n個(gè)數(shù)據(jù)*/
printf(線d”:V[i]);
printf("\n");
)
2.定義一個(gè)含有30個(gè)整型元素的數(shù)組,按順序分別賦予從2開(kāi)始的偶數(shù),然后按順序每五個(gè)數(shù)求
出一個(gè)平均值,放在另一個(gè)數(shù)組中并輸出。
#include<stdio.h>
voidmainO
intarray[30],average[6]={0};
inti,j;
for(i=0;i<30;i++)
array[i]=2*(i+l);
for(j=0;j<6;j++)
(
for(i=5*j;i<5*(j+l);i++)
average[j]+=array[i];
average[j]/=5;
prinlf("%daverage[j]);
)
printf("\n");
)
3.輸入一個(gè)字符串,在指定位置插入一個(gè)字符。
#include<stdio.h>
voidmain()
(
charstr[81],ch;
inti,position;
printf("輸入一個(gè)字符串:”);
gets(str);
printf(〃輸入要插入字符的位置:”);
scanf&position);
printf("輸入要插入的字符:〃);
scanf(飛*c%c”,&ch);
for(i=0;str[i]!=:\0';i++);
whi1e(i>=position-1)
|
str[i+l]=str[i];
i—;
)
str[position-l]=ch;
printf(〃在指定位置插入字符后的字符串:斷An",str);
)
4.輸入一行字符,分別統(tǒng)計(jì)其中十個(gè)數(shù)字字符O,T,…,9出現(xiàn)的次數(shù)。
#include<stdio.h>
voidmain()
(
charstr[81];
intcount[10]={01,i;
printf("輸入一行字符:\n");
gets(str);
for(i=0;str[i]!=!\0';i++)
if(str[i]>=0,&&str[i]<=9')
count[strEi]-*0*]++;
for(i=0;i<10;i++.)
printf('\'%c\':%d\n",'O'+i,count[i]);
)
5.輸入矩陣A(2行3列)和矩陣B(3行4列),計(jì)算它們的乘積C=ABO
(矩陣乘積計(jì)算公式:CrEAlkBkj)
#include<stdio.h>
voidmain()
(
inta[2][3],b[3][4],c[2][4]:
inti,j,k;
printf(〃輸入2行3列矩陣數(shù)據(jù):\n〃);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf&a[i][j]);
printf(〃輸入3行4列矩陣數(shù)據(jù):\n");
for(i=0;i<3;i++)
for(j=0;j<4;j?i)
scanf&b[i][j]);
for(i=0;i<2;i++)
for(j=0;j<4;j++)
(
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
)
printf("兩矩陣的乘積矩陣是:\n");
for(i=0;i<2;i++)
(
for(j=0;j<4;j++)
printf(飛5d",Mi][j]);
printf("\n");
)
)
6.下面是一個(gè)5X5階的螺旋方陣。試編程打印出此形式的nXn(nV10,順時(shí)針?lè)较蛐M(jìn))。
12345
161718196
152425207
142322218
131211109
#include<stdio.h>
^defineN5
voidmain()
inta[N][N],i,j,k,n;
i=0;
j=0;
n=l;
for(k=l;k<=N*N;k++)
(
if(i==n-l&&j<N-n)
a[i][j++]=k;
elseif(j=N-n&&i<N-n)
a[i++][j]=k;
elseif(i==N-n&&j>n-l)
a[i][j—]=k;
else
a[i—][j]=k;
if(i==n&&j==n-l)
n++;
)
for(i=();i<N;iii)
(
for(j=0;j<N;j++)
printf(飛5d”,a[i][j]);
printfC\n*);
)
}
7.編一程序,實(shí)現(xiàn)字符串復(fù)制,不使用sircpyO函數(shù)。
#include<stdio.h>
voidmain()
(
charstrl[81],str2[]=z,Iamastudent.";
inti;
for(i=0;(strl[i]=str2[i])!='\0';i++);
printf(,,%s\n%s\nv,strl,str2);
)
8.編一程序,求字符串的長(zhǎng)度,不使用strlenO函數(shù)。
#include<stdio.h>
voidmain()
(
charstr[81];
intn;
printf("輸入一個(gè)字符串:");
gets(str);
n=0;
while(str[n]!='\0')
n++;
printf("字符串的長(zhǎng)度是:刎\n”,n);
)
9.有一篇文章,共有3行文字,每行有80個(gè)字符。要求分別統(tǒng)計(jì)出其中英文大寫(xiě)字母、小寫(xiě)字母、
數(shù)字、空格以及其他字符的個(gè)數(shù)。
#include<stdio.h>
voidmain()
(
charstr[3][81];
charcategory[5][l0]={〃UPPER〃,“LOWER","DIGIT","SPACE","OTHER"};
inti,j,count[5]={0};
printf("輸入3行文字:\n");
for(i=0;i<3;i++)
gets(str[i]);
for(i=0;i<3;i++)
for(j=0;str[i][]]!=>\0';j++)
if(str[i][j]>=A*&&str[i][j]<=Z')
count[0]++;
elseif(str[i][j]>=>a'&&str[i][j]<=*z*)
count[1]++;
elseif(str[i]O'&&str[i][j]<=,9')
count[2]++;
elseif(str[i][j]==*)
count[3]++;
else
count[4]++;
for(i=0:i<5;i++)
printf(w%s:%d\n/z,category[i],count[i]);
)
10.某班期終考試科目為高等數(shù)學(xué)(MT)、英語(yǔ)(EN)和物理(PH)。有3()人參加考試。為評(píng)定獎(jiǎng)學(xué)金,
要求統(tǒng)計(jì)并輸出一個(gè)表格,表格內(nèi)容包括學(xué)號(hào)、各科分?jǐn)?shù)、總分和平均分,并標(biāo)出三門課均在90分
以上者(該欄標(biāo)志輸出為“Y”,否則為“N”),表格形式如下:
NOMTENPHSUMV>90
197879227692Y
292919027391Y
390818225384N
可以將學(xué)生的學(xué)號(hào)和各科成績(jī)放在數(shù)組a[30][4]中,然后進(jìn)行統(tǒng)計(jì)處理。
#include<stdio.h>
^defineN30
voidmain()
(
intstu[N][4],sum;
inti,j;
chargreat90;
for(i=0;i<N;i++)
(
printf(〃輸入第%d個(gè)學(xué)生的數(shù)學(xué)、英語(yǔ)和物理成績(jī)(空格分隔):〃,i+1);
stu[i][O]=i+1;
for(j=l;j<4;j++)
scanf&stu[i][j]);
)
printfCNOMTENPHSUMV>90\n");
printf('-------------------------------------\n");
for(i=0;i<N;i++)
(
sum=0;
great90=,YJ;
printfstu[i][0]);
for(j=l;j<4;j++)
(
printf(飛5d”,stu[i][j]):
sum>=stu[i][j];
if(stu[i][j]<90)
grcat90=,N';
)
printf(飛5d“:sum);
printfsum/3);
printf(,/%5c\n,/,great90);
)
}
習(xí)題五
一、單項(xiàng)選擇題
1.B)2.D)3.A)4.D)5.A)6.C)
二、填空題
1.52.883.2
4.12125.4126.1行的行地址
三、程序分析題
1.24
2.ENGLISH
MATH
MUSIC
PHYSICS
CHEMISTRY
四、編程題(以下題目均要求用指針?lè)椒▽?shí)現(xiàn))
1.#include<stdio.h>
#include<string.h>
voidmain()
(
char*n[]={"china","japan","korea","american","england"},*temp;
int
for(i=0;i<5;i++)
(
k=i;
for(j=i+l;j<5;j++)
if(strcmp(n[k],n[j])>0)k=j;
if(k!=i)
{
temp=n[k];n[k]=n[i];n[i]=tcmp;
)
)
for(i=0;i<5;i++)
printf("%s\n",n[i]);
)
2.#include<stdio.h>
voidmain()
(
inta[10]=)87,78,69,79,98,86,91,75,71,95),*p,temp;
inti,min_order;
P=a;
for(i=l;i<10;i++)
if(*p>a[i])p=a+i;
min_ordcr=p-a;
printf(,zMin=a[%d]=%d\nz,,min_order,ci[min_order]);
temp=*p;*p=a[Oj;a[0]=temp;
for(i=0;i<10;i++)
printfa[i]);
printf("\n");
)
3.略
4.#include<stdio.h>
voidmainO
{
inta[10]={10,20,30,40,50,60,70,80,90};/*數(shù)組中9個(gè)數(shù)有序*/
int*p,x=35;/*x為待插入的數(shù)據(jù)*/
for(p=&a[8];(p>=a)&&(*p>x);p-)
*(p+D=*p;/*從后向前將比x大的數(shù)據(jù)后移一個(gè)位置*/
*(p+l)=x;/*將X插入到數(shù)組中*/
for(p=a;p<a+10;p++)/*輸出數(shù)組中的數(shù)據(jù)*/
prinlf*p);
printfC\n*);
)
5.#include<stdio.h>
voidmain()
(
chars[255],prrior=,',*p;
printf(〃輸入一行英文:\n〃);
gets(s);
for(p=s;*p!=>\0";p++)/*掃描字符串*/
(
if(prrior==,*&&*p)='a'&&*p<='z')/*單詞開(kāi)始且是小寫(xiě)字母*/
*p-=32;/*將單詞的第一個(gè)字母改為大寫(xiě)*/
prrior=*p;
)
puts(s);
)
6.#include<stdio.h>
voidmain()
(
charstrl[81j,str2amaboy.*;
char*s,*t;
s=str2;
t=strl;
while((*t=*s)!='\0')
(
s++;
t++;
}
puts(strl);
)
7.略
8.略
9.編寫(xiě)程序,實(shí)現(xiàn)輸入月份號(hào),輸出相應(yīng)的英文月份名。
10.略
11.略
12.#include<stdio.h>
voidmain()
(
charstr[81],*p,*q;
printf("輸入一個(gè)字符串:\n");
gets(str);
for(q=str;*q!=>\0*;q++);
for(p=str,q—;(p〈q)&&(*p==*q);p++,q—);
if(p<q)printf("字符串:%s不是回文串!\n”,str);
elseprintf("字符串:%s是回文串!\n”,str);
}
13.#include<stdio.h>
voidniain()
(
charstr[81],*p,qc,pc;
printf(〃輸入一個(gè)字符串:\n〃);
gets(str);
for(q=str;*q!=,\0J;q++);
for(p=str,q—;p<q;p++,q—)
(
pc=(*p>=,a,&&*p<='z')?*p-32:*p;
qc=(*q>=,a'&&*q<='z)?*q-32:*q;
if(pc!=qc)break;
)
if(p<q)printf("字符串:用s不是回文串!\n”,str);
elseprintf("字符串:%s是回文串!\n",str);
)
14.#include<stdio.h>
#includc<stdlib.h>
#include<time.h>
voidmain()
(
int*a,n,i;
printf("輸入一維數(shù)據(jù)的長(zhǎng)度:〃);
a=(int*)malloc(n^sizeof(int));//動(dòng)態(tài)分酉己內(nèi)存空間
printf("%d\n",tine(NULL));
srand(time(NULL):;〃初始化隨機(jī)數(shù)序列
for(i=0;i<n;i++)
a[i]=rand()%100;//產(chǎn)生隨機(jī)數(shù)
for(i=0;i<n;i++)
printf(z,%d”,a[i]);〃輸出數(shù)據(jù)
printf("\n");
)
15.略
習(xí)題六
一、單項(xiàng)選擇題
1-5ADBDB6-10BAACD
二、填空題
1.從定義變量處到程序結(jié)束局部變量
2.auto
3.return(表達(dá)式)void
4.returns;
5.*pl>*p2;*pl=*p2;
6.floata[],intns+=ali];
7.*s-*t
8.w(i-l]
9.>(b!=0)
10.i<10array!i]average(score)
三、程序閱讀分析題
1.maxis2
2.100,200,300
3.last=64
4.5109
5.12
四、編程題
1.函數(shù)root2如下:
voidroot2(floata,floatb,floatc,floatroot[J)
{floatd;
d=b*b-4*a*c;
root[0]=(-b+sqrt(d))/(2*a);
root[1]=(-b-sqrt(d))/(2*a);
)
2.函數(shù)countc如下:
intcountc(chararrry[J)
{inti.n=0;
for(i=0;array[ij!-\0';i++)
if(array[i]>='A'&&array[i]<-Z')n++;
return(n);
)
3.解:函數(shù)link如下:
intlink(charsll],chars2[],chars3[])
{inti,j;
forCi=0;sl[i]!='\0';i++)s3[i]=sl[i];
fora=0;s2[i]!='\0';j++,i++)s3[i]=s2[j];
s3[i]='\0';
return(i);
)
4.#include<stdio.h>
voidfun(floata[].intrefloat*pmax,float*pmin,float*pave)
inti;
*pinax=*pinin=*pave=alOJ;
for(i=l;i<n;i++)
{
if(*pmax<a[i])*pinax=a[i];
if(*pmin>a[i])*pniin=a[i];
*pave+=a[i];
I
*pavc/=n;
)
voidmain()
{
floata[10],niax,min,ave;
intn,i;
printf("plcascinputdata:\n");
for(i=0;i<10;i++)
scanf("%r;&a[i]);
piintf("pleaseinputnnuEiberiVi");
scanf(M%d'\&n);
fun(a.n,&max,&min,&ave);
printf("max=%f,niin=%f,avc=%f',niax,min,ave);
}
5.#include<stdio.h>
intage(intn)
(
intc;
if(n==l)c=10;
elsec=age(n-i)+3;
returnc;
)
voidmain()
(
intn=5;
printf("%d\n",age(5));
I
6.#include<stdio.h>
floatp(intn,intx)
floatu,v,w;
if(n==O)returnI;
elseif(n==l)returnx;
else
{u=(2*n-1)*x*p((n-1),x);
v=(n-l)*p((n-2),x);
w=(u-v)/n;
returnw;
)
}
voidmain()
{
inta,b;
floatc;
printf("Inputn,x:\n");
scanf("%d,%d';&a,&b);
c=p(a,b);
printf("theresultis%f',c);
}
7.#includc<stdio.h>
void(riangle(inlx,inty,intz)
{
if(x+y>z&&y+z>x&&x+z>y)
{if(x==y&&y==z)printf("Thisisaequilateraltriangle."):
elseif(x==y||y==z||x==z)printf("Thisisaisoscelestriangle.");
)
else
printt'C'Can'lcompositiontriangle!");
}
voidmain()
(
intx,y,z;
printf("Inputx,y,z:\iT);
scanf("%d,%d,%d",&x,&y,&z);
triangle(x,y,z);
}
8.
#include<stdio.h>
floatou(intn)
(
floats=0;
inti;
for(i=2;i<=n;i+=2)
s+=1.000000/i;
return(s);
floatji(intn)
(
floats=0;
inti;
fdr(i=l;i<=n;i+=2)
s+=1.000000/i;
retum(s);
}
floatcall(floal(*fp)(inl),intn)
{
retum((*fp)(n));
}
voidmain()
(
floatsum;
intn;
scanf("%d",&n);
printf("sum=");
if(n%2==0)
sum=call(ou,n);
else
sum=call(ji,n);
printf("%f',sum);
習(xí)題七
一、單項(xiàng)選擇題
1.A)2.A)3.B)4.C)5.B)6.B)7.C)8.D)9.C)10.B)
二、填空題
1.typedef2.union3.使用字干數(shù)最大4.p=&x
三、程序分析題
1.10,x
四、編程題
1.#include<stdio.h>
#include<stdlib.h>
#include<time.h>
^defineN10
typedefstructnode{
intvalue;
structnode*next;
}Node;
voidmain()
(
Node*head,*t,*p;
inti,x;
srand((unsigncd)time(NULL));〃初始化隨機(jī)數(shù)序列
head=(Node*)malloc(sizeof(Node));
head->next=NULL;〃建立帶頭節(jié)點(diǎn)的空單鏈表
for(i=0;i<N;i++)
(
x=rand()%100;
printf('%d”,x);
t=(Node*)malloc(sizcof(Node));
t->value=x;
p=head;
while(p->next!=NUI.L&&p->next->va1ue<x)
p=p->next;
t->next=p->next;
p->next=t;
}
printf(,z\nz,);
p=head->ncxt;
while(p!=NULL)
(
printf(^d",p->/alue);
p=p->next;
}
printf("\n");
)
2.#include<stdio.h>
#includc<string.h>
#defineN3
structstudent{
ininum;
charname[11];
charsex[3];
intage;
floatscore;
);
voidinain()
(
structstudentstu|Nl;
intnan=0,nv=0,i;
floatpjnl=O,pjcj=O;
for(i=0;i<N;i++)
(
printf("輸入第%d個(gè)學(xué)生的數(shù)據(jù):\n”,i+l);
printf(“學(xué)號(hào):");scanf("%d%*c”,&siu[i].num);
printf("姓名丁");gets(stu[i].name);
printf("性別:");gets(stu[i].sex);
printf("年齡:");scanf("%d",&stu[i].age);
printf("成績(jī):");scanf("%F',&stu[i].scorc);
)
for(i=0;i<N;i++)
(
if(strcmp(stu[i].sex,"男")==0)nan++;
elsenv++;
pjnl+=stu[il.age;
pjcj+=stu[i].score;
}
pjnl=pjnl/N:
pjcj=pjcj/N;
print,男生人數(shù):%d,女生人數(shù):%d,平均年齡:%.2f,平均成績(jī):%.2f\n",nan,nv,pjnl,pjcj);
for(i=0;i<N;i++)
if(stufil.score<pjcj)
printf("%s%.2f\n,',stu[i].name,stu[iJ.score);
}
3.略
習(xí)題八
一、單項(xiàng)選擇題
LA2.A3.B4.B5.A6.C7.B8.D9.A10.A
二、填空題
1.文本文件二進(jìn)制文件542.文件型指針變量stdio.h
3."D:\\abc.dat"4.getchar()
5.puts(buff)6.rewind(fp)fseek(fp,72L,SEEK_SET)
7.將數(shù)組a中的10個(gè)整數(shù)寫(xiě)入fp文件8.二進(jìn)制
9.fprintf(stdout,,?,)10.新建一個(gè)文件
三、應(yīng)用題
I.為什么要打開(kāi)和關(guān)閉文件?
答:通過(guò)打開(kāi)操作可以建立程序和文件之間的通訊通道,并為文件操作建立緩沖區(qū),使程序中的一
個(gè)文件型指針變量代表一個(gè)文件。而關(guān)閉操作可以釋放相關(guān)的資源,如緩沖區(qū)等。
2.使用讀寫(xiě)函數(shù)對(duì)文件讀或?qū)懖僮骱?,文件位置指針將如何變化?/p>
答:使用讀寫(xiě)函數(shù)對(duì)文件讀或?qū)懖僮骱?,文件位置指針將指向所讀或?qū)憯?shù)據(jù)之后的數(shù)據(jù)。
3.有兩個(gè)磁盤文件datal和data2,各存放若干整數(shù),并且這些整數(shù)是按從小到大的順序存放的。將
這兩個(gè)文件中的數(shù)據(jù)合并輸出到文件data中,data中的數(shù)據(jù)要求有序。
假設(shè)是文本文件,且文件中的數(shù)據(jù)是用空格或Tab或回車分隔的(也可考慮是二進(jìn)制文件)。
#include<stdio.h>
#include<stdlib.h>
voidmain()
(
FILE*frl,*fr2,*fw;
intil,i2,si,s2;
frl=fopen("datal","r");/*打開(kāi)文件datal*/
fr2=fopen(〃dala2","r");/*打開(kāi)文件data2*/
fw二fopen("data",;/*打開(kāi)文件data*/
sl=fscanf(frl,&i1);/*從文件datal讀第一個(gè)數(shù)據(jù),不成功返回EOF*/
s2:fscanf(fr2,&i2);/*從文件data2讀第一個(gè)數(shù)據(jù),不成功返回EOF*/
whi1e(s1!=E0F&&,s2!=EOF)/*文件datal和data2均未結(jié)束,循環(huán)*/
(
if(il<i2)
(
fprintf(fw,”,il);/*從文件datal讀的數(shù)據(jù)寫(xiě)入文件data*/
sl=fscanf(frl,"刎",&i1);/*從文件datal讀下一個(gè)數(shù)據(jù)*/
)
else
(
fprintf(f\v,"%d",i2);/*從文件data2讀的數(shù)據(jù)寫(xiě)入文件data*/
s2=fscan「(fr2,〃%d〃,&i2);/*從文件data2讀下一個(gè)數(shù)據(jù)*/
)
)
while(sl!=EOF)/*文件datal的剩余數(shù)據(jù)寫(xiě)入文件data*/
{
fprintf(fw,*%d*,il);
sl=fscanf(frl,"%d",&i1);
)
while(s2!=E0F)/*文件data2的剩余數(shù)據(jù)寫(xiě)入文件data*/
(
fprintf(fw,*%d",⑵;
s2=fscanf(fr2,&i2);
)
fcloseal1();
)
4.輸入N個(gè)學(xué)生的信息(包括:學(xué)號(hào),姓名,5科成績(jī),總分),統(tǒng)計(jì)所有學(xué)生的總分,存入二進(jìn)制
文件stu_sc.dat中。然后讀取該文件,查找總分最高的學(xué)生,并輸出該生的所有信息。
#include<stdio.h>
^defineN3
typedefstruct{
intnum;
charname;
intscore[5];
inttotal;
}STUDENT;
voidmain()
(
FILE*fp;
STUDENTst,smax;
inti,j;
fp=fopen(,zstu_sc.dat","wb+”);
for(i=0;i<N;i++)
{
printf("輸入學(xué)生的學(xué)號(hào)和5門課成績(jī):");
scan&st.num);
st.total=0;
for(j=0;j<5;j++)
(
scanf(W,&st.score[j]);
st.total+=st.score[j];
)
fwrite(&st,sizeof(STUDENT),1,fp);
)
rewind(fp);
fread(&smax,sizeof(STUDENT),1,fp);
while(feof(fp))
fread(&st,sizeof(STUDENT),l,fp);
if(st.total>smax.total)
smax=st;
)
printf(“%d”,smax.num);
for(j=0;j<5;j++)
printf(^d*.smax.score[j]);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生畢業(yè)贈(zèng)言15篇
- 文藝晚會(huì)策劃方案范文錦集八篇
- 產(chǎn)品銷售合同六篇
- 團(tuán)隊(duì)精神演講稿(匯編15篇)
- 校本研修工作總結(jié)
- 企業(yè)員工工作計(jì)劃
- 我的拿手好戲作文500字10篇
- 數(shù)學(xué)學(xué)習(xí)計(jì)劃合集10篇
- 護(hù)士個(gè)人年終述職報(bào)告4篇
- 春季開(kāi)學(xué)典禮校長(zhǎng)演講稿合集6篇
- 借用模具合同范例
- 測(cè)繪地理信息與地圖編制作業(yè)指導(dǎo)書(shū)
- 實(shí)驗(yàn)診斷學(xué)練習(xí)題庫(kù)(附參考答案)
- 2024版新能源汽車充電站電線電纜采購(gòu)合同2篇
- 國(guó)家藥包材檢驗(yàn)標(biāo)準(zhǔn)培訓(xùn)
- 腫瘤科危急重癥護(hù)理
- 2024-2030年中國(guó)加速器行業(yè)發(fā)展趨勢(shì)及運(yùn)營(yíng)模式分析報(bào)告版
- 護(hù)理查房深靜脈置管
- 計(jì)算與人工智能概論知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋湖南大學(xué)
- 2024年度油漆涂料生產(chǎn)線租賃合同3篇
- 2024-2024年上海市高考英語(yǔ)試題及答案
評(píng)論
0/150
提交評(píng)論