赞
踩
这是历年湖南省专升本考试,C语言编程题,各位可自取,那个#if 0 和 #endif 是注释
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include<string.h>
- #include<stdio.h>
- #include<math.h>
- using namespace std;
-
- //输入一个字符,判断该字符是数字、字母、空格还是其它字符。
- #if 0
- int main(){
- char ch;
- ch = getchar();
- if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') {
- printf("It is an English character\n");
- }
- else if (ch >= '0' && ch <= '9') {
- printf("It is a dugit character\n");
- }
- else if (ch == ' ') {
- printf("It is a space character\n");
- }
- else {
- printf("It is other character\n");
- }
- return 0;
- }
- #endif
-
- //下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
- //用输入0来结束输入,用i、j来统计数
- #if 0
- int main() {
- int n, i = 0, j = 0;
- scanf("%d", &n);
- while (n != 0) {
- if (n > 0) {
- i += 1;;
- }
- else {
- j += 1;
- }
- n--;
- }
- printf("i=%4d,j=%4d\n", i, j);
- return 0;
- }
- #endif
-
-
- //计算1+3+5+....+101的值
- #if 0
- int main() {
- int i, sum = 0;
- for ( i = 0; i <=101; i+=2){
- sum += i;
- }
- printf("sum=%d\n", sum);
- return 0;
- }
-
-
- #endif
-
-
- //计算1+3+5+....+99的值
- #if 0
- int main() {
- int i=1, sum = 0;
-
- while (i < 100) {
- sum += i;
- i += 2;
- }
- printf("sum=%d\n", sum);
- return 0;
- }
-
-
- #endif
-
- //在a数组中查找与x值相同的元素所在的位置
- #if 0
- int main() {
- int a[10], x, i;
- for ( i = 0; i < 10; i++){
- scanf("%d", &a[i]);
- }
- scanf("%d", &x);
- for ( i = 0; i < 10; i++){
- if (a[i] == x) {
- break;
- }
- }
- if (x < 10) {
- printf("the pos of x is:%d\n", i);
- }
- else {
- printf("can not find x!\n");
- }
- return 0;
- }
-
- #endif
-
- //程序读入20个整数,统计非负数个数,并计算非负数之和。
- #if 0
- int main() {
- int i, a[20], sum = 0, count = 0;
- for ( i = 0; i < 20; i++){
- scanf("%d", &a[i]);
- }
- for ( i = 0; i < 20; i++){
- if (a[0] < 0) {
- continue;
- }
- sum += a[i];
- count++;
- }
- printf("sum=%d\t count=%d\n", sum, count);
- return 0;
- }
-
- #endif
-
- //输入一个正整数n,在输入n个整数,用选择法将它们从小到大排序后输出
- #if 0
- int main() {
- int a[10], n, i, j, t;
- scanf("%d", &n);
- for ( i = 0; i < n; i++){
- scanf("%d", &a[i]);
- }
- for ( j = 0; j < n-1; j++){
- for ( i = j+1; i < n; i++){
- if (a[j] > a[i]) {
- t = a[j];
- a[j] = a[i];
- a[i] = t;
- }
- }
- }
- for ( i = 0; i < n; i++){
- printf("%d\t", a[i]);
-
- }
- return 0;
- }
-
- #endif
-
- //找出2-500之间的所有质数,并输出它们的和
- #if 0
- int main() {
- int i, j, k, m = 0, sum = 0;
- for ( i = 2; i <= 500; i++){
- k = sqrt(i);
- for ( j = 2; j <= k; j++){
- if (i % j == 0) {
- break;
- }
- }
- if (j >= k + 1) {
- printf("%4d", i);
- sum += i;
- m++;
- if (m % 10 == 0) {
- printf("\n");
- }
- }
- }
- printf("\nsum=%d\n", sum);
- return 0;
- }
-
- #endif
-
-
- //找出二维数组a中的最大元素,并要求输出该元素以及该元素的行号和列号
- #if 0
- #define ROW 3
- #define COL 3
- int main() {
- int a[ROW][COL] = { 1,2,3,4,5,6,7,8,9 };
- int i,j;
- int maxRow = 0, maxCol = 0;
- int max = a[0][0];
- for ( i = 0; i < ROW; i++){
- for ( j = 0; j < COL; j++){
- if (max < a[i][j]) {
- max = a[i][j];
- maxRow = i;
- maxCol = j;
- }
-
- }
- }
- printf("max=%d,ROW=%d,COL=%d", max, maxRow, maxCol);
- return 0;
- }
-
- #endif
-
- //输入一行字符,单词之间用一个空格分隔,统计其中有多少个单词
- #if 0
- int main() {
- char str[80];
- int i = 0, num = 0, flag = 1;
- gets_s(str);
- for ( i = 0; str[i] != '\0'; i++){
- if (str[i] != ' ') {
- num++;
- }
- }
- printf("%d\n", num);
- return 0;
- }
-
- #endif
-
-
- //求以为数组a中的最小元素及其下标
- #if 0
-
- int main() {
- int a[10] = { 1,4,2,7,3,12,5,34,5,0 };
- int i, num = 0, min = a[0];
- for ( i = 0; i < 10; i++){
- if (min > a[i]) {
- min = a[i];
- num = i;
- }
- }
- printf("The min is:%d,pos is:%d", min, num);
-
- return 0;
- }
-
- #endif
-
-
- //写一个程序计算下列函数的值:
- //Sum(n,x)=1+x+x^2/x!+x^3/3!+x^4/4!+....+x^n/n!
- #if 0
-
- int main() {
- int x, n, i = 1;
- double a = 1, b = 1, sum = 1;
- scanf("%d%d", &x, &n);
- for ( ; i <=n; i++){
- a = pow(x, i);
- b *= i;
- sum += a / b;
- }
- printf("%lf", sum);
- }
- #endif
-
- //输入一个圆的半径r,当r>=0时,计算并输出圆的面积和周长,否则。输出提示信息
- #if 0
- #define PI 3.14
- int main() {
- double r, m, z;
- scanf("%lf", &r);
- if (r >= 0) {
- m = PI * r * r;
- z = 2 * PI * r;
- printf("圆的面积是:%.2f,周长是%.2f", m, z);
- }
- else {
- printf("输入有误");
- }
- return 0;
- }
-
- #endif
-
-
- //从键盘上输入一个百分之成绩score,按下列原则输出其等级
- #if 0
- int main() {
- int data;
- char ch;
- scanf("%d", &data);
- switch (data/10){
- case 10:
- case 9:
- ch = 'A';
- break;
- case 8:
- ch = 'B';
- break;
- case 7:
- ch = 'C';
- break;
- case 6:
- ch = 'D';
- break;
- default:
- ch = 'E';
- }
- printf("%c", ch);
- return 0;
- }
-
- #endif
-
- //自定义一个函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数
- #if 0
- int IsPrimeNumber(int n) {
- for (int i = 2; i <=sqrt(n); i++){
- if (n % i == 0) {
- return 0;
- }
- }
- return 1;
-
- }
- int main() {
- int n,ret;
- scanf("%d", &n);
- ret = IsPrimeNumber(n);
- if (ret == 1) {
- printf("%d是素数\n", n);
- }
- else {
- printf("%d不是素数\n", n);
- }
- return 0;
- }
-
- #endif
-
-
- //输入一个正整数n(n<=6),再输入n*n的矩阵,求其主对角线元素之和及副对角元素之和并输出
- #if 0
- int main(){
- int n, i, j, sum1 = 0, sum2 = 0;
- int a[6][6];
- scanf("%d", &n);
- for ( i = 0; i < n; i++){
- for ( j = 0; j < n; j++){
- scanf("%d", &a[i][j]);
- if (i == j) {
- sum1 += a[i][j];
- }
- if (i + j == n - 1) {
- sum2 += a[i][j];
- }
- }
- }
- printf("sum1=%d,sum2=%d", sum1, sum2);
- return 0;
- }
-
- #endif
-
- //从键盘输入30个学生的成绩数据,求其中的最高分、最低分、平均分
- #if 0
- #define N 5
- int main() {
- int i;
- double max, min, avg, a[N];
- for ( i = 0; i < N; i++){
- scanf("%lf", &a[i]);
- }
- max = a[0];
- min = a[0];
- avg = a[0];
- for ( i = 1; i < N; i++){
- if (max < a[i]) {
- max = a[i];
- }if (min > a[i]) {
- min = a[i];
- }
- avg += a[i];
- }
- printf("max=%lf,min=%lf,avg=%lf", max, min, avg / N);
- return 0;
- }
-
- #endif
-
- //将一个有5个元素的数组中的值(整数)按逆序重新存放
- #if 0
- #define N 5
- int main() {
- int a[N], temp, i;
- for ( i = 0; i < N; i++){
- scanf("%d", &a[i]);
- }
- for ( i = 0; i < N / 2; i++){
- temp = a[i];
- a[i] = a[N - i - 1];
- a[N - i - 1] = temp;
- }
- for ( i = 0; i < N; i++){
- printf("%4d", a[i]);
-
- }
- return 0;
- }
-
- #endif
-
-
- //从键盘输入10名学生的成绩,按成绩从高到低的顺序排列并输出
- #if 0
- #define N 5
- int main() {
- int a[N], i, j, temp;
- for ( i = 0; i < N; i++){
- scanf("%d", &a[i]);
- }
- for ( i = 0; i < N; i++){
- for ( j = 0; j < N-1; j++){
- if (a[j] < a[j + 1]) {
- temp = a[j];
- a[j] = a[j + 1];
- a[j + 1] = temp;
- }
- }
- }
- for ( i = 0; i < N; i++){
- printf("%3d", a[i]);
- }
- return 0;
- }
-
- #endif
-
- //从键盘输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标
- #if 0
- #define RWO 3
- #define COL 3
- int main() {
- int a[RWO][COL], i, j, min, m, n;
- for ( i = 0; i < RWO; i++){
- for ( j = 0; j < COL; j++){
- scanf("%d", &a[i][j]);
- }
- }
- min = a[0][0];
- for (i = 0; i < RWO; i++) {
- for (j = 1; j < COL; j++) {
- if (min > a[i][j]) {
- min = a[i][j];
- m = i;
- n = j;
- }
- }
- }
- printf("最小值是:%d\n", min);
- printf("%d,%d\n", m, n);
- return 0;
- }
-
- #endif
-
- //有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......前20项之和,输出结果保留2位小数
- #if 0
- int fun(int a,int b,int n) {
- if (n == 1) {
- return a;
- }
- else if (n == 2) {
- return b;
- }
- else {
- return fun(a, b, n - 1) + fun(a, b, n - 2);
- }
- }
- int main() {
- double sum = 0;
- int i;
- for ( i = 1; i <=20; i++){
- sum += fun(2, 3, i) * 1.0 / fun(1, 2, i);
-
- }
- printf("%.2lf\n", sum);
- return 0;
-
- }
-
- #endif
-
- //方法二:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......前20项之和,输出结果保留2位小数
- #if 0
- int main() {
- int i;
- float sum = 0 , fz = 1, fm = 1, t;
- for ( i = 0; i < 20; i++){
- t = fz;
- fz += fm;
- fm = t;
- sum += fz / fm;
- }
- printf("%.2f\n", sum);
- return 0;
- }
-
- #endif
-
- //计算1-1/2+1/3-1/4+....+1/99-1/100+....直到最后一项的绝对值小于10-4为止
- #if 0
- int main() {
- int i = 1;
- float sum = 0, sign = 1.0;
- while ((1.0 / i) >= 1e-4)
- {
- sum += sign / i;
- i++;
- sign = -sign;
- }
- printf("sum=%.4f", sum);
- return 0;
- }
-
- #endif
-
-
- //编写一个实现对数组a的10个数按小到大排序的程序
- #if 0
- #define N 10
- int main() {
- int i, j, t, a[N] = { 5,4,3,2,1,9,8,7,6 };
- for (i = 0; i < N - 1; i++) {
- for (j = 0; j < N - 1 - i; j++) {
- if (a[j] > a[j + 1]) {
- t = a[j];
- a[j] = a[j + 1];
- a[j + 1] = t;
- }
- }
- }
- for (i = 0; i < N; i++) {
- printf("%d\t", a[i]);
-
- }
- return 0;
- }
-
- #endif
-
-
- #if 0
- int main() {
- int i, j;
- //控制行数
- for ( i = 4; i >0; i--){
- //控制空格
- for ( j = 1; j <= 4-i; j++){
- printf(" ");
- }
- //控制*号
- for ( j = 1; j <= 2*i-1; j++){
- printf("*");
- }
- printf("\n");
- }
- return 0;
- }
-
- #endif
-
-
- //计算1-1/2+1/3-1/4+...+1/99-1/100
- #if 0
- int main() {
- int i, k = 1;
- float sum = 0;
- for ( i = 1; i <=100; i++){
- sum += k / (float)i;
- k = -k;
- }
- printf("%f", sum);
- return 0;
- }
-
- #endif
-
-
- //编程输出fibonacci(斐波那契)数列的前40项
- #if 1
- long fib(int n) {
- return n <= 2 ? 1 : fib(n - 1) + fib(n - 2);
- }
- int main() {
- int i = 0;
- for ( i = 1; i <= 40; i++){
- printf("%12ld", fib(i));
- if (i % 2 == 0) {
- printf("\n");
- }
- }
- return 0;
- }
-
- #endif

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。