最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言練習(xí)題(八)

2021-02-13 09:27 作者:朝顏晚扶桑  | 我要投稿

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:把1~100間的所有素?cái)?shù)保存在數(shù)組aa中,然后輸出這些素?cái)?shù)并計(jì)算它們的和。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

main()

{

int n,I,j,k,flag,sum;

int aa[50];

sum=0; k=0;

system("cls");

for(i=2;i<100;i++)

{

/**********found**********/

___1___;

for(j=2;j<i&&flag;j++)

if(i%j==0)

{

/**********found**********/

___2___;

}

if(flag)

{

sum+=I;

/**********found**********/

___3___;

}

}

printf("\n*** prime number ***\n");

for(i=0;i<k;i++)

{

if(i%10==0) printf("\n");

printf("%4d",aa[i]);

}

printf("\nsum=%d",sum);

}

【答案】

(1)flag=1 (2)flag=0 (3)aa[k++]=i?

2.程序修改題

下列給定程序中,函數(shù)fun()的功能是:根據(jù)輸入的3個(gè)邊長(zhǎng)(整型值),判斷能否構(gòu)成三角形?若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回1;若不能,則返回0。

請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <math.h>

int fun(int a,int b,int c)

{

if(a+b>c&&b+c>a&&a+c>b)

{

if(a==b&&b==c)

/**********found**********/

return 1;

else if(a==b||b==c||a==c)

return 2;

/**********found**********/

else return 3;

}

else return 0;

}

main()

{

int a,b,c,shape;

printf("Input a,b,c: ");

scanf("%d%d%d",&a,&b,&c);

printf("a=%d, b=%d, c=%d\n",a,b,c);

shape=fun(a,b,c);

printf("The shape :%d\n",shape);

}

【答案】

(1)將 return 1; 改為:return 3;

(2)將 else return 3; 改為:else return 1;?

3.程序設(shè)計(jì)題

請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是:移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)則是把第1~m個(gè)字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的內(nèi)容為ABCDEFGHIJK,m的值為3,移動(dòng)后字符串中的內(nèi)容應(yīng)該是DEFGHI JKABC。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <stdio.h>

#include <string.h>

#define N 80

void fun(char *w,int m)

{

?

}

main()

{

char a[N]="ABCDEFGHIJK";

int m;

printf("The origina string :\n");

puts(a);

printf("\nEnter m: ");

scanf("%d",&m);

fun(a,m);

printf("The string after moving :\n");

puts(a);

printf("\n\n");

}

【答案】

void fun(char *w,int m)

{

int i,j;

char t;

for(i=1;i<=m;i++)

{

t=w[0];

for(j=1;w[j]!='\0';j++)

w[j-1]=w[j];

w[j-1]=t; /*將第1個(gè)字符放到

最后一個(gè)字符中*/

}

}

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:計(jì)算三名學(xué)生學(xué)科的平均成績(jī)。

例如,當(dāng)score[N][M]={{83.5,82,86,65,67},{80,91.5,84,99,95},{90,95,86,95,97}}時(shí),五門(mén)學(xué)科的平均分為:84.5 89.5 85.3 86.3 86.3。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <windows.h>

#define N 3

#define M 5

main()

{

int I,j;

static float score[N][M]={{83.5,82,86,65,67},{80,91.5,84,99,95},{90,95,86,95,97}};

static float bb[N];

system("cls");

for(i=0;i<M;i++)

bb[i]=0.0;

/**********found**********/

for(i=0;i<___1___;i++)

{

/**********found**********/

for(j=0;j<___2___;j++)

bb[j]+=score[i][j];

}

for(i=0;i<M;i++)

/**********found**********/

printf("subject%d\taver age=%5.1f",i+1, ___3___);

return 0;

}

【答案】

(1)N (2)M (3)bb[i]/N

2.程序修改題

在給定程序中,函數(shù)fun()的功能是:求k!(k<12),所有階乘的值作為函數(shù)值返回。例如:若k=10,則應(yīng)輸出3628800。

請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <conio.h>

#include <stdio.h>

#include <windows.h>

long fun(int k)

{

/**********found**********/

if k>0

return(k*fun(k-1));

/**********found**********/

else if(k=0)

return 1;

}

main()

{

int k=10;

system("cls");

printf("%d!=%ld\n ",k,fun(k));

}

【答案】

