C程序上機考試設(shè)計題(附源代碼) |
1.按要求設(shè)計一個簡單的計數(shù)器程序,能夠按鍵盤輸入的操作符和整數(shù),做到簡單的加減乘除運算并輸出結(jié)果。 #include <stdio.h> 2.按下列要求編制一個程序。 1.函數(shù)input()輸入5個學(xué)生的4門功課成績 2.函數(shù)total()求出每個學(xué)生的總分,并輸出 3.函數(shù)average()求出每門功課的平均分,并輸出。 4.在主函數(shù)main()中對上面函數(shù)進行調(diào)用以實現(xiàn)程序功能 #include<stdio.h> #define N 5 #define M 4 float score[N][M]; float total_stu[N],a_cour[M]; void input() { int i,j; for(i=0;i<N;i++) { printf("\ninput score of student %2d:\n",i+1); for(j=0;j<M;j++) scanf("%f",&score[i][j]); } } void average() { int i,j; float s; for(j=0;j<M;j++) { s=0; for(i=0;i<N;i++) s+=score[i][j]; a_cour[j]=s/(float)N; } for(j=0;j<M;j++) printf("% } void total() { int i,j; float sum; for(i=0;i<N;i++) { sum=0; for(j=0;j<M;j++) sum=sum+score[i][j]; total_stu[i]=sum; } for(i=0;i<N;i++) printf("% } void main() { input(); printf("output everystudents'total score:\n"); printf(" No1 No2 No3 No4 No5\n"); total(); printf("\n"); printf("output everycourse's average score:\n"); printf(" cour1 cour2 cour3 cour4\n"); average(); } 3.編程查找指定字符在字符串中第一次出現(xiàn)的位置。若找到則從該字符開始打印余下的字符串,找不到,則打印“No Found”.要求在主程序中輸入被處理的字符串和指定的字符,查找指定字符在字符串中第一次出現(xiàn)的位置用函數(shù)find(s,c)來完成。 #include<stdio.h> #include<string.h> #define Maxsize 100 void main() { void find(char a[],char); char str[80]; char p; printf("please enter a string:\n"); gets(str); printf("please enter an charater:\n"); p=getchar(); find(str,p); } void find(char a[Maxsize],char M) { int length,i; length=strlen(a); for(i=0;i<length;i++) { if(a[i]= =M) break; } if(i= =length) puts("No Found.\n"); else for(;i<length;i++) printf("%c",a[i]); } 4.設(shè)計一個在字符串中刪除指定字符的C程序。要求在主函數(shù)中輸入被處理的字符串和指定的字符,調(diào)用函數(shù)find(s,c)查找并返回指定字符在字符串中第一次出現(xiàn)的位置,然后在主函數(shù)里作刪除并輸出處理后的字符串。若字符串中不存在指定字符,則原串輸出。 #include<stdio.h> #include<string.h> void main() { int find(char str[],char C); int i,j; char str1[80],ch; gets(str1); ch=getchar(); printf("The charater '%c' appears for the first time is the %dth charater.\n",ch,find(str1,ch)+1); for(i=j=0;str1[i]!='\0';i++) if(str1[i]!=ch) str1[j++]=str1[i]; str1[j]='\0'; printf("now the string turns:\n"); printf("%s",str1); } int find(char str[80],char C) { int length ,i; length=strlen(str); for(i=0;i<length;i++) if(str[i]= =C) break; return i; } 5.編程實現(xiàn)從鍵盤為一個6×6 整型數(shù)組賦值,并將每一行的最小值和最大值及其下標顯示出來(注:書上是分開求最小和最大的,為方便,我把它和在一起了,如果設(shè)計時分開的話,稍加改動就OK了) #include <stdio.h> void main() { int i,j,min_col=0,min_row=0,max_col=0,max_row=0; int min,max; int matr[6][6]; puts("please enter the maxtrix's number:"); for(i=0;i<6;i++) for(j=0;j<6;j++) scanf("%d",&matr[i][j]); for(i=0;i<6;i++) { min=matr[i][0]; max=matr[i][0]; for(j=0;j<6;j++) { if(matr[i][j]<min) { min=matr[i][j]; min_col=i; min_row=j; } if(matr[i][j]>max) { max=matr[i][j]; max_col=i; max_row=j; } } printf("The %d line's mininum and maxinum are %d and %d,with their position:[%d][%d]and[%d][%d]\n",i+1,min,max, min_col,min_row,max_col,max_row); } } 6.編寫程序完成從鍵盤為一個6*6整型二維數(shù)組輸入數(shù)據(jù),求出其最大元素的下標后輸出。 #include<stdio.h> #define M 6 #define N 6 void main() { int arr[M][N]; int i,j,max_col,max_row; printf("enter a 6*6 array:\n"); for(i=0;i<M;i++) for(j=0;j<N;j++) scanf("%d",&arr[i][j]); max_col=0; max_row=0; for(i=0;i<M;i++) { for(j=0;j<N;j++) { if(arr[i][j]>arr[max_col][max_row]) { max_col=i; max_row=j; } } } printf(“col=%d,row=%d,max=%d\n”,max_col,max_row,arr[max_col][max_row]); } 7.編寫程序?qū)?/span>1-100之間的所有不能被7整除的數(shù)打印出來。 #include<stdio.h> void main() { int i,count=0; for(i=1;i<=100;i++) { if(i%7!=0) printf("%-5d",i); count++; if(count%10= =0) printf("\n"); } } 8.編寫函數(shù)pi,其功能是根據(jù)以下近似公式求圓周率的值。 #include<stdio.h> #include<math.h> void main() { double pi(int); int n; printf("enter an integer number:\n"); scanf("%d",&n); printf("the pi's similar value:%f",pi(n)); } double pi(int t) { int i; double s=1; for(i=2;i<=t;i++) s=s+1.0/(i*i); return (sqrt(6*s)); } 9.編寫一個程序,求表達式1+(1+2)+(1+2+3)+……+(1+2+…+10)的值。 #include<stdio.h> #define N 10 void main() { int i,j; int s=0; for(i=1;i<=N;i++) for(j=1;j<=i;j++) s=s+j; printf("%d",s); } 10.編寫一個程序,求分數(shù)序列2/1,3/2,5/3,8/5,13/8,……的前20項之和。 #include<stdio.h> void main() { int i,t,n=20; float a=2,b=1,s=0; for(i=1;i<=n;i++) { s=s+a/b; t=a; a=a+b; b=t; } printf(“sum=% } |