荟萃馆

位置:首页 > 范本 > 校园

2015计算机二级c语言上机题库

校园1.77W

  1.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本 文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

2015计算机二级c语言上机题库

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

void fun(char *s, int a, double f)

{

__1__ fp;

char ch;

fp = fopen("", "w");

fprintf(fp, "%s %d %fn", s, a, f);

fclose(fp);

fp = fopen("", "r");

printf("nThe result :nn");

ch = fgetc(fp);

while (!feof(__2__)) {

putchar(__3__); ch = fgetc(fp); }

putchar('n');

fclose(fp);

}

main()

{ char a[10]="Hello!"; int b=12345;

double c= 98.76;

fun(a,b,c);

}

解题思路】:

本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。

第一处:定义文本文件类型变量,所以应填:FILE *。

第二处:判断文件是否结束,所以应填:fp。

第三处:显示读出的字符,所以应填:ch。

给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

  2.请改正函数fun中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!

给定源程序:

#include

void fun(char *s)

{ int i,j;

for(i=0,j=0; s[i]!=''; i++)

if(s[i]>='0' && s[i]<='9')

s[j]=s[i];

s[j]="";

}

main()

{ char item[80];

printf("nEnter a string : ");gets(item);

printf("nnThe string is : "%s"n",item);

fun(item);

printf("nnThe string of changing is : "%s"n",item );

}

【解题思路】:

第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j

来控制新字符串的`位置,所以应改为:s[j++]=s[i];。

第二处: 置新字符串的结束符,所以应改为:s[j]='';.

  3.请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。

例如, 二维数组中的数据为:

W W W W

S S S S

H H H H

则字符串中的内容应是: WSHWSHWSH。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入

你编写的若干语句。

给定源程序:

#include

#define M 3

#define N 4

void fun(char s[][N], char *b)

{

int i,j,n=0;

for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */

{

}

b[n]='';

}

main()

{ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};

int i,j;

printf("The matrix:n");

for(i=0; i

{ for(j=0;j

printf("n");

}

fun(w,a);

printf("The A string:n");puts(a);

printf("nn");

NONO();

}

【解题思路】:

本题是把二维数组中的字符数据按列存放到一个字符串中。

1. 计算存放到一维数组中的位置。

2. 取出二维数组中的字符存放到一维数组(已计算出的位置)中。

参考答案】:

void fun(char s[][N], char *b)

{

int i,j,n=0;

for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */

{

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

b[n] = s[j][i] ;

n = i * M + j + 1;

}

}

b[n]='';

}