logo资料库

C语言编程题库.doc

第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
资料共33页,剩余部分请下载后查看
高级 C++编程题库 “高级语言程序设计”编程题 1. 从键盘输入 3 个整数,求其中的最大数和最小数,并输出结果。 2. 从键盘上输入一个 3*3 的整数矩阵,求其各行的平均值并输出,输出时保 留两位小数。 23. 输出 x 的值,x 取值从 0 到 10。 4. 从键盘上输入一个 3*4 的整数矩阵,要求输出其最大元素的值,以及它的 行号和列号。 5.编写一个程序从键盘输入 10 个数,要求输出其中最小的。 6.编写一个函数根据以下公式计算 s,计算结果作为函数值返回;n 通过形参传 入。 s= 7.输出 1000 年(包括 1000 年)到 1999 年之间的所有闰年,要求每三个一行, 分行输出。 8. 编写程序打印所有的“水仙花数”。“水仙花数”指一个三位数,其各位 数字立方和等于该数本身,例如 153 是一个“水仙花数”,因为 153,1×1×1, 3×3×3,5×5×5。 9.编写一个程序,输入一个 3 位数的正整数,然后反向输出对应的数。 如:123,则输出 321。 参考答案: #include void main(){
int i,s=0,j; scanf("%d",&i); if(i>=100&&i<=999){ j=i%10; s=s+j; j=(i-j)/10%10; s=s*10+j; j=i/100; s=s*10+j; printf("the inverse number is %d",s); } 1 else printf("input erroe!"); } 10. 从键盘输入 10 名学生的 C 语言成绩存入一维数组内,编写程序计算 10 名 学 生的最高分、平均分和及格人数。 参考答案: #include void main(){ int i,score[10],max,min; float ave; for(i=0;i<10;i++) scanf("%d",&score[i]);
max=score[0]; min=score[0]; ave=score[0]; for(i=1;i<10;i++){ if(score[i]>max) max=score[i]; if(score[i] void main(){ char ch; ch=getchar(); if(ch>='0'&&ch<='9') printf("a numerical character"); else
printf("other character"); } 2 12. 从键盘输入 12 个数存入二维数组 a[3][4]中,编写程序求出最大元素的值 及它所在的行号和列号。 参考答案: #include void main(){ int i,j,a[3][4],max,index_i,index_j; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); max=a[0][0]; index_i=0; index_j=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max){ max=a[i][j]; index_i=i; index_j=j; } printf("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 < 1000; n++) { i = n / 100; j = (n - i *100) / 10; k = n % 10; if (n == i*i*i + j*j*j + k*k*k) printf ("%d ", n); } printf ("\n"); } 14.利用函数将给定的 3×3 二维数组转置。 3 参考答案: #include "stdio.h" void convert(int array[3][3]) { int i,j,k;
for(i=0;i<3;i++) for(j=i+1;j<3;j++) { k=array[i][j]; array[i][j]=array[j][i]; array[j][i]=k; } } void main() { int i,j; int a[3][3]={1,2,3,4,5,6,7,8,9}; printf("转换前:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("\t%d",a[i][j]); printf("\n"); } convert(a); printf("\n 转换后:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++)
printf("\t%d",a[i][j]); printf("\n"); } } 215.编程输入 a、b、c 的值后,输出一元二次方程 ax+bx+c=0 的解。 参考答案: #include #include void main( ) { float a, b, c,d, x1, x2; printf("input a,b,c: "); 4 scanf("%f%f%f", &a, &b, &c); d = sqrt(b * b - 4 * a *c); x1 = (-b + d) / (2 * a); x2 = (-b - d) / (2 * a); printf("x1 = %.2f x2 = %.2f\n", x1, x2); } 16.从键盘上输入任意两个数和一个运算符(+、-、*、/),根据输入的运算符 对 两个数计算,并输出结果。 参考答案: #include void main()
{ float a, b; int tag = 0; char ch; float result; printf("input two number: "); scanf("%f%f", &a, &b); fflush(stdin); printf("input arithmetic lable(+ - * /): "); scanf("%c", &ch); 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 lable\n");
分享到:
收藏