c语言上机题
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所指的数组中.答案:void fun(int m, int k,int xx[]){int g=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=0;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if (flag==1 &&j〉=i){if (k>=0){xx[g++]=i;k——;}elsebreak;}}}6:第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符.其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
C语言上机练习题

1。
阅读以下程序,说出其功能和运算结果。
#include 〈stdio.h〉int main( ){int n ;int factorial(int n);scanf(”%d”,&n) ;printf(”%d\n",factorial(n)) ;return 0 ;}int factorial(int n){int i, fact=1 ;for(i=1;i<=n;i++)fact=fact*i ;return fact ;}若输入5↙2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”.#include <stdio.h〉int mian( ){printf(”Welcome to You!\n”)return 0 ;}3.若输入4,程序运行结果为【1 】,若输入-4,运行结果为【2 】,若输入10,运行结果为【3 】.#include〈stdio.h〉main(){i nt x,y;scanf(”%d",&x);if(x〈1){y=x;printf("x=%d,y=x=%d\n”,x,y);}else if(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<stdio。
h>main(){int a,b,c,max;printf(”please scan three number a,b,c:\n");scanf(”%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max〈c)max=c;printf("max is:%d”,max);}5. 运行以下程序时,从键盘键入China#<CR〉(〈CR〉代表回车),则下面程序的运行结果是。
c语言上机考试训练题库及答案

3000≤s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),请按照上述标准利用switch语句编写程序计算运费,并画出程序NS图。
#include <stdio.h>
int main()
{
if(i%2==0&&i%3==0&&i%7==0)
printf("%d\n",i);
}
}
26.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include<stdio.h>
main()
{
char ch;
int z=0,k=0,s=0,q=0;
while((ch=getchar())!='\n')
#include<stdio.h>
void main()
{int i,sum=0;
for(i=100;i<=996;i+=4)
if(i/10%10!=4)
sum+=i;
printf("和为:%d",sum);
}
15.输入一个字符串,统计该字符串的长度以及字母a出现的次数。
#include <stdio.h>
void main()
{int i,j=0;
char ch[ ]=" ";
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)
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语言上机练习题

1.输入一个不超过五位的正整数,输出其逆数。
例如输入12345,输出应为54321。
#include ""main(){long n;int ww,qw,bw,sw,gw;printf("Please input:\n"); scanf("%ld",&n);while(n<=0||n>99999){printf("\nThe number is too little or too please!\n");scanf("%ld",&n);}if(n>=10000&&n<=99999){ww=n/10000;qw=n/1000%10;bw=n/100%10;sw=n/10%10;gw=n%10;printf("The old number is:%ld\n",n);printf("The new number is:%d%d%d%d%d\n",gw,sw,bw,qw,ww );}else if(n>=1000&&n<=9999){qw=n/1000;bw=n/100%10;sw=n/10%10;gw=n%10;printf("The old number is:%ld\n",n);printf("The new numberis:%d%d%d%d\n",gw,sw,bw,qw);}else if(n>=100&&n<=999){bw=n/100;sw=n/10%10;gw=n%10;printf("The old number is:%ld\n",n);printf("The new number is:%d%d%d\n",gw,sw,bw);}elseif(n>=10&&n<=99){sw=n/10;gw=n%10;printf("The old number is:%ld\n",n);printf("The new number is:%d%d\n",gw,sw);}else printf("The old number equals the new number:%ld",n);}2.计算1+2+3…+n的值,n是从键盘输入的自然数。
c语言上机考试题库

c语言上机考试题库单项选择题1.有char c=’1’,下面说法中正确的是()。
A. 语句putc+2);的输入结果为51B. 语句put“%d”,c+2);的输出结果为3C. 语句put“%c”,c+2);的输入结果为51D. 语句put“%c”,c+2);的输出结果为32.设c1,c2均就是char型变量,则下面不恰当的函数调用为()。
A. scanf(”c1=2=%c”,&c1,&c2);B. get);C. putc2);D. putc1,c2);3.为了表示关系x>=y>=z,下面C语言表达式中正确的是()。
A. (x>=y)&&(y>=z)B. (x>=y)and(y>=z)C. (x>=y>=z)D. (x>=y)&(y>=z)4.设x,y,z,t为int型变量,则继续执行以下语句后,t的值()。
x=y=z=1;t=++x||++y&&++z;A. 不定值B. 2C. 1D. 05.对if语句中表达式的类型,下面正确的说法是()。
A. 必须就是关系表达式B. 必须是关系表达式或逻辑表达式C. 可以就是任一表达式D. 必须是关系表达式或算术表达式6.对for(表达式1;;表达式3)可以认知为()。
A. for(表达式1;0;表达式3)B. for(表达式1;表达式1;表达式3)C. for(表达式1;1;表达式3)D. for(表达式1;表达式3;表达式3)7.执行语句for(i=1;i++<4;);之后,变量i的值为()。
A. 3B. 4C. 5D. 不确定8.若二维数组a存有m列,则在a[i][j]前的元素个数为()。
A. j*m+iB. i*m+jC. i*m+j-iD. i*m+j+19.下面说法中正确的是()。
A. 在C语言中,可以采用动态内存分配技术,定义元素个数气门的数组B. 在C语言中,数组元素的个数可以不确定,允许随即变动C. 在C语言中,数组元素的数据类型可以不一致D. 在C语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数10.无法把字符串:“good!”参数值数组b的语句就是()。
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语言上机题目 珍藏版

