南開(kāi)二級(jí)C上機(jī)填空改錯(cuò)編程(100題)_第1頁(yè)
南開(kāi)二級(jí)C上機(jī)填空改錯(cuò)編程(100題)_第2頁(yè)
南開(kāi)二級(jí)C上機(jī)填空改錯(cuò)編程(100題)_第3頁(yè)
南開(kāi)二級(jí)C上機(jī)填空改錯(cuò)編程(100題)_第4頁(yè)
南開(kāi)二級(jí)C上機(jī)填空改錯(cuò)編程(100題)_第5頁(yè)
已閱讀5頁(yè),還剩277頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論