15级程序设计基础题库(c语言)2 - 截止到指针 - 答案版本
更新时间:2024-02-28 02:33:01 阅读量: 综合文库 文档下载
15级《程序设计基础》题库
<说明>
1、 总共抽11道题,每小题10分,共100分(附加题选做,计入总分,但总分不高于100)。 按题型:顺序(1道)、分支(1道)、单循环(2道)、多循环(1道)、数组(1道)、函数(1道)、
字符串(1道)、指针(1道) 、数据类型(1道)、附加题(1道)。
按难易程度:易(1道)、较易(4道)、较难(4道)、难(1道)。
2、考试要求:写代码实现(其中分支(1道)、单循环(2道)、多循环(1道)共四道要求先画出流程图,再根据流程图写代码),理论考试,2个小时。
一、顺序结构(10道抽1道,写代码)
1、 将华氏温度转化成摄氏温度。公式为:C=(5/9)*(F-32),其中F为华氏温度,C为
摄氏温度。请根据给定的华氏温度输出对应的摄氏温度。(易)
2、 根据观察,蟋蟀的鸣叫频率与温度有关,具体的公式为T=(c+40)/10.其中,c代表
蟋蟀每分钟鸣叫数,T代表华氏温度。请根据蟋蟀每分钟的鸣叫数输出相应的华氏温度。(易)
3、 任意输入一个三位数,求这个数每个位上的数。如整数932,个位为2、十位为3、
百位为9. (较易)
4、 编写程序,定义一个三位整数,求其各位数字之和。如整数932,各位数字之和为
14. (较易)
5、 编程实现两个整数交换位置,例如:int x = 6,y = 9,交换后 x = 9,y = 6。(较易) 6、 已知圆的半径,求圆的面积。(易) 7、 已知球的半径,求球的表面积。(
)(易)
8、 已知一个三角形的三边边长分别为a,b,c,利用海伦公式求三角形的面积。(较难)
a?b?c海伦公式:
p?S?p(p?a)(p?b)(p?c) 2调用 #include
double a,b,c,p,s;
printf(\输入三角形的三边用空格隔开:\ scanf(\ p = (a+b+c)/2;
s = sqrt(p*(p-a)*(p-b)*(p-c)); printf(\面积为:%lf\\n\}
9、 求两数平方和的算术根。(较易)
10、 给定一段时间求出它的秒数。(如计算2小时 17分30秒等于多少秒)(较易)
二、分支结构(10道抽1道,要求画出流程图再写代码)
11、 从键盘输入三个数a,b,c,将a,b,c按从大到小的顺序输出。(较易) #include
int a,b,c,t; // 先把最大的排在最左边 printf(\请输入a,b,c三个整数\\n\ scanf(\ if(a
if(a if(b printf(\输出a,b,c最大值重新排序之后的顺序::%d,%d%,%d\\n\} 12、 两个整数比较大小,输出较大值。(易) #include //两个整数比较大小,输出较大值 int i,j,max; printf(\请输入两个两个整数:\\n\ scanf(\ if (i>j) { max=i; } else } { max=j; } printf(\输出两个数的最大值max::%d\\n\ 13、 三个整数比较大小,输出最大值。(较易) #include //三个整数比较大小,输出最大值 int x,y,z,max; printf(\请输入三个整数:\\n\ scanf(\ if(x>y) { //x和在再进行比较 if(x>z) { max=x; } else { max=z; } } else { //y和z再进行比较 if(y>z) { max=y; } else { max=z; } } printf(\输出三个数的最大值max::%d\\n\} 14、 铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤。0.15元计费,如 超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。(较易) 开始定义变量weight和charge并赋初值weight<50真charge=weight*0.15假charge=(50*0.15)+(weight-50)*0.25输出charge的值结束 #include double weight;//定义行李重量 double charge; printf(\请输入行李的重量\\n\ scanf(\ if(weight<=50) { //根据行李重量计算费用 charge = weight*0.15; } else { charge = 50*0.15+(weight-50)*0.25; } printf(\费用为:%lf\\n\ } 15、 判断某个整数是否为水仙花数。(水仙花数是一个三位数,该数各位的立方和等于 该数本身。例如153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3)(较难) #include int year; scanf(\ if ((year%4==0 && year0 !=0) || year@0==0) { printf(\年是润年\\n\ } else { printf(\年不是润年\\n\ } } 16、 判断某年是否为闰年。(闰年的条件是:该年的年号能被4整除且不能被100整除, 或该年的年号能被400整除,则该年是闰年,否则不是闰年。)(较易) #include int year; scanf(\ if ((year%4==0 && year0 !=0) || year@0==0) { printf(\年是润年\\n\ } else { printf(\年不是润年\\n\ } } 17、 求下列函数中y的值。(较易) y=10 (x=0) y=3x+5 (x>0) y=x-2 (x<0) #include double x,y; scanf(\ if (x==0) { y=10; } else if (x>0) { y=3*x+5; } else { y=x-2; } printf(\输入x的值%lf后,函数y的值为:%lf\ } 18、 根据某同学的成绩,判定其成绩的等级。(90~100分为“优秀”,80~89为“良 好”,70~79为“中等”,60~69为“及格”,60分以下为“不及格”。)(较难) 开始定义并初始化学生成绩ss<0?否s<60?否s<70否s<80是是是是否s<90否是s<=100否是无效成绩不及格及格中等良好优秀无效成绩结束 #include } else if (s>=70 && s<80) { printf(\成绩的等级为:中等\\n\} else if (s>=80 && s<90) { printf(\成绩的等级为:良好\\n\} else if (s>=90 && s<=100) { printf(\成绩的等级为:优秀\\n\} else { printf(\输入成绩有误,请收入有效成绩!\\n\} 19、 某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折 付款,超过100元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。(较易) #include float money; scanf(\ if (money < 50) { money=money *1; } if (money >=50 && money <100) { money=money * 0.9; } if (money >=100) { money=100 * 0.9 + (money-100) * 0.8;//题目表述不清晰,按照常理来做 } printf(\自动计费后付款金额为:%f\\n\} 20、 编写一个程序,功能是从键盘输入1—4中的某一个数字,由电脑打印出其对应的 季节的英语名称。spring summer autumn winter(较难) #include short int x; printf(\请输入1-4整数:\ scanf(\ switch(x) { //根据x的值输出 spring summer autumn winter case 1:printf(\ case 2:printf(\ case 3:printf(\ case 4:printf(\ default:printf(\输入的值有误,请输入一个按照题意要求的整数\\n\ } } 三、单循环(10道抽2道,要求画出流程图再写代码) 21、 求1到100的累加和。(较易) #include int i,sum=0; for (i=1;i<=100;i++) { sum += i; } printf(\} 22、 求1000以内所有能被5整除的整数的和。(较易) #include int i,sum=0; for (i=1;i<=1000;i++) { if (i%5==0) { sum += i; } } printf(\} 23、 求10的阶乘。(较易) /* #include int i,sum=1; for (i=10;i>0;i--) { sum *= i; } printf(\} */ #include int i,sum=1; for (i=1;i<=10;i++) { sum = sum * i; } printf(\} 24、 输出26个小写英文字母。(较易) #include char s=’a’-1; for (int i=1;i<=26;i++) { //s = s + 1; printf(\ } //printf(\ putchar('\\n'); } 25、 统计1000以内所有能被7整除的数。(#include 较易) { for (int i=1;i<=1000;i++) { if (i%7 == 0) { printf(\ } } //printf(\ putchar('\\n'); } 26、 统计1000以内所有能被2整除又能被5整除的数。(较难) #include for (int i=1;i<=1000;i++) { if (i%2 == 0 && i%5 == 0) { printf(\ } } //printf(\ putchar('\\n'); } 27、 打印100以内所有能被3整除的数,每5个数打印一行。(较难) #include int j=0; for (int i=1;i<=100;i++) { if (i%3 == 0) { printf(\ j++;//每打印一个数 记录一次 } if (j %5 == 0)//满5个数时输出换行 { putchar('\\n'); } } putchar('\\n'); } 28、 判断某个整数是否为素数。(素数是一个大于1且只能被1和它本身整除的整数) (较难) #include int i,j; //输入一个整数i,判断是否为素数 scanf(\ for(j=2;j<=i;j++) { if(i%j==0) break;//j从2开始增,一旦j能整除i则退出 } if(i==j)//判断那个最小因数是不是i本身,是则为素数,否则不是。 { printf(\是素数!\\n\ } else { printf(\不是素数!\\n\ } } 29、 判断某个整数是否为完全数。(完全数:所有小于该数本身的因子之和等于该数本 身,例如6是一个完全数,因为,6=1+2+3)(较难) #include int i,j,sum; //请输入一个整数i. scanf(\ sum=0; for (j=1;j if(i==sum) printf (\是一个完全数!\\n\ else printf (\不是一个完全数!\\n\ } 30、 输出1000以内的所有水仙花数。(水仙花数是一个三位数,该数各位的立方和等 于该数本身。例如153是一个水仙花数,因为153 = 13 + 53 + 33)(较难) #include for (int i=100;i<1000;i++) { gw=i; sw=i/10; bw=i/100; sum = pow(gw,3) + pow(sw,3) + pow(bw,3); if (i==sum) { printf(\ } } putchar('\\n'); } 31、 编写程序读入整数并求它们的总和与平均值。输入0时程序结束。(#include 32、 用while循环,求n的平方大于12000的最小数n。(难) #include 较难) { int n=1; while(n>0) { if( n*n >12000) { break; } n++; } printf(\最小n=%d\} 33、 求1+1/2+1/3+?+1/n>10,n的值至少为多大。(难) #include #include double sum=0; int n=0; for (int i=1;sum <=10;i++) { sum = sum + 1.0/i; n++; } printf(\的值至少等于:%d\} 34、 本金10000元存入银行,年利率千分之3,每过1年,本金和利息作为新的本金, 5年后,总共有多少钱?(较易) #include { double money=10000; for (int i=1;i<=5;i++) { money = money * (1 + 0.003); } printf(\} 35、 斐波那契数列的第1和第2个数分别为1和1,从第三个数开始,每个数等于其前 两个数之和(1,1,2,3,5,8,13?.).编写一个程序输出斐波那契数列中的前20个数。(较难) #include int a1=1,a2=1,ai=0; for (int i=1;i<=20;i++) { if (i<=2) { printf(\ } else //从低三个数开始等于前两个数之和 { ai=a1+a2;//每次循环输出的数 printf(\ a1=a2; a2=ai; } } } 36、 一个球从100米高自由落下,每次落地后,反弹回原高度的一半,再落下,再反弹。 求它第10次落地后反弹多高?(较易) #include double h=100; for (int i=1;i<=10;i++) { h = h /2.0; } printf(\} 37、 有1020个西瓜,第一天卖掉一半多两个,以后每天卖剩下的一半多两个,问几天 后可以卖完,请编程计算。(较难) 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*6=36 6*7=42 7*7=49 6*8=48 7*8=56 8*8=64 6*9=54 7*9=63 8*9=72 9*9=81 #include for (int i=1;i<=9;i++) { for (int j=1;j<=i;j++) { printf (\ } printf(\输出完后进行换行 } return 0; } 47、 打印九九乘法表,形式如下:(难) 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 9*1=2 9*2=18 9*3=21 9*4=36 9*5=45 9*6=54 9*7=63 #include for (int i=1;i<=9;i++) { for (int j=1;j<=9;j++) { printf (\ } printf(\输出完后进行换行 } return 0; } 1*8=8 1*9=9 2*8=16 2*9=18 3*8=24 3*9=27 4*8=32 4*9=36 5*8=40 5*9=45 6*8=48 6*9=54 7*8=56 7*9=63 8*8=64 8*9=72 9*8=72 9*9=81 48、 打印100以内的所有素数。(素数是一个大于1且只能被1和它本身整除的整数) (难) #include 49、 打印1000以内的完全数。(完全数:所有小于该数本身的因子之和等于该数本身, 例如6是一个完全数,因为,6=1+2+3)(难) #include int i,j,m,s; for (i=2;i<=1000;i++) { s=0; for (j=1;j if(i==s) printf (\完全数有%d\ } system (\} 50、 求1!+2!+3!+??+10!。(难) #include 单循环: #include 五、数组(10道抽1道,写代码) 51、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},并将其每 个元素全部输出显示。(较易) #include int a[10]={21,45,38,66,73,14,55,99,85,10}; for (int i=0;i<10;i++) { printf(\ } putchar('\\n'); } 52、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},并将其每 个元素逆序输出显示。(较易) #include int a[10]={21,45,38,66,73,14,55,99,85,10}; for (int i=9;i>=0;i--) { printf(\ } putchar('\\n'); } 53、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},求其最大 值。(较难) #include int a[10]={21,45,38,66,73,14,55,99,85,10}; int i,j,t; for(j=0;j<9;j++) //循环次数 带表要下次几次,是数组元素个数-1 { for(i=0;i<9-j;i++) //每次循环后就把每次最大的数下沉下去 i<9-j if (a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } printf(\数组中最大值为;%d\ printf(\} 54、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},求其最小 值。(较难) #include int a[10]={21,45,38,66,73,14,55,99,85,10}; int i,j,t; for(j=0;j<9;j++) //循环次数 带表要下次几次,是数组元素个数-1 { for(i=0;i<9-j;i++) //每次循环后就把每次最大的数下沉下去 i<9-j if (a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } printf(\数组中最小值为:%d\ printf(\} 55、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},求数组元 素的和。(较难) #include //定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},求数组元素的和。(较难) int a[10]={21,45,38,66,73,14,55,99,85,10}; int sum=0; for (int i=0;i<10;i++) { sum=sum +a[i]; } printf(\} 56、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},求数组元 素的平均值。(较难) #include int a[10]={21,45,38,66,73,14,55,99,85,10}; int sum=0; float av=0; for (int i=0;i<10;i++) { sum=sum +a[i]; } av= sum/10.0; printf(\} 57、 请定义一个2行3列的int类型的数组,其值为{{1,2,3},{2,4,6}}并将其每个元素 全部输出显示。(较易) #include void main() { int a[2][3]={{1,2,3},{2,4,6}}; for (int i=0;i<2;i++) { for(int j=0;j<3;j++) { printf(\ } printf(\ } } 58、 请定义一个2行3列的int类型的数组,其值为{{1,2,3},{2,4,6}},输出所有元素 的和。(难) #include int sum=0; int a[2][3]={{1,2,3},{2,4,6}}; for (int i=0;i<2;i++) { for(int j=0;j<3;j++) { sum =sum + a[i][j]; } } printf(\} 59、 请定义一个4行4列的int类型的数组,求对角线上元素的和。(难) #include int sum=0; int a[4][4]={{1,2,3,4},{2,4,6,8},{1,2,3,4},{2,4,6,8}}; for (int i=0;i<4;i++) { for(int j=0;j<4;j++) { if((i==j) || (i+j==3)) { sum =sum + a[i][j];//其中一条对角线 +另外一条对角线 } } } printf(\} 60、 定义一个长度为10的整型数组,其值为{21,45,38,66,73,14,55,99,85,10},并按元素 从小到大的顺序输出显示。(难) #include int a[10]={21,45,38,66,73,14,55,99,85,10}; int i,j,k,t; for(j=0;j<9;j++) //循环次数 带表要下次几次,是数组元素个数-1 { for(i=0;i<9-j;i++) //每次循环后就把每次最大的数下沉下去 i<9-j if (a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } for(k=0;k<10;k++) { printf(\ } } 六、字符串(10道抽1道,写代码) 61、 编写程序,用你的英文名字初始化一个字符串,然后输出,如John(较易) #include char name[10]=\ printf(\} 62、 请定义一个长度为10的字符串,并将其输出显示。(较易) #include } 63、 定义2串密码,判断该两串密码是否一致。(较难) #include char pwd1[30]=\ char pwd2[30]=\ int i=strcmp(pwd1,pwd2); if (i==0) { puts(\定义的两串密码一致!\ } else { puts(\定义的两串密码不一致!\ } } 64、 反向加密:定义任意长度的密码,输出反向的密码。(较易) #include 65、 判断字符串是否为回文串。(提示:回文字符串是具有回文特性的字符串:即该字 符串从左向右读和从右向左读一样,如12321)(难) #include int x,i; char str1[50]; gets(str1); x=strlen(str1); //要判断长度必须是基数个数 if(x%2!=0) { for(i=0;i<=x/2; i++) //比只比较前一半的字符是否等于后一半的字符 { //这就是比较两端的字符 if(str1[i] != str1[x-i-1]) { break;//不是回文 } } if(i> x/2) { puts(\是回文字符串\ } else { puts(\不是回文字符串\ } } else { puts(\不是回文字符串\ } } 66、 将字符串中的小写字母改为相应的大写字母 。(难) #include 67、 定义两个字符串,比较两个字符串的长度,输出较长的字符串。若两个字符串长度 相同,则输出第一个字符串 。(较难) #include char str1[100]={\ char str2[100]={\ int lenstr1,lenstr2; lenstr1=strlen(str1); lenstr2=strlen(str2); if (lenstr1 >=lenstr2) { puts(str1); } else { puts(str2); } } 68、 定义一字符串,输出字符串中第一个出现字母a的位置,如没有则输出-1 。 #include 69、 定义一字符串,统计该字符串中数字的个数。(较难) #include 难)( gets(str1); for(i=0;(c=str1[i])!='\\0';i++) { if(c>='0' && c<='9') { sum+=1; } } printf(\ } 70、 定义两个字符串,合并成一个新的字符串并输出。(较难) #include 七、函数(抽1道,写代码) 注:在分支结构中任抽一题,要求用函数实现。(较难) 八、指针(10道抽1道,写代码) 71、 定义函数求2个整数的最大值(要求使用指针变量作函数参数来实现)。( #include int smax(int * pa,int * pb) { int max; if (* pa > * pb) { max = * pa; } else { max = * pb; } 较难) return max; } void main() { int a,b ,max; int smax(int * pa,int * pb); scanf(\ int * pa,* pb; pa = &a; pb = &b; max=smax(pa,pb); printf(\最大值:%d\\n\} 72、 定义函数实现两个float型数的交换(要求使用指针变量作函数参数来实现)。(较 难) #include void swap(float * pc,float * pd) { float p; p= * pc; * pc=* pd; * pd=p; } void main () { float a,b; void swap(float * pc,float * pd); scanf(\ float * pa =&a; float * pb =&b; printf(\交换前指针指向的地址的值:%f,%f\\n\ swap(pa,pb); printf(\交换之后指针指向的地址的值:%f,%f\\n\ } 73、 定义(返回指针)函数求三个数的最大值。(较难) #include float * smax(float a[3]) { float * pa; pa = &a[0]; for (int i=1;i<3;i++) { if ( *pa < a[i]) { pa = &a[i]; } } return pa; } void main() // { float a[3]={2.1f,2.3f,45}; float * smax(float a[3]); float * pa; pa = smax(a); printf(\最大值:%f\\n\} 74、 定义(返回指针)函数求三个数的和。(较难) #include float * mysum(float a[3]) { float j=0; float * sum; sum = &j;//初始化指针的地址 for (int i=0;i<3;i++) { j += a[i]; } return sum; } void main() // { float a[3]={2,10,3}; float * sum; sum = mysum(a); printf(\最大值:%f\\n\} 75、 定义函数求x,y中的较小数(要求用指向函数的指针实现)。(#include 难) { int mymin (int,int);//定义一个函数 int (* p)(int,int);//定义一个指向函数的指针 int min,x,y; p = mymin;//给指针p赋初值; printf(\请输入x,y的值:\ scanf(\ min=p(x,y); printf(\最小值为:%d\\n\ } int mymin(int a,int b) { if (a void main() { int mymax (int,int);//声明一个函数 int (* p)(int,int);//定义一个指向函数的指针 int max,x,y; p = mymax;//给指针p赋初值; printf(\请输入x,y的值:\ scanf(\ max=(*p)(x,y); printf(\最小值为:%d\\n\ } int mymax(int a,int b) { if (a 难) } else { return a; } 77、 求一个字符串中的数字字符之和。(要求用指向字符串的指针实现)(难) #include char * s =\ int len;//定义字符串长度变量 int sum = 0; len=strlen(s); for (int i=0;i printf(\} 78、 输出字符串长度。(要求用指向字符串的指针实现)(难) #include void main() //输出字符串的长度 { char * s =\ int len;//定义字符串长度变量 len=strlen(s); printf(\字符串的长度len=%d\\n\} 79、 键盘输入10个数,输出10个数的和(指向一维数组的指针实现)。(难) #include int a[10]; 键盘输入10个数,输出10个数的和(指向一维数组的指针实现) } int * p = a; int s = 0; printf(\请输入10个整数\for(int i=0;i<10;i++) { scanf(\ s += *p; p++; } printf(\个数的和为:%d\\n\ 80、 键盘输入10个数,输出10个数的最大值(指向一维数组的指针实现)。(难) #include 九、数据类型(10道抽1道,写代码) 81、 定义一个日期结构体变量(年、月、日),定义包含3个日期信息的数组,输出这 些日期信息。(较难) #include //声明结构体 struct Date { int date_Year; int date_Month; int date_Day; }; //定义结构体数组 struct Date ADate[3]={ {2014,10,1}, {2015,10,1}, {2013,10,1} }; for (int i=0;i<3;i++) { printf(\日期信息:%d年%d月%d日\\n\ } } 82、 定义一个结构体,管理员工的信息(工号,姓名,工资),定义包含3个员工信息 的数组,输出这些员工信息记录。(较难) #include 信息,工号:%s 姓名:%s 工 资:%f\\n\ } } 83、 定义一个结构体,管理学生的成绩(姓名,学号,成绩),定义包含3个学生信息 的数组,输出这些学生信息记录。(较难) 84、 定义一个结构体,管理士兵的信息(姓名,兵种,编号),定义包含3个士兵信息 的数组,输出这些士兵信息记录。(较难) 85、 定义一个结构体,管理学生的成绩(姓名,学号,成绩),从键盘输入3个学生的 数据后,求平均成绩。(难) 86、 定义一个结构体,管理士兵的信息(姓名,兵种,编号),从键盘输入3个士兵信 息的数组,输出这些士兵信息记录。(较难) 87、 定义一个结构体,管理学生的成绩(姓名,学号,成绩),从键盘输入5个学生的 数据后,求最高分。(难) 88、 定义一个结构体,管理学生的成绩(姓名,学号,成绩),从键盘输入5个学生的 数据后,求5个学生的总成绩。(难) 89、 定义一个结构体表示日期,包含年、月、日、星期,其中星期用枚举类型实现,用 今天的日期将其初始化。(难) 90、 定义一个结构体表示日期,包含年、月、日、星期,其中星期用枚举类型实现,用 (2015-4-28 星期二)将其初始化。(难) 十、附加题 91、 求下面数列的前20项的和:2/1、3/2、5/3、8/5、13/8。。。。 #include int i,x,y,a; float sum=0; x=2; //用x表示分子,用y表示分母 y=1; for(i=0;i<20;i++) { sum+=(float)(x)/y; // printf(\ a=x; x=x+y; y=a; } printf(\ } 1.首先弄清楚这组分数序列的规律:从第二个数开始分子=前一个数的分子+分母分母=前一个数的分子 92、 键盘输入两个日期(年月日)输出两个日期之间的天数。(如计算2013年1月1 日到2014年3月1日有多少天,考虑闰年) #include int main(int argc, char *argv[]) { int a[13]; a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31; a[2]=28;a[4]=30;a[6]=30;a[9]=30;a[11]=30; int m,n,p,q,k,i,s,j,x=0,y=0,b=365,c=365; scanf(\ if((m%4==0&&m0!=0)||m@0==0) b=366; if((q%4==0&&q0!=0)||q@0==0) c=366; if(m==q){if(b=366) a[2]=29; for(j=1;j for(j=1;j s=y+i-x-p; printf(\ } if(m!=q) { if(b=366) a[2]=29; for(j=1;j (j=1;j 93、 打印图形 1 121 12321 1234321 12321 121 1 #include } } for(j=1;j<=i;j++) //第一行有1个空格,第i行有i个空格 printf(\for(j=1;j<=k-1;j++) { printf(\} k--; for(j=k-1;j>0;j--) printf(\printf(\ #include int i,j,n,k; scanf(\ k=n; for(i=1;i<=n;i++) { for(j=1;j<=(n-i);j++) printf(\ for(j=1;j<=i;j++) printf(\ for(j=i-1;j>0;j--) printf(\ printf(\ } //打印后面3排 for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) printf(\ for(j=1;j<=k-1;j++) printf(\ for(j=k-1;j>0;j--) printf(\ printf(\ } } 94、 打印图案 1 1 1 2 2 1 1 2 4 4 2 1 #include 95、 编程:桌上放了8袋花生,第1袋花生的数目是1颗,第2袋花生的数目是1*2 颗,第3袋花生的数目是1*2*3颗,以此类推,那么第N袋花生的数目是1*2*3*。。。*N颗,但是其中的第6袋花生已经被人拿走,那么剩下的花生总数是多少? 96、 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子了。求第一天共摘了多少? 97、 求算式xyz+yzz=532中x, y, z的值(其中xyz和yzz分别表示一个三位数)。 98、 求出用数字0至9可以组成多少个没有重复的三位偶数。 99、 下面的程序从键盘接收任意6个数放入数组A中,假设这6个数为:8 1 4 2 5 6 , 则要输出一个具有如下内容的方阵。 1 2 4 8 1 2 4 8 16 1 2 4 8 8 1 4 2 5 6 6 8 1 4 2 5 5 6 8 1 4 2 2 5 6 8 1 4 4 2 5 6 8 1 1 4 2 5 6 8 100、 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一 个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 101、 对于已经排好序的数组a(假设数组递增),输入一个测试数据x,如果x存在于 数组a中,则把x元素删除;否则将x插在相应的位置上,要求数组仍然有序。 102、 有两个数组a,b已经按递增的顺序排列好,现在要将a,b合并为数组c,使得数 组c仍然按照递增的顺序排列。 103、 编程实现把一个十进制数转化成二进制数,把结果保存在数组中,并正确输出。 104、 加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。 算法:明 文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成密文为G l m r e。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。 105、 设计一个剪刀石头布的游戏。
正在阅读:
15级程序设计基础题库(c语言)2 - 截止到指针 - 答案版本02-28
1-ERP-KINGDEE-WISE-K3-3-5-订单生产MTO带委外流程03-18
成都天台山旅游攻略 - 图文12-18
地图学原理思考题01-26
中班音乐活动教案:《理发师》(优秀3篇)04-02
针对吉林省经济社会发展现实问题的对策研究02-01
暑期社会实践02-17
浅谈朗读在小学语文教学中的重要性03-18
我的小学收获400字作文06-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 题库
- 指针
- 程序设计
- 截止
- 答案
- 语言
- 版本
- 基础