![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2012秋江蘇省計(jì)算機(jī)二級(jí)C上機(jī)真題1 |
2012秋江蘇省計(jì)算機(jī)高校計(jì)算機(jī)二級(jí) C語言上機(jī)試卷01 一、改錯(cuò)題 【程序功能】 函數(shù)fun的功能是將str所指向的一行包含若干單詞的文本(單詞之間用空格隔開)依次拆分成長度不超過20個(gè)字符的若干文本行,單詞不跨行,且使拆分出的行數(shù)最少,再將拆分出的每行字符以字符串的形式存儲(chǔ)到page指向的二維數(shù)組的一行中,函數(shù)返回拆分出的行數(shù) 【測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果】 測(cè)試數(shù)據(jù):A great discovery solves a greate problem. 屏幕輸出: A great disconvery solves a great problem 【含有錯(cuò)誤的源程序】 以下源程序已保存在T盤myf1.c文件內(nèi),考生可直接打開該文件調(diào)試程序 #include <string.h> #include <stdio.h> #include <conio.h> int fun(char str[],char pag[][]) {int i,k=0,j,flag=1; while(*str && flag) {if(strlen(str)<20) {pag[k]=str; flag=0; } else {i=20; while(str[i]!=' ') i--; for(j=0;j<i;j++) pag[k][j]=str[i]; pag[k][i]='\0'; strcpy(str,str+i+1); } k++; } return k; } int main() {char str[80]={A great discovery solves a great problem.}; char pag[40][21]; int i,k; k=fun(str,pag); for(i=0;i<k;i++) puts(pag[i]); getch(); return 0; } 【要求】 1.打開T盤中myf1.c文件或?qū)⑸鲜龀绦蜾浫氲?/SPAN>myf1.c文件中,根據(jù)題目要求及程序中 語句之間的邏輯關(guān)系對(duì)程序中的錯(cuò)誤進(jìn)行修改。 2.改錯(cuò)時(shí),可以修改語句中的一部分內(nèi)容,調(diào)整語句次序,增加少量的變量說明或編譯預(yù) 處理命令,但不能增加其他語句,也不能刪去整條語句。 3.將改正后的源程序(文件名myf1.c)保存在T盤中供閱卷使用,否則不予評(píng)分。 二、編程題(24分) 【程序功能】 尋找所有水仙花數(shù)(水仙花數(shù)是指一個(gè)三位數(shù)中各位數(shù)字的立方之和等于該三位數(shù)自身。例如,153=1 【編程要求】 1.編寫函數(shù)int sxh(int a[ ],int b[ ]),函數(shù)的功能是:將所有水仙花數(shù)保存到a指向的數(shù)組,將所有水仙花數(shù)的反序數(shù)保存到b指向的數(shù)組,函數(shù)返回水仙花數(shù)的個(gè)數(shù) 2.編寫main函數(shù),函數(shù)的功能:聲明數(shù)組a和b,用a、b作實(shí)參調(diào)用sxh函數(shù),將a、b數(shù)組中全部數(shù)據(jù)輸出到屏幕myf2.out中,最后將考生本人的準(zhǔn)考證號(hào)字符串輸出到文件myf2.out中 【測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果】 屏幕輸出: Three daffodil number: 153 370 371 407 Three inverse number:351 73 173 704 【要求】 1.源程序文件名為myf2.c,輸出結(jié)果文件名為myf2.out。 2.數(shù)據(jù)文件的打開、使用、關(guān)閉均用C語言標(biāo)準(zhǔn)庫中的文件操作函數(shù)實(shí)現(xiàn)。 3.源程序文件和運(yùn)行結(jié)果文件均需保存在T盤中供閱卷使用。 4.不要復(fù)制擴(kuò)展名為obj和exe的文件到T盤中。 改錯(cuò)題: (1) char pag[][] 改為 char pag[][21] (2) pag[k]=str; 改為 strcpy(pag[k],str) (3) pag[k][j]=str[i] 修改為 pag[k][j]=str[j] (4) char str[80]={A great discovery solves a great problem.}; 修改為 char str[80]={“A great discovery solves a great problem.”}; #include <stdio.h> #include <conio.h> int sxh(int a[],int b[]) { int n1,n2,n3,count=0,i; for(i=100;i<=999;i++) { n1=i/100; n2=i/10%10; n3=i%10; if((n1*n1*n1+n2*n2*n2+n3*n3*n3)==i) { a[count]=i; b[count++]=n3*100+n2*10+n1; } } return count; } int main() { int a[100],b[100],i,count=0; FILE *fp; fp=fopen("myf2.out","w"); count=sxh(a,b); printf("Three daffodil number:"); fprintf(fp,"Three daffodil number:"); for(i=0;i<count;i++) { printf("%5d",a[i]); fprintf(fp,"%5d",a[i]); } printf("\n"); fprintf(fp,"\n"); printf("Three inverse number:"); fprintf(fp,"Three inverse number:"); for(i=0;i<count;i++) {printf("%5d",b[i]); fprintf(fp,"%5d",b[i]); } printf("\n"); fprintf(fp,"\n My exam number is:0112400123"); fclose(fp); getch(); return 0; } |