C语言上机作业
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章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
要求:将π定义为符号常量,并假设一个恰当的半径值。
OutputThe area of circle is: 78.501-4已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果:20+10=3020-10=10Output20 + 10 = 3020 – 10 = 101-5 已知变量a 、b 和c 的值,编写程序,用来计算并显示x 的值,其中cb a -=x 请分别用以下数值运行该程序(1)a=250,b=85,c=25(2)a=300,b=70,c=80Output (1)x = 4.17Output (2)x = -30.00第2章 常量、变量及数据类型 & 第3章 运算符和表达式 3-1 编写程序,求华氏温度100o F 对应的摄氏温度。
计算公式如下: 9)32(5-⨯=f c 式中:c 表示摄氏温度,f 表示华氏温度。
(c 定义为实型,f 定义为整型)Output Celsius degree (corresponding to 100 Fahrenheit) is: 37.78.3-2 一个物体从100m 的高空自由落下,编写程序,求它在前3s 内下落的垂直距离。
设重力加速度为10m/s 2。
要求,将重力加速度定义为符号常量,尝试将其改为9.8 m/s 2,看结果有何不同?OutputThe falling vertical distance (in 3 seconds) is:45.00.3-3将球的半径R定义为符号常量,计算球的表面积(4πR2)和体积(4/3*πR3)。
C语言上机(20道)
1、从键盘输入三个数,输出这三个数中最大的数main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);if(a>b) max=a;else max=b;if(c>max) max=c;printf("max=%d\n",max);}3、给一个分段函数,设计一个程序,要求从键盘输入x,输出ymain(){ float x,y;scanf("%f",&x);if(x>0) y=3*x+5;if(x==0) y=7;if(x<0) y=5*x;printf("%f\n",y);}4、求1+2+…+n,n由键盘输入main(){ int i,s,n;scanf("%d",&n);for(s=0,i=1;i<=n;i++)s=s+i;printf("%d\n",s);}5、求1*2*…*n(即n!),n由键盘输入main(){int i, n; long s;scanf( "%d",&n);for(i=1,s=1; i<=n; i++)s=s*i;printf("%ld\n",s);}6、求1!+2!…+n!,n由键盘输入main(){int i,n; long s,f;scanf("%d",&n);s=0;f=1;for(i=1; i<=n; i++){ f=f*i; s=s+f; }printf("%ld\n",s); }7:输出100以内(不含100)能被3整除且个位数为6的所有整数(P97)main(){int i,j;for(i=0;i<10;i++){j=i*10+6;if(j%3!=0)continue;printf("%4d",j);}}8、求两个正整数的最大公因子和最小公倍数(P82)main(){ int m,n,r,p;scanf("%d%d",&m,&n);p=m*n; r=m%n;while(r){m=n; n=r;r=m%n; }printf("%d,%d\n",n,p/n);}9、将一个整数的各位数字颠倒后输出(P84)main(){ int i,r;scanf("%d",&i);do{r=i%10;printf("%d",r);i=i/10; }while(i!=0);printf("\n");}10、求Fabonacci数列的前20项,每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语言上机练习
一、程序改错题功能:打印出杨辉三角形(要求打印出10行).#include"stdio.h"main(){ int i,j; int a[10][10]; printf("\n");for(i=1;i<10;i++){ a[i][0]=1; a[i][i]=1; }for(i=1;i<10;i++)for(j=1;j<i;j++)a[i][i]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++){ for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n"); getch();}}二、程序填空题功能:将一个字符串中的前N个字符复制到一个字符数组中去,不允许使用strcpy函数。
main ( ){ char str1[80],str2[80]; int i,n;gets(【?】);scanf("%d",&n);for (i=0; 【?】 ;i++)【?】;【?】;printf("%s\n",str2);}三、程序设计题功能:编写函数fun求s=1^k+2^k +3^k + ......+N^k的值,(1的K次方到N 的K次方的累加和)。
#define K 4 #define N 5 #include "stdio.h"long fun(int n,int k){ /**********Program**********//********** End **********/ }main(){ long int sum;printf("Sum of %d powers of integers from 1 to %d = ",K,N);sum=fun(N,K); printf("%ld\n",sum);}一、程序改错题功能:编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。
c语言上机练习共35篇
c语言上机练习共35篇C 语言程序上机实训题上机练习一一、程序改错题:程序功能:求 100 以内的偶数之和. #include "stdio.h" main() { int i,sum=1; sum+=i; printf("Sum=%d \n";sum); getch(); } 二、程序填空题:程序功能:输入数组最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。
main() { int number[10]; input(number); max_min(number); output(number);} input(int number[10]) { int i; for(i=0;【?】;i++) scanf("%d,",&number[i]); scanf("%d",&number[9]);} max_min(int array[10]) { int max,min,k=0,l=0,t,p,; max=min=array[0]; for(p= 1;pmax) {max= array[p];k=p;} else if(array[0] /**********End **********/} main() { int m; printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %ld\n", fun(m)); }1C 语言程序上机实训题上机练习二一、程序改错题:功能:求 1 到 10 的阶乘的和。
main() { int i; float t,s=0; float fac(int n); for(i=1;i #include 【?】 main() { float a,b,c,disc,x1,x2,realpart,imagpart;scanf("%f%f%f",&a,&b,&c); printf("the equation"); if(【?】/********** }End **********/2C 语言程序上机实训题上机练习三一、程序改错题:功能:将一个正整数分解质因数。
C语言上机100题
一、填空题考试做题要求:1、在__1__处填写正确的答案,并将下划线和数字删除。
2、将题目做完之后一定要保存。
3、不能删除/**********found**********/,也不能多行或少行。
1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。
当调用正确时, 程序输出:x1=5.000000, x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>double f1(double x){ return x*x; }double f2(double x, double y){ return x*y; }/**********found**********/__1__ fun(int i, double x, double y){ if (i==1)/**********found**********/return __2__(x);else/**********found**********/return __3__(x, y);}main(){ double x1=5, x2=3, r;r = fun(1, x1, x2);r += fun(2, x1, x2);printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);}2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
#include <stdio.h>#include <string.h>struct student {long sno;char name[10];float score[3];};void fun(struct student a[], int n){ /**********found**********/__1__ t;int i, j;/**********found**********/for (i=0; i<__2__; i++)for (j=i+1; j<n; j++)/**********found**********/if (strcmp(__3__) > 0){ t = a[i]; a[i] = a[j];a[j] = t; }}main(){ struct student s[4]={ {10001,"ZhangSan", 95, 80, 88}, {10002,"LiSi", 85, 70, 78}, {10003,"CaoKai", 75, 60, 88},{10004,"FangFang", 90, 82, 87}};int i, j;printf("\n\nThe original data :\n\n");for (j=0; j<4; j++){printf("\nNo:%ldName:%-8sScores: ",s[j].sno, s[j].name);for (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}fun(s, 4);printf("\n\nThe data after sorting:\n\n");for (j=0; j<4; j++){ printf("\nNo: %ld Name: %-8sScores: ",s[j].sno, s[j].name);for (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}}3、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
C语言作业及上机习题(仅供参考)
第一次课熟悉win-TC编译环境、熟悉C语言程序结构1.使用C 语言编译环境,输入下面的源程序。
将你的程序命名为hello.c,然后编译运行它。
/* program writes the words "Hello, world" to the screen *File : Hello.c* By : NJCIT* Date : 07-03-09*/#include <stdio.h>main(){printf("Hello, world\n");return(0);}2.main() /*求两数之和*/{int a,b,sum; /* 这是变量定义*/a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}问题:1.一个C语言源程序从哪里开始执行?2. C程序的函数由几部分构成?3. ANSI C 中的注释内容是用什么符号界定?第二次课熟悉printf()函数、常见转义字符及各种数据类型的输出格式1.2. main(){int a=5,b=7,c=-1;float x=67.8564,y=-789.124;char c=‘A’;long n=1234567;unsigned u=65535;printf(“%d%d\n”,a,b);printf(“%3d%3d\n”,a,b);printf(“%f,%f\n”,x,y);printf(“%-10f%-10f\n”,x,y);printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);printf(“%e,%10.2e\n”,x,y);printf(“%c,%d,%o,%x\n”,c,c,c,c);printf(“%ld,%lo,%x\n”,n,n,n);printf(“%u,%o,%x,%d\n”,u,u,u,u);printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”);}3. 假设下面的例子都是完整程序的一部分,那么他们每一个将会输出什么?4.加载,编译并运行下面的程序。
C语言第2章上机及作业题
第二章上机及作业题第二章上机题用三种存储结构(顺序表,链表,静态链表)求解josuphu问题!1:顺序表#include<stdio.h>#define max 100typedef struct{int data[max];int length;}stack,*pstack;pstack Creat() /*顺序表初始化*/{pstack p;p=(pstack)malloc(sizeof(stack));if(p)p->length=0;return p;}void Creatstack(pstack p) /*创建一个顺序表*/{int i,l,x;printf("please stack's length:\n");scanf("%d",&l);p->length=l;printf("please enter a stack:\n");for(i=0;i<l;i++){scanf("%d",&x);p->data[i]=x;}}Deletes(pstack p,int x) /*删除指定位置的元素*/{int i;for(i=x;i<=p->length;i++){p->data[i]=p->data[i+1];}p->length--;}int josephus(pstack p) /*约瑟夫循环*/{int s1,i,s,m,w;printf("please enter start adress:\n");scanf("%d",&s);printf("please enter how long to out eachother:\n");scanf("%d",&m);if(!p->length){printf("empty!\n");return 0;}s1=s-1;printf("please answer:\n");for(i=p->length;i>0;i--){s1=(s1+m-1)%i;w=p->data[s1];printf("%4d",w);Deletes(p,s1);}return 1;}int main() /*主函数*/ {pstack Q;Q=Creat();Creatstack(Q);josephus(Q);getch();}2:链表解决#include<stdio.h>typedef struct node /*定义一个链表结构体*/ {int data;struct node *next;}list,*List;void Putlist(List L) /*输入一个链表*/{int x,i,length;List s;L=NULL;printf("please enter the length:\n");scanf("%d",&length);printf("please enter the list:\n");for(i=0;i<length;i++){s=(List)malloc(sizeof(list));scanf("%d",&x);s->data=x;s->next=L;L=s;}s->next=L;}void Dislist(List L) /*输出链表*/{List p=L->next;printf("%d",L->data);while(p!=L){printf("%3d",p->data);p=p->next;}printf("\n");}int josephs(List L) /*约瑟夫循环的计算*/ {int s,m,count;List p,pre;printf("start in:\n");scanf("%d",&s);printf("how often:\n");scanf("%d",&m);if(!L){printf("the list is empty!\n");return 0;}p=L;for(count=1;count<s;count++){p=p->next;}printf("put the answer:\n");while(p!=p->next){for(count=1;count<m;count++) {pre=p;p=p->next;}printf("%2d",p->data);pre->next=p->next;free(p);p=pre->next;}printf(" %d",p->data);free(p);return 1;}void main(){int x,i,length;List L,s,r;s=L=(List)malloc(sizeof(list)); printf("please enter the length:\n"); scanf("%d",&length);printf("please enter the list:\n"); scanf("%d",&x);L->data=x;for(i=0;i<length-1;i++){r=(List)malloc(sizeof(list)); scanf("%d",&x);r->data=x;s->next=r;s=s->next;}s->next=L;josephs(L);getch();}3:静态链表#include<stdio.h>#define MAXSIZE 100struct node{int number;int next;}string[MAXSIZE];int josephus(void) /*约瑟夫循环*/ {int total;int out;int start;int i,j=1;int flag=0;int current,front;printf("The total number is:");scanf("%d",&total);printf("The out number is:");scanf("%d",&out);printf("The starting number is:");scanf("%d",&start);if(out==1) return total;for(i=0;i<total;i++){string[i].number=i+1;string[i].next=i+1;}string[i-1].next=0;front=total-1;current=0;for(i=1;i<start;i++){front=string[front].next;current =string[current].next;}while(flag<total){if(j%out==0){string[front].next=string[current].next;current=string[front].next;j=1;flag++;}else{j++;front=string[front].next;current =string[current].next;}}return(string[current].number);}void main(){int t;t=josephus();printf("The last one is %d",t);getch();}第二章作业:1.已知递增有序的两个单链表A,B分别存储了一个集合。
(完整word版)c语言上机题
break;
}
for(i=1;i<=n;i++)
for(j=0;j<n-i;j++)
{
if(strcmp(a[j],a[j+1]))
{
strcpy(b,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],b);
}
}
for(i=0;i<n;i++)
printf("%f\n",s);
}
else
printf("不能构成三角形");
}
//vc3
//prog3.cpp
//编写程序求一个字符串的第n个字符开始、长度为m的子串
#include <stdio.h>
main()
{
char a[100],b[100]={'0'};
int m,n,i,j;
gets(a);
gets(b);
if(cmp(a,b))
{
printf("口令正确!");
break;
}
else
{
printf("口令错误!您还有%d次机会!",2-i);
}
}
}
//vc5
//prog3.cpp
//编写实现求1!+2!+...+10!.
#include <stdio.h>
int fun(int n)
b=c;
c=temp;
}
if(a>c)
C语言上机练习题
C语言上机练习题 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】1.阅读以下程序,说出其功能和运算结果。
#include<>intmain(){intn;intfactorial(intn);scanf("%d",&n);printf("%d\n",factorial(n));return0;}intfactorial(intn){inti,fact=1;for(i=1;i<=n;i++)fact=fact*i;returnfact;}若输入5↙2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。
#include<>intmian(){printf("WelcometoYou!\n")return0;}3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。
#include<>main(){ intx,y;scanf("%d",&x);if(x<1){y=x;printf("x=%d,y=x=%d\n",x,y);}elseif(x<10){y=2*x-1;printf("x=%d,y=2*x-1=%d\n",x,y);}else{y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}}4.当输入19,2,21时下列程序运行的结果是()。
#include<>main(){inta,b,c,max;printf("pleasescanthreenumbera,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("maxis:%d",max);}5.运行以下程序时,从键盘键入China#<CR>(<CR>代表回车),则下面程序的运行结果是。
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语⾔正式上机题C语⾔上机实验题⽬1 打印图形1.输⼊n值,打印下列图形:**************** 当n = 4时2.输⼊n值,打印下列⾼和上底均为n 的等腰梯形:**************************** 当n = 4时3.输⼊n值,打印下列⾼和下底均为n 的等腰梯形:**************************** 当n = 4时4.输⼊n值,打印下列⾼和上底均为n的等腰空⼼梯形:****** ** ** ************** 当n = 5时5.输⼊n值,打印下列⾼和下底均为n的等腰空⼼梯形:************** ** ** ****** 当n=5时6.编写程序打印下列上三⾓形式的乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 1825 30 35 40 4536 42 48 5449 56 6364 72817.编写程序打印下列乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————8164 7249 56 6336 42 48 5425 30 35 40 4516 20 24 28 32 369 12 15 18 21 24 274 6 8 10 12 14 16 181 2 3 4 5 6 7 8 98.编程打印数字⾦字塔:11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 9.编程打印数字⾦字塔:1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 110.输⼊n值,打印边长为n的空⼼正六边形:******* ** ** ** ** ** ** ** ** ******* 当n = 6时11.编写程序输出下⾯的图形,要求输⼊顶⾏字符和图形的⾼。
(完整版)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程序设计上机答案
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 num) {if (num <= 1) return 0;for (int i = 2; i <= sqrt(num); i++) { if (num % 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>int main() {double num1, num2;char op;printf("请输入运算符和两个数(例如:+ 10 20):");scanf("%c %lf %lf", &op, &num1, &num2);switch (op) {case '+':printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);break;case '-':printf("%.2f - %.2f = %.2f\n", num1, num2, num1 - num2);break;case '*':printf("%.2f * %.2f = %.2f\n", num1, num2, num1 * num2);break;case '/':if (num2 != 0) {printf("%.2f / %.2f = %.2f\n", num1, num2, num1 / num2);} else {printf("除数不能为0。
c语言上机作业及答案
c语言上机作业及答案4.11 编程计算1×2×3+3×4×5+…+99×100×101的值。
#includemain(){long i ;long term, sum = 0;for (i = 1; i <= 99; i = i + 2){term = i * (i + 1) * (i + 2);sum = sum + term;}printf("sum=%ld",sum);}4.12 编程计算1!+2!+3!+4!+…+10!的值。
#includemain(){long term = 1,sum = 0;int i;for (i = 1; i <= 10; i++){term = term * i;sum = sum + term;}printf("1!+2!+...+10! = %ld \n", sum);}#includemain(){long term ,sum = 0;int i, j;for (i = 1; i <= 10; i++){term = 1;for (j = 1; j <= i; j++){term = term * j;}sum = sum + term;}printf("1!+2!+…+10! = %ld \n", sum);}4.13 编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。
#includemain(){long term = 0,sum = 0;int a , i, n;printf("Input a,n: ");scanf("%d,%d", &a, &n); /*输入a,n的值*/for (i = 1; i <= n; i++){term = term * 10 + a; /*求出累加项*/sum = sum + term; /*进行累加*/}printf("sum=%ld\n",sum);}4.14 利用=×…的前100项之积计算π的值。
C语言上机100题
1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’: pp[0]++;break;case ‘b’: pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;break;case ‘e’: pp[4]++;break;case ‘f’: pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’: pp[8]++;break;case ‘j’: pp[9]++;break;case ‘k’: pp[10]++;break;case ‘l’: pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n’: pp[12]++;break;case ‘o’: pp[14]++;break;case ‘p’: pp[15]++;break;case ‘q’: pp[16]++;break;case ‘r’: pp[17]++;break;case ‘s’: pp[18]++;break;case ‘t’: pp[19]++;break;case ‘u’: pp[20]++;break;case ‘v’: pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x’: pp[23]++;break;case ‘y’: pp[24]++;break;case ‘z’: pp[25]++;break;}tt++;}}5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
C语言上机150道题
C语言上机150道题及参考答案1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。
2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。
例如输入355和113,输出3.14159。
3.用while循环结构编写程序打印ASCII码为33-127的字符。
4.用do-while,for循环结构编写程序打印ASCII码为33-127的字符。
5.用for循环结构编写程序打印ASCII码为33-127字符。
6.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。
7.输入一个整数将其倒着输出,如54321——12345。
8.计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4。
9.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。
10.用while 循环计算1+2+……+100的和。
11.用do while循环计算1+2+……+100的和。
12.用for 循环计算1+2+……+100的和。
13.输入一个小于等于10的整数n ,计算n!。
14.输入两个正整数m和n,计算m!+n!,m和n的值均小于10。
15.用循环语句,计算1~100之间的所有3的倍数之和。
16.用循环语句,计算100-200之间的所有7的倍数之和。
17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。
18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
19.输入一个整数,统计它有几位数。
如输入367,则该数有3位数。
20.编写程序,输出1到50中间所有能被3整除的正整数。
21.把100~200之间不能被3整除的输出。
22.编程Y=1+3+5+7+...111。
23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。
24.编程输出九九乘法表。
25.求1到100奇数和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.输入十个整数,分别输出这10个数再计算并输出它们的和。
源程序:#include<stdio.h>void main(){int i,sum=0;int a[10];printf("input 10 intergers:\n");for(i=0;i<=9;i++){scanf("%d",&a[i]);}for(i=0;i<=9;i++){sum+=a[i];printf("%d ",a[i]);}printf("sum=%d\n",sum);}运行结果:2.输入10个不同的数,将它们存入数组a中,在输入一个数x。
然后在数组中查找x。
如果找到,则输出相应下标,否则输出“not found”。
源程序:#include<stdio.h>void main(){int a[10],i,j,x;printf("Input data of a[10]:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}printf("Input x:");scanf("%d",&x);for(j=0;j<10;j++){if(x==a[j]){printf("%d\n",j);goto L1;}}printf("not found\n");L1: ;}运行结果:3.输入一个整数n(1<n<=10),再输入n个整数,将它们存入数组a中:(1)输出最小值和对应的下标:源程序:#include<stdio.h>void main(){int n,i,s,min,a[10];printf("Input a interger n(1<n<=10):\n");scanf("%d",&n);printf("Input data of a[10]:\n");for(i=0;i<n;i++){scanf("%d",&a[i]);}min=a[0];for(i=0;i<n;i++);{if(min>a[i])min==a[i];}for(i=0;i<n;i++){if(a[i]==min)s=i;}printf("\n%d,%d\n",min,s);}运行结果:(2)将最小值与第一个数交换,输出交换后的n个数。
源程序:#include<stdio.h>void main(){int n,i,s,p,min,a[10];printf("Input a interger n(1<n<=10):\n");scanf("%d",&n);printf("Input data of a[10]:\n");for(i=0;i<n;i++){scanf("%d",&a[i]);}min=a[0],p=0;for(i=0;i<n;i++){if(a[i]<min)p=i;}if(p!=0){i=a[0];a[0]=min;a[p]=i;}printf("the array:");for(i=0;i<n;i++)printf("%d\n",a[i]);}运行结果:4.编一函数,把一个字符串中从第i个字符开始的n个字符保存在另一个字符串数组中,并输出。
源程序:#include<stdio.h>void main(){char str1[40],str2[40]={0};int i,j,n;printf("Please input the string(length<40):\n");scanf("%s",&str1);j=0;while(str1[j]!='\0')j++;printf("please input the number i(<=%d)\n",j-1);scanf("%d",&i);printf("please input the number n(<=%d)\n",j-i-1);scanf("%d",&n);for(j=0;j<=n-1;j++)str2[j]=str1[i+j];printf("%s\n",str2);}5.编写程序:由键盘任意输入一串字符,判断是否为回文。
回文是首位对称相等的字符串,如:abcdcba. 源程序:#include<stdio.h>#include<string.h>void main(){char str[80]={0};int i,j,len;printf("please input a string;\n");scanf("%s",str);len=strlen(str);for(i=0,j=len-1;i<j;i++,j--){if(str[i]==str[j])continue;elsebreak;}if(i>=j)printf("你输入的是回文!\n");elseprintf("你输入的不是回文!\n");}运行结果:6.编写程序,验证下列矩阵是否为魔方阵。
魔方阵是每一行,每一列,每一对角线上的和都是相等的矩阵。
源程序:#include<stdio.h>void main(){int a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25,2,9}};int i,j,sum[12]={0};printf("the array is:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%3d",a[i][j]);printf("\n");}for(i=0;i<5;i++)for(j=0;j<5;j++){sum[i]+=a[i][j];sum[i+5]+=a[i][j];}for(i=0;i<11;i++)if(sum[i]!=sum[i+1])break;if(i>=11)printf("\n这个矩阵是魔方阵\n");elseprintf("\n这个矩阵不是魔方阵\n"); }运行结果:7.编写程序,由键盘输入一串字符,再输入一个字符,统计这个字符在这串字符中出现的次数。
源程序:#include<stdio.h>#include<string.h>void main(){char str[20]={0},ch;int i,len,c=0;printf("please input the string(length<20):\n");scanf("%s",&str);printf("please input a char:\n");scanf("%s",&ch);len=strlen(str);for(i=0;i<len;i++)if(ch==str[i])c++;printf("%d\n",c);}运行结果:8.编写程序,由键盘任意输入一串字符,再输入一字符和一个位置,将此字符插入这个字符串的这个位置上。
如原来为abcdef,输入字符k,位置是3,新串为abkcdef。
源程序:#include<stdio.h>#include<string.h>void main(){char ch,str[20]={0};int position,len,i;printf("input the string:\n");scanf("%s",&str);len=strlen(str);printf("input a char to insert:=\n");scanf("%s",&ch);printf("input the position :\n");scanf("%d",&position);if(position==len)str[position]=ch;elseif(position<0)printf("the position is error!\n");else{for(i=len;i>=position;i--)str[i]=str[i-1];str[position-1]=ch;puts(str);}putchar('\n');}运行结果:。