湖南工大c語言上機模擬試題更正(備考)_第1頁
湖南工大c語言上機模擬試題更正(備考)_第2頁
湖南工大c語言上機模擬試題更正(備考)_第3頁
湖南工大c語言上機模擬試題更正(備考)_第4頁
湖南工大c語言上機模擬試題更正(備考)_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言機試模擬試題一、改錯題:(30分)1、求一維數組a中的值為偶數的元素之和。#include <stdio.h> sum ( int arr ,int n ) int i,s; s = 0; for ( i=0; i<n; i+) if (arri % 2 = 0) /*found*/ s=s+i;改為:s = s + arri; return (s); void main() int a10=10,4,2,7,3,12,5,34,5,9,i,s; /*found*/ s = sum( a ,2 ); 改為:s = sum( a ,10 ); printf("T

2、he result is: %dn", s); 2、求一維數組a中的值為奇數的元素之和。#include <conio.h> #include <stdio.h> int sum( int b ,int n ) int i,s = 0; for ( i=0; i<n; i+) if (bi % 2 = 1) /*found*/ s = s + bi 改為: return (s); void main() int a12=10,4,2,7,3,12,5,34,5,9,21,19,n; /*found*/ n = sum(a,2); 改為: printf(&

3、quot;The result is :%dn",n ); 3、求二維數組a中的最大值和最小值。#include <stdio.h> void main() int a33=4,4,34,37,3,12,5,6,5,i,j,max,min; /clrscr(); max = min = a00; for ( i=0; i<3; i+) /*found*/ for ( j=1; j<3; j+)改為:for ( j=0; j<3; j+) if ( max < aij ) max = aij; /*found*/ if (min < aij)

4、改為:if (min > aij) min = aij; printf("The max is: %dn", max); printf("The min is: %dn", min); 4、求一維數組a中的最大元素及其下標。 #include <stdio.h> void main() int a10=1,4,2,7,3,12,5,34,5,9,i,max,pos; /clrscr(); max = a0; pos = 0; for ( i=1; i<10; i+) /*found*/ if (max > ai) 改為:if

5、 (max< ai) max = ai; /*found*/i = pos; 改為:pos = i; printf("The max is: %d ,pos is: %dn", max , pos); 5、猴子吃桃的問題,求第一天的桃子數。 #include <stdlib.h> #include <math.h> void main() int i,j,x,p; /clrscr(); x=1; /*found*/ j=12; 改為:j=11; while(j>=1) p=(x+1)*2; /*found*/ p=x; 改為:x = p;

6、 j-; printf("total is %dn",p); 6、求一維數組a中的值為奇數的元素的平均值。 #include <stdio.h> double average( int arr , int n ) int k=0,i; double s; s = 0; for ( i=0 ;i<n; i+) /*found*/ if (arri % 2 = 1) 改為:if (arri % 2 = =1) s = s + arri; k+; return (s/k) ; void main() int a12=10,4,2,7,3,12,5,34,5,9,

7、21,18; double s; / clrscr(); /*found*/ s = average(a12,12); 改為:s = average(a,12); printf("The result is: %.2fn", s); 二、填空題:(30分)1、 程序的功能是:在第一個循環中從鍵盤上給a數組的前M(M<100)個數組元素依次賦值,在第二個循環中使a數組前M個元素中的值對稱折疊,在最后一個循環中輸出折疊后的 a數組的前M個元素。程序如下:#define M 5 void main( ) int i,a100,t; /clrscr(); for(i

8、=0;i<M;i+) /*found*/ _(1)_ -填寫的語句為: scanf(“%d”:,&ai); /*found*/ for(i=0;_(2)_;i+) -填寫的語句為:i<M/2 aM-i-1=ai; for(i=0;i<M;i+) printf("%5d",ai); printf("n"); 2、 計算正整數num的各位上的數字之和。#include <stdio.h> void main( ) int num,k; /clrscr() ; /*found*/ _(1)_; 填寫的語句為:k=0; pr

9、intf("Please enter a number:") ; scanf("%d",&num) ; do /*found*/ k=_(2)_ ; 填寫的語句為:k=k+num%10; num/=10; while(num) ; printf("n%dn",k) ; 3、 求cman=m!/n!*(m-n)!之值,例如:m=12,n=2時,cman is 66#include <math.h> #include <stdio.h> long int fun(int x) long int s=1; i

10、nt i; for (i=1;i<=x;i+) s*=i; /*found*/ _(1)_; 填寫的語句為:return s; void main() long int m=12,n=2,s1,s2,s3; /clrscr(); s1=fun(m); s2=fun(n); s3=fun(m-n); /*found*/ printf("Cmn is : %ld",_(2)_ ); 填寫的語句為:s1/(s2*s3) 4、 輸出Fabonacci數列1,1,2,3,5前20項,要求每位輸出5個數。#include "stdio.h" void main

11、() long int f20=1,1; int i; /clrscr(); /*found*/ _(1)_;填寫的語句:int j=0; for(i=2;i<20;i+) fi=fi-1+fi-2; /*found*/ if(_(2)_) printf("n");填寫的語句:j+%5=0 printf("%8ld",fi); printf("n"); 5、 求兩個正整數m,n之間所有既能被3整除也能被7整除的整數之和。#include <math.h> #include <stdio.h> main()

