




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
程序設計題
一、對應教材的選擇結構知識點(注意:黃色標注的是設計的
函數(也就是題目要求的內容,應該是一定要掌握的),黑色字
體的是程序運行的主函數,都是經過驗證的,但還是可能會有錯
誤,歡迎糾正!!!)
1.設計一函數,判斷某一年是否是閏年。如果給定的年份能被4整除但不能被100整除
或者年份能被400整除的是閏年,閏年的2月比平年的2月多一天。
ttinclude<stdio.h>
voidmain()
{
intsort(int);
intyear,leap;
printf(〃請輸入一個年份:〃);
scanf(〃%d〃,&year);
leap=sort(year);
if(leap)
printf(〃這是閏年〃);
elseprintf(〃這不是閏年〃);
printf(〃\n〃);
}
intsort(intyear)
[-
intleap;
if(year%400==0||year%100!=0&&year%4==0)
leap=l;
elseleap=0;
returnleap;
)
2.設計一函數,對于給定的一個百分制成績,輸出相應的五分制成績。設:90分
以上為'A';80~89分為'B';70~79分為'C';60~69分為'D';60
分以下為‘E'。
ftinclude<stdio.h>
voidmain()
(
intexchange(intscore);
intscore;
chargrade;
printf("請輸入一個百分制成績:”);
scanf(〃%d〃,&score);
grade=exchange(score);
printf(〃五分制成績是:〃);
printf(〃猊\n〃,grade);
intexchange(intscore)
{
chargrade;
intn;
n=score/10;
switch(n)
■一
case10:
case9:grade='A';break;
case8:grade='B';break;
case7:grade=,C;break;
case6:grade='D';break;
default:grade='E';
returngrade;
}
3.設計一函數,對輸入的字符串,統計其中字母個數,數字個數、空格個數及其它
符號個數。
^include<stdio.h>
intletter=0,number=0,space=0,others=0;
voidmain()
{
voidsum();
printf(〃請輸入一個字符串:〃);
sum();
printf(,zletter=%d,number=%d,space=%d,others=%d\n,/,letter,number,space,other
s);
}
voidsum()
(
charc;
while((c=getchar())!='\n)
if(c<'z'&&c>'a5||c〈'Z'&&c>'A')
letter++;
elseif(c>'O'&&c〈'9')
number++;
elseif(c==,')
space++;
elseothers++;
4.設計一函數,實現對分段函數的計算。
[X2-1(Q0)
[2x3—x+l(x<0)
#include<stdio.h>
voidmain()
(
floatx,y;
floatfdhs(floatx);
printf("請輸入x:”);
scanf(n%fn,&x);
y=fdhs(x);
printf("分段函數的結果是:");
printf(n%.2f\nn,y);
5.設計一函數,用于實現符號函數,函數形式如下。
1x>0
y=v0x=0
-1x<0
#include<stdio.h>
voidmain()
(
intx,y;
intfhhs(intx);
printf("請輸入x:”);
scanf(n%dH,&x);
y=fhhs(x);
printf("符號函數的結果是:");
printf(n%d\nn,y);
elseif(x==O)
y=o;
elseif(x<0)
y=-i;
returny;
6.設計一函數,對輸入的整數n判斷其是奇數還是偶數,如果是奇數返回值1,偶數返回
值2。
#include<stdio.h>
voidmain()
{
intn,leap;
intjudge(intn);
printf(〃請輸入一個整數:〃);
scanf(〃%d〃,&n);
leap=judge(n);
printf(〃%d\n〃,leap);
intjudge(intn)
(
intleap;
if(n%2==l)
leap=l;
elseleap=2;
returnleap;
7.設計一函數,函數功能是返回兩個整數中大的值。
#include<stdio.h>
voidmain()
(
intx,y;
intmaxi;
intmax(intx,inty);
printf(〃請輸入兩個整數:〃);
scanf(zz%d%d,z,&x,&y);
maxi=max(x,y);
printf(〃兩個整數的最大值是:%d\nz,,maxi);
}
intmax(intx,inty)
(
returnx>y?x:y;
8.設計一函數,函數的功能是判斷形參字符是否為字母,如果是小寫字母則轉換為對應的
大寫字母,如果大寫字母則轉換為對應的小寫字母,其它字符不轉換,函數不返回值。
#include<stdio.h>
voidmain()
{
charexchange();
intz;
z=exchange();
printf(〃轉換后的字母是:%c\n〃,z);
charexchange()
|
intc;
c=getchar();
if(c<=,z'&&c>=,a:)
c=c-32;
elseif(c<='Z'&&c>二'A')
c=c+32;
elsec=0;
returnc;
)
二、對應教材的循環結構知識點
1.設計一函數,函數功能用于實現返回1到n(n是整數,形參)的和。
#include<stdio.h>
voidmain()
(
intn,total;
intsum(intn);
printf(〃請輸入n:〃);
scanf(〃%d〃,&n);
total=sum(n);
printf(〃求和的結果是:%d\n〃,total);
intsum(intn)
|
inti,sum=0;
for(i=l;i<=n;i++)
sum=sum+i;
returnsum;
)
2.設計一函數,函數功能用于實現判斷整數n(形參)是否為素數。
#include<stdio.h>
#include<math.h>
voidmain()
intn,leap;
intss(intn);
printf(〃請輸入一個整數:〃);
scanf(〃%d〃,&n);
leap=ss(n);
if(leap)printf(〃這不是素數\n〃);
elseprintf(〃這是素數\n〃);
intss(intn)
匚,
inti,m,t;
m=sqrt(n);
for(i=2;i<=m;i++)
{if(n%i)t=0;break;}
if(i>m)t=l;
returnt;
)
3.設計一函數,函數功能用于返回整數m與n的最大公約數。(用while語句實現)
^include<stdio.h>
voidmain()
(
intm,n,max;
intgys(intm,intn);
printf(〃請輸入兩個整數:〃);
scanf(〃%d%d〃,&m,&n);
max=gys(m,n);
printf(〃最大公約數是:%d\n/,,max);
}
intgys(intm,intn)
(
intr,t;
if(m<n)
{t=m;m=n;n=t;}
while(r)
r=m%n;
m=n;
n=r;
returnm;
)
4.設計一函數,函數功能用于返回整數m與n的最大公約數。(用do語句實現)
^include<stdio.h>
voidmain()
|
intm,n,max;
intgys(intm,intn);
printf(〃請輸入兩個整數:〃);
scanf(〃%d%d〃,&m,&n);
max=gys(m,n);
printf(〃最大公約數是:%d\nz,,max);
intgys(intm,intn)
(
intr,t;
if(m<n)
{t=m;m=n;n=t;}
do
■_
r=m%n;
m=n;
n=r;
}while(r);
returnm;
)
5.設計一函數,函數功能用于返回整數m與n的最大公約數。(用遞歸語句實現)
^include<stdio.h>
voidmain()
{
intm,n,max,t;
intgys(intm,intn);
printf(〃請輸入兩個整數:〃);
scanf&m,&n);
if(m<n)
{t=m;m=n;n=t;}
max=gys(m,n);
printf(〃最大公約數是:%d\n,z,max);
g=gys(m,n);
T.
returng;
}
6.設計一函數,函數功能用于返回表達式s=l+l/(l*2)+1/(2*3)+1/(3*4)+..?+1/(n*(n+1))
前n項和的值。
#include<stdio.h>
voidmain()
(
doublesum;
intn;
doubletotal(intn);
printf(〃請輸入一個整數:〃);
scanf(〃%d〃,&n);
sum=total(n);
printf(〃最大公約數是:%.2f\n,z,sum);
doubletotal(intn)
(
inti;
doubles=l;
for(i=l;i<n;i++)
s=s+l.0/(i*(i+l));
returns;
)
7.設計一函數,函數功能用于返回表達式s=l-l/3+l/5-l/7+...的前n項和。
#include<stdio.h>
voidmain()
(
doublesum;
intn;
doubletotal(intn);
printf(〃請輸入一個整數:〃);
scanf(〃%d〃,&n);
sum=total(n);
printf(〃前n項和是:%.2f\n〃,sum);
doubletotal(intn)
(
inti;
doubles=l;
for(i=l;i<n;i++)
if(i%2!=0)
s=s-1.0/(2*i+l);
elses=s+l.0/(2*i+l);
returns;
)
8.設計一函數,函數功能實現求表達式s=l!+2!+..?+11!,返回5的值。
^include<stdio.h>
voidmain()
(
longsum;
intn;
longtotal(intn);
printf(〃請輸入一個整數:〃);
scanf(〃%d〃,&n);
sum=total(n);
printf(,zs的值是:%d\n,z,sum);
longtotal(intn)
staticlongs=0,t=l;
inti,j;
for(i=l;i<=n;i++)
{
for(j=i;j>0;j—)
t=t*j;
s=s+t;
t=l;
■‘
returns;
)
9.設計一函數,函數功能實現統計可以用數字0至9組成多少個沒有重復的三位偶數的個
數。
^include<stdio.h>
voidmain()
{
intc;
intnumber();
c=number();
printf(〃結果是:%d\n〃,c);
L
intnumber()
(
inti,count=0;
intj,k,t;
for(i=100;i<1000;i++)
if(i%2!=0)continue;
■else
j=i%10;
k=(i%100-j)/10;
t=(i-j-k*10)/100;
if(j!=k&&k!=t&&j!=t)
count++;
)
)
returncount;
三、對應教材數組知識點(注意:這里的n可能據考試情況而定,
因為數組必須有一個確定的長度,我在這里設為10)
1.設計一函數,函數功能實現返回一個包含n個元素的數組的最大值。
^include<stdio.h>
voidmain()
(
inta[10],i,maxi;
intmax(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
maxi=max(a,10);
printf(〃輸出的最大的數是:%d\nz/,maxi);
intmax(inta[],intn)
(
intmax,i;
max=a[0];
for(i=l;i<n;i++)
if(a[i]>max)
max=a[i];
returnmax;
}
2.設計一函數,函數功能實現返回一個包含n個元素的數組的最小值。
^include<stdio.h>
voidmain()
{
inta[10],i,mini;
intmin(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(z/%d,z,&a[i]);
mini=min(a,10);
printf(〃輸出的最大的數是:%d\nzz,mini);
intmin(inta[],intn)
]
intmin,i;
min=a[0];
for(i=l;i<n;i++)
if(a[i]<min)
min=a[i];
returnmin;
}
3.設計一函數,函數功能實現返回一個包含n個元素的數組的所有元素和。
#include<stdio.h>
voidmain()
{
inta[10],i,total;
intsum(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
total二sum(a,10);
printf(〃所有的元素的和是:%d\nzz,total);
J’-.
intsum(inta[],intn)
I
intsum=0,i;
for(i=0;i<n;i++)
sum+=a[i];
returnsum;
}
4.設計一函數,函數功能實現返回一個包含n個元素的數組的所有元素的平均值。
#include<stdio.h>
voidmain()
(
inta[10],i;
floataverage;
floataver(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%dz,,&a[i]);
average=aver(a,10);
printf(〃所有的元素的平均值是:%.2f\n〃,average);
)
floataver(inta[],intn)
I
inti;
floatsum=0,aver;
for(i=0;i<n;i++)
sum+=a[i];
aver=sum/n;
returnaver;
}
5.設計一函數,函數功能實現對一個包含n個元素的數組按升序排序(選擇排序)。
#include<stdio.h>
voidmain()
(
inti,a[10];
voidmin(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
min(a,10);
printf(〃升序排序:〃);
for(i=0;i<10;i++)
printf(〃%d〃,a[i]);
printf(〃\n〃);
J.............」
voidmin(inta[],intn)
I
inti,j,k,t;
for(i=0;i<n-l;i++)
(
k=i;
for(j=i+l;j<n;j++)
if(a[k]>a[j])
k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
)
6.一個包含n個元素的數組按升序排序(冒泡排序)。
#include<stdio.h>
voidmain()
inti,a[10];
voidmin(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%dz,,&a[i]);
min(a,10);
printf(〃升序排序:〃);
for(i=0;i<10;i++)
printf(,z%d〃,a[i]);
printf(〃\n〃);
},
voidmin(inta[],intn)
|
inti,j,t;
for(i=0;i<n-l;i++)
for(j=0;j<n-i-l;j++)
if(a[j]>a[j+l])
{t=a[j];a[j]=a[j+l];a[j+l]=t;}
}
7.設計一函數,函數功能實現統計一個數值型數組中奇數的個數n,函數返回no
#include<stdio.h>
voidmain()
(
inti,a[10],total;
intcount(inta[]);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(z/%d,z,&a[i]);
total=count(a);
printf(〃奇數的個數是:%d\nz,,total);
}
intcount(inta[10])
|
inti,n=0;
for(i=0;i<10;i++)
if(a[i]%2==l)
n++;
returnn;
}
8.設計一函數,函數功能是求形參數組中偶數元素的和s,函數返回so
^include<stdio.h>
voidmain()
inti,a[10],total;
intcount(inta[]);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(z/%d,z,&a[i]);
total=count(a);
printf(〃偶數元素的和是:%d\n〃,total);
intcount(inta[10])
]
inti,s=0;
for(i=0;i<10;i++)
if(a[i]%2==0)
s+=a[i];
returns;
)
9.設計一函數,函數功能實現統計數組中小于0的元素個數n,函數返回值no
^include<stdio.h>
voidmain()
{
inti,a[10],total;
intcount(inta[]);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(〃%d〃,&a[i]);
total=count(a);
printf(〃小于零的個數是:%d\n〃,total);
}
intcount(inta[])
|
inti,n=0;
for(i=0;i<10;i++)
if(a[i]<0)
n++;
returnn;
}
10.設計一函數,函數功能實現將一個十進制數轉換為對應的二進制數。
#include<stdio.h>
voidmain()
(
intm;
inta[100];
voidtran(intm,inta[]);
printf(〃請輸入一個十進制數:〃);
scanf(〃%d〃,&m);
tran(m,a);
voidtran(intm,inta[])
(
inti,j=0;
for(i=0;m!=0;i++)
(
a[i]=m%2;
m=m/2;
j++;
■,
printf(〃轉化為二進制數為:〃);
for(i=j-l;i>=0;i一)
printf(/z%d,z,a[i]);
printf(〃\n〃);
}
11.設計一函數,函數功能實現將一個十進制數轉換為對應的八進制數。
#include<stdio.h>
voidmain()
{
intn,a[100];
voidbjz(intn,inta[]);
printf(〃請輸入一個十進制數:〃);
scanf(〃%d〃,&n);
bjz(n,a);
voidbjz(intn,inta[])
(
inti;
for(i=0;n!=0;i++)
(
a[i]=n%8;
n=n/8;
ML
printf(〃轉換為八進制為:〃);
for(i--;i>=0;i--)
printf(,z%dz,,a[i]);
printf(〃\n〃);
}
12.設計一函數,函數功能實現將一個十進制數轉換為對應的十六進制數。
^include<stdio.h>
voidmain()
{
intn,a[100];
voidbjz(intn,inta[]);
printf(〃請輸入一個十進制數:〃);
scanf(〃%d〃,&n);
bjz(n,a);
voidbjz(intn,inta[])
(
inti;
for(i=0;n!=0;i++)
■
a[i]=n%16;
n=n/16;
T
printf(〃轉換為十六進制為:〃);
for(i一;i>=0;i一)
{
if(a[i]>=10)printf(,,%c/z,a[i]+87);
elseprintf(〃%d〃,a[i]);
工
printf(〃\n〃);
}
13.設計一函數,函數功能實現將形參數組中的元素按絕對值從小到大排序。
#include<stdio.h>
voidmain()
(
inti,a[10];
voidmin(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
min(a,10);
printf(〃升序排序:〃);
for(i=0;i<10;i++)
printf(〃%d〃,a[i]);
printf(〃\n〃);
}
voidmin(inta[],intn)
I
inti,j,k,t,leap=0;
for(i=0;i<n-l;i++)
(
k=i;
for(j=i+l;j<n;j++)
if(a[k]<0){a[k]=-a[k];leap=l;}
if(a[j]<0){a[j]=-a[j];leap=2;}
if(a[k]>a[j])k=j;
if(leap==2)a[j]=-a[j];
I
if(leap==l)a[i]=-a[i];
if(k!=i)
{t=a[k];a[k]=a[i];a[i]=t;}
14.設計一函數,函數功能實現將形參數組中的元素的奇數位從小到大排序。
^include<stdio.h>
voidmain()
{
inti,a[10];
voidmin(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
min(a,10);
printf(〃升序排序:〃);
for(i=l;i<10;i+=2)
printf(〃%d〃,a[i]);
printf(〃\n〃);
voidmin(inta[],intn)
|
inti,j,k,t;
for(i=l;i<n-l;i+=2)
(
k=i;
for(j=i+2;j<n;j+=2)
if(a[k]>a[j])
k=j;
if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}
15.設計一函數,函數功能實現將形參數組中的元素的偶數位從大到小排序。
#include<stdio.h>
voidmain()
(
inti,a[10];
voidmin(inta[],intn);
printf(〃請輸入十個數:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
min(a,10);
printf(〃降序排序:〃);
for(i=0;i<10;i+=2)
printf(〃%d〃,a[i]);
printf(〃\n〃);
voidmin(inta[],intn)
inti,j,k,t;
for(i=0;i<n-l;i+=2)
{
k=i;
for(j=i+2;j<n;j+=2)
if(a[k]<a[j])
k=j;
if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}
}
)
16.設計一函數,函數功能查找整型形參數組中有無整數n,如果有函數返回值L沒有
返回值0。
#include<stdio.h>
voidmain()
(
inta[10],i,leap,n;
intjudge(inta[],intn);
printf(〃請輸入數組元素:〃);
for(i=0;i<10;i++)
scanf(,z%d,z,&a[i]);
printf(〃請輸入整數n:〃);
scanf(〃%d〃,&n);
leap=judge(a,n);
if(leap==l)printf(“數組中有整數%d\n〃,n);
elseprintf(〃數組中無整數%d\n〃,n);
¥
intjudge(inta[],intn)
(
intleap,i;
for(i=0;i<10;i++)
if(a[i]==n)
break;
if(i==10)leap=0;
elseleap=l;
returnleap;
17.設計一函數,函數功能實現交換兩個數的值。
^include<stdio.h>
voidmain()
(
inti,a[2];
voidexchange(inta[]);
printf(〃請輸入兩個整數:〃);
for(i=0;i<2;i++)
scanf(,z%d,z,&a[i]);
exchange(a);
printf(〃交換后的數是:〃);
for(i=0;i<2;i++)
printf(/z%dz/,a[i]);
printf(〃\n〃);
voidexchange(inta[])
I
intt;
t=a[0];
a[0]=a[l];
a[l]=t;
)
四、對應教材字符串知識點
1.設計一函數,函數功能實現判斷一個字符串是否是回文,如果是回文返回值1,否則返
回值Oo
#include<stdio.h>
^include<string.h>
voidmain()
(
charstr[100];
intleap;
inthuiwen(charstr[]);
printf(〃請輸入一個字符串:〃);
gets(str);
leap=huiwen(str);
if(leap)printf("這是回文\n〃);
elseprintf(〃這不是回文\n〃);
inthuiwen(charstr[])
intk,j,i,leap;
k=strlen(str);
for(i=0,j=k-l;i<k/2;i++,j—)
if(str[i]!=str[j])
break;
if(i==k/2)leap=l;
elseleap=O;
returnleap;
}
2.設計一函數,函數功能實現將給定的字符串逆序轉換。
#include<stdio.h>
^include<string.h>
voidmain()
{
charstr[100];
voidchange(charstr[]);
printf(〃請輸入一個字符串:〃);
gets(str);
change(str);
printf(〃逆序轉換:〃);
puts(str);
]
voidchange(charstr[])
(
intk,j,i;
chart;
k=strlen(str);
for(i=0,j=k-l;i<k/2;i++,j—)
(
t=str[i];
str[i]=str[j];
str[j]=t;
)
)
3.設計一函數,函數功能實現將給定的字符串2連接字符串1的后面。
^include<stdio.h>
#include<string.h>
voidmain()
(
charstrl[100],str2[20];
voidchange(charstrl[],charstr2[]);
printf(〃請輸入一個字符串:〃);
gets(strl);
printf(〃請輸入一個字符串:〃);
gets(str2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化遺產數字化展示與傳播在博物館領域的應用報告
- 2025在線游戲行業未成年人保護教育普及與家長參與研究報告
- java常見面試題及答案
- java2025面試題及答案
- 2025年高效太陽能熱利用在漁業養殖中的技術創新報告
- ic設計筆試題目及答案
- hadoop面試題庫及答案
- flash單元考試試題及答案
- 寵物食品OEM市場細分需求與OEM產品創新研究報告
- esg考試試題及答案
- 乙醇管施工方案
- 項目七 信息素養與社會責任
- 電氣施工安全技術交底記錄范本
- 說課稿【全國一等獎】
- 2021年山東省新高考英語試卷(附詳解)
- 急性扁桃體炎臨床診療指南
- 第七講 社會主義現代化建設的教育科技人才戰略PPT習概論2023優化版教學課件
- 室間質評記錄表
- SG-T048-結構吊裝施工記錄
- (部編)五年級語文下冊選擇題練習(1-8單元)
- Unit+4+Amazing+art+Understanding+ideas+課件【核心知識精講精研 】 高中英語外研版(2019)必修第三冊
評論
0/150
提交評論