《09级中文C编程题目.doc》由会员分享,可在线阅读,更多相关《09级中文C编程题目.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 编程题目1.从键盘上输入若干字符,直到输入#”结束。统计英文字母、数字、空格、其他字符的个数并输出。#include #include int main(void) char c; int al=0,di=0,sp=0; while (c=getchar()!=#) if (isalpha(c) al+; else if (isdigit(c) di+; else if (isspace(c) sp+; printf(字母:%dn数字:%dn空格:%dn,al,di,sp); return 0;2.从键盘输入任意自然数N(N10)要求:1.筛选出3N之间的素数 2.输出素数,每个数占用6宽度
2、,左对齐。#include#includeint f(int x);int main()int n,a;cinn;for(int m=3;m=n;m+)a=f(m);if(a=0)coutsetiosflags(ios_base:left)setw(6);return 0;int f(int x) int i=3; for(;i1),计算该数列的前N项之和。#includevoid main() int n,i=1;float s=0.0,c;float a=1,d;float b=1;scanf(%d,&n);doc=(a+b)/b;s=s+c;d=b;b=a+b;a=d;i+;while(
3、i=n);printf(%f,s); 4.请输入33的行列式(整数构成),找出其中的最小数值,以及它所在行标和列标。#includevoid main() int max,m,n,j,i,a33; printf(请输入N*N的值:); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=0;i3;i+) for(j=0;j3;j+) printf( %d,aij); printf(n); max=a00; for(i=0;i3;i+) for(j=0;jmax) max=aij;m=i;n=j; printf(max=%d,i=%d,j=%d
4、,max,m,n); 5.从键盘输入本班同学的程序设计课程分数保存在数组中(人数不超过45人,分数为整数),找出最高分及其所在的下标,并输出。#includemain() int i,n,m,max; int a45; printf(请输入学生的成绩:n); for(n=0;n10;n+) scanf(%d,&an); for(n=1;n11;n+) printf(%-3d ,an-1); if(n%5=0) printf(n); max=a0; for(i=1;i10;i+) if(maxai) max=ai;m=i; printf(nmax=%dn下标为:%d,max,m);6.从键盘输入
5、本班同学的程序设计课程分数保存在数组中(人数不超过45人,分数为整数),将百分制成绩转换成等级 AE(A90及以上,B80分数段,C70分数段,D60分数段,E不及格),并输出成绩及其对应的等级数据。#includevoid main() int a45; int n,i=1;for(i=0;i45;i+) scanf(%d,&ai); n=ai/10;switch(n)case 10:printf(%d %cn,ai,A);break;case 9:printf(%d %cn,ai,A);break;case 8:printf(%d %cn,ai,B);break;case 7:printf
6、(%d %cn,ai,C);break;case 6:printf(%d %cn,ai,D);break;case 5:case 4:case 3:case 2:case 1:case 0:printf(%d %cn,ai,E);7.从键盘输入5组(每组3个)浮点数作为三条边的长度,若它们能够构成三角形,则计算出三角形的面积,否则给出“不能构成三角形”的提示。8.计算1-1/2+1/3-1/4+1/99-1/100的前N项的值,N从键盘输入,N大于1,小于100。#include void main() int i,n,f=1; double sum=0;printf(请输入1到100之间的整
7、数); scanf(%d,&n);if(n=1&n=100) for(i=1;i=n;i+) sum+=f*1.0/i; f=-f; elseprintf(请输入1到100之间的整数); printf(sum=%lfn,sum);9.从键盘输入一个字符串存入数组s80,统计该字符串的长度并将其中所有小写字母改为大写字母,然后再将结果输出。#include#includeusing namespace std;int main() char s80;gets(s);cout它的长度=strlen(s)endl;for(int i=0;istrlen(s);i+)putchar(toupper(s
8、i);coutendl;10.从键盘上输入N个整数保存在数组中,用选择法排序将其按降序排列。#include#define s 100void accept(int a,int size);void sort(int a,int size);void show(int a,int size);void main()int scores;accept(score,s);printf(Before sorted:);show(score,s);sort(scoer,s);printf(After sorted:);show(score,s);void accept(int a,int size)i
9、nt i;printf(nPlease enter %d score : ,size);for(i=0;i=size;i+)scanf(%d,&ai);void show(int a,int size)int i;for(i=0;isize;i+)printf(%2d,ai);printf(n);void sort(int a,int size)int i,min_a,j,temp for(i=0;isize;i+)min_a=i;for(j=i;jamin_a;j+)if(ajamin_a)min_a=j;temp=amin_a;amin_a=ai;ai=temp;11.从键盘上输入N个整数
10、保存在一个一维数组data中,对输入的任意一个数num,查找数组data中是否有与这个数相等的数。若有,则输出该数在data中的位置,否则输出”NO!”。#include using namespace std;int main() int n; int i; int num; int *data; cout请输入n:n; /输入数组中数据的个数n data = new intn; /动态申请n个int型空间,并将首地址赋给data,data就相当于一个大小为n的数组。 cout清输入n个数据:endl; for ( i=0; idatai; /输入数组数据 cout请输入要查找的数num:n
11、um; /输入要查找的数据 for ( i=0; in; i+ ) /遍历数组 if ( num=datai ) /如果num在data的第i个位置 cout在第i个位置。endl; /输出i break; /结束循环 if ( i=n ) /如果i=n,说明data中没有要查找的数据 coutNoendl; /输出No return 0; /程序结束12.求1001000之间有多少个整数,其各位数字之和为5,输出满足条件的所有数据以及总个数。#include void main() int one,ten,hun; /* 1001000整数的个、十、百位上的数字 */ int i,sum,count=0; /* i是1001000整数,sum为各位数字的和,count为总个数 */ for(i = 100; i 1000; i+) one = i%10; /* 个位上的数字 */ ten = i/10%10; /* 十位上的数字 */ hun = i/100; /* 百位上的数字 */ sum = one+ten+hun; /* 各位数字的和 */ if(sum = 5) /* 如果各位数字之和为5则输出并统计个数 */ printf(%d ,i); +count; printf(nThere all are %d numbers.n,count); /* 输出总个数 */
限制150内