12、 int m,n,i,t; long int s=0; /clrscr(); scanf("%d,%d",&m,&n); if( m>n ) t=m; m=n; n=t; /*found*/ for (_(1)_;i+)填寫的語句:i=m;i<=n; if ( i%3=0 && i%7=0 ) s += i; /*found*/ printf("Sum is : _(2)_n",s ); 填寫的語句:%ld 6、 從鍵盤輸入一個由數字組成的字符串(字符串長度小于8),將該字符串轉換成一個十進制數。例如:從鍵盤輸

13、入12345,則程序運行的結果應當為:n=12345#include "stdio.h"#include "string.h" void main() char s10; int i; long int n; /clrscr(); /*found*/ _(1)_; 填寫的語句:n=0 scanf("%s",s); for(i=0;i<strlen(s);i+) /*found*/ n=n*10+_(2)_; 填寫的語句:i+1 printf("n=%ldn",n); 7、 從鍵盤輸入一個正整數n,計算并輸出n

14、的階乘。#include <math.h> #include <conio.h> #include <stdio.h> long fac( int n ) int i; long t=1; for( i=2;i<=n;i+) t = t*i; return (t); void main() int n; long int s; / clrscr(); printf("Enter an integer number:"); /*found*/ _(1)_; 填寫的語句:scanf("%ld",&n); s

15、= fac(n); /*found*/ printf("The result is : _(2)_n",s); 填寫的語句:%ld 三、編程題:(40分)1按下面的公式求s的近似值,直到最后一項值的絕對值小于x為止,x的值由鍵盤輸入,結果保留4位小數。分析:這是一個求若干個數之和的累加問題,終止循環的條件是最后一項值的絕對值小于x,x的值由鍵盤輸入,當退出循環時,sum的值已經累加了最后一項a的值,因此要減去最后一項a的值。S=1-1/3+1/5-1/9+.+(-1)(n-1)1/2n-1#include "stdio.h" #include "

16、;math.h" #include "stdlib.h" double fun(double x) /*begin*/int y,i=1; double a,sum=0.0; do if(i%2=0) y=-1; else y=1; a=y*1.0/(2*i-1); sum=sum+a; i+; while (fabs(a)> =x);return sum-a; /*end*/ void main() double x,sum; printf("Enter x:n"); scanf("%lf",&x); sum

17、=fun(x); printf("sum=%.4fn",sum); NONO( ); NONO( ) FILE *fr,*fw; int i; double x; fr=fopen("D:exam03200310PROGIN.DAT","r"); fw=fopen("D:exam03200310PROGOUT.DAT","w"); for(i=1;i<=5;i+) fscanf(fr,"%lf",&x); fprintf(fw,"s=%.4fn&quo

18、t;,fun(x); fclose(fr); fclose(fw); 2、將一個4位的整數m拆開,然后按相反的順序輸出,每輸出一位數其后留2個空格。如m=1234,輸出的結果應為m=1234, 4 3 2 1.程序如下: (同學們自己編程,程序放在/*begin*/和/*end*/之間)#include "stdio.h" #include "math.h" #include "stdlib.h" void main() int m=1234,a,b,c,d; /*begin*/ /*end*/ printf("m=%d,%

19、d %d %d %dn",m,a,b,c,d); NONO(m,a,b,c,d); NONO( x,a,b,c,d ) int x,a,b,c,d; FILE *f; f=fopen("D:exam03200302PROGOUT.DAT","w"); fprintf(f,"x=%d: %3d%3d%3d%3d#n",x,a,b,c,d); fclose(f); 3、按下面的公式,求S的近似值。S=1+1/2*2+1/3*3+1/n*n#include "stdio.h" #include "ma

20、th.h" #include "stdlib.h" double fun(int n) /*begin*/int i;double p,sum=0.0;for(i=1;i<=n;i+)p=i*i;sum=sum+1.0/p;return sum; /*end*/ void main() double s; int n; /clrscr(); printf("Enter s:n"); scanf("%d",&n); s=fun(n); printf("s= %.3fn",s); NONO( )

21、; NONO( ) FILE *fr,*fw; int i,m; fr=fopen("D:exam03200306PROGIN.DAT","r"); fw=fopen("D:exam03200306PROGOUT.DAT","w"); for(i=1;i<=5;i+) fscanf(fr,"%d",&m); fprintf(fw,"s=%.3f#n",fun(m); fclose(fr); fclose(fw); 4、 求一個三數m的各位上的數字之和。m由鍵盤輸

22、入。(同學們自己編程,程序放在/*begin*/和/*end*/之間)#include <stdio.h> int fun(int m) /*begin*/ /*end*/ void main() int m,s; /clrscr(); printf("Enter m :n"); scanf("%d",&m); s=fun(m); printf("Result is: %dn",s); NONO( ); NONO( ) FILE *fr,*fw; int i,j,k,m; fr=fopen("D:exam

23、03200308PROGIN.DAT","r"); fw=fopen("D:exam03200308PROGOUT.DAT","w"); for(i=1;i<=5;i+) fscanf(fr,"%d",&m); fprintf(fw,"Sum = %dn",fun(m); fclose(fr); fclose(fw); 5、 求兩個正整數m和n的最大公約數,將求出的最大公數存入變量t中。#include "stdio.h" #include "math.h" #include "stdlib.h" void main() int m=76,n=40,t,i;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論