1、“高级语言程序设计”编程题库1. 从键盘输入 3 个整数,求其中的最大数和最小数,并输出结果。2. 从键盘上输入一个 3*3 的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。3. 输出 x2的值,x 取值从 0 到 10。4. 从键盘上输入一个 3*4 的整数矩阵,要求输出其最大元素的值,以及它的行号和列号。5.编写一个程序从键盘输入 10 个数,要求输出其中最小的。6.编写一个函数根据以下公式计算 s,计算结果作为函数值返回;n 通过形参传入。s= 7.输出 1000 年(包括 1000 年)到 1999 年之间的所有闰年,要求每三个一行,分行输出。8. 编写程序打印所有的“水仙花数
2、” 。 “水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如 153 是一个“水仙花数” ,因为 153111333555。9.编写一个程序,输入一个 3 位数的正整数,然后反向输出对应的数。如:123,则输出 321。参考答案:#include void main()int i,s=0,j;scanf(“%d“,if(i=100float ave;for(i=0;imax)max=scorei;if(scoreivoid main()char ch;ch=getchar();if(ch=0for(i=0;imax)max=aij;index_i=i;index_j=j;printf(
3、“max=%d,index_x=%d,index_y=%d“,max,index_i,index_j);13打印所有的“水仙花数” ,所谓“水仙花数”是指一个三位正整数,其各位数字的立方和等于该数本身。参考答案:#include void main()int i, j, k, n;printf (“result is: “);for (n = 100; n #include void main( )float a, b, c,d, x1, x2;printf(“input a,b,c: “);scanf(“%f%f%f“, d = sqrt(b * b - 4 * a *c);x1 = (-b
4、 + d) / (2 * a);x2 = (-b - d) / (2 * a);printf(“x1 = %.2f x2 = %.2fn“, x1, x2);16.从键盘上输入任意两个数和一个运算符(+、-、*、/) ,根据输入的运算符对两个数计算,并输出结果。参考答案:#include void main()float a, b; int tag = 0; char ch; float result; printf(“input two number: “); scanf(“%f%f“, fflush(stdin); printf(“input arithmetic lable(+ - *
5、/): “); scanf(“%c“, switch(ch) case +: result = a + b; break; case -: result = a - b; break; case *: result = a * b; break; case /: if (!b) printf(“divisor is zero!n“); tag = 1; else result = a / b; break;default: printf(“illegal arithmetic lablen“); tag = 1; if (!tag) printf(“%.2f %c %.2f = %.2fn“,
6、 a, ch, b, result);17.编写输入一个字符串,计算其中空格的个数。18. 采用二维数组输入多个学生五门课的成绩,分别求出每个学生的平均成绩和每门课的成绩。19.编写程序,逆转字符串。20. 编写程序,统计一个英语文本中的英语单词个数。21. 打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数” ,因为 153=1 的三次方5 的三次方3 的三次方。参考答案:#include “stdio.h”void main()int i,j,k,n;for(i=1;i#include int isprimer(int
7、n)int i,m;m=(int)(sqrt(n);for(i=2;ivoid main ( ) int a10, i, j, t;printf (“input %d numbers: n“, 10);for (i = 0; i void main ( ) int n, m = 0, s, r;printf (“Input data is: “);scanf (“%d“, s = n;while (s != 0)r = s % 10;m = 10 * m + r;s = s / 10;if (m = n)printf (“yesn“);elseprintf (“non“);27. 求出10至1
8、000之内能同时被2、3、7整除的数,并输出。28. 输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。29.设计一个函数,用来判断一个整数是否为素数。参考答案:#include#includeint IsPrimer(int n) int i;if(nvoid main() float x1000,sum=0,ave, a;int n=0, i;printf(“Enter mark:n“);scanf(“%f“,while(a=0 if(nvoid main() float x1000,sum=0,ave, a;int n=0, i;
9、printf(“Enter mark:n“);scanf(“%f“,while(a=0 doprintf(“请输入您猜的数:“);scanf(“%d“,t+ ;if(a=x) flag=1;printf(“您猜对了!总共猜了%d 次。n“,t);break ;else if(ax)printf(“您猜的数大了n“);elseprintf(“您猜的数小了n“);while(t#define N 10void main()int i,M;char aN, t;for(i=0;i#include void main()char str380,c;int e3=0,x3=0,d3=0,s3=0,o3=
10、0;int i,j;for(i=0;i=Adouble sum3;for(i=1;ivoid main()int x;for ( x=1;xvoid main()int i,a1000;for ( i=0;i#includebool IsPrimer(int n) int i,m;m=int(sqrt(n);for(i=2;i unsigned double fact(unsigned double n) if (n=0) return 1;return n*fact(n-1);void main() printf(“%d“,fact(10);45使用一维数组计算学生的平均成绩。用输入负数结束
11、输入。 参考答案:#include stdio.hvoid main(void)int score30,NumMax=30;int i,num=0,sum=0;double average;printf(“input the scores please:n“);for(i=0;ivoid main()int a33,sum=0;int i,j;printf(“请输入一个三行三列的整数矩阵:n“);for(i=0;ivoid main()int i;char s80;scanf(“%s“, s);for (i = 0; si; i +)if (si =a scanf(“%d“, for (i =
12、 1; i max)max = n;printf(“max=%d“, max);50.输入三个整数 a, b, c,请按从小到大的顺序输出这三个数参考答案:#include void main()int a, b, c, t;scanf(“%d%d%d“, if (a b)t = a;a = b;b = t;if (b c)t = b;b = c;c = t;if (a b)t = a;a = b;b = t;printf(“%d, %d, %d“, a, b, c);51、输入一个整数 n,请判断 n 是否是质数,如果是,打印 n 是质数,否则打印 n 不是质数参考答案:#include v
13、oid main()int n, i;scanf(“%d“, for (i = 2; i void main() int i,n;float x,s1=0;s2=0;scanf(%d,for(i=1;i0) s1+;if(xvoid main() float a15,y; int i;for(i=0;i=0;i) y=1+ai(1+y);printf(%fn,y);54.编程,设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。参考答案:#include struct person char name20;int count;leader3=“Li”,0,“Zhang”,
14、0,”Wang“,0; main() int i,j; char leader_name20;for(i=1;ivoid main()int i; char str80; printf(“Input a string(end with !):“);gets(str);for(i=0; stri!=!; i+)if(stri=a /*定义数组 a 有 10 个元素,使用 09*/int i,min;for(i=0;iai) min=ai;printf(“nThe minimum number is:%dn“,min);/屏幕输出最小的数据return 0;2、编写一个函数根据以下公式计算 s,计
15、算结果作为函数值返回;n 通过形参传入。s= #include double f1(int n);void main()int n=1;printf(“Input the value of nn“);scanf(“%d“,printf(“%lf“,f1(n);double f1(int n)int i;double term,s=0;for(i=1;ivoid main()int i=0;int year,leap;for(year=1000;yearvoid main()int i,j,k,n;printf(“result is:“);for(n=100;nmax)max = y;if (z
16、max)max = z;if (yvoid main()int a33,b3=0;int i,j;printf(“请输入一个三行三列的整数矩阵:n“);for(i=0;imax)max=aij;row=i;colum=j;printf(“max=%d, row=%d, colum=%d n“,max, row, colum);9. 1. 求出 10 至 1000 之内能同时被 2、3、7 整除的数,并输出。#includemain()int i;for(i=10;i#includemain()int i,j,tag=0;char ch50;printf(“Please input a string:”);scanf(“%s”,ch);j=strlen(ch);for (i=0;imain()int a,b,c,max;printf(”Please input 3 integer:”);scanf(“”%d%d%d”,max=a;if (max#includemain()int i,j;for (i=0;i5;i+) for(j=1;j=5;j+)printf(“%3d”,( 6 i + j ) %6 );printf(”n”);