【编程1-3】编写程序输入圆柱体的底面半径radius和高度height,计算并输出圆柱体的表面积S和体积V。
要求:把π定义为宏PI,结果保留2位小数,按下列格式输出:Radius=???.??Area=??volumn=???.??#include <stdio.h>#define PI 3.1416void main(void){float radius;float height;float S;float V;printf("请输入圆柱体的底面半径:");scanf("%f",&radius);printf("请输入高度:");scanf("%f",&height);S=2*PI*radius*radius+2*PI*radius*height;V=PI*radius*radius*height;printf("Radius=%.2f\n",radius);printf("Area=%.2f\n",S);printf("Volumn=%.2f\n",V);}【编程2-3】若某企业根据销售人员的销售额发放提成,计算公式如下(s代表销售额):s<200 没有提成200≤s<400 提成5%400≤s<1200 提成8%1200≤s<2400 提成8%2400≤s<4000 提成8%s≥4000请分别使用if和switch语句结构分别编写程序,实现从键盘上输入销售额,即输出销售额和提成。
要求程序具有纠错能力,如输入负数就输出非法数据的提示信息并结束程序。
if…else-if语句#include <stdio.h>#include <stdlib.h>void main(void){float s;float income;printf("请输入销售额:");scanf("%f",&s);if(s<0){printf("这是非法数据!\n");exit(1);}else if(s<200){printf("没有提成!\n");exit(1);}else if(s<400)income=(s-200)*0.05;else if(s<1200)income=(s-400)*0.08+200*0.05;else if(s<2400)income=(s-1200)*0.1+800*0.08+200*0.05;else if(s<4000)income=(s-2400)*0.15+1200*0.1+800*0.08+200*0.05;elseincome=(s-4000)*0.18+1600*0.15+1200*0.1+800*0.08+200*0.05;printf("销售额是:%.0f,提成是:%.0f\n",s,income);}Switch…case语句#include <stdio.h>#include <stdlib.h>void main(void){float s;float income;printf("请输入销售额:");scanf("%f",&s);if(s<0){printf("这是非法数据!\n");exit(1);}if(s<200){printf("没有提成!\n");exit(1);}switch((int)(s/400)){case 0:income=(s-200)*0.05;break;case 1:case 2:income=(s-400)*0.08+200*0.05;break;case 3:case 4:case 5:income=(s-1200)*0.1+800*0.08+200*0.05;break;case 6:case 7:case 8:case 9:income=(s-2400)*0.15+1200*0.1+800*0.08+200*0.05;break;default:income=(s-4000)*0.18+1600*0.15+1200*0.1+800*0.08+200*0.05;break;}printf("销售额是:%.0f,提成是:%.0f\n",s,income);}【编程3-4】编写程序输出m~n之间的素数(n>m>3),m和n由用户从键盘上输入。
C语言上机试题1-20套