(1)將 if k>0 改為:if (k>0)

(2)將 else if(k=0) 改為:else if(k==0)

3.程序設(shè)計(jì)題

請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從0到p(p≤n-1)的數(shù)組元素平移到數(shù)組的最后。

例如:一維數(shù)組中的原始內(nèi)容為1、2、3、4、5、6、7、8、9、10、11、12、13、14、15,p的值為3。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5、6、7、8、9、10、11、12、13、14、15、1、2、3、4。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <stdio.h>

#define N 80

void fun(int *w,int p,int n)

{

?

}

main()

{

int a[N]={1,2,3,4,5,6,7,8,9,10,

11,12,13,14,15};

int I,p,n=15;

printf("The original data:\n");

for(I=0;I<n;I++) printf("%3d",a[I]);

printf("\nEnter p: ");

scanf("%d",&p);

fun(a,p,n);

printf("The data after moving:\n");

for(I=0;I<n;I++) printf("%3d",a[I]);

printf("\n\n");

}

【答案】

void fun(int *w, int p, int n)

{

int i,j,t;

for(i=0;i<=p;i++) /*循環(huán)左移p+1次*/

{

t=w[0];

for(j=1;j<n;j++) /*實(shí)現(xiàn)循環(huán)左移*/

w[j-1]=w[j];

w[j-1]=t;

}

}

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:輸出一個(gè)N×N矩陣,要求對(duì)角線(xiàn)元素賦值為1,非對(duì)角線(xiàn)上的元素賦值為0。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <windows.h>

#define N 10

main()

{

int bb[N][N];

int I,j,n;

system("cls");

printf("Input n:\n");

scanf("%d",&n);

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

/**********found**********/

___1___;

if(i==j)

/**********found**********/

bb[i][j]=___2___;

/**********found**********/

if(___3___)

bb[i][j]=1;

}

printf("\n***** the result *****\n");

for(i=0;i<n;i++)

{

printf("\n\n");

for(j=0;j<n;j++)

printf("%4d",bb[i][j]);

}

}

【答案】

(1)bb[i][j]=0 (2)1 (3)j==n-1-i

2.程序修改題

假定整數(shù)不重復(fù)數(shù)列{97,2,7,1,2,4,-1}中的數(shù)存放在數(shù)組s中。下列給定程序中,函數(shù)fun的功能是:刪除數(shù)列中值為a的元素,同時(shí)將其他元素前移。Sum中存放的是數(shù)列中元素的個(gè)數(shù)。

請(qǐng)改正程序中的錯(cuò)誤,使其能得到正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <stdio.h>

#define M 100

fun(int *x,int sum,int a)

{

int temp=0,j;

x[sum]=a;

while(a!=x[temp])

temp=temp+1;

if(temp==sum)

{

return-1;

}

else

{

/*******found*********/

for(j=temp;j<sum;j++)

x[j+1]=x[j];

return sum-1;

}

}

main()

{

int s[M]={97,2,7,1,2,4,-1},a,sum,j;

sum=8;

printf("The array:\n");

for(j=0;j<sum;j++)

printf("%5d",s[j]);

printf("\nPlease insert data want to deleted:");

scanf("%d",&a);

printf("Delete :%d\n",a);

sum=fun(s,sum,a);

if(sum==-1)

{

printf("***Not be found!***\n\n");

}

else

{

printf("The array after delete :\n");

for(j=0;j<sum;j++)

printf("%5d",s[j]);

printf("\n\n");

}

}

【答案】

void fun(STREC *p)

{

int i;

(*p).ave =0.0;

for(i=0;i<N;i++)

(*p).ave =(*p).ave +(*p).s[i];

(*p).ave =(*p).ave /N;

}

3.程序設(shè)計(jì)題

某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)fun()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。

例如,學(xué)生的成績(jī)是85.5、76、69.5、85、91、72、64.5、87.5,則他的平均分應(yīng)當(dāng)是78.875。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <stdio.h>

#define N 8

typedef struct

{ char num[10];

double s[N];

double ave;

}STREC;

void fun(STREC *p )

{

?

}

main()

{

STREC s={"GA005",85.5,76,69.5,85,91,

72,64.5,87.5};

int I;

fun(&s);

printf("The %s's student data:\n",

s.num); /*輸出學(xué)號(hào)*/

for(i=0;i<N;i++)

printf("%4.1f\n",s.s[i]);

printf("\nave=%7.3f\n", s.ave);

}

