c语言上机答案
C语言上机考试答案
-2-
{ float fun(float x, float y, float z); float a,b,c,max; printf("请输入三个数字:"); scanf("%f,%f,%f",&a,&b,&c); max=fun(a,b,c); printf("三个整数的最大数是%0.2f\n",max); } 7、由键盘输入三个字符,输出其中最大的字符。输出时要有文字说明。 7.1 7.2 #include<stdio.h> char fun(char a[]) void main() {int i; {char fun(char a[]); char max; int i; max=a[0]; char a[3],z; for(i=1;i<3;i++) for(i=0;i<3;i++) if(a[i]>max)max=a[i]; scanf("%c",&a[i]); return(max);} z=fun(a); printf("%c",z);} 8、由键盘输入三个实数,要求按由小到大的顺序输出。输出时要有文字说明,取小数点后 两位数字。 8.2 8.1 float l(float x,float y,float z) #include<stdio.h> { float w; void main() if(x>y) {w=x; x=y; y=w;} { float l(float x,float y,float z); if(x>z) {w=x; x=y; y=w;} float a,b,c; if(y>z) {w=y; y=z; z=w;} printf("输入三个是实数"); printf("输出三个数从小到大的顺序 scanf("%f %f %f",&a,&b,&c); 为:%6.2f %6.2f %6.2f",x,y,z); } l(a,b,c); } 9、求 s=1+3+5+…+99。输出时要有文字说明。 9.1 #include<stdio.h> 9.2 void main() #include<stdio.h> {int sum(int x); int sum(int x) int n,s; {int s=0,t; printf("输入一个 n 值:"); for(t=1;t<=x;t+=2) scanf("%d",&n); s=s+t; s=sum(n); return(s);} printf("sum=%d",s); } 10、把 100-200 之间不能被 3 整除的数输出。输出时要有文字说明。 10.1 10.2 #include<stdio.h> int fun(int n) void main() {static int z=100; { int fun(int n); if(n%3!=0)z=n; return(z);}
C语言上机题参考答案
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);
C语言程序设计上机题目与参考答案
C语言程序设计题目与参考答案(1——9章)1.(课本第84页第7题)设圆半径r=1.5,圆柱的高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
请编程序:#include <stdio.h>int main()#define p 3.1416int main(){double r,h,l,s,S,v,V;scanf("%lf %lf",&r,&h);l=2*p*r;s=p*r*r;S=4*p*r*r;v=4/3*p*r*r*r;V=p*r*r*h;printf("l=%7.2f\ns=%7.2f\nS=%7.2f\nv=%7.2f\nV=%7.2f\n",l,s,S,v,V);return 0;}2.把560分钟化成小时和分钟。
#include<stdio.h>main(){int t,h,m;t=560;h=t/60;m=t%60;printf("560分钟等于%d小时%d分钟\n",h,m);}3.第112页第6题)有一个函数y=x(x<1),y=2x-1(1<=x<10),y=3x-11(x>=1写程序,输入x的值,输出y相应的值。
#include<stdio.h>int main(){float x,y;scanf("%f",&x);if(x<1) y=x;elseif(x<10) y=2*x-1;else y=3*x-11;printf("%f\n",y);}4.(第113页第11题)输出4个整数,要求按由小到大的顺序输出。
#include<stdio.h>int main(){float a,b,c,d,t;scanf("%f,%f,%f,%f",&a,&b,&c,&d);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(a>d) {t=a;a=d;d=t;}if(b>c) {t=b;b=c;c=t;}if(b>d) {t=b;b=d;d=t;}if(c>d) {t=c;c=d;d=t;}printf("%f,%f,%f,%f",a,b,c,d);}5.(第113页第12题)有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这四个塔的高度为10米,塔以外无建筑物。
c语言上机题答案
6. 求 sinclude <stdio.h>
#include <math.h>
void main(){
int n;
int sum1;
int sum2;
int total;
total=sum1+sum2;
for(n=1;n<=10;n++){printf("%6d\n",n);}
12. 编写一个求 0~100 之间全部奇数之积的程序。 #include <stdio.h> #include <math.h> void main(){ int i;double ji; for(i=1,ji=1;i<101;i++){ if(i%2==1){ji=ji*i;}} printf("ji=%f\n",ji);}
数之和。 #include <stdio.h> #include <math.h> void main(){ int a,b;int sum; scanf("%d%d",&a,&b); sum=a+b; printf("%d\n",sum);} 9. 编写一个求三个整数之和的程序,用求两个整数之和的函数实现。 #include <stdio.h> #include <math.h> void main(){ int a,b,c; int he; int sum(int,int); scanf("%d%d%d",&a,&b,&c); he=sum(sum(a,b),c); printf("%d",he);} int sum(int x,int y) {int z; z=x+y; return(z);} 10. 编写一个求 a + | b | 的程序, a,b 为两个整数。 #include <stdio.h> #include <math.h> void main(){ int a,b,z; int sum; scanf("%d%d",&a,&b); if(b>0){z=b;} else{z=-b;} sum=a+z; printf("%d",sum);}
C语言上机考试题参考答案
C语言上机考试题参考答案课本例题1.例4.10:由边长求三角形的面积#include<stdio.h>#include<math.h>void main(){float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f, b=%7.2f, c=%7.2f s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}2.例5.3:符号函数#include<stdio.h>#include<math.h>void main(){int x,y;scanf("%d",&x);if(x<0) y=-1;elseif(x==0) y=0;else y=1;printf("x=%d,y=%d\n",x,y);}3.例5.4:改变字母的大小写#include<stdio.h>void main(){char ch;scanf("%c",&ch);ch=(ch>='A' && ch<='Z')?(ch+32):ch;printf("%c\n",ch);}4.例5.5:判断闰年#include<stdio.h>#include<math.h>void main(){int year;scanf("%d",&year);if((year%4==0 && year%100!=0)||(year%400==0)) printf("%d is 闰年");elseprintf("%d is not 闰年");}5 例6.6:求π的近似值#include<stdio.h>#include<math.h>void main(){int s;float n,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6\n",pi);}6 例7.2:Fibonacci数列#include<stdio.h>#include<math.h>void main(){int i;int f[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0) printf("\n");printf("%12d",f[i]);}printf("\n");}7 例7.3:起泡排序#include<stdio.h>#include<math.h>void main(){int a[10];int i,j,t;printf("input 10 numbers:\n"); for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;i++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}8 例7.4:矩阵转置#include<stdio.h>#include<math.h>void main(){int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[i][j]=a[i][j];}printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}}9 例7.5:求一组数中的最大或最小数#include<stdio.h>#include<math.h>void main(){int i,j,row=0,colum=0,max;int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,colum=%d\n",max,row,colum);}10 例8.8:使用递归方法实现计算阶乘n!#include<stdio.h>#include<math.h>void main(){float fac(int n);int n;float y;scanf("%d",&n);y=fac(n);printf("%d!%10.0f\n",n,y);}float fac(int n){float f;if(n<0){printf("error");}elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return f;}1110.9:选择法排序#include<stdio.h>#include<math.h>void main(){void sort(int x[],int n);int *p,i,a[10];p=a;for(i=0;i<10;i++)scanf("%d",p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++){printf("%d",*p);p++;}}void sort(int x[],int n){int i,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(x[j]>x[k]) k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}}}12 习题4.9:华氏度转摄氏度#include <stdio.h>void main(){float c, f;printf("请输入一个华氏温度:");scanf("%f", &f);c=5*(f-32)/9;printf("对应的摄氏温度为:%.2f\n", c); }13题5.4:输出三个数中的最大者#include<stdio.h>#include<math.h>void main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%d\n",max);}14习题5.6:成绩分数转为成绩等级(if-else和switch两种方法)方法一#include <stdio.h>void main(){float grade = 0.0;printf("请输入一个百分制成绩:");scanf("%f", &grade);if(grade>=90.0 && grade<=100.0)printf("成绩等级为:A\n");else if(grade>=80.0 && grade<90.0)printf("成绩等级为:B\n");else if(grade>=70.0 && grade<80.0)printf("成绩等级为:C\n");else if(grade>=60.0 && grade<70.0)printf("成绩等级为:D\n");else if(grade>=0.0 && grade<60.0)printf("成绩等级为:E\n");elseprintf("输入有误!请输入百分制成绩!\n");return 0;}方法二#include <stdio.h>void main(){float grade = 0.0;int t = 0;printf("请输入一个百分制成绩:");scanf("%f", &grade);if(grade>=0.0 && grade<=100.0){t = (int)grade/10;switch(t){case 10:case 9: printf("成绩等级为:A\n"); break;case 8: printf("成绩等级为:B\n"); break;case 7: printf("成绩等级为:C\n"); break;case 6: printf("成绩等级为:D\n"); break;case 5:case 4:case 3:case 2:case 1:case 0: printf("成绩等级为:E\n"); break;}}elseprintf("输入有误!请输入百分制成绩!\n"); }15习题5.7:拆分整数#include <stdio.h>void main(){int num;printf("请输入一个不多于5位的正整数:");scanf("%d", &num);if(num<=0 || num>=100000){printf("输入有误!");}else{if(num>=10000)printf("您输入的是5位数。
C语言上机作业试题5套含答案
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
c语言练习用上机试题答案
int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0) s+=i;
return s;
※号(9套)
填空 [N] t[i][j] t[j][i]
改错 #define FU(m,n) ((m)/(n))return(value);
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
int i,j,s=0;
for(j=0;j<N;j++) s+=a[0][j]+a[M-1][j];
for(i=1;i<=M-2;i++) s+=a[i][0]+a[i][N-1];
return s;
素数(5套)
填空 i t++ count
改错intfun(int a,int b,int c)
elsereturn1;
N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。
double max=h->s;
for(h=h->next;h->next!=NULL;h=h->next)
if(h->s>max) max=h->s;
return max;
填空 0.0 x[i]/N j++
改错doublefun(int m) for(i=100;i<=m;i+=100)
ss[i]='\0';
填空 0 || 1
改错t-=1.0/i;return t;
删除字符串中的所有空格。
int i=0;char *p=str;
C语言上机答案
第01套:1、STYPE;FILE;fp2、for( i=0; i<=sl; i ++)t[2sl] = '\0';3、*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10); 第02套:1、*fw或fw[];str;str2、void fun(long s,long *t)sl=sl*10;3、*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);第03套:1、fp;fclose(fp);fname或"myfile3.dat"2、<n或<=n-1p=i;3、*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10); 第04套:1、"r"或"r+";fs;ft2、if (d%2==0)s /= 10;3、*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10); 第05套:1、x;p;s2、k=1;num/=10 ;3、int i;float ave=0.0;for(i=0; i<n; i++) ave=ave+a[i] ;ave=ave/n;return ave;第06套:1、next;t->data或(*t).data;t2、fun (char *a)printf("%c", *a) ;3、int i;char *p=s, *q=t;for(i=0;*p && *q; i++) {p++; q++;}if(*p == 0 && *q == 0) return s ;if(*p) return s ;else return t ; 第07套:1、q;next;next2、p = j;p = i;3、int i ;*n=0 ;for(i=7 ; i<=m; i++)if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; 第08套:1、NULL;return n;head,ch2、for错写成Forc[t]=’\0’;3、int i ;for(i = 1 ; i < strlen(*ss) ; i+=2) {if(ss[i] >= 'a' && ss[i] <= 'z') ss[i] -= 32 ;} 第09套:1、*n;next;head2、Null应NULLif(*r==*p)3、int i, j = 0 ;for(i = 0 ; i < strlen(s) ; i += 2)if(s[i] % 2 == 0) t[j++] = s[i] ;t[j] = 0 ;第10套:1、data;next;head2、while(*r)*a = *r; a++; r++;3、int i, j = 0 ;for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ;}第11套:1、STU;stu[i].num;std[i]2、r++; p++;if ( *r == '\0' )3、int i, j = 0 ;for(i = 0 ; i < strlen(s); i++) if(s[i] % 2)t[j++] = s[i] ;t[j] = 0 ;第12套:1、std[i].year;std[i];n2、IsPrime ( int n )if ( !( n%i ))3、int i, max = a[0].s, j = 0; for(i = 1 ; i < N ; i++)if(max < a[i].s) {j = i ;max = a[i].s ;}*s = a[j] ;第13套:1、STU;score[i];&std2、if ( k > 0 )else if ( k==0 )3、int i, j;for(i = 0 ; i < N ; i++)for(j = 0 ; j <= i; j++) a[i][j] *= n ;第14套:1、*std;PERSON;std2、int错写成Intpt[i] = str[k][i] ;3、int i, j;for(i = 0 ; i < N ; i++)for(j = 0 ; j <= i; j++) a[i][j] = 0 ;第15套:1、*std;std[i].age;2、void fun ( int *a,int *b )t=*b;*b=*a;*a=t;3、int i,j, min, k ;for(i = 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) {min=tt[j][i] ;k = j ;}pp[i] = tt[k][i] ;}第16套:1、tt;tt.score[i];std2、m=i;if(a[k]>a[m]) m=k;3、if(w>10000) w %= 10000 ;else if(w>1000) w %= 1000 ; else if(w>100) w %= 100 ;else if(w>10) w %=10 ;return w ;第17套:1、i+1;m=j;t2、void fun(char *str, char ch)if(*str!=ch)str[1] = 0;3、char b[N] ;int i = 0, j ;memset(b, 0, N) ;for(j = strlen(s) - 1 ; j >= 0 ; j--) b[i++] = s[j] ; strcpy(s, b) ;第18套:1、k;len;ss[i][j]2、result*=n--;return result;3、char *p = s ;int i = 0 ;while(*p) {if(*p != c) s[i++] = *p ;p++ ;}s[i] = 0 ;第19套:1、ss[i];n+j;12、if( *p == ' ' )* (p-1) = toupper( *( p - 1 ) );3、char ch ;int i, j ;for(i = 1 ; i < 6 ; i++)for(j = i + 1 ; j < 6 ; j++) {if(*(s + i) < *(s + j)) {ch = *(s + j) ;*(s + j) = *(s +i) ;*(s + i) = ch ; } }第20套:1、N;len;*n=len2、t += 1.0/t;return t;3、int cnt = 0 ;char *p = str, *q ;while(*p) {q = strstr(p, substr) ;if(q == NULL) break;p = q + strlen(substr) ;cnt++ ;}return cnt ;第21套:1、M;<;k2、if(( 'a' <= tt[i] )&&( tt[i] <= 'z' ) )tt[i] -= 32;3、int i, cnt = 0 ;for(i = 2 ; i < m ; i++)if(isP(i)) xx[cnt++] = i ;*k = cnt ;第22套:1、j++;s[i]=t1[i];j2、for (j = i + 1; j < 6; j++)*(pstr+i)=*(pstr+j);3、int cnt = 0 ;char *p = ss ;while(*p) {if(*p == c) cnt++ ;p++ ;}return cnt ;第23套:1、&&;'\0';s[j]2、for(i=2; i<=m; i++)y+=1.0/(i*i)3、int c[3][3] ;int i, j ;for(i = 0 ; i < 3 ; i++)for(j = 0 ; j < 3 ; j++) {c[i][j] = a[j][i] ; /* 矩阵的转置 */ b[i][j] = a[i][j] + c[i][j] ;}第24套:1、s[i];'9';*t=n2、t=*x;*x=y;return(t);3、int i ;*n = 0 ; for(i = 7 ; i < 1000 ; i++)if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n)++] = i ;第25套:1、1;s[k];c2、long s = 0, t = 0 ;t=t/10;3、char *p = tt ;int i ;for(i = 0 ; i < 26 ; i++) pp[i] = 0 ;while(*p) {if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ; p++ ;}第26套:1、t=i;i;'\0'2、while(fabs(t)>=num)t=s/n;3、strncpy(b, a, n) ;b[n] = 0 ;strcat(b, a + n + 1) ;第27套:1、'\0';0;c2、double sum=0.0;或float sum=0.0;sum /= c;3、int i,j,t;float s=0;for(i=1;i<=n;i++) {t=0;for(j=1;j<=i;j++) t+=j;s=s+1./t;}return s;第28套:1、i++;m;m2、while ((high >= 2) && (n < 10))yes=0; break;3、float x0, x1=0.0;do {x0=x1; x1=cos(x0);} while(fabs(x0-x1)>0.000001);return x1;第29套:1、N;N-1;02、s+=(float)(n+1)/n;return t;3、int f0 = 0, f1 = 1, f ;do {f = f0 + f1 ;f0 = f1 ;f1 = f ;} while(f < t) ;return f ;第30套:1、0;j--;j2、double f( double x)return s;3、double s = 0.0 ;int i ;for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; s = sqrt(s) ;return s ;第31套:1、[N];t[i][j];t[j][i]2、#define FU(m,n) ((m)/(n))return错写成Return,变量value错写成Value。
c语言上机题答案大全
4.1 温度转换背景:经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度(C)。
现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。
如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。
温度转换的公式为:F=(C×9/5)+32 ;C=(F-32)×5/9 ;式中F--华氏温度,C--摄氏温度。
输入:第一个数据(1 或 2 )确定转换的类型:华氏转摄氏(1);摄氏转华氏(2);第二个数据是相应需要转换的温度值。
输出:相应的转换后的温度值(保留小数点后 2 位)。
#include <stdio.h>void main(){int lx;double f,c;scanf("%d",&lx);if(lx==1){scanf("%lf",&f);c=(f-32)*5/9;printf("The Centigrade is %.2f\n",c);}else{scanf("%lf",&c);f=(c*9/5)+32;printf("The Fahrenheit is %.2f\n",f);}}4.2 分段函数有一分段函数,y=f(x)。
当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等于15时,y=5x+9.从键盘上输入一个整数x,输出对应的y值。
#include <stdio.h>void main(){int x,y;scanf("%d",&x);if(x<6)y=x-12;else if(x<15)y=3*x-1;elsey=5*x+9;printf("%d\n",y);return 0;}4.3 整数位数判断输入一个不多于5位的正整数,要求: (1)求它是几位数;(2)逆序打印出各位数字。
C语言上机练习参考标准答案
C语言上机练习参考标准答案C语言上机练习参考答案————————————————————————————————作者:————————————————————————————————日期:第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------Program#includemain(){ printf("---------------------------------\n");printf("Programming in C is fun!\n");printf("I love C language.\n");printf("---------------------------------\n");}1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **Program (1)#includemain(){ printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n ");}Program (2)#includemain(){ printf("%c%4c%4c%4c\n", '*', '*', '*', '*');printf("%3c%4c%4c\n", '*', '*', '*');printf("%5c%4c\n", '*', '*');printf("%7c\n ", '*');}1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
c语言上机100套答案
第一套给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号、姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
答案: 一、1、STYPE 2、FILE 3、fp二、1、把for(i=0;i<s1;i++)改成for(i=0;i<sl;i++)注意:就是s 后的原来是数字1,应该改成字母l2、把t[sl]=‟\0‟改成t[2*sl]=‟\0‟第二套给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用—1(独立一行)作为字符串输入结束的标志。
然后将文件的内容读出显示在屏幕上。
文件的读写分别由自定义函数ReadText和WriteText实现。
答案:一、1、*fw 2、str 3、str二、1、把void fun(long s,long t)改为void fun(long s,long* t)2、把sl=sl*100改为sl=sl*10第三套给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
答案:一、1、fp 2、fclose(fp)3、fname二、1、把for(i=j+1;i<n-1;i++)改成for(i=j+1;i<n;i++)2、把t=i;改成p=i;第四套给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。
在复制的过程中,把复制的内容输出到终端屏幕。
主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
答案:一、1、”r”2、fs 3、ft二、1、把if (d%2=0)改为if(d%2==0)2、把s\=10改为s/=10第五套给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
C语言上机实验完整答案
实验 2
程序代码 #include<stdio.h> void main () {char a;int i;
for (i=1;;i++) {
a=getchar(); if(a=='\n') break; switch(a) {case '0':printf(" zero ");break;
case '1':printf(" one ");break; case '2':printf(" two ");break; case '3':printf(" three ");break; case '4':printf(" four ");break; case '5':printf(" five ");break; case '6':printf(" six ");break; case '7':printf(" seven ");break; case '8':printf(" eight ");break; case '9':printf(" nine ");break; }
printf("input a number\n"); scanf("%d",&n); h=n-7*i;
while(h>7) {i=i+1; h=n-7*i;} switch(h) { case 1: printf("星期一\n"); break ; case 2: printf("星期二\n"); break ; case 3: printf("星期三\n"); break ; case 4: printf("星期四\n"); break ; case 5: printf("星期五\n"); break ; case 6: printf("星期六\n"); break ; case 7: printf("星期日\n"); break ; } } 运行结果
c语言程序设计上机答案
c语言程序设计上机答案C语言程序设计是一门实践性很强的课程,上机练习是掌握C语言编程技能的重要环节。
以下是一些常见的C语言上机练习题目及其参考答案,供学习者参考。
1. 打印“Hello, World!”```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两个数的和```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}```3. 判断一个数是否为素数```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num); }return 0;}```4. 计算圆的面积```c#include <stdio.h>#include <math.h>double calculateArea(double radius) {return M_PI * radius * radius;}int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = calculateArea(radius);printf("半径为 %f 的圆的面积是:%f\n", radius, area); return 0;}```5. 字符串反转```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; ++i) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```6. 计算阶乘```c#include <stdio.h>unsigned long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个非负整数:");scanf("%d", &num);printf("%d 的阶乘是:%llu\n", num, factorial(num)); return 0;}```7. 排序算法(冒泡排序)```c#include <stdio.h>void bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; ++i) {for (int j = 0; j < n - i - 1; ++j) { if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, n);printf("排序后的数组是:\n");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}printf("\n");return 0;}```8. 寻找最大值```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) { max = arr[i]; }}return max;。
c语言上机考试题及答案
c语言上机考试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个是合法的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A2. 下列哪个选项是正确的C语言标识符?A. 2variableB. variable2C. variable-2D. variable_2答案:D3. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A4. 在C语言中,以下哪个是正确的函数声明?A. int myFunction(int a);B. int myFunction();C. int myFunction(int);D. int myFunction(int a, int b);答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D二、填空题(每题3分,共15分)1. 在C语言中,用于定义整型变量的关键字是________。
答案:int2. 若有定义 int a = 10;,则表达式 a++ 的值为________。
答案:103. C语言中,用于表示逻辑“与”的运算符是________。
答案:&&4. 在C语言中,以下代码段的输出结果是________。
```c#include <stdio.h>int main() {int x = 5;printf("%d", x++);return 0;}```答案:55. 若有定义 float b = 3.14;,则表达式 b * 100 的值为________。
答案:314.0三、编程题(每题20分,共40分)1. 编写一个C程序,计算并输出以下数列的前10项之和:1 + 1/2 + 1/3 + ... + 1/10。
C语言上机实验 答案
实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b; d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”); printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
C语言上机题及答案
C语言程序设计上机题1.编写函数实现从键盘输入一个字符串,再将其逆序输出。
#include<stdio.h> //宏定义#include<string.h> //调用string库函数void main(){int i,n;char a[30]; //定义字符型数组gets(a); //输入字符串n=strlen(a); //调用strlen函数,测量字符串长度for(i=n;i>=0;i--) //通过for循环倒序输出printf("%c ",a[i]);printf("\n");}2.编写函数求出10!的值并输出。
#include<stdio.h> //宏定义void main(){unsigned int a,num=1;for(a=1;a<=10;a++) //for循环求出10的阶乘num=num*a;printf("%d\n",num); //输出所求值}3.编写函数实现10个元素数组的平均值,并在主函数输出。
#include<stdio.h> //宏定义float dy(int *a,int n) // 子函数,{float sum=0,p;int i;for(i=0;i<10;i++) //for循环求数组和sum=*(a+i)+sum; // 数组指针p=sum/10.0; // 求平均数return p; // 返回平均数P的值}void main(){int i,a[10];for(i=0;i<10;i++) //for循环输入数组的十个数字scanf("%d",&a[i]);printf("%f\n",dy(a,10)); // 输出子函数返回的平均值}4.编写函数实现圆度面积计算,并在主函数中输出结果。
(完整版)C语言上机练习题及答案
(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
C语言上机练习汇总及答案
10002 显示Hello World!程序填空。
在屏幕上显示一个短句Hello World!10003 显示What is a computer?程序填空。
在屏幕上显示一个短句What is a computer?10004 显示图形(字符图案输出)程序填空。
在屏幕上显示以下图形**********10005 显示Welcome to You!(调试例如error01_1)程序填空。
在屏幕上显示短句Welcome to You!10006 显示"Programming in C is fun!"编写程序,在屏幕上显示一个短句"Programming in C is fun!"10007 显示图案(字符图案输出)编写程序,在屏幕上显示如以下图案。
* * * ** * ** **20011 求华氏温度100°F对应的摄氏温度。
计算公式如下,c=5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。
(源程序输入输出例如:fahr=100,celsius=3720012 求华氏温度150°F 对应的摄氏温度。
计算公式:C = 5*F/9-5*32/9,式中:C表示摄氏温度,F表示华氏温度。
输入输出例如:fahr=150, celsius=6620013 求摄氏温度26°C对应的华氏温度。
计算公式如下,f=9*c/5+32,式中:c表示摄氏温度,f表示华氏温度。
输入输出例如:celsius=26,fahr=7820014 计算三门课程的平均成绩程序填空,不要改变与输入输出有关的语句。
已知某位学生的数学、英语和运算机课程的成绩别离是87分、72分和93分,求该生3门课程的平均分。
输入输出例如:math = 87, eng = 72, comp = 93, average = 8420015 计算列位数字的值输入输出例如:整数152的个位数字是2,十位数字是5,百位数字是120016 计算x的平方(改错题error02_2)程序填空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010C语言实验报告参考答案实验一熟悉C语言程序开发环境及数据描述四、程序清单1.编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#include<stdio.h>main(){printf("The dress is long\n");printf("The shoes are big\n");printf("The trousers are black\n");}2.改错题(将正确程序写在指定位置)正确的程序为:#include <stdio.h>main(){printf("商品名称价格\n");printf("TCL电视机¥7600\n");printf("美的空调¥2000\n");printf("SunRose键盘¥50.5\n");}2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。
答案:#include<stdio.h>main(){int a,b,c,x,y;a=150;b=20;c=45;x=a/b;y=a/c;printf("a/b的商=%d\n",x);printf("a/c的商=%d\n",y);x=a%b;y=a%c;printf("a/b的余数=%d\n",x);printf("a/c的余数=%d\n",y);}4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。
(提示:用条件运算符)答案:#include<stdio.h>main(){int a,b,c;a=0;b=-10;c= (a>b) ? b:a;printf("c = %d\n",c);}五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black3、编译、连接无错,运行后屏幕上显示以下结果:a/b的商=7a/c的商=3a/b的余数=10a/c的余数=154. 编译、连接无错,运行后屏幕上显示以下结果:c =-10实验二顺序结构程序设计四、程序清单1.键盘输入与屏幕输出练习问题1 D 。
问题2 改printf("%c,%c,%d\n",a,b,c);这条语句改成:printf("%c %c %d\n",a,b,c);问题3 改scanf("%c%c%d",&a,&b,&c);这条语句改为:scanf("%c,%c,%d",&a,&b,&c);问题4 改printf("%c,%c,%d\n",a,b,c);这条语句改成:printf("\’%c\’ \’ %c\’ %d\n",a,b,c);2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。
#include <stdio.h>int main(){int a,b,c;printf("Enter a and b:");scanf("%o%o",&a,&b);c = a + b;printf("d:%d\n",c);printf("x:%x\n",c);return 0;}2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值:5ax++=)ln(sin()+xy+aeaxa#include<stdio.h>#include<math.h>int main(){float a,x,y;scanf("%f%f",&a,&x);y = pow(a,5) + sin(a*x) + exp(a*x) + log(a+x);printf("y=%f\n",y);return 0;}3.改错题正确的程序为:#include <stdio.h>main(){int a,b,c,s;scanf("%d%d%d",&a,&b,&c);s=a+b+c;printf("%d=%d+%d+%d\n",s,a,b,c); /*输出s=a+b+c*/printf("%d+%d+%d=%d\n",a,b,c,s); /*输出a+b+c=s*/} 五、调试和测试结果2(1) 输入: 12 14输出:261a2(2) 输入:1 0输出:2.000000实验三 选择结构程序设计四、设计流程(算法描述)(请写出上机内容2(2)题的算法描述)主要是两两比较,然后得出最大的数五、程序清单2(1) 输入整数x 和a ,计算并输出下列分段函数f (x )的值(保留2位小数),请调用log 函数求自然对数,调用fabs 函数求绝对值。
⎪⎩⎪⎨⎧=≠-+=a x a x xa x a a x f 0ln 21)(程序为:#include <stdio.h>#include <math.h>main(){int x,a;double y;printf("Enter a and x:");scanf("%d%d",&a,&x);if(fabs(x)!=a)y=log(fabs((float)(a+x)/(a-x)))/(2*a);elsey=0;printf("a=%d,f(%d)=%.2f\n",a,x,y);}(2)输入a 、b 、c 三个整数,输出最大数。
#include<stdio.h>main(){int a,b,c,x;scanf("%d%d%d",&a,&b,&c);if(a>=b)x=a;elsex=b;if (x<c)x=c;printf("the max number is:%d\n",x);return 0;}3.改错题正确程序为:#include <stdio.h>main(){double n;printf("Enter n:");scanf("%lf",&n);if(n<0)printf("%lf is less than 0\n",n);else if(n==0)printf("%lf is equal to 0\n",n);elseprintf("%lf is greater 0\n",n);}六、调试和测试结果2(1) Enter a and x:5 6a=5,f(6)=0.24Enter a and x:5 5a=5,f(5)=0.002(2) 输入:3 2 1 输出:the max number is:3输入:2 3 1 输出:the max number is:3输入:1 2 3 输出:the max number is:3实验四循环结构程序设计四、设计流程(算法描述)(请写出上机内容2的算法描述)首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等,就是完数。
五、程序清单1.编写程序:求1+2+3+...+100和12+22+33+ (1002)#include<stdio.h>#include<math.h>int main(){int i,j,sum;sum = 0;for (i=1;i<=100;i++)sum += i;printf("the sum is:%d\n",sum);sum =0;for(i=1;i<=100;i++){j=pow(i,2);sum +=j;}printf("the square sum is:%d\n",sum);return 0;}2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。
#include<stdio.h>#include<math.h>main(){int i,j,sum=0;for(i=2;i<=5000;i++) //遍历从2到5000的所有数{sum = 0;for (j=1;j<=i/2;j++) //找出给定整数X的所有因子和{if(i%j == 0)sum +=j;}if(i == sum) //sum为因子和,如果和i相等,则输出printf("%d ",i);}return 0;}3. 改错题正确的程序为:#include <stdio.h>main(){int n=1;int find=0;while(!find){if(n%5==1 && n%6==5 && n%7==4 && n%11==10){printf("n=%d\n", n);find =1;}n++;}}六、调试和测试结果1:结果:the sum is:5050the square sum is:3383502:结果:6 28 496实验五函数和预处理命令四、设计流程(算法描述)(请写出上机内容1的算法描述)利用循环将m乘n次五、程序清单m的值。
利用此函数编程序实现:从1.编写自定义函数long power(int m,int n),计算nm的值。
键盘输入两个整数m和n,计算出n#include<stdio.h>long power(int m,int n)//要返回的是long型{int i;long s;//因为是要返回的数,所以这里也定义为long型s=1;for(i=1;i<=n;i++){s *=m;}return s;}int main(void){int m,n;scanf("%d%d",&m,&n);printf("s=%ld\n",power ( m,n));return 0;}2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。