C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){float…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}解答:#include <conio.h> #include <stdio.h> double fun( int n ) { double s=0; int i; for(i=1;i<n+1;i++) s+=1.0/(i*(i+1)); return s; } main() /*主函数 */ { system("cls"); printf("%f\n",fun(10)); }说明:主函数中的clrscr()函数为TC 下使用的清屏函数,在VC 中不能使用,在本题中可以直接删除或改为system("cls")2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?解答:#include <stdio.h>int main(void){int max,num=0;int i,j;for(i=10000;i<20001;i++){for(j=2;j<i;j++)if( i%j==0 )break;if( j==i && i%10==7){num++;max=i;}}printf("num=%d,max=%d\n",num,max);return 0;}3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。
C语言上机练习40题

1、编写程序,要求按如下图形打印杨辉三角形的前5行。
其特点是:三角形两个腰上的数都为1,其它位置上的每一个数是它上一行相邻两个整数之和。
11 11 2 11 3 3 11 4 6 4 12.输入任意3个整数,将它们按从小到大顺序输出。
要求利用指针的方法编程。
3.输入任意的10个整数,将其中最大的数与最后一个数交换,其中最小的数与第一个数交换,最后输出交换后的10个整数。
例如:输入的10个数及其顺序为:7 4 98 56 34 3 44 81 41 67则输出时的顺序为: 3 4 67 56 34 7 44 81 41 984.任意给出10个整数,编程使其中的最后m个数变成最前面的m个数(m<10),要求m在程序运行后再给出。
例如:输入的10个数及其顺序为:7 4 98 56 34 3 44 81 41 67,当m=3时,则输出时的顺序为:81 41 67 7 4 98 56 34 3 446.编写一个求字符串的长度,要求在main函数中输入字符串,并输出其长度。
7.编写input()和output()函数输入、输出3个学生的数据记录,每个记录要求包括学号、姓名和总成绩。
例如:input 1 of 3:num:01name:wangscore :67input 2 of 3:num:02name:zhangscore :77input 3 of 3:num:03name:liscore :86No. name score1 score2 score301 wang 67 87 7502 zhang 77 65 8903 li 86 69 738.输入三角形的三边长,求三角形面积。
求三角形面积的公式为:area=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2.9. 编程求圆柱体积,圆柱表面积。
要求圆半径,圆柱高是在程序运行时由键盘输入,输出时取小数点后两位数字。
10. 有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。
c语言20题上机题目

1.计算球体积Problem Description根据输入的半径值,计算球的体积。
Input输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
Sample Input1 1.5Sample Output4.189 14.1372.成绩转换Problem Description输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:90~100为A;80~89为B;70~79为C;60~69为D;0~59为E;Input输入数据有多组,每组占一行,由一个整数组成。
Output对于每组输入数据,输出一行。
如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input56 67 100 123Sample OutputE D A Score is error!3.第几天?Problem Description给定一个日期,输出这个日期是该年的第几天。
Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input1985/1/20 2006/3/12Sample Output20 714.求奇数的乘积Problem Description给你n个整数,求他们中所有奇数的乘积。
Input输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
Output输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
Sample Input3 1 2 34 2 3 4 5Sample Output3 155.平方和与立方和Problem Description给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
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 189 12 15 18 21 24 2716 20 24 28 32 3625 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 11 2 1110.输入n值,打印边长为n的空心正六边形:******* ** ** ** ** ** ** ** ** ******* 当n = 6时11.编写程序输出下面的图形,要求输入顶行字符和图形的高。
C语言上机题

