您当前位置: 唯学网 » » 专题

全国计算机二级C语言上机模拟试题

来源:唯学网•教育培训(www.vixue.com)  【唯学网 • 中国教育电子商务平台】 加入收藏

近日,各个省份已经陆续开始公布全国计算机等级考试报名时间、考试时间、成绩查询时间、以及计算机等级考试的注意事项等相关内容,请需要参加2014年计算机等级考试的考生随时关注自己所在省份的人事考试网了解相关内容,以确保能顺利参加考试。

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

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

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

给定源程序:

#include

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

{

__1__ fp;

char ch;

fp = fopen("file1.txt", "w");

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

fclose(fp);

fp = fopen("file1.txt", "r");

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

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的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

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

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

给定源程序:

#include

void fun(char *s)

{ int i,j;

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

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

s[j]=s[i];

s[j]="\0";

}

main()

{ char item[80];

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

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

fun(item);

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

}

解题思路:

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

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

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

请编写函数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]=’\0’;

}

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("\n\n");

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]=’\0’;

}

请要报名全国计算机考试的考生在规定时间内登陆人事考试网进行报名、缴费,计算机考试准考证和成绩查询等相关考试信息请关注唯学网 计算机等级考试培训栏目。

 

 

 

 

 

0% (0)
0% (10)
已有条评论
新闻浏览排行