C语言上机题答案大全
- 格式:pdf
- 大小:357.54 KB
- 文档页数:38
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语言上机练习题及答案1.从矩形的长,宽,输出面积(长为6.5,宽为4.5)#includemain(){float length,width,area;scanf("%f%f",&length,&width);area=length*width;printf("area=%f\n",area);}2.定义符号常量,从键盘输入圆的半径3.5,求圆的周长和面积#define PI 3.14#includemain(){float r,c,area;scanf("%f",&r);c=2*PI*r;area=PI*r*r;printf("c=%f,area=%f\n",c,area);}3.从键盘输入一个整数,输出其绝对值(采用两个if语句实现)#includemain(){int i;scanf("%d",&i);if(i>=0)printf("i=%d\n",i);if(i<0)printf("i=%d\n",-i);}4.从键盘输入一个整数,输出其绝对值(采用if——else语句实现)#includemain(){int i;scanf("%d",&i);if(i>=0)printf("i=%d\n",i);elseprintf("i=%d\n",-i);}5.从键盘输入年份,判断是不是闰年,如果是,输出是闰年(上机考试重点) #includemain(){int year;scanf("%d",&year);if((year%4==0&&year%100!=0)||year%400==0)printf("%d是闰年",year);elseprintf("%d不是闰年",year);}6.输入学生的高考成绩,成绩>=560,输出读一本,如果>=520,输出读二本,如果>=480输出读三本,否则输出读专科#includemain()int score;scanf("%d",&score);if(i>=560)printf("考得很好,你可以读一本学校了\n");else if(i>=520)printf("考得还不错,你可以读二本学校\n");else if(i>=480)printf("你只能读三本学校\n");elseprintf("可以读专科学校,继续努力哦!\n");}7.从键盘输入一个数,判断是否是素数(上机考试重点,必须掌握)#includemain(){int n,i,flag=1;scanf("%d",&n);for(i=2;i<n;i++)< p="">{if(n%i==0){flag=0;break;}}if(flag==1)printf("%d是素数\n",n);elseprintf("%d不是素数\n",n);8.求1+1/3+1/5+…+1/99的和(上机考试重点,必须掌握)#includemain(){float s=0;int i=1;while(i<=99){s=s+1.0/i;i=i+2;}printf("s=%f",s);}9.求100—200之间所有能被3整除,但不能被7整除的数,并输出这些数#includemain(){int i;for(i=100;i<=200;i++){if(i%3==0&&i%7!=0)printf("%d,",i);}}#includelong fun(int n){long s=1; int i;for(i=1;i<=n;i++)s=s*i;}void main(){ int num;scanf("%d",&num);if(num>0)printf("%d!=%ld \n",num, fun(num));elseprintf("input data error! \n");}main ( ){ int a, b;a=5; b=10;printf (“Before swap, a=%d, b=%d\n", a, b); swap (a, b); printf (“After swap, a=%d, b=%d\n", a, b); }swap (int x, int y){ int temp;temp=x; x=y; y=temp;printf (“In swap, x=%d, y=%d\n", x, y);}int multBy5(int b){b = b * 5;return b;}int main(void){int a = 34, b = 1;a = multBy5(b);printf("a = %d, b = %d\n", a, b);}#includeint a=3,b=5;void main ( ){ int a=8;printf(“%d”,max(a,b)); }max(int a, int b){ int c;c=a>b?a∶b;return (c);}int a=3,b=5;max(int a,int b) {int c;c=a>b?a:b;return c;}main(){int a=8;printf("%d\n",max(a,b)); }int a;fun(int i){a+=2*i;return a;}main(){int a=10;printf("%d,%d\n",fun(a),a);}void main( ){ int fac(int n);int i;for (i=1; i<=5; i++)printf(“%d!=%d\n”, i, fac(i));}int fac(int n){ static int f=1;f=f*n;return(f);}#includevoid main(){int n[ 5 ] = { 1, 2, 3, 4, 5 };int i;for(i=0;i<4;i++)printf(“%d %d\n”,n[i]);}1、执行下面的程序段后,变量k中的值为__________。
第一次上机作业(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说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
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语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。
【参考代码】double y=0;y=sin(m)*10;return(y);功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。
【参考代码】int i,s=0;for(i=x;i<=y;i+=2)s=s+i;return s;功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)【参考代码】int i,j,t;for(i=0; i < 3; i++)for(j=0; j < i; j++){ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t; }功能:求一个四位数的各位数字的立方和。
【参考代码】int d,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
【参考代码】int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]<pp[j])pp[j]=tt[i][j];}功能:求一组数中大于平均值的数的个数。
【参考代码】int i,k=0;float s=0,ave;for(i=0;i<n;i++)s+=a[i];ave=s/n;printf("%f ",ave);for(i=0;i<n;i++)if(a[i]>ave)k++;return k;题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80)。
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语言上机选择题题及答案————————————————————————————————作者:————————————————————————————————日期:21、下列字符序列中,不可用作C语言标识符的是(c)A.abc123 B.no_1 C.a!b D._ok_02、正确的C语言标识符是(a)A._buy_2 B.2_buy C.?_buy D.buy?3、不属于C语言关键字的是(D)A.int B.break C.while D.character4、以下选项中,合法的C语言标识符是(A)A.mon B.2_abc C.3dmax D.A.dat5、以下选项中,合法的实型常数是(C)A.5E2.0 B.E-3 C.2E02 D.1.3E6、以下选项中,正确的字符常量是(C)A."F" B.'\\'' C.'W' D.'''7、已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S='A'+'6'-'3';后,S中的值为(A)A.'D' B.68 C.不确定的值D.'C'8、在C语言中,要求运算数必须是整型的运算符是(D)A./ B.++ C.*= D.%9、若有定义:int m=7; float x=2.5, y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是(A) A.2.500000 B.2.750000 C.3.500000 D.0.00000010、设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)A.x=(x*100+0.05)/100.0 B.m=x*100+0.5, x=m/100.0C.x=x*100+0.5/100.0 D.x=(x/100+0.5)*100.011、假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是(B)A.7 B.8 C.6 D.212、已知s是字符型变量,下面不正确的赋值语句是(B)A.s='\012'; B.s= 'u+v';C.s='1'+'2'; D.s=1+2;13、设x、y均为float型变量,则不正确的赋值语句是(C)A.++x ; B.x*=y-2;C.y=(x%3)/10; D.x=y=0;14、putchar函数可以向终端输出一个(D)A.整型变量表达式值。
C语言上机考试编程题以及答案1、求1+2+3+……….+100。
(循环)答案#include<stdio.h>void main(){int i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}2、求1*2*3*……….*10。
(循环)答案void main(){int i=0,j=1;for (i=2;i<=10;i++){j*=i;}printf("%d",j);return 0;}3、输入三个数字,输出他们的最大值。
(if)答案#include<stdio.h>void main(){int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d",d);getch();/*暂停看运行结果*/}int max(int x,int y,int z){int u;if(x>=y&&x>=z)u=x;else if(y>=x&&y>=z)u=y;elseu=z;return(u);4.用起泡法对十个数据排序(数组实现)答案#include<stdio.h>main ( ){ int i,j,t;static int a[10]={5,7,4,2,3,6,1,0,9,8};for(j=0;j<9;j++){ for(i=0;i<9-j;i++){ if(a>a){ t=a;a=a;a=t ;}}}for(i=0;i<10;i++)printf("%2d",a);}5、输入十个数字,逆序输出。
(数组实现)答案#include<stdio.h>main(){int a[10],i=0;for(i=0;i<=9;i++)scanf("%f",&a);printf("\n");for(i=9;i>=0;i--)printf("%f",a);}6输入两个数,交换他们的值并输出。
第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:1-2---------------------------------1-3Programming in C is fun!1-4I love C language.1-5---------------------------------#include <>main(){ printf("---------------------------------\n");printf("Programming in C is fun!\n");printf("I love C language.\n");printf("---------------------------------\n");}1-6编写程序,在屏幕上显示一个如下图案:1-7* * * *1-8* * *1-9* *1-10*#include <>main(){ printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n ");}#include <>main(){ printf("%c%4c%4c%4c\n", '*', '*', '*', '*');1-11已知某个圆的半径,编写一个程序,用来计算并显示面积。
1-12要求:将π定义为符号常量,并假设一个恰当的半径值。
OutputThe area of circle is:1-13已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果:1-1420+10=301-1520-10=10Output20 + 10 = 3020 – 10 = 101-16已知变量a 、b 和c 的值,编写程序,用来计算并显示x 的值,其中cb a -=x 1-17请分别用以下数值运行该程序 1-18(1)a=250,b=85,c=25 1-19 (2)a=300,b=70,c=80Output (1)x =Output (2)x =第2章 常量、变量及数据类型 & 第3章 运算符和表达式 3-1 编写程序,求华氏温度100o F 对应的摄氏温度。
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
C语言程序设计上机习题1、给出三角形的三边a、b、c,求三角形的面积〔应先判断a、b、c三边是否能构成一个三角形〕.2、某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班.3、编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:〔1〕能同时被3、5、7整;〔2〕能同时被3、5、7中的两个数整除,并输出这两个数;〔3〕只能被3、5、7中的一个数整除;〔4〕不能被3、5、7中的任何一个数整除.4、请列出所有的个位数是6,且能被3整除的两位数.5、求1~500中能被5整除的数的倒数之和.6、编写程序,输入某门功课的若干个同学的成绩,以-1作为终值,计算平均成绩并输出.7、若口袋里放入12个球,3个红球,3个白的,6个黑的,从中任取8个,编写程序,列出所有可能的取法.8、编写一个程序,求2012!的末尾有多少个0?9、一个自然数平方的末几位与该数相同时,称该数为同构数.例如:252=625,则25为同构数.编程求出1~1000中的同构数.10、输入一个较大的整数,求小于该整数的最大5个素数.11、求下列数列的近似值:S=1-1/22+1/33-1/44+…〔-1〕n/n n.输入精度,当某一项的精度小于该值时停止计算.float fun<float esp>{ }void main<>{float esp;scanf<"%f",&esp>;printf<"%f\n",fun<esp>>;}12、编写一个函数change<int x,int r>,将十进制整数x转换成r<1<r<10>进制后输出.13、求1000以内的亲密数对.亲密数对的定义为:若整数a 的所有因子〔不包括本身〕之和为b,b的所有因子〔不包括b本身〕之和为a,且a和b不相等,则称a与b为亲密数对.int fun<int x>{ }void main<>{int n,a,b;for<n=1;n<1000;n++>{b=fun<n>;a=fun<b>if<a!=b&&a==n>printf<"\n%d,%d\n",a,b>;} }14、用递归法求下列问题的解:一对小兔,一个月后长成中兔,第二个月长成大兔,长成大兔,长成大兔后以后每个月生一对小兔.第20个月有多少对兔子?15、定义一个函数long f<char s[ ]>,函数功能是将字符串s<只由数字符组成>转换为一个整数,并作为函数的返回值.long f<char s[ ]>{ }void main<>{ char s[10];long int res;gets<s>;res=f<s>;printf<"%ld\n",res>; }16、自编一函数,其功能是求一维数组最大值的下标,最大值由主函数输出.int fun<float aa[ ],int n >{ }void main<>{float a[10];int k,max;for<k=0;k<10;k++>scanf<"%f’,a+k>;max=fun<a,10>;printf<"Max=%f\n",a[max]>; }17、编写一个函数fun<char s[ ],int n>,函数的功能是将字符串s循环左移n个字符.主函数输入一个字符串的一个整数.void fun<chaf s[ ],int n>{ }void main<>{char ss[255];int n;gets<ss>;printf<"Input data:\n">;scanf<"%d",&n>;fun<ss,n>;puts<ss>;}18、编写一个函数,其功能是将字符串中指定的字符删除.void fun<char *ss,char c>{ }void main<>{char s[255],ch;printf<"Input a string:\n">;gets<s>;printf<"Input a character:\n">;scanf<"%c",&ch>;fun<s,ch>;puts<s>;}19、完成下面的函数,函数的功能是将a数中大于平均值的数组元素存入b数组中,大求平均值的数据个数通过指针方式返回.void fun<int *a,int *b,int k,int *n>{ }void main<>{int a[10],b[10],kk,,sum;for<kk=0;kk<10;kk++>scanf<"%d",aa+k>;fun<a,b,10,&sum>;for<kk=0;kk<sum;kk++>printf<"%6d",*<b+kk>>;}20、从键盘输入一任意的字符串,编一函数,其功能是将该字符串的数字字符构成一个数据返回.例如:输入字符串为1dfk3d45,得到返回值为1345.void fun<char *s,long int *n>{ }void main<>{char s[20];long int d;gets<s>;fun<s,&d>;printf<"%ld\n",d>;}参考答案1.#include<stdio.h>#include<math.h>void main<>{float a=3,b=4,c=5,p=0,s=0;if<<a+b>c>&&<a+c>b>&&<b+c>a>>{p=0.5*<a+b+c>;s=sqrt<p*<p-a>*<p-b>*<p-c>>;printf<"面积是%f\n",s>;}else printf<"不能构成三角形\n">;}2.#include<stdio.h>#include<math.h>void main<>{int age;printf<"请输入年龄:">;scanf<"%d",&age>;if<age>=2&&age<=6>if<age<=3>printf<"编入小班\n">;elseif<age<=5>printf<"编入中班\n">;elseprintf<"编入大班\n">;elseprintf<"您的输入有误!\n">;}3.〔1〕#include<stdio.h>void main<>{int n;printf<"请输入数n:\n">;scanf<"%d",&n>;if<n%3==0&&n%5==0&&n%7==0>printf<"能同时被3,5,7整除">;}〔2〕#include <stdio.h>void main<>{int n;printf<"请输入数n:\n">;scanf<"%d",&n>;if<n%3==0&&n%5==0&&n%7!=0> printf<"能同时被3,5整除\n">;if<n%3==0&&n%5!=0&&n%7==0> printf<"能同时被3,7整除\n">;if<n%3!=0&&n%5==0&&n%7==0> printf<"能同时被5,7整除\n">; }<3>#include <stdio.h>void main<>{int n;printf<"请输入数n: ">;scanf<"%d",&n>;if<n%3==0&&n%5!=0&&n%7!=0> printf<"只能被3整除\n">;if<n%3!=0&&n%5==0&&n%7!=0> printf<"只能被5整除\n">;if<n%3!=0&&n%5!=0&&n%7==0> printf<"只能被7整除\n">;}<4>#include <stdio.h>void main<>{int n;printf<"请输入数n: ">;scanf<"%d",&n>;if<n%3!=0&&n%5!=0&&n%7!=0>printf<"不能被3、5、7中的任何一个数整除\n">;}4..#include <stdio.h>void main<>{int i;for<i=1;i<100;i++>{if<i%10 == 6 && i%3 == 0>printf<" %d",i>;}printf<"\n">;}5.#include <stdio.h>void main<>{float sum = 0;for<int i=1;i<=500;i++>{if<i%5 == 0>sum+=<1.0/i>;}printf<"sum=%f\n",sum>;}6.#include <stdio.h>void main<>{int n=0;float s=0,sum=0;printf<"请输入若干学生成绩<输入-1结束>:">;while<s!=-1>{sum+=s;scanf<"%f",&s>;n++;} sum=sum/<n-1>;printf<"该课程的平均成绩是:%5.2f\n",sum>;}7.#include <stdio.h>void main<>{int Red,White,Black;int Count=0;for <Red=0;Red<=3;Red++>for<White=0;White<=3;White++>{Black=8-Red-White;if <Black>=0 && Black<=6>printf<"%2d. %d个红球,%d个白球,%d个黑球\n",++Count,Red,White,Black>;}printf<"\n共有%d种!\n\n",Count>;}8.<这道题目就是看可以分解成多少个5相乘的数>#include <stdio.h>int main<>{int result=0;for<int i=1; i<=2012; ++i>for<int n=i; n%5==0; n/=5>++result;printf<"%d\n",result>;return 0;}9.#include <stdio.h>void main<>{long i,j,k;k=10;for<i=1;i<=1000;i++>{if<i==k>{k*=10;}j=i*i;if<j%k==i>{printf<"%ld\t%ld\n",i,j>;}}}10.#include <stdio.h>void main<>{int n,count=0;printf<"请输入一个整数n:">;scanf<"%d",&n>;for<int i=n; i>=2; i-->for<int t=2; t*t<=i; t++>{if<i%t==0>break;else{count++;if<count<=5>printf<"%d\t",i>;break;}}printf<"\n">;}11.#include <stdio.h>#include<math.h>float fun<float esp>{int n=0;float s=0;do{n++;s+=pow<-1,n-1>*1.0/pow<n,n>;}while<1.0/pow<n,n>>esp>;return s;}void main<>{float esp;scanf<"%f",&esp>;printf<"%f\n",fun<esp>>;}12.#include<stdio.h>void change<int x,int r>{int a[32],i;for<i=0;x!=0;i++>{a[i]=x%r;x/=r;}for<i--;i>=0;i-->printf<"%d",a[i]>;printf<"\n">;}void main<>{int x,r;printf<"请输入x和r:">;scanf<"%d%d",&x,&r>;change<x,r>;}13.#include <stdio.h>int fun<int x>{int y=0;for<int i=1;i<x;i++>{if<x%i==0>y+=i;}return y;}void main<>{int n,a,b;for<n=1;n<1000;n++>{b=fun<n>;a=fun<b>;if<a!=b&&a==n>printf<"%d %d\n",a,b>;}}14.#include <stdio.h>int func<int n>{if<n==1||n==0>return 1;else return 2*func<n-1>+func<n-2>; }void main<>{printf<"%d\n",func<20>>;}15.#include <stdio.h>#include<math.h>long f<char s[ ]>{ long t=0;for<int i=0;i<10;i++>{t+=<s[i]-48>*pow<10,9-i>;}return t;}void main<>{ char s[10];long int res;gets<s>;res=f<s>;printf<"%ld\n",res>;}16.#include <stdio.h>int fun<float aa[],int n >{ int max=0;for<int i=0;i<10;i++>if<aa[i]>=aa[max]>max=i;return max;}void main<>{float a[10];int k,max;for<k=0;k<10;k++>scanf<"%f",&a[k]>;max=fun<a,10>;printf<"Max=%f\n",a[max]>; }17.#include <stdio.h>#include <string.h>void fun<char s[ ],int n> {char a[200]="";memcpy<a,s,n>;strcat<strcpy<s,s+n>,a>; }void main<>{char ss[255];int n;gets<ss>;printf<"Input data:\n">;scanf<"%d",&n>;fun<ss,n>;puts<ss>;}18.#include <stdio.h>void fun<char *ss,char c>{int i,j;for<i=0;ss[i]!=0;i++>{if<ss[i]==c>for<j=i;ss[j]!=0;j++>ss[j]=ss[j+1];}}void main<>{char s[255],ch;printf<"Input a string:\n">;gets<s>;printf<"Input a character:\n">;scanf<"%c",&ch>;fun<s,ch>;puts<s>;}19.#include<stdio.h>void fun<int *a,int *b,int k,int *n> {float sum=0,avg=0;int i,j=0;for<i=0;i<k;i++>sum+=*<a+i>;avg=sum/k;for<i=0;i<k;i++>{if<a[i]>avg>{b[j]=a[i];j++;}}*n=j;}void main<>{ int a[10],b[10],kk,sum;for<kk=0;kk<10;kk++>scanf<"%d",&a[kk]>;fun<a,b,10,&sum>;for<kk=0;kk<sum;kk++>printf<"%6d",*<b+kk>>;}20.#include <stdio.h>#include<math.h>void fun<char *s,long int *n> {long int t=0;int count=0,i;int a;for<i=0;i<20;i++>{if<s[i]>=48&&s[i]<=57>{count++;}}for<i=0;i<20;i++>{if<s[i]>='0'&&s[i]<='9'>{ count--;t=t+<s[i]-48>*pow<10,count>;}}*n=t;}void main<>{ char s[20];long int d;gets<s>;fun<s,&d>;printf<"%ld\n",d>;}。
c二级上机考试答案1. 请写出C语言中定义一个整型变量的语句。
答案:int variable_name;2. 在C语言中,如何声明一个指向整型数据的指针?答案:int *pointer_name;3. 如果有一个数组定义如下:int array[5] = {1, 2, 3, 4, 5}; 那么数组的第一个元素是什么?答案:14. 在C语言中,如何使用循环结构打印出1到10的数字?答案:```cfor(int i = 1; i <= 10; i++) {printf("%d ", i);}```5. 请解释C语言中的switch语句的基本用法。
答案:switch语句用于基于不同的情况执行不同的代码块。
它首先评估一个表达式,然后检查这个表达式的值与case标签匹配的情况,执行相应的代码块。
6. 以下代码段的输出是什么?```cint x = 5;printf("%d", x++);```答案:57. 在C语言中,如何声明一个函数,该函数接受一个整型参数并返回一个整型值?答案:int function_name(int parameter);8. 请写出C语言中定义一个结构体的语句,该结构体包含一个整型成员和一个字符型成员。
答案:```cstruct struct_name {int integer_member;char character_member;};```9. 如果有一个函数定义如下:void function_name(void) { /* function body */ }; 那么这个函数的返回类型是什么?答案:void10. 在C语言中,如何使用条件运算符(三元运算符)?答案:条件运算符的一般形式是:condition ? expression1 : expression2,其中condition是条件表达式,expression1是当条件为真时的返回值,expression2是当条件为假时的返回值。
c 上机试题及答案第一部分:多项选择题1. 下面哪个选项是正确的?a) Ab) Bc) Cd) D答案:d) D2. 在计算机科学中,什么是“算法”?a) 一种计算机语言b) 一种软件程序c) 一种解决问题的方法或步骤d) 一种计算机硬件答案:c) 一种解决问题的方法或步骤3. 下面哪个选项是关于二进制的描述?a) 使用0和1进行计算的系统b) 使用10个数字进行计算的系统c) 使用英文字母进行计算的系统d) 使用负数进行计算的系统答案:a) 使用0和1进行计算的系统第二部分:填空题1. 在C语言中,用于在屏幕上输出文本的函数是______。
答案:printf2. 在计算机领域中,RAM代表______。
答案:Random Access Memory(随机存取存储器)3. 当一个程序在运行时遇到错误并突然停止时,我们称之为______。
答案:运行时错误(Runtime Error)第三部分:编程题编写一个C程序,计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main(void) {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```答案:1到100之间所有奇数的和为:2500第四部分:简答题1. 请简要解释什么是“数据类型”,并举例说明。
答:数据类型是一种用于定义变量或表达式的特性,包括数据的范围、内存大小和操作。
例如,在C语言中,int是一种数据类型,用于定义整数类型的变量,如:```cint age = 25;```2. 请简要介绍一下C语言的特点。
答:C语言是一种通用、高级的编程语言,具有以下特点:- 结构简洁:C语言的语法相对简单,易于学习和理解。
- 高效性:C语言可以生成高效的机器代码,执行速度快。
大一C语言上机实验试题及答案一、选择题(每题2分,共10分)1. C语言中,用来定义变量的关键字是()。
A. varB. defineC. intD. let答案:C2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D3. 在C语言中,用于定义一个函数的关键字是()。
A. functionB. defC. intD. void答案:A4. 下列哪个选项是正确的C语言数组定义?A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = {1, 2};D. int arr = {1, 2, 3};答案:B5. C语言中,用于输出字符串的函数是()。
A. printfB. printC. coutD. printf_s答案:A二、填空题(每题3分,共15分)1. 在C语言中,用于声明一个整型变量的关键字是____。
答案:int2. 以下代码段的输出结果是____。
```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:103. 在C语言中,用于声明一个浮点型变量的关键字是____。
答案:float4. 若有以下代码段:```cint x = 5, y = 3;int result = x / y;```则变量result的值是____。
答案:15. 在C语言中,用于声明一个字符型变量的关键字是____。
答案:char三、编程题(每题10分,共20分)1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个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);}输入一个摄氏温度,要求输出华氏温度。