- 相關推薦
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