C语言程序设计(编程题专项练习)及答案.docx
《C语言程序设计(编程题专项练习)及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计(编程题专项练习)及答案.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计(编程题专项练习)及答案(一)一、组数,指针,字符串编程题(每小题5分,共10分)1、编写程序:输入一个百分制成绩,打印出五级记分成绩。考试成绩在90分 或90分以上为优秀,8089分为良好,7079为中等,6069 为及格,低于60分为不及格。2、编写程序:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只 剩下一个桃子了。求第一天共摘了多少。3、编写程序:将一个正整数分解质因数。例如:输入90,打印出 90=2*3*3*5。4、编写
2、程序:求一个3*3矩阵对角线元素之和5、编写程序:输入某年某月某日,判断这一天是这一年的第几天?6、编写程序:请输入星期几的第一个字母来判断一下是星期几,如果第一个字 母一样,则继续判断第二个字母。7、编写程序:从键盘上输入一个百分制成绩score,按下列原则输出其等级: score290,等级为 A; 80Wscore90,等级为 B; 70score80,等级为 C; 60score70,等级为 D; score2) / *如果是闰年且月份大于2,总天数应该加一天 SUD1+ ;printf (这是这一年的第%d天。sum);printf(n);)【解析】以3月5日为例,应该先把前两个月的
3、加起来,然后再加上5天即本年的第几 天,特殊情况,闰年且输入月份大于3时需考虑多加一天。6、#includeint main ()char i, j;printf (请输入第一个字母:n);scanf(%c, &i);getcharO ;scanf (枇,&j);的问题,第二次是读入的一个换行符,而不是输入的字 符,因此需要加一个getchar ()吃掉换行符switch(i)(case m,:printf(mondayn);break;case w:printf(Wednesdayn);break; case f: printf (,fridayn,); break;case t:print
4、f (请输入下一个字母n);scanf(%c, &j);if (j=,u ) printf(tuesdayn);break;if (j二二h,) printf(thursdayn);break; case s:printf (请输入下一个字母n);scanf (枇,&j);if (j二二a) printf(saturdayn);break;if (j=,u ) printf (,sundayn,/) ; break; default :printf (/,errorn,/) ; break;return 0;)7 ttinclude void main() int data;char grad
5、e;printf(Z/Please enter the score:);scanf(%d” , &data);switch(data/10)(case 10:case 9 :grade二,A,;break;case 8:grade=B;break;case 7:grade=C;break;case 6:grade=D;break;default: grade=E;printf (z,the grade is %c” , grade);8、 ttincludestdio.hmain ()int i, a;for (i=l; i=10; i+)scanf(d,&a);if(a%7=0) print
6、f(d,a); break;)if(i=ll) printf(/znot exist);9、ttinclude ttinclude int m, j, n=0, k;for (m=200; m 0300; m+)k=sqrt (m);for(j=2; jk)if(n%8=0) printf(n);/*found*/ printf (d, ,m);n+;10 main()int a23int b 2;int i=0,j=0;for (i=0; i2; i+)for (j=0; j3; j+)for (i=0; i2; i+)(for (j=0; j #include#define N 10int
7、 main ()(int aN = 0, 1,2, 3, 4, 5,6, 7, 8,9;int i, t;printf (原始数组是:n);for (i=0; iN; i+)printf (%d , ai);for(i=0;iN/2;i+)(t=ai;ai=aN-l-i;aN-l-i=t;printf Cn排序后的数组:n);for (i=0; i ttinclude stdio.hmain ()int term10;int i, max, min;printf (请输入10个整数:);for (i=0; i10; i+)scanf (z/%d,z, &termi);max=term0;min
8、=terni0;for (i=0; i10; i+)(if (termi max)max=termi;)printf (,max=%d, min=%d/,, max, min);13、ttinclude main ()(int a100, i, n;scanf(d,&n);for (i=0; in; i+) scanf (%d,&ai);a99=a0;for (i=l; in; i+)if (a99 ai) a99=ai;printf (,zmax is %dn,a99);14、ttinclude void main()int a10 = 10,4,2, 7, 3, 12, 5, 34, 5,
9、9, i;/ *f ourid*/float aver, s;/*found*/for ( i=l; i ttinclude main()(int i, p=0, a10;for (i=0; i10; i+)scanf(%d,&ai);for (i=l; i10; i+) if (ai ap)P=i ;printf(d, %dn,ap,p);16、#include#includettinclude void swap(chartstri, char*str2);int main ()(char strl20, str220, str320;printf (请输入3个字符串,每个字符串以回车结束
10、!: n);fgets(strl, (sizeof strl / sizeof strl0), stdin);fgets (str2, (sizeof str2 / sizeof str20), stdin);fgets(str3, (sizeof str3 / sizeof str30), stdin);if (strcmp (strl, str2) 0) swap (strl, str2);if (strcmp (str2, str3) 0) swap (str2, str3);if (strcmp (strl, str2) 0) swap (strl, str2);printf(排序后的
11、结果为:n);printf (,%sn%sn%sn/,, strl, str2, str3);return 0;void swap(char*strl, char*str2)(char tem20;strcpy(tem, strl);strcpy(strl, str2);strcpy(str2, tem);17、ttinclude #include main ()(char a=,clanguage,z, t;int i, j, k;k=strlen(a);for (i=l; i =k-2; i+=2)for(j=i+2; jk; j+=2)if (ajai)(t=ai;ai=aj;aj=t;
12、)puts (a);printf(n);18、ttinclude #include #include prinum( int a)(int count, i, j, k;count = 0;for ( i=0; i10; i+)(k=ai-l;for ( j=2; j= k+1) count+;return (count);main ()(int a10 = 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, n;n=prinum(a);printf (prime number (s) is (are) : %d,n );19、#include#includevoid fun(
13、int *s, int n)(int i;int max=s0;int a=0;for (i=0; imax)(max=si;a二i;)sa=s0;s0=max;int j;int min=sn-l;int b=n-l;for(j=0; jn; j+)(if (sj min)(min=sj;b二 j;)sb=sn-l;sn-l=min;void printf s (int s, int n)for (i=0; in; i+) printf(%d , si);printf (n);int main ()(int s 20;int i, n;printf (设置数组长度(V20):);scanf(
14、d,&n);printf (输入 %d 个元素:n”,n);for (i=0; i #includeint main ()(int all = l, 4, 6, 9, 13, 16, 19, 28, 40, 100;int tempi, temp2, number, end, i, j ;printf(原始数组是:n);for (i=0; iend) a10=number;elsefor (i=0; inumber)templ=ai;ai=number;for(j=i+l; jll; j+)(temp2=aj;aj=templ;templ=temp2;break;)for (i=0; i #i
15、nclude struct Student int num;char name30; char sex;int Fun (struct Student *s , int n) (int num=0;int i; for(i=0; in; i+) (if (si. sex =二M)num+;13、编写程序:把数组a(大小为100)中前n个元素中的最大值放入a的最后一 个元素中,n的值由键盘输入14、编写程序:求一维数组a中所有元素的平均值,结果保留两位小数。例 如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9程序的输出应为:The aver is: 9.
16、 1015、编写程序:输出一维数组a中的最小值及其下标16、编写程序:字符串排序。如下:请输入3个字符串,每个字符串以回车结束!: ba t 排序后的结果为:a bt17、编写程序:将字符数组a中下标值为奇数的元素从小到大排列,其它元素不 变例如:当a数组中的字符串为:clanguage时,程序的输出结果为:cgalgnaue()18、编写程序:统计一维数组a中素数的个数例如:如果数组a的元素为:2, 3,5, 7,8,9, 10, 11, 12, 13,则程序的输出应 为:prime number (s) is (are)19、编写程序:输入数组,最大的与第一个元素交换,最小的与最后一个元素
17、 交换,输出数组。20、编写程序:有一个已经排好序的数组。现输入一个数,要求按原来的规律 将它插入数组中。二、结构体相关编程题(每小题5分,共10分)1、统计结构体数组中性别(sex)为M的变量的个数。要求:数组元素依次赋初值为:1 , Andy,M 、 2 , Mike, F 、 3 , Rose , M。结构体定义如下:struct Student int num; char name 30 ; char sex;int main ()struct Student s3 = 1, Andy, M , 2, Mike, F , 3, Rose, M );printf (,/%d/z, Fun
18、 (s , 3);return 0;2、 #include struct student int num;char name20;char sex;int age; stu20,*p;int main () int n;scanf(%d, &n);p 二 stu;for(int i =0; i num, p-name, &p-sex, &p-age); printf (,/%d %s %c %dn,p-num, p-name, p-sex, p-age); returnO;)3、ttinclude #define NUM 3struct studentchar* sno = new char2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 编程 专项 练习 答案
限制150内