【答案】

void fun(STREC *p)

{

int i;

(*p).ave =0.0;

for(i=0;i<N;i++)

(*p).ave =(*p).ave +(*p).s[i];

(*p).ave =(*p).ave /N;

}

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:輸入兩個(gè)正整數(shù)m和n,求這兩個(gè)數(shù)的最大公約和最小公倍數(shù)。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <windows.h>

main()

{

int a,b,n,m,t;

system("cls");

printf("Input two numbers:\n");

scanf ("%d,%d",&n,&m);

if(n<m) { a=m; b=n; }

else { a=n; b=m; }

/**********found**********/

while(___1___)

{

/**********found**********/

t=___2___

a=b;

b=t;

}

printf("greatest common divisor:%d\n",a);

/**********found**********/

printf("least common multiple:%d\n",___3___);

}

【答案】

(1)b!=0 (2)a%b; (3)n*m/a

2.程序修改題

在給定程序中,函數(shù)fun()的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入到前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入到前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。

請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <string.h>

#include <stdio.h>

#define N 80

void insert(char *aa)

{

int I, j, n;

char ch;

n=strlen(aa);

for(i=1;i<n;i++)

/**********found**********/

{

c=aa[i]; j=i-1;

while((j>=0)&&(ch<aa[j]))

{ aa[j+1]=aa[j]; j--; }

aa[j+1]=ch;

}

}

main()

