- 相关推荐
2017计算机二级C语言上机测试题附答案
引导语:计算机上机考试要灵活应变,以下是百分网小编分享给大家的2017计算机二级C语言上机测试题附答案,欢迎测试!
1.程序填空
给定程序的功能是判断字符ch是否与串str中的某个字符相同:若相同,什么也不做,若不同,则插在串的最后。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
void fun(char*str, char ch )
{ while ( *str && *str != ch ) str++;
if( *str 1 ch )
{ str[0] =ch;
2 = 0;
}
}
main( )
{ char s[81], c;
printf( "\nPlease enter a string:\n" ); gets ( s );
printf ("\n Please enter the character to search : " );
c = getcharO;
fun( 3 ) ;
printf( "\nThe result is %s\n", s);
2.程序修改
【答案】
(1)错误:第5行fun(int**a,int m)
正确:fun(int a[][M],Int m)
(2)错误:第9行 a[j][k]=k*j;
正确:a[j][k]=(k+1)*(j+1);
【评析】
第5行:第二个形参m是用户输入的维数,没有别的名堂,第一个形参是为了指明在函数fun()中要产生的多维数组,"**a"是不能正确表示一个多维数组的,我们应当使用"int a[M][M]"。
第9行:循环体的内容是给m维的多维数组赋值,这个多维数组在列方向是由1开始的自然数,在行方向上是行首第一数的n倍数,显然,"a[j][k]=k*j;"不符合题意,我们应当使用"a[j][k]=(k+1)*(j+1);"。
3.程序设计
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include
#include
#include
#define N 10
typedef struct ss
{ char num[10];int s;} STU;
fun(STU a[],STU *s)
{
}
main()
{STU
a[N]= { {"A01",81}, {"A02",89}, {"A03",66}, {"A04", 87}, {"A05",77}, {"A06",90}, {"A07",79}, {"A08",61}, {"A09",80 }, {"A10",71 }},m;
int i;
elrser();
printf("***** The original data *****\n");
for (i=0;i fun(a,&m);
printf("***** THE RESULT *****\n");
printfCThe top : %s, %d\n",m.num,m.s);
NON0( );
}
NON0( )
{\*本函数用于打开文件,输入 数据,调用函数,输出数据,关闭文件。*/
FILE *rf, *wf;
STU a[N], m ;
Int i;
rf = fopen("bc09.in", "r,) ;
wf= fopen("bc09.out", "w") ;
for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ;
fun(a, &m) ;
fprintf (wf, "The top : %s, %d\n", m.num, re.s) ;
fclose(rf) ;
fclose(wf) ;
}
3.程序设计
【答案】
fun(STU a[],STU。s)
{ int i;
STU *m;
re=a;
for(i=1;i if(a[i].s>m[0].s) m=&a[i];
s[0].s=m[0].s;
strcpy(s[0].Num,m[0].num);/*将m指针中的学生学号复制给s数组中的学号变量*/
}
【评析】
从题目的要求来看,我们应建立一个循环来寻找成绩最高的学生记录。我们给出的参考函数中定义了一个指针存放学生记录中的最高成绩。
NON0( );
}
NON0( )
{\*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *rf, *wf;
STU a[N], m ;
Int i;
rf = fopen("bc09.in", "r,) ;
wf= fopen("bc09.out", "w") ;
for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ;
fun(a, &m) ;
fprintf (wf, "The top : %s, %d\n", m.num, re.s) ;
fclose(rf) ;
fclose(wf) ;
}
3.程序设计
【答案】
fun(STU a[],STU。s)
{ int i;
STU *m;
re=a;
for(i=1;i if(a[i].s>m[0].s) m=&a[i];
s[0].s=m[0].s;
strcpy(s[0].Num,m[0].num);/*将m指针中的学生学号复制给s数组中的学号变量*/
}
【评析】
从题目的要求来看,我们应建立一个循环来寻找成绩最高的学生记录。我们给出的参考函数中定义了一个指针存放学生记录中的最高成绩。
NON0( );
}
NON0( )
{\*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *rf, *wf;
STU a[N], m ;
Int i;
rf = fopen("bc09.in", "r,) ;
wf= fopen("bc09.out", "w") ;
for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ;
fun(a, &m) ;
fprintf (wf, "The top : %s, %d\n", m.num, re.s) ;
fclose(rf) ;
fclose(wf) ;
}
3.程序设计
【答案】
fun(STU a[],STU。s)
{ int i;
STU *m;
re=a;
for(i=1;i if(a[i].s>m[0].s) m=&a[i];
s[0].s=m[0].s;
strcpy(s[0].Num,m[0].num);/*将m指针中的学生学号复制给s数组中的学号变量*/
}
【计算机二级C语言上机测试题附答案】相关文章:
2017计算机二级C语言基础测试题附答案03-04
2017计算机二级C语言测试题及答案12-04
2023计算机二级C语言测试题及答案04-26
2016计算机二级《C语言》测试题及答案03-02
计算机二级《C语言》测试题及答案201603-10
计算机二级C语言测试题及答案解析12-02
计算机二级C语言预测试题及答案12-02
计算机二级C语言测试题及答案201603-17