1用起泡法对N=10个整数由大到小排序。
10个整数由键盘输入,排序后从屏幕输出结果2编写一函数,从实参传来一个字符串,分别统计其中数字、大写字母、小写字母和其它字符的个数,输入输出在main函数中完成3用一函数inv将一个字符串的字符逆序排列。
输入输出在main函数中完成。
要求在inv中用指针处理。
4求200之内的素数的和。
从屏幕输出结果5从屏幕输入一行字符,将所有的大写字母转换为小写字母,所有的小写字母转换为大写字母,其它字符不变,从屏幕输出结果6一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。
求它在第10次落地时,共经过多少米?第10次落地后又反弹多高?7对N=20个字符由大到小排序。
20个字符由键盘输入,排序后从屏幕输出结果8有一字符串,把其中的字母a和A去掉,成为一个新字符串。
原字符串从键盘输入。
从屏幕输出结果9求Fibonacci数列的前30项的和。
从屏幕输出结果。
Fibonacci数列为:F(1)=1,(n=1)F(2)=1,(n=2)F(n)=F(n-2)+F(n-1),(n>=3)10写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串11从键盘输入一个大于2的整数,判断是否是素数。
从屏幕输出结果。
要求用函数处理12从键盘输入月份,输出这个月有多少天。
要求用函数处理13求两个数的最大公约数。
要求用函数处理14求两个数的最小公倍数。
要求用函数处理15从屏幕输入3个整数,按从小到大顺序输出,要求用指针进行处理16自己编写一个函数,将两个字符串连接起来,要求在main函数中输入输出17打印水仙花数(课本习题)打印杨辉三角形的前10行19从一个5*5的二维数组中找最大值并输出20从一个5*5的二维数组中找最小值并输出21求10个整数的平均数。
10个整数从键盘输入22求100-200之间的素数的和23求100-200间合数(非素数)的和24求10个整数的最大值,用函数完成2510个字符排序,按从小到大的顺序,用函数完成26编写一个函数,求一个正整数各个位的数字的和。
C语言上机题库

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b 所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
c 上机试题及答案

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语言上机题及答案

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);}输入一个摄氏温度,要求输出华氏温度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷4程序题
计算10000以内9的偶数倍数之和,即:sum=18+36+54+……9990其中18,36,54^9990等分别是9的2,4,6……1110倍。
参考程序1
#include <stdio.h>
void PRINT(long sum)
{
FILE *out;
printf("sum=%ld\n",sum);
j=0;
while(j<5-i)
{printf("*");
j++;
}
printf("\n");
i++;
}
i=4;
while(i>0)
{
j=0;
while(j<5-i) /*$ERROR2$*/改为while(j<=5-i)
{printf("*");
j++;
}
printf("\n");
i++ ; /*$ERROR3$*/改为i--;
else
return(n*f(_n-1);/*$BLANK1$*/
}
void n()
{
int i;
long s;
s=_0_;/*$BLANK2$*/
for(i=1;i<=5;i++)
s+=f(i);
printf("1!+2!+3!+4!+5!=%ld\n",_s_); /*$BLANK3$*/
PRINT(s);
}
参考程序2
#include <stdio.h>
void PRINT(long s)
{
FILE *out;
printf("s=%ld\n",s);
if((out=fopen("C:\\24000110\\RESULT.DAT","w+"))!=NULL)
fprintf(out,"s=%ld",s);
getc(s); /*$ERROR1$*/改为gets (s);
for(i=0; s[i]!='\0'; i++)
{
if(s[i]='9') /*$ERROR2$*/改为if (s[i]==’9’)
s[i]='0';
else if(s[i]>='0' && s[i]<='8')
s[i]=s[i]+1;
#include <stdio.h>
void main()
{
int i,j;
ints=0; /*$BLANK1$*/
for(i=0;i<10或i<=9;i++) /*$BLANK2$*/
{
j=i*10+6;
if(j%3==0) /*$BLANK3$*/
s=s+j;
}
printf("%d\n",s);
(3)职工编号长度小于10位且为整数,姓名不包括空格。
#include <stdio.h>
#define N 3
struct employee
{
long num;
char name[15];
long bwage,bonus,ins,rwage;
};
void main()
{
sruct employeeNK1$*/
fprintf(out,"count=%d",count);
fclose(out);
}
void main()
{ int count=0;
Intt10,t5;
for(t10=10;t10<200;t10+=10)
for(t5=5;t5<200-t10;t5+=5)
if(200-t10-t5>0) count++;
int i;
long total;
total=0;/*$BLANK2$*/
printf("Please input data:\n");
printf("\nnum namebwage bonus ins:\n");
for(i=0;i<N;i++)
{
scanf("%ld%s", &worker[i].num, worker[i].name);
}
试卷4改错题
把字符串s中所有数字字符按以下规律改写:
(1)0,1,2,3,4,5,6,7,8分别改写成1,2,3,4,5,6,7,8,9
(2)9改成0
(3)其他字符保持不变
#include <stdio.h>
#include <string.h>
void main()
{
char s[80];
int i;
fclose(out);
}
void main()
{
long s=0;
int a,b,I,t;
for (a=1;a<=9;a++)
for (b=0;b<=9;b++)
{
t=101*a+10*b;
for (i=2;i<=t/2;i++)
if (t%i==0)break;
if (i>t/2) s+=t;
}
(2)要求使用循环实现。
参考程序1
#include <stdio.h>
void PRINT(long s)
{
FILE *out;
printf("s=%ld\n",s);
if((out=fopen("C:\\24000110\\RESULT.DAT","w+"))!=NULL)
fprintf(out,"s=%ld",s);
if((out=fopen("C:\\24000110\\RESULT.DAT","w+"))!=NULL)
fprintf(out,"s=%d",s);
fclose(out);
}
void main()
{
int i ;s=5;
for (i=1;i<8;I++)
s=(s+2)*3;
PRINT(s);
}
试卷3改错题
s=0;
while(j>1) /*$ERROR2$*/改为while(j<0)
{
s=s+j/10; /*$ERROR3$*/改为s=s+j%10;
j=j/10;
}
if(s==13) sum+=i;
}
printf("%ld\n",sum);
}
试卷3填空题
从键盘上输入两个正整数,并输入他们的最大公约数。
}
试卷1程序题
【兑换零钱】
计算将200元钱换成1元,5元和10元的零钱(每种零钱都要求有),一共有多少种换法。
参考程序1
#include <stdio.h>
void PRINT(int count)
{
FILE *out;
printf("count=%d\n",count);
if((out=fopen("C:\\24000110\\RESULT.DAT","w+"))!=NULL)
fprintf(out,"count=%d",count);
fclose(out);
}
void main()
{int count=0;
Int a,b,c;
for(a=1;a<200;a++)
for(b=1;b<40;b++)
for(c=1;c<20;c++)
if(a+5*b+10*c==200)
count++;
#include <stdio.h>
int gcd(int m,int n)
{
int r,t;
if(m<n)
{
t=m;
m=n;
n=t;/*$BLANK1$*/
}
while(n>0)
{
r=m%n;
m=n;
n=r;
}
return(_m);/*$BLANK2$*/
}
void main()
{
int m,n,result;
PRINT(count);
}
试卷2改错题
在屏幕上输入以下图形(每行前没有空格,星号之间也没有空格)
*****
****
***
**
*
**
***
****
*****
#include <stdio.h>
void main()
{
int i,j;
i=1; /*$ERROR1$*/改为i=0;
while(i<5)
{
fprintf(out,"count=%d",count);