近日,各個(gè)省份已經(jīng)陸續(xù)開始公布全國(guó)計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間、考試時(shí)間、成績(jī)查詢時(shí)間、以及計(jì)算機(jī)等級(jí)考試的注意事項(xiàng)等相關(guān)內(nèi)容,請(qǐng)需要參加2014年計(jì)算機(jī)等級(jí)考試的考生隨時(shí)關(guān)注自己所在省份的人事考試網(wǎng)了解相關(guān)內(nèi)容,以確保能順利參加考試。
給定程序中,函數(shù)fun的功能是將形參給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫到文本 文件中,再用字符方式從此文本文件中逐個(gè)讀入并顯示在終端屏幕上。 請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除, 使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#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);
}
解題思路:
本題是考察先把給定的數(shù)據(jù)寫入到文本文件中,再?gòu)脑撐募x出并顯示在屏幕上。
第一處:定義文本文件類型變量,所以應(yīng)填:FILE *。
第二處:判斷文件是否結(jié)束,所以應(yīng)填:fp。
第三處:顯示讀出的字符,所以應(yīng)填:ch。
***************************************************
給定程序MODI1.C中函數(shù)fun的功能是: 依次取出字符串中所有數(shù)字字符, 形成新的字符串, 并取代原字符串。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤, 使它能得出正確的結(jié)果。
注意: 不要改動(dòng)main函數(shù), 不得增行或刪行, 也不得更改程序的結(jié)構(gòu)!
給定源程序:
#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 );
}
解題思路:
第一處: 要求是取出原字符串中所有數(shù)字字符組成一個(gè)新的字符串,程序中是使用變量j
來(lái)控制新字符串的位置,所以應(yīng)改為:s[j++]=s[i];。
第二處: 置新字符串的結(jié)束符,所以應(yīng)改為:s[j]=’\0’;.
請(qǐng)編寫函數(shù)fun, 函數(shù)的功能是: 將M行N列的二維數(shù)組中的字符數(shù)據(jù), 按列的
順序依次放到一個(gè)字符串中。
例如, 二維數(shù)組中的數(shù)據(jù)為:
W W W W
S S S S
H H H H
則字符串中的內(nèi)容應(yīng)是: WSHWSHWSH。
注意:部分源程序在文件PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun的花括號(hào)中填入
你編寫的若干語(yǔ)句。
給定源程序:
#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++) /* 請(qǐng)?zhí)顚懴鄳?yīng)語(yǔ)句完成其功能 */
{
}
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();
}
解題思路:
本題是把二維數(shù)組中的字符數(shù)據(jù)按列存放到一個(gè)字符串中。
1. 計(jì)算存放到一維數(shù)組中的位置。
2. 取出二維數(shù)組中的字符存放到一維數(shù)組(已計(jì)算出的位置)中。
參考答案:
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i < N;i++) /* 請(qǐng)?zhí)顚懴鄳?yīng)語(yǔ)句完成其功能 */
{
for(j = 0 ; j < M ; j++) {
b[n] = s[j][i] ;
n = i * M + j + 1;
}
}
b[n]=’\0’;
}
請(qǐng)要報(bào)名全國(guó)計(jì)算機(jī)考試的考生在規(guī)定時(shí)間內(nèi)登陸人事考試網(wǎng)進(jìn)行報(bào)名、繳費(fèi),計(jì)算機(jī)考試準(zhǔn)考證和成績(jī)查詢等相關(guān)考試信息請(qǐng)關(guān)注唯學(xué)網(wǎng) 計(jì)算機(jī)等級(jí)考試培訓(xùn)欄目。