文档库 最新最全的文档下载
当前位置:文档库 › C语言上机题参考答案

C语言上机题参考答案

C语言上机题参考答案
C语言上机题参考答案

一、表达式

1、从键盘输入任意一个四位正整数,将其各位数字反序输出到屏幕上。

示例:

输入

1234

输出:

4321

#include

void main()

{int x;

scanf("%d",&x);

printf("%d%d%d%d\n",x%10,x/10%10,x/100%10,x/1000);

}

2、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留2位小数。

示例:

输入:按如下格式输入3个数:

21 22 25

输出:(注意保留2位小数)

22.67

#include

void main()

{int a,b,c;

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

printf("%.2f\n",(a+b+c)/3.0);

}

二、选择结构

3、输入一个字符,如果是小写字母,转化为大写字母后输出,其它字符原样输出。

示例:

输入

a

输出

A

#include

void main()

{char ch;

ch=getchar();

if(ch>='a'&&ch<='z')

ch-=32;

putchar(ch);

}

4、输入三个整数,然后输出最大值。

示例:

输入

1 2 3

输出

3

#include

void main()

{int a,b,c;

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

if(a

if(a

printf("%d",a);

}

5、输入一个三位正整数x,根据十位上的数输出如下:

┌百位( 十位上的数是奇数)

输出=┤

└个位(十位上的数是偶数)

示例1:

输入

123

输出

3

#include

void main()

{int a;

scanf("%d",&a);

if(a/10%2) printf("%d",a/100);

else printf("%d",a%10);

}

6、计算分段函数,输入x(整数),输出y(整数):

┌2x+1 (x<1)

y=│4x+3 (x=1)

└6x+5 (x>1)

示例:

输入

1

输出

7

#include

void main()

{int x,y;

scanf("%d",&x);

if(x<1) y=2*x+1;

if(x==1) y=4*x+3;

if(x>1) y=6*x+5;

printf("%d",y);

}

三、循环图形

7、编程输出n行图形(n值通过键盘输入) 假设n=5,则图形如下:

*

**

***

****

*****

假设n=6,则图形如下:

*

**

***

****

*****

******

#include

void main()

{int i,j,n;

scanf("%d",&n);

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

{for(j=1;j<=i;j++)

printf("*");

printf("\n");

}

}

8、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:

*

**

***

****

*****

假设n=6,则图形如下:

*

**

***

****

*****

******

#include

void main()

scanf("%d",&n);

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

{for(j=1;j<=n-i;j++)

printf(" ");

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

printf("*");

printf("\n");

}

}

9、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:

*

***

*****

*******

*********

假设n=6,则图形如下:

*

***

*****

*******

*********

***********

#include

void main()

{int i,j,k,n;

scanf("%d",&n);

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

{for(j=1;j<=n-i;j++)

printf(" ");

for(k=1;k<=2*i-1;k++)

printf("*");

printf("\n");

}

}

10、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:

*****

****

***

**

*

假设n=6,则图形如下:

*****

****

***

**

*

#include

void main()

{int i,j,k,n;

scanf("%d",&n);

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

{for(j=1;j<=i;j++)

printf(" ");

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

printf("*");

printf("\n");

}

}

11、编程输出n行图形(n值通过键盘输入),

假设n=5,则图形如下:

*****

****

***

**

*

假设n=6,则图形如下:

******

*****

****

***

**

*

#include

void main()

{int i,j,n;

scanf("%d",&n);

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

{for(j=1;j<=n-i+1;j++)

printf("*");

printf("\n");

}

}

四、循环

12、输入若干字符(回车'\n'为止),统计数字字符、大写字母、小写字母和其它字符的个数。

输入

1ABabc@#%!

输出: (共四个数,它们是:数字字符个数大写字母个数小写字母个数其它字符个数) 1 2 3 4

#include

void main()

{char ch;

int sz=0,dx=0,xx=0,qt=0;

while((ch=getchar())!='\n')

{if(ch>='0'&&ch<='9') sz++;

else if(ch>='A'&&ch<='Z') dx++;

else if(ch>='a'&&ch<='z') xx++;

else qt++;

}

printf("%d %d %d %d\n",sz,dx,xx,qt);

}

13、计算级数和s= 1/(1*3) + 2/(3*5) + 3/(5*7) +....+ n/((2*n-1)*(2*n+1))。

(n从键盘输入,保留3位小数)

示例

输入:

2

输出:

0.467

#include

void main()

{int i,n;

double s=0;

scanf("%d",&n);

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

s+=1.0*i/((2*i-1)*(2*i+1));

printf("%.3f",s);

}

14、计算s = 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... 前n项和。

(n从键盘输入,保留2位小数)。

示例

输入:

2

输出:

0.67

#include

void main()

{int i,n; double s=0;

scanf("%d",&n);

s+=1.0/(2*i-1)*(i%2?1:-1);

printf("%.2f\n",s);

}

15、计算级数2/1, 3/2, 5/3, 8/5, 13/8, 21/13,...前n项之和。

(n从键盘输入,保留3位小数)

示例

输入:

2

输出:

3.500

#include

void main()

{int i,n;

double a=2,b=1,t,s=0;

scanf("%d",&n);

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

{s+=a/b;

t=a;a=a+b;b=t;

}

printf("%.3f\n",s);

}

16、输入一个a>=6的偶数,输出满足a=b+c素数对b和c,这里b和c是素数,且b<=c。示例1:

输入:

6

输出:

3 3

示例2:

输入:

10

输出:(按b由小至大输出)

3 7

5 5

#include

void main()

{int a,b,c,i;

scanf("%d",&a);

for(b=2;b<=a/2;b++)

{ for(i=2;i

if(b%i==0) break;

if(i==b)

{c=a-b;

if(c%i==0) break;

if(i==c)

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

}

}

}

五、一维数组

17、输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入),然后降序排序,最后将奇数输出。

输出格式为:

下标值整数

下标值整数

...

示例:

输入:

1 2 3 4 5 0

输出:

0 5

2 3

4 1

*/

#include

void main()

{int a[500],i,j,t,n=0;

scanf("%d",&a[n]);

while(a[n]!=0)

{n++;

scanf("%d",&a[n]);

}

for(i=0;i

for(j=0;j

if(a[j]

t=a[j],a[j]=a[j+1],a[j+1]=t;

for(i=0;i

if(a[i]%2) printf("%d %d\n",i,a[i]);

}

18、输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入),然后升序排序,最后将其中完数输出。

提示:一个数的各因子之和等于该数本身即为完数,

例如:6的因子是1,2,3,而6=1+2+3,所以6是完数。

28也是完数,28=1+2+4+7+14。

示例:

输入:

3 6

4

5 28 11

6 3

7 0

输出:

6 6 28

*/

#include

void main()

{int a[500],i,j,t,n=0,s;

scanf("%d",&a[n]);

while(a[n]!=0)

{n++;

scanf("%d",&a[n]);

}

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

t=a[j],a[j]=a[j+1],a[j+1]=t;

for(i=0;i

{ s=0;

for(j=1;j

if(a[i]%j==0) s+=j;

if(s==a[i]) printf("%d ",a[i]);

}

}

19、首先输入不多于500个整数到一维数组,然后降序排序,最后将下标值为奇的元素输出。

输入格式:

整数个数

整数1 整数2 整数3 ...

输出格式

下标数组元素值

下标数组元素值

...

示例:

输入:

5

1 2 3 4 5

输出:

1 4

3 2

#include

void main()

{int a[500],i,j,t,n;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

for(j=0;j

if(a[j]

t=a[j],a[j]=a[j+1],a[j+1]=t;

for(i=0;i

if(i%2) printf("%d %d\n",i,a[i]);

}

20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。

要求按出圈次序输出编号。

输入格式如下:

n s m

示例:

输入:

6 1 3

输出:

3 6

4 2

5 1

*/

#include

void main()

{int a[500],n,s,m,i,b=0,z=0;

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

for(i=0;i

a[i]=i+1;

i=s-1;

while(z

if(a[i++%n])

{b++;

if(b%m==0)

{z++;

printf("%d ",a[(i-1)%n]);

a[(i-1)%n]=0;

}

}

六、二维数组

21、定义5×5的整形数组,输入每行中的前4个元素值,每行第5个是前4个元素的平均值。最后输出

示例1:

输入:5行

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

输出:5行

1 2 3 4 2

1 2 3 4 2

1 2 3 4 2

1 2 3 4 2

1 2 3 4 2

示例2:

输入:5行

1 1 1 1

2 2 2 2

3 3 3 3

4 4 4 4

5 5 5 5

输出:5行

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

5 5 5 5 5

*/

#include

void main()

{int a[5][5],i,j;

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

{for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

a[i][4]=(a[i][0]+a[i][1]+a[i][2]+a[i][3])/4;

}

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

{for(j=0;j<5;j++)

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

printf("\n");

}

}

22、定义5×5的整形数组,输入每列中的前4个元素值,每列第5个是前4个元素的平均值。最后输出

示例1:

输入:4行

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

输出:5行

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

示例2:

输入:4行

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

输出:5行

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

2 2 2 2 2

*/

#include

void main()

{int a[5][5],i,j;

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

{for(j=0;j<5;j++)

scanf("%d",&a[i][j]);

}

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

a[4][j]=(a[0][j]+a[1][j]+a[2][j]+a[3][j])/4;

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

{for(j=0;j<5;j++)

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

printf("\n");

}

}

23、输出M*N整数矩阵(3<=M<=50 3<=N<=50),M,N从键盘输入。

示例:

输入:本例是5*6矩阵。

5 6

输出:

1 2 3 4 5 6

18 19 20 21 22 7

17 28 29 30 23 8

16 27 26 25 24 9

15 14 13 12 11 10

*/

#include

void main()

{int a[50][50]={0},i=0,j=0,m,n,t=1;

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

while(t<=m*n)

{

while(j

j--;i++;

while(i

i--;j--;

while(j>=0&&a[i][j]==0) a[i][j--]=t++;

j++;i--;

while(i>=0&&a[i][j]==0) a[i--][j]=t++;

i++;j++;

}

for(i=0;i

{for(j=0;j

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

printf("\n");

}

}

24、有一M*M矩阵(5<=M<=15)是按行序存放的M*M矩阵的元素(即:前M个整数是第1行的M个元素)。

按下列步骤编程:

1>每行降序排序;

2>每列降序排序;

3>按行序输出。

示例:

输入:第一个数是M值,即本例是5*5矩阵,其后是M*M整数。5

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

输出:

25 24 23 22 21

20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

*/

#include

void main()

{int a[15][15],i,j,k,t,m;

scanf("%d",&m);

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

for(j=0;j

for(k=0;k

if(a[i][k]

t=a[i][k],a[i][k]=a[i][k+1],a[i][k+1]=t;

for(j=0;j

for(i=0;i

for(k=0;k

if(a[k][j]

t=a[k][j],a[k][j]=a[k+1][j],a[k+1][j]=t;

for(i=0;i

{for(j=0;j

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

printf("\n");

}

}

七、函数循环

25、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:计算s = 1/(1*3) + 2/(3*5) + 3/(5*7)....n/((2*n-1)*(2*n+1))前n项之和。

(2)入口参数:函数形参n>=1是要求计算的项数。

(3)出口值:函数返回值是累加计算求得的s值。

(4)注意:函数类型(函数返回值)是double类型。

*/

double fun(int n)

{

//答题开始处

double s=0;

int i;

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

s+=i/((2*i-1.0)*(2*i+1));

return s;

//答题结束处

}

26、根据下面对函数的说明,编写其后的函数体。

(1)功能:计算s=1/1!+1/2!+1/3!+... 前n项和。

(2)入口:函数形参n>=1是一整数。

(3)出口:函数返回值是前n项和s。

(4)注意:函数类型(函数返回值)是double类型。

*/

double fun(int n)

{

//答题开始处

int i,t=1;double s=0;

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

{t*=i;s+=1.0/t;}

return s;

//答题结束处

}

27、根据下面对函数的说明,编写其后的函数体。

(1)功能:计算级数1/1 + 2/1 + 3/2 +5/3 + 8/5 + 13/8 + 21/13 前n项之和。

(2)入口:形参n>=1表示求前n项之和。

(3)出口:函数返回值是前n项之和。

(4)提示:第一项的分子分母之和是第二项的分子,第一项的分子是第二项的分母.....

(5)注意:函数类型是double类型

*/

double fun(int n)

{

//答题开始处

int i,a=1,b=1,t;

double s=0;

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

{s+=1.0*a/b;

t=a;a=a+b;b=t;

}

return s;

//答题结束处

}

28、根据下面对函数的说明,编写其后的函数体。

(1)功能:求1/2 + 3/4 + 5/6 + 7/8 ...前n项之和。

(2)入口:形参n>=1。

(3)出口:函数返回值是前n项之和。

(4)注意:函数类型是double类型。

*/

double fun(int n)

{

//答题开始处

int i;double s=0;

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

s+=(2*i-1.0)/(2*i);

return s;

//答题结束处

}

八、函数与一维数组

29、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:逆序存放一维数组元素。(原1,3,2,4,5 -> 变为5,4,2,3,1)

(2)入口参数:函数形参a是某一维整型数组的首地址,形参n表示该数组存有n个整数。

(3)出口值:

*/

void fun(int a[],int n)

{

//答题开始处

int i,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

//答题结束处

}

30、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:一维数组a保存有n个整数。请把所有奇数存储在数组的前部,其他存储在奇数的后面。

(2)入口参数:函数形参a是数组首地址,n>=0是元素个数。

(3)出口值:

*/

void fun(int a[],int n)

{

//答题开始处

int i=0,j=n-1,t;

while(i

{while(a[i]%2)

i++;

while(a[j]%2==0)

j--;

if(i

t=a[i],a[i]=a[j],a[j]=t;

}

//答题结束处

}

31、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:一维数组a保存有n个整数。将所有值等于x的数从数组中删除,

保持剩下的数相对位置不变。

例如:a[0]=1、a[1]=3、a[2]=3,a[3]=4, n=4, x=3

删除x=3后,变为a[0]=1、a[1]=4,数组中还剩2个数。

(2)入口参数:形参a是数组首地址,n>=0是元素个数, x是要删除的数。

(3)出口值:函数返回值是数组中还存放多少个整型数。

*/

int fun(int a[],int n,int x)

{

//答题开始处

int i,j=0;

for(i=0;i

if(a[i]!=x) a[j++]=a[i];

return j;

//答题结束处

}

32、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:查找元素值是否有等于x的,如果有,

则返回其中下标值最大的下标值,否则返回-1。

(2)入口参数:函数形参a是一维数组首地址,形参n>0表示该数组有n个整型数,形参x是要查找的整型数。

(3)出口值:函数返回值是下标值或-1。

*/

int fun(int a[],int n,int x)

{

//答题开始处

int i;

for(i=n-1;i>=0;i--)

if(a[i]==x) return i;

return -1;

//答题结束处

}

33、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:

一个数组中存有n个整数,对这些整数进行升序排序,

(2)入口参数:形参a是数组首地址,n>30是整数个数。

(3)出口值:

*/

void fun(int a[],int n)

{

//答题开始处

int i,j,t;

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

//答题结束处

}

九、函数文件

34、#include

#include

/*

根据下面对函数的说明,编写其后的函数体。

(1)功能:统计in.dat文件中英文字母个数。

(2)入口:

(3)出口:正常结束函数返回值是英文字母个数, 或异常(文件打不开等)返回值是-1。*/

int fun()

{

//答题开始处

int n=0;char ch;

FILE *fp;

if((fp=fopen("in.dat","r"))==NULL)

return -1;

ch=fgetc(fp);

while(!feof(fp))

{if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

n++;

ch=fgetc(fp);

}

fclose(fp);

return n;

//答题结束处

}

35、#include

/*

根据下面对函数的说明,编写其后的函数体。

(1)函数功能:输出图案(共n>=2行,n形参给出)到当前文件夹中out.dat文本文件。假定n=5,则图形如下:

*

***

*****

*******

*********

(2)入口参数:函数形参n>=2,表示输出n行图案。

(3)出口值:正常结束函数返回值是0, 或异常(文件打不开等)返回值是-1。

*/

int fun(int n)

{

//答题开始处

FILE *fp;int i,j,k;

if((fp=fopen("out.dat","w"))==NULL)

return -1;

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

{for(j=1;j<=n-i;j++)

fputc(' ',fp);

for(k=1;k<=i+i-1;k++)

fputc('*',fp);

fputc('\n',fp);

}

fclose(fp);

return 0;

//答题结束处

}

36、#include

/*

根据下面对函数的说明,编写其后的函数体。

(1)功能:在当前文件夹中,有一in.dat文件,存有若干个整数.

将这些整数中的奇数按原序保存到同文件夹中out.dat文件。

假设in.dat存放的是:

1 2 3 4 5 6 7 8 9

则out.dat存放的是

1 3 5 7 9

(2)入口:

(3)出口:正常结束函数返回是0, 或异常(文件打不开等)返回-1。

int fun()

{

//答题开始处

FILE *fp1,*fp2;int x;

if((fp1=fopen("in.dat","r"))==NULL)

return -1;

if((fp2=fopen("out.dat","w"))==NULL)

{fclose(fp1);return -1;}

fscanf(fp1,"%d",&x);

while(!feof(fp1))

{

if(x%2)

fprintf(fp2,"%d ",x);

fscanf(fp1,"%d",&x);

}

fclose(fp1);fclose(fp2);

return 0;

//答题结束处

}

37、#include

#include

/*

根据下面对函数的说明,编写其后的函数体。

(1)功能:在当前文件夹中,有一名为in.dat文件,

存有若干整数,求其中完数之和,并作为函数值返回。

(2)入口:

(3)出口:正常结束函数返回值为所求之和, 异常情况(文件打不开)函数返回值为-1 。

*/

int fun()

{

//答题开始处

int t=0,s=0,x,i;

FILE *fp;

if((fp=fopen("in.dat","r"))==NULL)

return -1;

fscanf(fp,"%d",&x);

while(!feof(fp))

{for(i=1;i

if(x%i==0) t+=i;

if(t==x) s+=x;

fscanf(fp,"%d",&x);

t=0;

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言上机练习题

上机练习题 完成 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 完成 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 完成 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。完成 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 完成 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 完成 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 完成 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 完成 8.输入1~10之间的一个数字,输出它对应的英文单词。 完成 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 完成 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 完成 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境;

C语言上机题库百科园第2章!南信大!

第二章 若有数学式3ae bc,则不正确的C语言表达式是() A.3*a*e/b*c B.a/b/c*e*3 C.3*a*e/b/c D.a*e/c/b*3 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。 A.4 B.3 C.2 D.1 下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是() A.(x/2*2-x)==0 B.!(x%2) C.!(x%2==0) D.x%2==0 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.char B.double C.不确定 D.float 在C语言中,要求运算数必须是整型的运算符是( ) A.% B./ C.++ D.!= 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4

C.16 D.52 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A.必须为下划线 B.必须为字母 C.可以是字母、数字和下划线中的任意一种 D.必须为字母或下划线 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( ) A.不知道a的值,不能确定 B.0 C.2 D.1 判断字符型变量c1是否为数字字符的正确表达式为( ) A.(c1>='0')&&(c1<='9') B.(c1>=0)&&(c1<=9) C.('0'>=c1)||('9'<=c1) D.'0'<=c1<='9' 下面四个选项中,均是合法的用户标识符的选项是()。 A._123 temp INT B.A p_o do C.b-a goto int D.float lao _A 以下关于C语言数据类型使用的叙述中错误的是( ) A.若要处理如"人员工资"的相关数据,单精度类型 B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型 C.若要保存带有多位小数的数据,应使用双精度类型 D.若要准确无误差的表示自然数,应使用整数类型 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A.7 B.8 C.6 D.2 下面正确的字符常量是()

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式: 26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a #include int main(void) { char c1,c2;

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

C语言上机练习题

C语言上机练习题 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1.阅读以下程序,说出其功能和运算结果。 #include<> intmain() { intn; intfactorial(intn); scanf("%d",&n); printf("%d\n",factorial(n)); return0; } intfactorial(intn) { inti,fact=1; for(i=1;i<=n;i++) fact=fact*i; returnfact; } 若输入5↙ 2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。 #include<> intmian() { printf("WelcometoYou!\n") return0; } 3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。 #include<> main() { intx,y; scanf("%d",&x); if(x<1) {y=x;

printf("x=%d,y=x=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } } 4.当输入19,2,21时下列程序运行的结果是()。 #include<> main() {inta,b,c,max; printf("pleasescanthreenumbera,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

2020年全国计算机等级考试二级c语言上机精选题库(共80套)

2020年全国计算机等级考试二级c语言上机精选题库(共80套) 第1套试题 第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int t[][N], int n) { int i, sum; ___1___; for (i=0; i

第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i #include void fun (int a, int b, long *c) { }

c语言上机操作题

实验一上机操作初步(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的特点与基本结构。 2、了解C语言程序的编译环境。 3、掌握使用C语言编写和调试程序的流程:编辑-保存-编译-构建(组件)-执行。 4、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 5、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,第四题为选做题目。 1、编辑实验教材P2程序,掌握C语言程序在Visual C++6.0环境下的编译流程和调试过程。(实验教材P2) 2、在屏幕上实现下列图案的输出: **************************** hello,welcome to china! good bye! **************************** (实验教材P11) 3、计算两个数x和y的和。(教材P5【例1-2】) 4、求两个数的最大值。(教材P5【例1-3】) 四、实验步骤与过程: 1、#include "stdio.h" void main( ) { printf("Hello,World!"); printf("\n"); } 2、 五、实验调试记录: 1、 2、 实验二简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握C语言的数据类型。 2、掌握标识符、常量、变量的定义及使用。 3、掌握C语言的常用运算符及表达式。 三、实验内容:

说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教材P18) 2、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 3、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。(实验教材P21) 4、输入并运行以下程序,分析运行结果。(实验教材P27) #include “stdio.h” void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验步骤与过程: 五、实验调试记录: 实验三选择结构程序设计(一)(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握单分支if语句的使用方法。 2、掌握双分支if-else语句的使用方法。 3、掌握多分支语句的一般形式和使用方法。 三、实验内容: 说明:前四题为必做题目,第五题为选做题目。 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教材P27) 3、判断箱子是正方体还是长方体。请根据注释将程序填写完整。(实验教材P33) 4、编写程序,通过输入x的值,计算阶跃函数y的值。(教材P70【例5-4】)

历年全国计算机等级考试-二级C语言上机考试题库及答案

1.填空 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! void check(); /**********found**********/ int fun(___1___ *std) { /**********found**********/ ___2___ *fp; int i; if((fp=fopen("myfile5.dat","wb"))==NULL) return(0); printf("\nOutput data to file !\n"); for(i=0; i

C语言上机练习题_828701982

C语言上机考试练习题(1) 说明:我们已经学习完成了基本数据类型、基本控制语句,以及数组、函数这些知识了,请同学们看看附件中的这些题目是否能够快速编写出来?可能有个别题目与过去的练习有些重复,请尽量不要去参考过去的答案。如果现在编写起来困难还很多,那你就要加倍努力了。 1、编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求: (1)在主函数中输入两个字符串,调用子函数cmpsubstr()判断,并在主函数输出结果。 (2)子函数的返回值为-1表示未找到,否则返回子串的位置(起始下标)。#include #include void main() { int cmpsubstr(char *s1,char *s2); char str1[20],str2[50]; char *s1=str1,*s2=str2; gets(str1); gets(str2); printf("%d",cmpsubstr(s1,s2)); } int cmpsubstr(char *s1,char *s2) { int i,d,a=0,situation=0; d=strlen(s1); for(i=0;*(s2+i)!='\0';i++) {

if(*(s1+a)==*(s2+i)) { a++; if(a==d) { situation=1; break; } } else { a=0; } } if(situation==0)return(-1); else return(i-d+2); } 2、输入一个字符串,有数字和非数字字符,如:a123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数,并输出这些整数。要求:(1)在主函数中输入字符串,并输出结果。调用子程序处理字符串。 (2)子函数的返回值为整数的个数。 #include #include void main() { int search(char *str,int *sum); char str[100]; int d,sum[20],i;

二级C语言上机题库及答案

第一套题 上机填空: #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /**********found**********/ x=__1__/4; /**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i; /**********found**********/ x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); 第一处答案:3.0 第二处答案:> 第三处答案:(2*i+1)或者(t+1) 上机改错题: #include /************found************/ void fun ( int n )

{ int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( "\nThe value of function is: %lf\n", fun ( n ) ); } 第一处改错:将:void fun ( int n ) 改为double fun ( int n ) 第二处改错:s = s + (Double)a / b; 改为s = s + (double)a / b; 第二套题 上机填空题 #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); }

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

浙江大学C语言上机考试题库

上机考试练习题 20021程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 int main(void) { int repeat, ri; double x, y; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x); /*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号内为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void)

int celsius, fahr; /*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9; printf("celsius = %d\n", celsius); } 20023程序填空,不要改变与输入输出有关的语句。 输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。 interest = money(1+rate)^year - money 输入输出示例:括号内为说明 输入 1000 3 0.025 (money = 1000, year = 3, rate = 0.025) 输出 interest = 76.89 #include #include int main(void) { int money, year; double interest, rate; /*---------*/ scanf(“%d%d%lf”,&money,&year,&rate); interest=money*pow((1+rate),year)-money; printf("interest = %.2f\n", interest); } 20024程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0= 0时,f(x) = x^0.5,当x小于0时,f(x) = (x+1)^2 + 2x + 1/x。 输入输出示例:括号内是说明 输入 3 (repeat=3) 10 -0.5

计算机二级C语言上机考试操作步骤及流程

二级C语言上机考试操作步骤 一、进入考试系统 单击桌面上的“考试系统”图标,进入考试启动界面。“考试启动界面”如图1所示。 图1 二、输入考生信息 进入考试界面后,单击“开始登录”按钮即可进入考试环境进行“考生信息”的输入。“信息输入”如图2所示。 图2 考生输入准考证号如“2427180018001800”后,单击“考号验证”按钮进行信息核实,系统会弹出如图3所示的对话框。 图3

在确定考生信息完全正确时,单击“是”按钮,进入答题界面,如下图所示,上方含有“程序填空题”、“程序修改题”、“程序设计题”三个按钮, 三、开始答题 本次考试共有50套题,每一套题的填空、改错和编程题的答案均附在后面。学生进入上述考试界面后,首先点击程序设计题,根据程序设计题从而明白是哪一套题的组合,然后开始正式答题。过程如下: 1.程序填空题 单击考试界面中的“程序填空题”按钮后,题目显示区将显示出题目对应的文字叙述信息。通过文字叙述可以了解到该题目的考试内容。然后单击左上角“答题”菜单中的“启动Microsoft Visual C++”菜单项进入“Visual C++ 6.0”系统环境界面,如下图所示。 进入系统环境后,执行左上角的“文件|打开”命令,系统弱出“打开”对话框,选择“blank1.c”程序文件,

点击左下角的“打开”按钮,如图4所示。 图4 打开“blank1.c”程序文件后,开始填空。填空方法如下: (1)在程序中找到“******** found *******”标识位置。 (2)把“found ”标识位置下面的需要填空的“占位符”删除(需要连横线一起删除),将程序的答案写在对应位置。例如下图所示。 原“blank1.c ”程序图: 打开

全国计算机等级考试C语言上机考试题库 套

2017年全国计算机等级考试C语言上机考试题库 学生练习用第41套至第60套 第四十一套 1、程序填空 下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。 例如,若s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件中。 不得增行或删行,也不得更改程序的结构! ----------------------------------------------------------------------------------------------------------------- #include <> #include <>

#include <> char *fun(char *s) { int i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0; for(i=0; i='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) { /**********found**********/ t[j]=__1__; j++;} else { p[k]=s[i]; k++; } } /**********found**********/

计算机考试二级C语言上机试题下[23]

计算机考试二级C语言上机试题下[23] 第 53套 试题说明 *********************************** 第一题(30分) 给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中 从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! *********************************** 第二题(30分) 给定程序MODI1.C中函数fun的功能是: 将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 例如, 字符串中的数据为: AABBCCDDEEFF, 则输出应当是:ABBCDDEFF。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! *********************************** 第三题(40分) 请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44

55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

相关文档
相关文档 最新文档