c语言上机答案
- 格式:doc
- 大小:81.50 KB
- 文档页数:13
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语言上机考试题参考答案课本例题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位数。
第一次上机作业(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说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
第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。
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语言上机练习参考答案————————————————————————————————作者:————————————————————————————————日期:第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已知某个圆的半径,编写一个程序,用来计算并显示面积。
第一套给定程序的功能是调用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语言程序设计上机答案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语言上机考试题及答案一、选择题(每题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。
实验一上机操作初步(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语言程序设计上机题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语言上机练习题及答案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);}输入一个摄氏温度,要求输出华氏温度。
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、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。