![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
c語言上機(jī)模擬 |
一、改錯題(18分) 函數(shù)Void fun(char str[][],int m,*pt)的功能是:將數(shù)組str中的m(1≤m≤lo)個字 符串依次連接起來,組成一個新串,放入pt所指的字符數(shù)組中。 例如,把3個串"abc"、"CD"、"EF"連起來,所得新字符串是"abcCDEF"。 含有錯誤的源程序如下: 1 #include<stdio.h> 2 #include<string.h> 3 void fun(char str[][],int m,*pt) 4 { 5 int k,q,i; 6 for(k=0;k<m;k++) 7 { 8 q=strlen(str[k]); 9 for(i=O;i<q;i++) ’ 13 } 14 } 15 main() 16 { 17 int m,h; 18 char s[10][10],P[120]; 19 printf("\nPlease enter m:"); 20 scanf("%d",&m); 21 gets(s); 22 printf("\nPlease enter%d string:\n",m); 23 for(h=0;h<m;h++) gets(s[h]); 24 fun(s,p,m); 25 printf("\nThe result is:%s\n",p); 26 } 【要求】 1•將上述程序錄人到文件myfl.c中,根據(jù)題目要求及程序中語句之間的邏輯關(guān)系對 程序中的錯誤進(jìn)行修改。 2•改錯時,可以修改語句中的一部分內(nèi)容,調(diào)整語句次序,增加少量的變量說明或編譯 預(yù)處理命令,但不能增加其他語句,也不能刪去整條語句。 3.改正后的源程序(文件名myfl.c)必須放在考試軟盤的根目錄下,供閱卷用,否則不 予評分。 二:編程題(22分) 1.函數(shù)void fun(int m, int *k, int xx[])的功能是:將所有大于1小于整數(shù)m的非素數(shù)存入 xx所指數(shù)組中,非素數(shù)的個數(shù)通過k傳回 2.編寫main函數(shù),從鍵盤輸入m,調(diào)用fun函數(shù),將函數(shù)fun返回的全部數(shù)據(jù)寫入文件myf2.out中, 例如;若輸入10,則輸出為4以及4 6 8 9 要求: 1.將源文件取名為myf2.c,輸出結(jié)果為myf2.out 答案: 一、改錯題 ’ 1.第3行void fun(char str[][],int m,*pt) 改為void fun(char str[][10],int m,char *pt) 2•第10行pt[i]=str[k,i]; 改為pt[i]=str[k][i]; 3.第12行pt[i]='\0'; 改為pt[0]='\0'; 4.第24行 fun(s,p,m); 改為fun(s,m,p); 二編程題: #include <stdio.h> void fun( int m, int *k, int xx[ ]) { int i,j; *k=0; for(i=2; i<m; i++) { for(j=2; j<=i; j++) if(i%j==0) break; if(j<i) xx[(*k)++]=i; } } main() { int m,n,zz[100]; FILE *out: if((out=fopen("myf2.out","w"))==NULL) { printf("open file myf2.out failed!\n"); exit(0); } printf("\nPlease enter n:(10<=n<=100):"); scanf("%d",&n); fun(n,&m,zz); ’ fprintf(out,"\n\nThere are%d non-prime numbers less than%d:",m,n); for(n=0;n<m;n++) fprintf(out,"\n%4d",zz[n]); fclose(out); ’ } 分析:本題主要考查的是求素數(shù)的算法。本題的基本思路是判斷從2到指定數(shù)m之間 的每個數(shù)是素數(shù)還是非素數(shù)。 ’ 判斷某數(shù)是否為素數(shù)的算法思想是:判斷此數(shù)是否只能被1和其自身整除,而不能被其 他任何數(shù)整除。若能被1到自身之間的任何一個數(shù)整除,則此數(shù)為非素數(shù),將此數(shù)存放到數(shù)’ 組XX中,并且指針k所指向變量中的數(shù)值加1。 |