{

char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";

int I;

printf("The original string: %s\n",a);

insert(a);

printf("The string after sorting:

%s\n\n",a);

}

【答案】

將c=aa[i]; 改為:ch=aa[i];

3.程序設(shè)計(jì)題

請(qǐng)編寫(xiě)一個(gè)函數(shù)int fun(char *str),用來(lái)刪除字符串中的所有空格。

例如:輸入asd af aa z67,則輸出為asdafaaz67。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <stdio.h>

#include <ctype.h>

#include <conio.h>

#include <windows.h>

int fun(char *str)

{

?

}

main()

{

char str[81];

int n;

system("cls");

printf("Input a string : ");

gets(str);

puts(str);

fun(str);

printf("***str: %s\n",str);

}

【答案】

int fun (char *str)

{

int i,j=0;

for(i=0;str[i]!='\0';i++)

if(str[i]!=' ')

str[j++]=str[i];

str[j]='\0';

}

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:求1+2!+ 3!+…+N!的和。

例如,1+2!+3!+…+5! +6!的和為873。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <windows.h>

main()

{

int I, n;

long s=0, t=1;

system("cls");

printf("Input n:\n");

/**********found**********/

scanf("%d",___1___);

for(i=1;i<=n;i++)

{

/**********found**********/

t=___2___;

/**********found**********/

s=___3___;

}

printf("1!+2!+3!...+%d!=%ld\n",n,s);

}

【答案】

(1)&n (2)t*i (3)s+t

2.程序修改題

下列給定程序中,函數(shù)fun()的功能是:輸出M行N列整數(shù)方陣,然后求兩條對(duì)角線(xiàn)上的各元素之和,返回此和數(shù)。

請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <conio.h>

#include <stdio.h>

#include <windows.h>

#define M 5

/**********found**********/

int fun(int n,int xx[ ][ ])

{

int I,j,sum=0;

printf("The %d x %d matrix:\n",M,M);

for(i=0;i<M;i++)

{

for(j=0;j<M;j++)

/**********found**********/

printf("%4f",xx[i][j]);

printf("\n");

}

for(i=0;i<n;i++)

sum+=xx[i][i]+xx[i][n-i-1];

return(sum);

}

main()

{

int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},

{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};

system("cls");

printf("The sum of all elements on 2

diagnals is %d",fun(M,aa));

}

【答案】

(1)將fun(double b,double x0)改為:

double fun(double b,double x0)

(2)將if(abs(x1-x0)>=1e-6)改為:

if(fabs(x1-x0)>=1e-6)?

3.程序設(shè)計(jì)題

請(qǐng)編一個(gè)函數(shù)float fun(double h),函數(shù)的功能是對(duì)變量h中的值保留兩位小數(shù),并對(duì)第三位進(jìn)行四舍五入(規(guī)定h中的值為正數(shù))。

例如:若h值為8.32433,則函數(shù)返回8.32;若h值為8.32533,則函數(shù)返回8.33。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <stdio.h>

#include <conio.h>

#include <windows.h>

float fun(float h )

{

?

}

main()

{

float a;

system("cls");

printf("Enter a: ");

scanf("%f",&a);

printf("The original data is : ");

printf("%f\n\n", a);

printf("The result : %f\n", fun(a));

}

【答案】

float fun(float h )

{

long t;

t=(h*1000+5)/10;

return (float)t/100;

}

1.程序填空題

請(qǐng)補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:把字符串str中的字符按字符的ASCII碼降序排列,處理后的字符串仍然保存在原串中,字符串及其長(zhǎng)度作為函數(shù)參數(shù)傳入。

例如,如果輸入“cdefgh”,則輸出為“hgfedc”。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <windows.h>

#define N 80

void fun(char s[],int n)

{

int I, j;

char ch;

for(i=0;i<n;i++)

/**********found**********/

for(j=___1___;j<n;j++)

if(s[i]<s[j])

{

ch=s[j];

/**********found**********/

___2___;

s[i]=ch;

}

}

main()

{

int i=0,strlen=0;

char str[N];

system("cls");

printf("Input a string:\n");

gets(str);

while(str[i]!='\0')

{ strlen++; i++; }

fun(str,strlen);

printf("\n***display string***\n");

puts(str);

}

【答案】

(1)i (2)s[j]=s[i]?

2.程序修改題

在給定程序中,函數(shù)fun()的功能是:將長(zhǎng)整型數(shù)中每一位上為偶數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為8642。

請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <conio.h>

#include <stdio.h>

#include <windows.h>

void fun(long s,long *t)

/**********found**********/

{

int d;

long s1=1;

*t=0;

while(s>0)

{

d=s%10;

/**********found**********/

if(d%2=0)

{ *t=d*s1+*t; s1*=10; }

/**********found**********/

s\=10;

}

}

main()

{

long s,t;

system("cls");

printf("\nPlease enter s: ");

scanf("%ld",&s);

fun(s,&t);

printf("The result is :%ld\n",t);

}

【答案】

(1)將 int d;改為:long d;

(2)將 if(d%2=0)改為:if(d%2==0)

(3)將 s\=10;改為:s/=10;?

3.程序設(shè)計(jì)題

請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:求Fibonacci數(shù)列中大于a(a>3)的最小的一個(gè)數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:

F(0)=0,F(xiàn)(1)=1

F(n)=F(m-1)+F(m-2)

例如,當(dāng)a=500時(shí),函數(shù)值為610。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <conio.h>

#include <math.h>

#include <stdio.h>

int fun(int a)

{

?

}

main()

{

int m;

FILE *out;

m=500;

printf("m=%d,F=%d\n",m,fun(m));

out=fopen ("outfile.dat","w");

for(m=500;m<3000;m+=500)

fprintf(out,"%d\n",fun(m));

fclose (out);

}

【答案】

int x=1,y=1,z=0,i;

for(i=4;i<=a;i++)

{

if(z<a)

{

z=x+y;

x=y;

y=z;

}

else

break;

}

return z;

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:如果數(shù)組aa的前一個(gè)元素比后一個(gè)元素小,則把它保存在數(shù)組bb中并輸出。

例如:輸入“40,51,62,33,35,52,48,95,66,73”,則結(jié)果輸出“40,51,33,35,48,66”。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <windows.h>

#define N 10

main()

{

int I,n=0;

int aa[N]={40,51,62,33,35,52,48,95,66,73};

int bb[N];

system("cls");

/**********found**********/

for(i=0;i<___1___;i++)

if(aa[i]<aa[i+1])

/**********found**********/

___2___;

printf("\n***display bb***\n");

for(i=0;i<n;i++)

/**********found**********/

printf("bb[%d]=%2d ", ___3___);

}

}

【答案】

(1)N-1 (2)bb[n++]=aa[i] (3)i,bb[i]

2.程序修改題

給定程序中,函數(shù)fun()的功能是:刪除字符串s中所有空白字符(包括Tab字符、回車(chē)符及換行符)。輸入字符串時(shí)用'#'結(jié)束輸入。

請(qǐng)改正程序中的錯(cuò)誤,使其能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

#include <string.h>

#include <stdio.h>

#include <ctype.h>

