版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南開(kāi)上機(jī)100
1.填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:把一個(gè)字符串中的所有小寫(xiě)字母字符全部
轉(zhuǎn)換成大寫(xiě)字母字符,其他字符不變,結(jié)果保存原來(lái)的字符串中。
例如:當(dāng)str[N]="123abcdefABCDEF!”,結(jié)果輸出:“123ABCDEFABCDEF!”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所
編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
SdefineN80
voidmain()
(
intj;
charstr[N]=/,123abcdefABCDEF!z/;
char*pf=str;
system("CLS");
printf(z/***originalstring***\n");
puts(str);
[1];
while(*(pf+j))
{
if(*(pf+j)>=,a'&&*(pf+j)<-z')
(
*(pf+j)=[2];
j++;
)
else
[3];
}
printf(〃******newstring******\n〃);
puts(str);
system("pause");
)
1.改錯(cuò)題
下列給定程序中,函數(shù)fun。的功能是逐個(gè)比較a,b兩個(gè)字符串對(duì)應(yīng)位置中的
字符,把ASCH值小或相等的字符依次存放到c數(shù)組中,形成一個(gè)新的字符串。
例如:a中的字符串為fshADfg,b中的字符串為sdAEdi,則c中的字符串應(yīng)為
fdAADfo
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
ttinclude<stdio.h>
Winclude<string.h>
voidfun(char*p,char*q,char*c)
{intk=0;
while(*p||*q)
{if(*p<=*q)
c[k]=*q;
elsec[k]二*p;
if(*p)p++;
if(*q)q++;
k++
)
)
voidmain()
{chara[10]=/,fshADfgz/,b[10]=z/sdAEdi/z,c[80]={,\0,};
fun(a,b,c);
printf(,zThestringa:〃);puts(a);
printf(,zThestringb:〃);puts(b);
printf(z,Theresult:〃);puts(c);
)
1.編程題
請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成?個(gè)整數(shù)放
在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)個(gè)位和十位上,b
數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和千位上。
例如,當(dāng)a=16,b=35,調(diào)用該函數(shù)后,c=5361o
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdlid.h>
#include<stdio.h>
voidfun(inta,intb,long*c)
voidmain()
inta,b;
longc;
system(/ZCLSZ/);
printf(z,Inputa,b;〃);
scanf(,,%d%dz/,&a,&b);
fun(a,b,&c);
printf(/zTheresultis:%ld\nz,,c);
)
2.填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是求方程ax2+bx+c=0的兩個(gè)實(shí)數(shù)根。方程的系
數(shù)a、b、c從鍵盤(pán)輸入,如果判別式(disc=b2-4ac)小于0,則要求重新輸入
a、b、c的值。
例如,當(dāng)a=l,b=2,c=l時(shí),方程的兩個(gè)根分別是xl=-l.00,x2=-l.00o
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
Sinclude<math.h>
Sinclude<stdio.h>
Sinclude<stdlib.h>
voidmain()
(
floata,b,c,disc,xl,x2;
system(〃CLS〃);
do
(
printf("'Inputa,b,c:〃);
scanf(,z%f,%f,〃,&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf(,zdisc=%f\nInputagain!
\n〃,disc);
}while([1]);
printf(〃*******theresult*******\n〃);
xl=[2];
x2=[3];
printf(z,\nxl=%6.2f\nx2=%6.2f\n〃,xl,x2);
)
2.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是根據(jù)整型形參m,計(jì)算如下公式的值。
y=l-l/(2X2)+1/(3X3)-1/(4X4)+???+(-1)(m+1)/(mXm)
例如:m中的值為5,則應(yīng)輸出0.838611。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
Winclude<stdlib.h>
Sinclude<conio.h>
Sinclude<stdio.h>
doublefun(intm)
{doubley=l.0;
intj=l;
inti;
for(i=2;i<=m;i++)
j=T*j;
y+=l/(i*i);
return(y);
)
voidmain()
intn=5;
system(〃CLS〃);
printf(z/\nTheresultis%lf\nz,,fun(n));
2.編程題
請(qǐng)編一個(gè)函數(shù)voidfun(inttt[M][N],intpp[N]),tt指向一個(gè)M行N
列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入PP所指的一維數(shù)組
中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
ttinclude<stdlib.h>
Sinclude<conio.h>
Sinclude<stdio.h>
ttdefineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
)
voidmain()
(
intt[M][N]-{{68,32,54,12},{14,24,88,58},{42,22,44,56}};
intp[N],i,j,k;
system(〃CLS〃);
printf(/zTheriginaldatais:\n〃);
for(i=0;i<M;i++)
(
for(j=0;j<N;j++)
printf("%6d",t[i][j]);
printf('\n");
)
fun(t,p);
printf("\nTheresultis:\n");
for(k=0;k<N;k++)
printf("%4d",p[k]);
printfCW);
)
3.填空題
請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:把一個(gè)整數(shù)轉(zhuǎn)換成字符串,并倒序保存在
字符數(shù)組str中。例如:當(dāng)n=13572468時(shí),str="86427531”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所
編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#defineN80
charstr[N];
voidfun(longintn)
(
inti=0;
while([1])
{
str[i]=[2];
n/=10;
i++;
)
[3];
)
voidmain()
(
longintn=13572468;
system("CLS");
printf("***theorigialdata***\rT);
printfCn=%ldz/,n);
fun(n);
printf("\n%s",str);
)
3.改錯(cuò)題
下列給定程序中,函數(shù)fun的功能是按以下遞歸公式求函數(shù)值。
例如:當(dāng)給n輸入5時(shí),函數(shù)值為240;當(dāng)給n輸入3時(shí),函數(shù)值為60。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
ttinclude<stdio.h>
fun(intn);
(
intc;
if(n=l)
c=15;
else
c=fun(n-l)*2;
return(c);
)
voidmain()
intn;
printf(,zEntern:〃);
scanf(〃%d〃,&n);
printf(z,Theresult:%d\n\n〃,fun(n));
}
3.編程題
請(qǐng)編寫(xiě)函數(shù)fun(),對(duì)長(zhǎng)度為7個(gè)字符的字符串,除首、尾字符外,將其余5個(gè)
字符按ASCII值碼升序排列。
編寫(xiě)完程序,運(yùn)行程序后輸入:字符串為Bdsihad,則排序后輸出為應(yīng)為Badhisdo
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<string.h>
Sinclude<stdlib.h>
Sinclude<stdio.h>
#include<ctype.h>
Sinclude<conio.h>
voidfun(char*s,intnum)
}
voidmain()
chars[10];
system("CLS");
printf("輸入7個(gè)字符的字符串:〃);
gets(s);
fun(s,7);
printf("\n%s",s);
)
4.填空題
數(shù)組xx[N]保存著一組3位數(shù)的無(wú)符號(hào)正整數(shù),其元素的個(gè)數(shù)通過(guò)變量num傳入
函數(shù)fun()。請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:從數(shù)組xx中找出個(gè)位和百位
的數(shù)字相等的所有無(wú)符號(hào)整數(shù),結(jié)果保存在數(shù)組yy中,其個(gè)數(shù)由函數(shù)fun()返
回。
例如:當(dāng)xx[8]={135,787,232,222,424,333,141,541}時(shí),
bb[6]={787,232,222,424,333,141)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN1000
intfun(intxx[],intbb[],intnum)
(
inti,n=0;
intg,b;
for(i=0;i<num;i++)
{
g=[11;
b=xx[i]/100;
if(g==b)
[2];
}
return[3];
)
voidmain()
(
intxx[8]={135,787,232,222,424,333,
141,541};
intyy[N];
intnum=0,n=0,i=0;
num=8;
system("CLS");
printfC/***originaldata***\n〃);
for(i=0;i<num;i++)
printfC%u,z,xx[i]);
printf(〃\n\n\n〃);
n=fun(xx,yy,num);
printfCz\nyy=〃);
for(i=0;i<n;i++)
printfC%u",yy[i]);
)
4.改錯(cuò)題
下列給定程序中函數(shù)fun()的功能是計(jì)算1/n!的值。
例如:給n輸入5,則輸出0.008333。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
Sinclude<stdio.h>
Sinclude<conio.h>
intfun(intn)
{doubleresult=1.0;
if(n==0)
return1.0;
while(n>l&&n<170)
result*=n++;
result=l/result;
returnresult;
)
voidmain()
(
intn;
printfClnputN:〃);
scanf(〃%d〃,&n);
printf(//\nl/%d!=%lf\n,/,n,fun(n));
)
4.編程題
編寫(xiě)函數(shù)funO,它的功能是求n以內(nèi)(不包括n)同時(shí)能被5與11整除的所有自
然數(shù)之和的平方根s,并作為函數(shù)值返回。
例如:n為1000時(shí),函數(shù)值應(yīng)為s=96.979379O
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Winclude<stdlib.h>
Sinclude<conio.h>
Sinclude<math.h>
ttinclude<stdio.h>
doublefun(intn)
}
voidmain()
(
system(〃CLS〃);
printfrs=%f\n,/,fun(1000));
)
5.填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是求方程ax2+bx+c=0的根(方程的系數(shù)a,b,c
從鍵盤(pán)輸入)。
例如,當(dāng)a=l,b=2,c=l時(shí),方程的兩個(gè)根分別是:xl=-l.00,x2=-l.00o
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在main函數(shù)的橫線上填入所
編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
voidmain()
floata,b,c,disc,xl,x2,p,q;
scanf(z,%f,%f,%fz,,&a,&b,&c);
disc=b*b*4*a*c;
system(〃CLS〃);
printf(〃*******theresult*******\n〃);
if(disc>=0)
(
xl=[1];
x2=(-b-sqrt(disc))/(2*a);
printf(zzxl=%6.2f,x2=%6.2f\n〃,xl,x2);
)
else
(
P=[2];
q=[3];
printf(〃xl=%6.2f+%6.2fi\n〃,p,q);
printf(〃x2=%6?2f-%6.2fi\n〃,p,q);
5.改錯(cuò)題
下列給定程序中函數(shù)fun()的功能是計(jì)算正整數(shù)num的各位上的數(shù)字之平方和。
例如:輸入352,則輸出應(yīng)該是38;若輸入328,則輸出應(yīng)該是77。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
ttinclude<stdlib.h>
ttinclude<stdio.h>
ttinclude<conio.h>
longfun(longnum)
{
longk=l;
do
{
k+=(num%10)*(num%10);
num/=10;
)while(num)
return(k);
}
voidmain()
longn;
system(〃CLS〃);
printfC'Pleaseenteranumber:z,);
scanf(z,%ld,z,&n);
printfC\n%ld\n,z,fun(n));
5.編程題
請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是求Fibonacci數(shù)列中小于t的最大的一個(gè)數(shù),結(jié)
果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為
F(0)=0,F⑴=1
F(n)=F(n-l)+F(n-2)
例如:t=1000時(shí),函數(shù)值為987。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
ttinclude<stdlib.h>
ttinclude<conio.h>
ttinclude<math.h>
^include<stdio.h>
intfun(intt)
)
voidmain()
(
intn;
system("CLS");
n=1000;
printf(//n=%d,f=%d\nz/,n,fun(n));
)
6.填空題
請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:計(jì)算NXN維矩陣元素的方差,結(jié)果由函
數(shù)返回。維數(shù)N在主函數(shù)中輸入。例如:
的計(jì)算結(jié)果是14.414
求方差的公式為:
其中
正意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#defineN20
doublefun([1],intn)
{
inti,j;
doubles=0.0;
doublef=0.0;
doubleaver=0.0;
doublesd=0.0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
s+=a[i][j];
aver=[2];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
f+=(a[i][j]-aver)*(a[i][j]-aver);
f/=(n*n);
sd=[3];
returnsd;
)
voidmain()
inta[N][N];
intn;
inti,j;
doubles;
system(〃CLS〃);
printf(〃*****Inputthedimensionof
arrayN*****\n〃);
scanf(〃%d〃,&n);
printf(〃*****Thearray*****\n〃);
for(i=0;i<n;i++)
(
for(j=0;j<n;j++)
(
a[i][j]=rand()%50;
while(a[i][j]==0)
a[i][j]=rand()%60;
printf(〃%4d〃,a[i][j]);
)
printf(〃\n\n〃);
}
s=fun(a,n);
printf(〃*****THERESULT*****\n〃);
printf(z/%4.3f\n〃,s);
}
6.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是將字符串s中位于偶數(shù)位置的字符或ASCH
碼為奇數(shù)的字符放入字符串t中(規(guī)定第一個(gè)字符放在第0位中)。
例如:字符串中的數(shù)據(jù)為ADFESHDI,則輸出應(yīng)當(dāng)是AFESDI。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
Sinclude<stdlib.h>
Sinclude<conio.h>
Sinclude<stdio.h>
Sinclude<string.h>
#defineN80
voidfun(chars,chartL])
(
inti,j=0;
for(i=0;i<strlen(s);i++)
if(i%2=0||s[i]%2!=0)
t[j++]=s[i];
t:j]=\01;
)
voidmain()
(
chars[N],t[N];
system("CLS");
printf("\nPleaseenterstrings:;
gets(s);
fun(s,t);
printf("\nTheresultis:%s\nz/,t);
)
6.編程題
請(qǐng)編寫(xiě)一個(gè)函數(shù)fun。,它的功能是計(jì)算并輸出給定整數(shù)n的所有因子(不包括1
與自身)的平方和(規(guī)定n的值不大于100)。
例如:主函數(shù)從鍵盤(pán)給輸入n的值為56,則輸出為sum=1113o
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<stdio.h>
longfun(intn)
voidmain()
{
intn;
longsum;
printf("Inputn:");
scanf&n);
sum=fun(n);
printf(z/sum=%ld\nz\sum);
)
7.填空題
請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:把從主函數(shù)中輸入的字符串str2倒置后
接在字符串strl后面。
例如:strl="/Howdo”,str2="?oduoy”,結(jié)果輸出:"Howdoyoudo?”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
Sinclude<stdio.h>
Sinclude<conio.h>
#defineN40
voidfun(char*strl,char*str2)
(
inti=0,j=0,k=0,n;
charch;
char*pl=strl;
char*p2=str2;
while(*(pl+i))
i++;
while(*(p2+j))
j++;
n二【1】;
for(;k<=j/2;k++,j-)
(
ch=*(p2+k);
*(p2+k)=*(p2+j);
*(p2+j)=ch;
)
[2];
for(;[3];i++)
*(pl+i)=*p2++;
*(pl+i)='\0';
)
voidmain()
(
charstrl[N],str2[N];
system(〃CLS〃);
printf(〃***Inputthestringstrl&str2
***\n〃);
printf(〃\nstrl:〃);
gets(strl);
printf(〃\nstr2:〃);
gets(str2);
printf(〃***Thestringstrl&str2***\n〃);
puts(strl);
puts(str2);
fun(strl,str2);
printf(〃***Thenewstring***\n〃);
puts(strl);
7.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是找出100?n(不大于1000)之間百位數(shù)字
加十位數(shù)字等于個(gè)位數(shù)字的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個(gè)數(shù)作
為函數(shù)值返回。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
^include<stdio.h>
#defineN100
intfun(int*s,intn)
{
inti,j,k,a,b,c;
j=0;
for(i=100;i<n;i++)
(
k=n;
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c)
s[j]=i;
)
returnj;
}
voidmain()
(
inta[N],n,num=0,i;
do
(
printf(/z\nEntern(<=1000):〃);
scanf(〃%d〃,&n);
)
while(n>1000);
num=fun(a,n);
printf(〃\n\nTheresult:\n〃);
for(i=0;i<num;i++)
printf(〃%5d〃,a[i]);
printfC\n\nzz);
}
7.編程題
程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun(int
a[][N],intn),該函數(shù)的功能是使數(shù)組左下半三角元素中的值加上n。
例如:若n的值為3,a數(shù)組中的值為
a=254
169
537
則返回主程序后a數(shù)組中的值應(yīng)為
554
499
8610
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<time.h>
Sinclude<stdio.h>
Sinclude<conio.h>
Sinclude<stdlib.h>
SdefineN5
fun(inta[][N],intn)
voidmain()
(
inta[N][N],n,i,j;
system("CLS");
printf(''*****Thearray*****\n〃);
for(i=0;i<N;i++)/*產(chǎn)生一個(gè)隨機(jī)5*5矩陣*/
(
for(j=0;j<N;j++)
(
a[i][j]=rand()%10;
printf("%4d",a[i][j]):
}
printf('\rT);
)
do
n=rand()%10;/*產(chǎn)生一個(gè)小于5的隨機(jī)數(shù)n*/
while(n>=5);
printf(,/n=%4d\n/,,n);
fun(a,n);
printf("*****THERESULT*****\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("\n");
)
)
8.填空題
請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:按'O'到'9'統(tǒng)計(jì)一個(gè)字符串中的奇數(shù)數(shù)字
字符各自出現(xiàn)的次數(shù),結(jié)果保存在數(shù)組num中。注意:不能使用字符串庫(kù)函數(shù)。
例如:輸入“x=l12385713.456+0.909*bc”,結(jié)果為:1=3,3=2,5=2,7=1,
9=20
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<stdio.h>
^defineN1000
voidfun(char*tt,intnum[])
(
inti,j;
intbb[10];
char*p=tt;
for(i=0;i<10;i++)
(
num[i]=0;
bb[i]=O;
)
while([1])
{
if(*p>='0'&&*p<-9')
[2];
p++;
)
for(i=l,j=0;i<10;i=i+2,j++)
[3];
)
voidmain()
(
charstr[N];
intnum[10],k;
system("CLS");
printf(z/\nPleaseenteracharstring:");
gets(str);
printf('\n**Theoriginalstring**\n");
puts(str);
fun(str,num);
printf('\n**Thenumberofletter**\n");
for(k=0;k<5;k++)
(
printf("\n");
printfC%d=%dz/,2*k+l,num[k]);
)
printf("\n");
)
8.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是求出數(shù)組中最小數(shù)和次最小數(shù),并把最小
數(shù)和a[0]中的數(shù)對(duì)調(diào),次最小數(shù)和a[1]中的數(shù)對(duì)調(diào)。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<sydlib.h>
#include<conio.h>
Sinclude<stdio.h>
^defineN20
voidfun(int*a,intn)
(
inti,m,t,k;
for(i=0;i<n;i++)
(
m=i;
for(k=i;k<n;k++)
if(a[k]<a[m])
k=m;
t=a[i];
a[i]=a[m];
a[m]=t;
voidmain()
{
intb[N]={ll,5,12,0,3,6,9,7,10,8},n=10,i;
system("CLS");
for(i=0;i<n;i++)
printf(z/%d”,b[i]);
printf('\n");
fun(b,n);
for(i=0;i<n;i++)
printf(〃%d〃,b[i]);
printf(〃\n〃);
)
8.編程題
ni個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:將高于平
均分的人數(shù)作為函數(shù)值返回,將高于平均分的分?jǐn)?shù)放在up所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為24,35,88,76,90,54,59,66,96時(shí),函
數(shù)返回的人數(shù)應(yīng)該是5,up中的數(shù)據(jù)應(yīng)為88,76,90,66,960
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<stdlib.h>
Sinclude<conio.h>
Sinclude<stdio.h>
Sinclude<string.h>
intfun(intscore[],intm,intup[])
voidmain()
(
inti,n,up[9];
intscore[9]={24,35,88,76,90,54,59,66,96);
system(〃CLS〃);
n=fun(score,9,up);
printf(z/\nuptotheaveragescoreare:〃);
for(i=0;i<n;i++)
printf(〃%dup[i]);
)
9.填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從字符串str中取出所有數(shù)字字符,并分
別計(jì)數(shù),然后把結(jié)果保存在數(shù)組b中并輸出,把其他字符保存在b[10]中。
例如:當(dāng)strl=〃abl23456789cde090〃時(shí),結(jié)果為:
0:21:12:13:14:15:16:17:18:19:2othercharactor:5
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
voidmain()
inti,b[ll];
char*str=〃abl23456789cde090〃;
char*p=str;
system(〃CLS〃);
printf(〃***theorigialdata***\n〃);
puts(str);
for(i=0;i<l1;i++)
bEi]=O;
while(*p)
(
switch([1])
(
case'O':b[0]++;break;
case’1':bEl]++;break;
case'2':b[2]++;break;
case'3':b[3]++;break;
case'4’:b[4]++;break;
case'5':b[5]++;break;
case'6’:b[6]++;break;
case,7':b[7]++;break;
case'8':b[8]++;break;
case'9':b[9]++;break;
【2】
[3]
printf(〃******theresult********\n〃);
for(i=0;i<10;i++)
printf(zz\n%d:%d,z,i,b[i]);
printf(z,\nothercharactor:%d,z,b[i]);
9.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是計(jì)算并輸出high以內(nèi)的素?cái)?shù)之和。high
由主函數(shù)傳給fun()函數(shù)。若high的值為100,則函數(shù)的值為1060。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
Sinclude<stdlib.h>
ttinclude<conio.h>
ttinclude<stdio.h>
^include<math.h>
intfun(inthigh)
intsum=O,n=0,j,yes;
while(high>=2)
(
yes=1;
for(j=2;j<=high/2;j++)
ifhigh%j==O
(
yes=O;
break;
}
if(yes==O)
{
sum+=high;
n++;
)
high—;
returnsum;
)
voidmain()
(
system("CLS");
printf(//%d\n,/,fun(100));
)
9.編程題
請(qǐng)編寫(xiě)函數(shù)voidfun(intx,intpp口,int*n),它的功能是:求出能
整除x且不是奇數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些
除數(shù)的個(gè)數(shù)通過(guò)形參n返回。
例如,若x中的值為24,則有6個(gè)數(shù)符合要求,它們是2,4,6,8,12,24。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<conio.h>
Sinclude<stdio.h>
Sinclude<stdlib.h>
voidfun(intx,intpp[],int*n)
voidmain()
(
intx,aa[1000],n,i;
system(Z,CLSZ,);
printf(,z\nPleaseenteranintegernumber:\n〃);
scanf(〃%d〃,&x);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf(〃%d〃,aa[i]);
printf(〃\n〃);
)
10.填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤(pán)輸入一個(gè)長(zhǎng)整數(shù),如果這個(gè)數(shù)是負(fù)
數(shù),則取它的絕對(duì)值,并顯示出來(lái)。例如,輸入:-3847652,結(jié)果為:3847652。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
voidmain()
(
longintn;
system(〃CLS〃);
printf(''Enterthedata:\n,?);
scanf([1]);
printf(〃***theabsolutevalue***\n〃);
if(n<0)
[2]
printfCW);
printf([3]);
)
10.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是:讀入一個(gè)字符串(長(zhǎng)度〈20),將該字符
串中的所有字符按ASCII碼降序排序后輸出。
例如:輸入dafhc,則應(yīng)輸出hfdca。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
ttinclude<string.h>
ttinclude<stdlib.h>
Winclude<conio.h>
Sinclude<stdio.h>
unsignedfun(chart[])
charc;
inti,j;
for(i=0;i<strlen(t)-l;i++)
for(j=i+l;j<strlen(t);j++)
if(t[i]<t[j])
c=t[j];
t[i]=c;
)
voidmain()
(
chars[81];
system(,,CLS,/);
printf(,z\nPleaseenteracharacterstring:
gets(s);
printf(^XnXnBeforesorting:\n%s〃,s);
fun(s);
printf(z,\nAftersortingdecendingly:\n%s〃,s);
}
10.編程題
請(qǐng)編寫(xiě)一個(gè)函數(shù)voidfun(intm,intk,intxx[]),該函數(shù)的功能是:將
大于整數(shù)m且緊靠□的k個(gè)非素?cái)?shù)存入所指的數(shù)組中。
例如,若輸入15,5,則應(yīng)輸出16,18,20,21,22o
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<stdlib.h>
Sinclude<conio.h>
Sinclude<stdio.h>
voidfun(intm,intk,intxx[])
voidmain()
intm,n,zz[1000];
system("CLS");
printf(z/\nPleaseentertwointegers:");
scanf("%d%d”,&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf(^d”,zz[m]);
printf(z/\n");
)
IL填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤(pán)輸入一個(gè)字符串并保存在字符strl
中,把字符串strl中下標(biāo)為偶數(shù)的字符保存在字符串str2中并輸出。例如,當(dāng)
strl="cdefghij”,貝ljstr2="cegi"。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
^defineLEN80
voidmain()
{
charstrl[LEN],str2[LEN];
char*pl=strl,*p2=str2;
inti=0,j=0;
system("CLS");
printf(Z/Enterthestring:\n,?);
scanf([1]);
printf("***theorigialstring***\n");
while(*(pl+j))
(
printf(,?[2]”,*(pl+j));
j++;
)
for(i=0;i<j;i+=2)
*p2++=*(strl+i);
*p2='\0';
printf(z,\nThenewstringis:%s\n,z,[3]);
)
11.改錯(cuò)題
在主函數(shù)中從鍵盤(pán)輸入若干個(gè)數(shù)放入數(shù)組中,用0結(jié)束輸入并放在最后一個(gè)元素
中。下列給定程序中,函數(shù)fun()的功能是計(jì)算數(shù)組元素中值為負(fù)數(shù)的平均值(不
包括0)o
例如:數(shù)組中元素的值依次為43,-47,-21,53,-8,12,0,則程序的運(yùn)行結(jié)
果為-25.333333o
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
ttinclude<stdlib.h>
ttinclude<conio.h>
ttinclude<stdio.h>
doublefun(intx[])
(
doublesum=0.0;
intc二0,i=0;
/sixQxst*vi*KG-4-xL*vLz*!<?KG>L?Qx/
/?j*zjsxp*Iiilliifi*7**r**7**y**7**r*^T**r**r**?**r**?**r**v*/
while(x[i]==0)
(
if(x[i]<0)
(
sum=sum+x[i];
C++;
)
i++;
)
/xl**1*xl**1**1**1**1**1**1**1**1**1**X**1**1**1*si**1**1**1**1**£*|zx,,h,4*1**1**1**1**1**1**1**1**X**1**X*>1**lz*1**Jz*1**X**X**£**X**1*si**X*/
/yj*xp*zj*yj*^^^**^*Iriljllil*y**y**y?*7**y**y**j**y**y**7**j**j**7**T*/
sum=sum\c;
returnsum;
)
voidmain()
{
intx[1000];
inti=0;
system("CLS");
printf("\nPleaseentersomedata(endwith0):");
do
(
scanf("%d”,&x[i]);
}while(x[i++]!=0);
printf("%f\rT,fun(x));
)
11.編程題
請(qǐng)編寫(xiě)一個(gè)函數(shù)intfun(int*s,intt,int*k),用來(lái)求出數(shù)組的最小元
素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。
例如,輸入如下整數(shù):
234345753134436458100321135760
則輸出結(jié)果為6,100。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdlib.h>
^include<conio.h>
Winclude<stdio.h>
intfun(int*s,intt,int*k)
voidmain()
(
inta[10]={234,345,753,134,436,458,100,321,135,760},k;
system(〃CLS〃);
fun(a,10,&k);
printf(z,%d,%d\n〃,k,a[k]);
)
12.填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從一個(gè)字符串中截取前面若干個(gè)給定長(zhǎng)度
的子字符串。其中,strl指向原字符串,截取后的字符存放在str2所指的字符
數(shù)組中,n中存放需截取的字符個(gè)數(shù)。
例如:當(dāng)strl二〃cdefghij〃,然后輸入4,則str2二〃cdef〃。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
Sinclude<stdlib.h>
ttinclude<stdio.h>
#include<conio.h>
^defineLEN80
voidmain()
(
charstrl[LEN],str2[LEN];
intn,i;
system(〃CLS〃);
printf(z,Enterthestring:\n/z);
gets(strl);
printf("Enterthepositionofthestring
deleted:z,);
scanf([1]);
for(i=0;i<n;i++)
[2]
str2[i]=,\0,;
printf(Z/Thenewstringis:%s\n",[3]);
12.改錯(cuò)題
下列給定程序中,函數(shù)fun()的功能是:依次取出字符串中所有的字母,形成新
的字符串,并取代原字符串。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
voidfun(char*s)
(
inti,j;
for(i=0,j=0;s[i]!='\0';i++)
if((s[i]>="A'&&s[i]<='Z')&&(s[i]>='a&&s[i]<='z'))
s[j++]=s[i];
s[j]=〃\0";
)
voidmain()
{
charitem[80];
system("CLS");
printf("\nEnterastring:");
gets(item);
printf('\n\nThestringis:%s\n/z,item);
fun(item);
printf("\n\nThestringofchangingis:%s\n”,item);
)
12.編程題
下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun(int
a[][N]),該函數(shù)的功能是:使數(shù)組右上半三角元素中的值全部置成0。例如a
數(shù)組中的值為
a=456
179
326,
則返回主程序后a數(shù)組中的值應(yīng)為
000
100
320
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
Sinclude<conio.h>
Sinclude<stdio.h>
#include<stdlib.h>
#defineN5
voidfun(inta[][N])
voidmain()
{
inta[N][N],i,j;
system("CLS");
printf("*****Thearray*****\n〃);
for(i=0;i<N;i++)/*產(chǎn)生一個(gè)隨機(jī)的5*5矩陣*/
{for(j=0;j<N;j++)
{a[i][j]=rand()%10;
printf("泳Id",a[i][j]);
)
printf(〃\rT);
)
fun(a);
printf("THERESULT'n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("Md",a[i][j]);
printf("\n");
)
)
13.填空題
請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是判斷一個(gè)數(shù)的個(gè)位數(shù)字和百位數(shù)字之和是否
等于其十位上的數(shù)字,是則返回"yes!",否則返回"no!”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入
所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
Sinclude<stdlib.h>
Sinclude<stdio.h>
Sinclude<conio.h>
char*fun(intn)
intg,s,b;
g=n%10;
s=n/10%10;
b=[1];
if((g+b)==s)
return[2];
else
return[3];
)
voidmain()
{
intnum=0;
system("CLS");
printf("******Inputdata*******\n〃);
scanf&num);
printf("\n\n\n");
printf(''******Theresult*******\n");
printf("\n\n\n%s”,fun(num));
)
13.改錯(cuò)題
下列給定的程序中,函數(shù)fun()的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從大
到小的順序進(jìn)行排序。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineN20
voidfun(inta[],intn)
{
inti,j,t,p;
for(j=0;j<n-l:j++);
(
P=j;
for(i=j;i<n;i++)
if(a[i]>a[p])
p=i;
t=a[p];
a[p]=a[j];
a[p]=t;
)
)
voidmain()
inta[N]二{H,32,-5,2,14},i,m=5;
printf(〃排序前的數(shù)據(jù):“);
for(i=0;i<m;i++)
printf("%d",a[i]);
printf("\n");
fun(a,m);
printf(〃排序后的順序:”);
for(i=0;i<m;i++)
printf("%d",a[i]);
printf('\n");
)
13.編程題
下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中賦值。請(qǐng)編寫(xiě)函數(shù)fun(),函
數(shù)的功能是:求出數(shù)組周邊元素的平方和并作為函數(shù)值返回給主函數(shù)中的s。例
如:若a數(shù)組中的值為
a=01279
1112155
2216111
979102
54141
則返回主程序后s的值應(yīng)為310o
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
Winclude<stdlib.h>
#defineN5
intfun(intw[][N])
voidmain()
(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年水電站發(fā)電權(quán)承包經(jīng)營(yíng)協(xié)議3篇
- 2025年度選礦廠礦產(chǎn)資源開(kāi)采承包合同示例3篇
- 2025年新婚姻法離婚協(xié)議書(shū)婚姻法律專家團(tuán)隊(duì)服務(wù)合同2篇
- 2025年綠色能源開(kāi)發(fā)項(xiàng)目投資合作協(xié)議范本3篇
- 二零二五版海洋工程設(shè)備采購(gòu)預(yù)付款擔(dān)保服務(wù)協(xié)議3篇
- 2025年旺鋪門(mén)面租賃合同(含節(jié)假日臨時(shí)攤位租賃及物業(yè)費(fèi)減免優(yōu)惠)11篇
- 二零二五版電子商務(wù)平臺(tái)合作授權(quán)分銷合同3篇
- 2025年特種航空器買(mǎi)賣(mài)合同模板及國(guó)際法規(guī)2篇
- 二零二五年戶外運(yùn)動(dòng)裝備分期付款合同下載3篇
- 2025年度旅行社旅游線路設(shè)計(jì)合同4篇
- 我國(guó)無(wú)菌包裝行業(yè)消費(fèi)量已超千億包-下游需求仍存擴(kuò)容潛力
- 大數(shù)據(jù)管理與考核制度大全
- 大學(xué)面試后感謝信
- 2022屆上海高考語(yǔ)文調(diào)研試測(cè)卷詳解(有《畏齋記》“《江表傳》曰…”譯文)
- SBT11229-2021互聯(lián)網(wǎng)舊貨交易平臺(tái)建設(shè)和管理規(guī)范
- 如何打造頂尖理財(cái)顧問(wèn)團(tuán)隊(duì)
- 土壤農(nóng)化分析課件
- 小區(qū)大型團(tuán)購(gòu)活動(dòng)策劃
- NEC(新生兒壞死性小腸結(jié)腸炎)92273
- 2023年租賃風(fēng)控主管年度總結(jié)及下一年展望
- 開(kāi)關(guān)插座必看的七個(gè)安全隱患范文
評(píng)論
0/150
提交評(píng)論