fun(char *p)

{

int I,t;

char c[80];

for(I=0,t=0;p[I];I++)

if(!isspace(*(p+I))) c[t++]=p[I];

/**********found**********/

c[t]='\0';

strcpy(p,c);

}

main()

{

char c,s[80];

int I=0;

printf("Input a string: ");

c=getchar();

while(c!='#')

{

s[I]=c;I++;c=getchar();

}

s[I]='\0';

fun(s);

puts(s);

?

}

【答案】

將c[t]= "\0"; 改為:c[t]= '\0';

3.程序設(shè)計(jì)題

請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是計(jì)算并輸出:

S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+N0.5)

例如,若主函數(shù)從鍵盤(pán)給n輸入20后,則輸出為s=534.188884。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <math.h>

#include <stdio.h>

double fun(int n)

{

?

}

main()

{

int n;

double s;

printf("\nInput n: ");

scanf("%d",&n);

s=fun(n);

printf("s=%f\n",s);

}

【答案】

double fun(int n)

{

int i;

double s=0.0,s1=0.0;

for(i=1;i<=n;i++)

{

s1=s1+pow(i,0.5);

s=s+s1;

}

return s;

}

1.程序填空題

請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤(pán)輸入一個(gè)長(zhǎng)整數(shù),如果這個(gè)數(shù)是負(fù)數(shù),則取它的絕對(duì)值,并顯示出來(lái)。例如,輸入:-333,結(jié)果為:333。

請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。

注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include <stdio.h>

#include <conio.h>

main()

{

long int a;

printf("Enter the data:\n");

scanf(___1___);

printf("The origial data is %ld\n",a);

if(a<0)

___2___;

printf("\n");

printf(___3___);

}

【答案】

(1)將k=n; 改為:k=i;

(2)將s[j]=i; 改為:s[j++]=i;?

2.程序修改題

在給定程序中,函數(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>

#define N 100

int fun(int *s,int n)

{

int I,j,k,a,b,c;

j=0;

for(i=100;i<n;i++)

{

/**********found**********/

k=n;

a=k%10;

k/=10;

b=k%10;

c=k/10;

if(a==b+c)

/**********found**********/

?

s[j]=I;

}

return j;

}

?

main()

{

int a[N],n,num=0,I;

do

{

printf("\nEnter n(<=1000):");

scanf("%d",&n);

}

while(n>1000);

num= fun(a,n);

printf("\n\nThe result :\n");

for(i=0;i<num;i++)

printf("%5d",a[i]);

printf("\n\n");

}

【答案】

(1)將k=n; 改為:k=i;

(2)將s[j]=i; 改為:s[j++]=i;?

3.程序設(shè)計(jì)題

假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:使字符串中前部的*號(hào)不得多余n個(gè);若多余n個(gè),則刪除多余的*號(hào);若少于或等于n個(gè),則什么也不做,字符串中間和尾部的*號(hào)不刪除。

例如,字符串中的內(nèi)容為****A*BC*DEF*G** *****,若n的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G*******;若n的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G*******。N的值在主函數(shù)中輸入。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。

注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

#include <stdio.h>

#include <conio.h>

void fun(char *a,int n)

{

?

}

main()

{

char s[81];int n;

printf("Enter a string :\n");gets(s);

printf("Enter n : ");scanf("%d",&n);

fun( s,n );

printf("The string after deleted :\n");

puts(s);}?

【答案】

void fun(char *a,int n)

{

int i=0, k=0;

char *p, *t;

p=t=a;

while(*t=='*')

{ k++; t++; }

if(k>n)

{

while(*p)

{ a[i]=*(p+k-n); i++; p++; }

a[i]='\0';

}

}


全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言練習(xí)題(八)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
兰州市| 绥宁县| 安西县| 元江| 乐山市| 大荔县| 台江县| 乌苏市| 张掖市| 苍梧县| 洛川县| 宁德市| 微博| 六安市| 阿克陶县| 陆川县| 洱源县| 吉首市| 泗洪县| 定州市| 山阳县| 民县| 秦安县| 信阳市| 河间市| 敦煌市| 蕉岭县| 扎兰屯市| 武隆县| 马龙县| 莎车县| 桐庐县| 桂林市| 扎囊县| 墨江| 香河县| 巫山县| 朝阳县| 巴青县| 旬邑县| 乡城县|